:root{--navy:#062854;--blue:#1479ff;--cyan:#13cbd1;--purple:#7854e9;--orange:#f29a24;--ink:#173755;--muted:#6e849b;--line:#dce8f3;--bg:#f3f8fd;--danger:#c23f49;--green:#14a66c;--shadow:0 14px 34px rgba(8,53,99,.08)}*{box-sizing:border-box}body{margin:0;font-family:'Noto Sans Thai','Segoe UI',Tahoma,sans-serif;background:radial-gradient(circle at 90% 5%,rgba(38,166,255,.10),transparent 24%),var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}.admin-shell{display:grid;grid-template-columns:252px 1fr;min-height:100vh}.admin-sidebar{position:sticky;top:0;height:100vh;padding:16px 12px;background:radial-gradient(circle at 30% 10%,rgba(20,203,209,.22),transparent 25%),linear-gradient(180deg,#061f43,#073665 58%,#064d68);color:#fff;display:flex;flex-direction:column;box-shadow:8px 0 30px rgba(5,39,75,.08)}.admin-brand{display:flex;gap:11px;align-items:center;padding:12px;margin-bottom:13px;border-radius:15px;background:rgba(255,255,255,.05)}.admin-brand span{display:grid;place-items:center;width:45px;height:45px;border-radius:13px;background:linear-gradient(135deg,#1688ff,#14cba9);box-shadow:0 10px 22px rgba(0,0,0,.16);font-weight:900}.admin-brand b{font-size:16px}.admin-sidebar nav{display:grid;gap:5px}.admin-sidebar nav a{padding:11px 12px;border-radius:11px;color:#d8ebf6;font-size:12px;font-weight:750;border:1px solid transparent}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background:linear-gradient(90deg,rgba(44,145,255,.28),rgba(38,213,207,.10));border-color:rgba(255,255,255,.08);color:#fff}.sidebar-bottom{margin-top:auto;display:grid;gap:7px;border-top:1px solid rgba(255,255,255,.1);padding-top:12px}.sidebar-bottom a{color:#9fe6f6;font-size:11px;padding:6px 10px}.admin-main{min-width:0}.admin-top{display:flex;justify-content:space-between;align-items:center;padding:17px 24px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.admin-top small{color:#0a93a3;font-size:9px;font-weight:900;letter-spacing:.1em}.admin-top h1{margin:2px 0 0;font-size:23px}.admin-user{padding:8px 12px;border-radius:999px;background:linear-gradient(135deg,#eef7ff,#e9faf7);font-size:11px;color:#2b5f84}.admin-content{padding:22px}.alert{margin-bottom:14px;padding:11px 13px;border-radius:11px}.alert.success{background:#e7f8f0;color:#137451}.alert.danger{background:#fff0f0;color:#a53c45}.admin-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 27px;border-radius:22px;background:radial-gradient(circle at 82% 20%,rgba(35,220,217,.28),transparent 30%),linear-gradient(135deg,#07305e,#0b69a7);color:#fff;box-shadow:0 20px 42px rgba(6,62,113,.14);overflow:hidden}.admin-hero small{color:#87effb;font-size:9px;font-weight:900;letter-spacing:.12em}.admin-hero h2{margin:4px 0 5px;font-size:27px}.admin-hero p{margin:0;color:#d7ebfa;font-size:12px}.admin-hero-actions{display:flex;gap:9px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;padding:9px 13px;border:0;border-radius:10px;background:linear-gradient(135deg,#1479ff,#139bd2);color:#fff;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.button.secondary{background:#eaf5fb;color:#0873b4}.button.danger{background:#fff0f0;color:#b23e47}.button.small{padding:6px 9px;font-size:10px}.button.light{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}.button.glow{background:linear-gradient(135deg,#22b4ff,#19cba1);box-shadow:0 8px 20px rgba(13,194,184,.24)}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric-grid{margin-top:16px}.metric{display:flex;align-items:center;gap:13px;padding:17px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 25px rgba(8,53,99,.05);transition:.18s}.metric:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.metric i{display:grid;place-items:center;width:49px;height:49px;border-radius:14px;background:#eaf4ff;font-style:normal;font-size:22px}.metric strong{display:block;font-size:28px;line-height:1;color:#0876bc}.metric span{display:block;margin-top:5px;color:var(--muted);font-size:10px}.metric-award i{background:#fff5d7}.metric-project i{background:#e6f9ff}.metric-news i{background:#e9f3ff}.metric-staff i{background:#f0ebff}.panel{margin-top:16px;padding:18px;border-radius:19px;background:#fff;border:1px solid var(--line);box-shadow:0 9px 24px rgba(8,53,99,.045)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{margin:0;font-size:18px}.panel-kicker{display:block;margin-bottom:2px;color:#0b9ca9;font-size:8px;font-weight:900;letter-spacing:.12em}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;background:#eaf8f1;color:#147c56;font-size:9px;font-weight:800}.status-pill i{width:7px;height:7px;border-radius:50%;background:#18b878;box-shadow:0 0 0 4px #dff5e9}.quick-action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-action-grid a{position:relative;display:grid;grid-template-columns:44px 1fr 24px;gap:10px;align-items:center;padding:13px;border:1px solid #e5edf5;border-radius:15px;background:linear-gradient(180deg,#fff,#fbfdff);transition:.18s}.quick-action-grid a:hover{transform:translateY(-2px);border-color:#bddcf4;box-shadow:0 10px 22px rgba(8,53,99,.07)}.quick-action-grid a>i{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#edf6ff,#e7fbf8);font-style:normal;font-size:20px}.quick-action-grid b,.quick-action-grid small{display:block}.quick-action-grid b{font-size:12px}.quick-action-grid small{margin-top:2px;color:#8295a8;font-size:9px}.quick-action-grid span{color:#2082ca;font-weight:900}.admin-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-feed{display:grid;gap:3px}.admin-feed a{display:grid;grid-template-columns:38px 1fr 20px;gap:9px;align-items:center;padding:10px 4px;border-bottom:1px solid #edf2f6}.admin-feed a:last-child{border-bottom:0}.feed-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#eaf4ff}.feed-icon.gold{background:#fff5d7}.admin-feed b,.admin-feed small{display:block}.admin-feed b{font-size:11px;line-height:1.4}.admin-feed small{margin-top:2px;color:#8194a6;font-size:9px}.admin-feed i{font-style:normal;color:#2180c6;font-weight:900}.empty-admin{padding:18px;text-align:center;color:#8597a7;font-size:11px;background:#f8fafc;border-radius:12px}.content-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.content-bars>div{position:relative;padding:12px 13px 18px;border:1px solid #e5edf4;border-radius:13px;overflow:hidden}.content-bars span,.content-bars b{font-size:10px}.content-bars b{float:right;color:#53708b}.content-bars i{position:absolute;left:0;bottom:0;height:4px;width:var(--w);background:linear-gradient(90deg,#1479ff,#13cbd1);border-radius:0 99px 99px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.field{display:grid;gap:6px}.field label{font-size:11px;font-weight:800}.field input,.field select,.field textarea{width:100%;padding:10px 11px;border:1px solid #ccdce7;border-radius:10px;background:#fff;font:inherit;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:#65aae6;box-shadow:0 0 0 3px #eaf5ff}.field textarea{min-height:105px;resize:vertical}.field small{color:var(--muted);font-size:9px}.checkbox{display:flex!important;align-items:center;gap:8px}.checkbox input{width:auto}.form-actions{display:flex;gap:8px;margin-top:14px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}.data-table th,.data-table td{padding:10px 11px;border-bottom:1px solid #edf2f6;text-align:left;font-size:11px;vertical-align:top}.data-table th{background:#f7fafc;font-weight:800}.data-table tr:last-child td{border-bottom:0}.data-table tr:hover td{background:#fbfdff}.badge{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800}.badge.success{background:#e7f7ef;color:#147553}.badge.muted{background:#eef2f5;color:#6f8190}.actions{display:flex;gap:5px;flex-wrap:wrap}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 80% 15%,rgba(22,203,209,.3),transparent 28%),linear-gradient(135deg,#061f3d,#08738e)}.login-card{width:min(430px,100%);padding:28px;border-radius:24px;background:#fff;box-shadow:0 30px 70px rgba(0,0,0,.25)}.login-card h1{margin:0 0 5px}.login-card p{margin:0 0 18px;color:var(--muted)}.login-card .field{margin-bottom:12px}.login-card .button{width:100%;padding:12px}.health-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.health-item{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.health-item b{display:block}.health-item small{color:var(--muted)}.health-ok{color:#13865f}.health-warn{color:#c27a1b}
@media(max-width:1100px){.admin-two-col{grid-template-columns:1fr}.quick-action-grid{grid-template-columns:repeat(2,1fr)}.content-bars{grid-template-columns:1fr}}
@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto}.admin-sidebar nav{grid-template-columns:repeat(3,1fr)}.sidebar-bottom{margin-top:12px}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.admin-top{position:relative}.admin-hero{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.admin-sidebar nav{grid-template-columns:1fr 1fr}.admin-top{align-items:flex-start;gap:10px}.admin-content{padding:12px}.dashboard-grid,.form-grid,.health-grid,.quick-action-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.admin-hero{padding:20px}.admin-hero h2{font-size:22px}.admin-hero-actions{width:100%}.admin-hero-actions .button{flex:1}.metric{padding:14px}}

/* === Personnel Sync 1.2.0 === */
.sync-note{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding:16px 18px;border-radius:18px;background:linear-gradient(135deg,#eafff8,#edf7ff);border:1px solid #ccece3;box-shadow:0 9px 22px rgba(8,53,99,.04)}.sync-note b{display:block;color:#087b67;font-size:13px}.sync-note p{margin:3px 0 0;color:#668097;font-size:10px}.sync-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 27px;border-radius:22px;background:radial-gradient(circle at 78% 18%,rgba(70,255,219,.26),transparent 30%),linear-gradient(135deg,#062d5d,#087399 64%,#078d86);color:#fff;box-shadow:0 20px 42px rgba(6,62,113,.14)}.sync-hero small{color:#92fff0;font-size:9px;font-weight:900;letter-spacing:.13em}.sync-hero h2{margin:5px 0 6px;font-size:26px}.sync-hero p{max-width:760px;margin:0;color:#d7edf4;font-size:11px;line-height:1.7}.sync-health{display:grid;place-items:center;min-width:150px;padding:16px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(255,255,255,.1);text-align:center}.sync-health>span{width:13px;height:13px;border-radius:50%;background:#ffb348;box-shadow:0 0 0 6px rgba(255,179,72,.14)}.sync-health.ok>span{background:#41e39f;box-shadow:0 0 0 6px rgba(65,227,159,.14)}.sync-health.cached>span{background:#54c9ff;box-shadow:0 0 0 6px rgba(84,201,255,.14)}.sync-health b{margin-top:9px;font-size:13px}.sync-health small{margin-top:2px;color:#c7e6ef;font-size:8px}.sync-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.sync-summary-grid article{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(8,53,99,.04)}.sync-summary-grid i{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:linear-gradient(135deg,#eaf5ff,#e5faf4);font-style:normal;font-size:19px}.sync-summary-grid strong,.sync-summary-grid span{display:block}.sync-summary-grid strong{font-size:14px;color:#0b6e9e}.sync-summary-grid span{margin-top:3px;color:#7c91a5;font-size:9px}.sync-info-table{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sync-info-table>div{padding:12px 13px;border:1px solid #e2ecf3;border-radius:13px;background:#fbfdff}.sync-info-table b,.sync-info-table span{display:block}.sync-info-table b{color:#70879b;font-size:9px}.sync-info-table span{margin-top:4px;font-size:11px;font-weight:700;color:#244c68;word-break:break-word}.sync-actions{display:flex;gap:8px;align-items:center;margin-top:12px}.sync-actions form{margin:0}.status-pill-warn{background:#fff5df;color:#a86f14}.status-pill-warn i{background:#efa630;box-shadow:0 0 0 4px #fff0cf}.sync-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.sync-preview-grid article{position:relative;overflow:hidden;border:1px solid #e1ebf3;border-radius:16px;background:#fff}.sync-preview-photo{height:180px;background:linear-gradient(135deg,#eef7ff,#e6faf4)}.sync-preview-photo img,.sync-preview-photo .image-placeholder{width:100%;height:100%;object-fit:cover;object-position:top}.sync-preview-grid article>div:nth-child(2){padding:11px}.sync-preview-grid b,.sync-preview-grid small,.sync-preview-grid em{display:block}.sync-preview-grid b{font-size:11px}.sync-preview-grid small{margin-top:3px;color:#758ba1;font-size:9px}.sync-preview-grid em{margin-top:6px;color:#0a8d83;font-size:8px;font-style:normal}.sync-preview-grid article>span{position:absolute;right:8px;top:8px;padding:4px 7px;border-radius:999px;background:#083e6d;color:#a6f4ff;font-size:7px;font-weight:900}.field.checkbox span b,.field.checkbox span small{display:block}.field.checkbox span small{margin-top:2px}
@media(max-width:1100px){.sync-summary-grid,.sync-preview-grid,.sync-info-table{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.sync-hero,.sync-note{align-items:flex-start;flex-direction:column}.sync-health{width:100%}.sync-summary-grid,.sync-preview-grid,.sync-info-table{grid-template-columns:1fr}.sync-actions{align-items:stretch;flex-direction:column}.sync-actions a,.sync-actions form,.sync-actions button{width:100%}}

/* === Achievement Portfolio Admin 1.3.0 === */
.portfolio-admin-hero{background:radial-gradient(circle at 80% 18%,rgba(255,220,77,.2),transparent 27%),linear-gradient(135deg,#06315e,#087d8d 62%,#0b907d)}.portfolio-admin-metrics .metric:nth-child(2) i{background:#fff4dc}.portfolio-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.portfolio-admin-grid>article{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:13px;border:1px solid #e1ebf3;border-radius:16px;background:linear-gradient(180deg,#fff,#fbfdff)}.portfolio-admin-photo{position:relative;width:90px;height:110px;border-radius:14px;overflow:hidden;background:#edf6ff}.portfolio-admin-photo img,.portfolio-admin-photo .image-placeholder{width:100%;height:100%;object-fit:cover;object-position:top}.portfolio-admin-photo>span{position:absolute;right:5px;top:5px;padding:3px 5px;border-radius:999px;background:#073b66;color:#9ef3ee;font-size:6px;font-weight:900}.portfolio-admin-info h3{margin:0;font-size:12px}.portfolio-admin-info>p{margin:3px 0 8px;color:#73899e;font-size:9px}.portfolio-mini-stats{display:flex;gap:5px;flex-wrap:wrap}.portfolio-mini-stats b{padding:4px 6px;border-radius:999px;background:#edf7ff;color:#266989;font-size:8px}.portfolio-admin-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.portfolio-tip{display:block;margin-top:7px;color:#a2761c;font-size:8px;line-height:1.45}.portfolio-how-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.portfolio-how-grid article{padding:14px;border:1px solid #e4edf4;border-radius:14px;background:#fbfdff}.portfolio-how-grid i{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,#157dff,#15c5c4);color:#fff;font-style:normal;font-weight:900;font-size:10px}.portfolio-how-grid b{display:block;margin-top:8px;font-size:11px}.portfolio-how-grid p{margin:4px 0 0;color:#7d91a4;font-size:9px;line-height:1.5}
@media(max-width:1200px){.portfolio-admin-grid{grid-template-columns:repeat(2,1fr)}.portfolio-how-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.portfolio-admin-grid,.portfolio-how-grid{grid-template-columns:1fr}}

/* Subject Head Spotlight 1.3.1 */
.subject-head-setting select{background-image:linear-gradient(180deg,#fff,#fbfdff)}
