:root{--bg: #f0f4f8;--card: #fff;--text: #1a1d21;--text-muted: #5c6370;--primary: #1976d2;--primary-hover: #1e88e5;--border: #e2e6eb;--danger: #c62828;--danger-hover: #d32f2f;--accent: #2e7d32;--card-division: #e8eef5;--card-division-border: #1565c0;--card-work: #e8f4f0;--card-work-border: #00695c;--card-department: #fdf8f0;--card-department-border: #a67c52;font-family:Sarabun,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.layout{max-width:960px;margin:0 auto;padding:1rem 1.5rem}.layout--wide{max-width:1200px}.header{background:var(--card);border-bottom:1px solid var(--border);padding:1rem 1.5rem}.header-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.header h1{margin:0;font-size:1.25rem;font-weight:600}.header nav{display:flex;gap:1rem}.header nav a{color:var(--text-muted)}.header nav a.active{color:var(--primary);font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:6px;border:none;font:inherit;cursor:pointer;background:var(--primary);color:#fff}.btn:hover{background:var(--primary-hover)}.btn--outline{background:transparent;color:var(--primary);border:1px solid var(--primary)}.btn--outline:hover{background:#0d47a114}.btn--danger{background:var(--danger)}.btn--danger:hover{background:var(--danger-hover)}.btn--sm{padding:.35rem .75rem;font-size:.875rem}.card{background:var(--card);border-radius:8px;border:1px solid var(--border);padding:1.25rem;margin-bottom:1rem}.card h2{margin:0 0 1rem;font-size:1.1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.35rem;font-weight:500;color:var(--text-muted);font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;font:inherit}.form-group textarea{resize:vertical;min-height:80px}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary)}.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.25rem}.staff-card{text-align:center;padding:1rem;border-radius:8px;border:1px solid var(--border);background:var(--card)}.staff-card__photo{width:80px;height:80px;margin:0 auto .5rem;border-radius:50%;background:var(--bg);object-fit:cover;object-position:center 32%}.staff-card__name{font-weight:600;margin:0 0 .25rem}.staff-card__role{font-size:.875rem;color:var(--primary);margin:0}.unit-list{display:flex;flex-direction:column;gap:.5rem}.unit-list a{display:block;padding:.75rem 1rem;background:var(--card);border:1px solid var(--border);border-radius:6px;color:var(--text)}.unit-list a:hover{border-color:var(--primary);background:#0d47a10a;text-decoration:none}.division-title{font-size:.85rem;color:var(--text-muted);margin:0 0 .25rem}.admin-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text-muted);font-size:.85rem}.order-buttons{display:inline-flex;gap:.25rem}.error-msg{color:var(--danger);font-size:.9rem;margin-top:.5rem}.text-muted{color:var(--text-muted)}.page-title{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600}.section-title{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:var(--primary)}.executive-section{margin-bottom:2rem}.executive-link{display:block;color:inherit;text-decoration:none}.executive-link:hover{text-decoration:none}.executive-cover{border-radius:8px;overflow:hidden;margin-bottom:.75rem;background:var(--bg)}.executive-cover img{width:100%;height:auto;display:block}.executive-hint{margin:0;font-size:.9rem;color:var(--text-muted)}.division-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.division-card{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;text-decoration:none;color:var(--text);background:var(--card-division);border-left:4px solid var(--card-division-border);transition:border-color .2s,box-shadow .2s,background .2s}.division-card:hover{border-left-color:var(--primary);box-shadow:0 2px 8px #1976d21f;background:#fff;text-decoration:none}.division-card__name{font-weight:500}.division-card__arrow{color:var(--card-division-border)}.division-card:hover .division-card__arrow{color:var(--primary)}.unit-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.unit-card{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;text-decoration:none;color:var(--text);transition:border-color .2s,box-shadow .2s,background .2s}.unit-card--work{background:var(--card-work);border-left:4px solid var(--card-work-border)}.unit-card--work .unit-card__arrow{color:var(--card-work-border)}.unit-card--work:hover{border-left-color:#00897b;box-shadow:0 2px 8px #00695c1a;background:#fff;text-decoration:none}.unit-card--work:hover .unit-card__arrow{color:#00897b}.unit-card--department{background:var(--card-department);border-left:4px solid var(--card-department-border)}.unit-card--department .unit-card__arrow{color:var(--card-department-border)}.unit-card--department:hover{border-left-color:#8b6914;box-shadow:0 2px 8px #a67c5226;background:#fff;text-decoration:none}.unit-card--department:hover .unit-card__arrow{color:#8b6914}.unit-card__name{font-weight:500}.divisions-section,.units-by-division{margin-bottom:2rem}.division-group{margin-bottom:1.25rem}.unit-cover{max-width:900px;margin:0 auto 1.5rem}.executive-leader-row{margin-bottom:1.5rem}.staff-card--leader{min-width:280px;cursor:pointer}.staff-card--leader .staff-card__photo{width:160px;height:200px;border-radius:12px;object-fit:cover;object-position:center 32%}.executive-grid{max-width:1100px}.executive-grid--rest{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.staff-card--exec{cursor:pointer;border:1px solid var(--border);transition:border-color .2s,box-shadow .2s}.staff-card--exec:hover{border-color:var(--primary);box-shadow:0 2px 8px #0d47a11f}button.staff-card{font:inherit;text-align:center;width:100%;background:var(--card)}.staff-card--exec .staff-card__photo{width:130px;height:162px;border-radius:10px;object-fit:cover;object-position:center 32%}.person-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.person-detail-modal{position:relative;max-width:380px;width:100%;padding:1.5rem;text-align:center}.person-detail-close{position:absolute;top:.5rem;right:.5rem;width:2rem;height:2rem;border:none;background:var(--bg);font-size:1.5rem;line-height:1;cursor:pointer;border-radius:4px;color:var(--text-muted)}.person-detail-close:hover{color:var(--text);background:var(--border)}.person-detail-photo{width:180px;height:180px;border-radius:50%;object-fit:cover;object-position:center 32%;margin:0 auto 1rem;display:block}.person-detail-name{margin:0 0 .25rem;font-size:1.2rem;font-weight:600}.person-detail-role{color:var(--primary);margin:0 0 .75rem;font-size:.95rem}.person-detail-email,.person-detail-phone{margin:.25rem 0;font-size:.95rem}.person-detail-email a{color:var(--primary);text-decoration:none}.person-detail-email a:hover{text-decoration:underline}.staff-card__phone{font-size:.85rem;color:var(--text-muted);margin:.25rem 0 0}.staff-card__duties-wrap{margin-top:.5rem;text-align:left;padding-top:.5rem;border-top:1px solid var(--border)}.staff-card__duties-label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.staff-card__duties{font-size:.85rem;color:var(--text);margin:0;white-space:pre-wrap}.deputy-section{margin-bottom:1.5rem}.deputy-block{display:flex;gap:1.5rem;flex-wrap:wrap}.deputy-photo{width:140px;height:140px;object-fit:cover;border-radius:8px;flex-shrink:0}.deputy-info{flex:1;min-width:200px}.deputy-name{font-size:1.2rem;font-weight:600;margin:0 0 .25rem}.deputy-role{color:var(--primary);margin:0 0 .5rem}.deputy-phone{margin:0 0 .75rem;font-size:.95rem}.duties-block{margin-top:1rem}.duties-block h4{margin:0 0 .5rem;font-size:.95rem;color:var(--text-muted)}.duties-text{white-space:pre-wrap;font-size:.9rem;line-height:1.6}.unit-division-badge{margin:-.5rem 0 1rem;font-size:.9rem;color:var(--text-muted)}.unit-empty-state{padding:1.5rem;text-align:center}.unit-empty-state__message{font-size:1.1rem;font-weight:600;margin:0;color:var(--text)}.unit-empty-state__sub{margin:.5rem 0 0;font-size:.95rem;color:var(--text-muted)}.unit-empty-hint{margin:1rem 0 0;font-size:.9rem}.unit-empty-hint a{color:var(--primary);text-decoration:none}.unit-empty-hint a:hover{text-decoration:underline}.child-units{margin-top:1rem}.departments-section{margin-bottom:2rem}.department-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.5rem}.department-program{display:flex;flex-direction:column;gap:1.5rem}.program-block{overflow:hidden}.program-block__title{margin:0 0 1rem;padding:.75rem 1rem;background:linear-gradient(135deg,var(--primary) 0%,#1565c0 100%);color:#fff;font-size:1.1rem;font-weight:600;border-radius:8px 8px 0 0}.program-block__body{display:grid;grid-template-columns:1fr 1.5fr;gap:1.5rem;padding:1rem}@media (max-width: 768px){.program-block__body{grid-template-columns:1fr}}.program-block__image{border-radius:8px;overflow:hidden;background:var(--bg)}.program-block__image img{width:100%;height:auto;display:block;object-fit:cover}.program-block__text{min-width:0}.program-block__admission{margin:0 0 1rem;padding:.5rem 0;font-size:.95rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.program-block__section{margin-bottom:1rem}.program-block__section h4{margin:0 0 .35rem;font-size:.95rem;font-weight:600;color:var(--primary)}.program-block__content{font-size:.9rem;line-height:1.6;white-space:pre-wrap}.program-block__content ul{margin:.25rem 0 0 1rem;padding:0}@media (max-width: 640px){.layout,.header{padding:1rem}.header-inner{flex-direction:column;align-items:flex-start}.header h1{font-size:1.1rem}.division-cards,.unit-cards{grid-template-columns:1fr}.staff-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.executive-grid--rest{grid-template-columns:1fr}.staff-card--leader{min-width:auto}}
