*{box-sizing:border-box}
:root{--navy:#123f66;--blue:#1769aa;--blue-soft:#eaf4ff;--line:#dce8f2;--text:#173b60;--muted:#6c8297;--bg:#f4f8fc}
body{margin:0;font-family:Sarabun,sans-serif;color:var(--text);background:var(--bg)}
a{color:inherit;text-decoration:none}
.admin-layout{display:flex;min-height:100vh}

/* ===== Sidebar ===== */
.sidebar{width:270px;background:#fff;color:var(--text);padding:20px 16px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;border-right:1px solid var(--line);box-shadow:4px 0 18px rgba(25,72,110,.05);z-index:10}
.admin-brand{display:flex;align-items:center;gap:12px;color:var(--navy);padding:8px 10px 22px;border-bottom:1px solid #edf2f6;margin-bottom:18px}
.admin-brand>span{width:46px;height:46px;border-radius:14px;background:var(--blue-soft);display:grid;place-items:center;font-size:25px}
.admin-brand b,.admin-brand small{display:block}
.admin-brand b{font:600 18px Kanit}
.admin-brand small{font-size:10px;color:#6e8497;letter-spacing:1px;margin-top:2px}
.sidebar nav{display:grid;gap:5px}
.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:11px;color:#365773;font:400 15px Kanit;transition:.18s ease}
.sidebar nav a:hover{background:#f0f6fb;color:var(--blue);transform:translateX(2px)}
.sidebar nav a.active{background:#e8f3ff;color:#1265a2;font-weight:600;box-shadow:inset 3px 0 0 #1771b8}
.menu-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:#f1f6fa;color:#52718c;font-size:15px;flex:none}
.sidebar nav a.active .menu-icon{background:#d4eaff;color:#1265a2}
.sidebar form{margin-top:auto;padding-top:18px;border-top:1px solid #edf2f6}
.sidebar button{width:100%;padding:11px 14px;border:1px solid #f1ccd2;background:#fff5f6;color:#c43d51;border-radius:10px;font:500 14px Kanit;cursor:pointer}
.sidebar button:hover{background:#ffecef}

/* ===== Main ===== */
.admin-main{margin-left:270px;width:calc(100% - 270px);padding:28px 34px 40px}
.admin-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}
.admin-top h1{font:600 30px Kanit;margin:2px 0;color:var(--navy)}
.eyebrow{font-size:11px;letter-spacing:1.3px;color:#0b8c83;font-weight:700}
.user-pill{background:#fff;border:1px solid var(--line);padding:9px 15px;border-radius:22px;color:#365773;box-shadow:0 3px 12px rgba(25,72,110,.04)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 5px 18px rgba(29,82,112,.08);transition:.18s ease}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(29,82,112,.12)}
.stat-card span,.stat-card b{display:block}
.stat-card span{color:#60788e;font:400 16px Kanit}
.stat-card b{font:600 38px Kanit;margin-top:5px;color:#1263a0}
.admin-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:18px;overflow:auto;box-shadow:0 4px 14px rgba(29,82,112,.04)}
.admin-panel h2{font:500 21px Kanit;margin-top:0}
.panel-head{display:flex;justify-content:space-between;align-items:center}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.form-grid label{font-weight:600}.form-grid input,.form-grid textarea,.form-grid select{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid #c9d8e5;border-radius:9px;font:inherit;background:#fff}
.form-grid .full{grid-column:1/-1}
.primary-btn,.login-btn{background:#1263a0;color:#fff;border:0;border-radius:9px;padding:11px 18px;font:500 15px Kanit;cursor:pointer}.primary-btn:hover,.login-btn:hover{background:#0d568d}
.danger{background:#fff0f0;color:#bd3d3d;border:1px solid #f1caca;padding:6px 10px;border-radius:7px;cursor:pointer}.danger:hover{background:#ffe4e4}
.badge{background:#e4f5f1;color:#117c6e;padding:4px 9px;border-radius:20px}
.error{background:#fff0f0;color:#a53636;padding:10px;border-radius:8px;margin:15px 0}
table{width:100%;border-collapse:collapse;min-width:700px}th,td{padding:14px;border-bottom:1px solid #e8eef3;text-align:left}th{background:#f1f7fb;font-family:Kanit}

/* ===== Login ===== */
.login-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#e5f4ff,#f5fffc)}
.login-card{width:min(420px,92%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:38px;box-shadow:0 25px 60px rgba(23,77,115,.12);text-align:center}
.login-logo{font-size:60px}.login-card h1{font:600 28px Kanit;margin:5px 0}.login-card p{color:#71859a}.login-card form{text-align:left;display:grid;gap:14px;margin-top:20px}.login-card label{font-weight:600}.login-card input{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid #c9d8e5;border-radius:9px}.login-btn{width:100%;padding:12px}.login-card small{display:block;color:#8295a5;margin-top:16px}.back{display:block;margin-top:18px;color:#1263a0}

@media(max-width:900px){
 .sidebar{position:static;width:100%;min-height:auto;border-right:0;border-bottom:1px solid var(--line);box-shadow:none}
 .admin-layout{display:block}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar form{margin-top:15px}.admin-main{margin:0;width:100%;padding:20px}.cards{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:550px){.form-grid,.cards{grid-template-columns:1fr}.admin-top{align-items:flex-start;gap:10px;flex-direction:column}.sidebar nav{grid-template-columns:1fr}.admin-main{padding:16px}}

/* ===== News Management ===== */
.toolbar-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.page-section-title{font:600 23px Kanit;margin:0;color:var(--navy)}.page-section-subtitle{margin:3px 0 0;color:var(--muted)}
.filter-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px;margin-bottom:16px}.filter-form{display:flex;align-items:center;gap:10px}.filter-search{display:flex;align-items:center;gap:8px;flex:1;border:1px solid #cbdbe8;border-radius:9px;padding:0 12px;background:#fff}.filter-search span{font-size:20px;color:#6b879d}.filter-search input{border:0;outline:0;width:100%;padding:10px 0;font:inherit}.filter-form select{border:1px solid #cbdbe8;border-radius:9px;padding:10px 12px;background:#fff;color:var(--text);font:inherit}.result-count{font-size:13px;color:var(--muted);white-space:nowrap;margin-left:auto}.outline-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 13px;border:1px solid #cbdbe8;border-radius:9px;background:#fff;color:#235779;font:500 13px Kanit}.outline-btn:hover{background:#f2f8fc;color:var(--blue)}.news-table-panel{padding:18px}.news-table-panel .panel-head{margin-bottom:12px}.news-table-panel .panel-head h2{margin:0}.news-table-panel .panel-head small{color:var(--muted)}.table-wrap{overflow:auto}.news-admin-table{min-width:1050px}.news-admin-table th{font-size:13px;color:#557189}.news-admin-table td{vertical-align:middle}.news-thumb-small{width:58px;height:48px;border-radius:8px;background:#eaf4fc;display:grid;place-items:center;overflow:hidden;font-size:22px}.news-thumb-small img{width:100%;height:100%;object-fit:cover}.news-title-cell{display:flex;align-items:center;gap:7px;flex-wrap:wrap;max-width:380px}.news-title-cell strong{font:500 15px Kanit;color:#1c4569}.pin-badge{font-size:11px;padding:3px 7px;border-radius:12px;background:#fff5dc;color:#a06c00}.category-badge{font-size:11px;padding:4px 8px;border-radius:12px;background:#eef5fa;color:#54738b;white-space:nowrap}.status-badge{font-size:12px;padding:5px 9px;border-radius:14px;white-space:nowrap}.status-badge.published{background:#e5f7ef;color:#16815f}.status-badge.draft{background:#fff2df;color:#a86a09}.action-buttons{display:flex;align-items:center;gap:6px}.action-buttons form{margin:0}.edit-btn,.delete-btn{font:500 12px Kanit;padding:7px 9px;border-radius:7px;white-space:nowrap}.edit-btn{border:1px solid #cce0ef;background:#f3f9fe;color:#1263a0}.delete-btn{border:1px solid #f1ccd2;background:#fff5f6;color:#c43d51;cursor:pointer}.empty-filter{text-align:center;padding:35px;color:var(--muted)}
.form-page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.form-page-head h2{font:600 29px Kanit;margin:5px 0 2px;color:var(--navy)}.form-page-head p{margin:0;color:var(--muted)}.back-link{display:block;color:var(--blue);font-size:13px;margin-bottom:10px}.news-editor{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.editor-main{min-width:0}.editor-main .admin-panel{margin-bottom:18px}.field-label{display:block;font-weight:600;color:#31536e;margin-bottom:18px}.field-label>span{color:#d74758}.large-input{width:100%;margin-top:7px;padding:14px 15px;border:1px solid #c8d9e7;border-radius:10px;font:500 18px Kanit;color:var(--text);outline:0}.large-input:focus,.content-editor:focus,.field-label select:focus,.field-label input[type=date]:focus{border-color:#5b9bc7;box-shadow:0 0 0 3px #dceefa}.content-editor{width:100%;margin-top:7px;padding:14px 15px;border:1px solid #c8d9e7;border-radius:10px;font:16px/1.8 Sarabun;color:var(--text);resize:vertical;outline:0;min-height:350px}.field-help{display:block;color:#7a91a3;font-size:12px;margin-top:6px;font-weight:400}.image-upload-box{height:250px;border:1px dashed #b9cede;border-radius:12px;background:#f7fbfe;display:grid;place-items:center;overflow:hidden}.image-upload-box img{width:100%;height:100%;object-fit:cover}.upload-placeholder{text-align:center;color:#668298}.upload-placeholder b{display:block;font-size:45px;margin-bottom:5px}.upload-placeholder strong,.upload-placeholder small{display:block}.file-picker{display:block;margin-top:10px;position:relative}.file-picker span{display:block;text-align:center;padding:10px;border-radius:9px;border:1px solid #c9dce9;background:#fff;color:#1263a0;font:500 14px Kanit;cursor:pointer}.file-picker input{position:absolute;width:1px;height:1px;opacity:0}.sticky-panel{position:sticky;top:20px}.editor-side .field-label select,.editor-side .field-label input[type=date]{display:block;width:100%;margin-top:7px;padding:10px 12px;border:1px solid #c9d8e5;border-radius:9px;background:#fff;font:inherit;color:var(--text);outline:0}.check-row{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:10px;background:#f5f9fc;margin:5px 0 18px;cursor:pointer}.check-row input{margin-top:4px;accent-color:#1769aa}.check-row span,.check-row b,.check-row small{display:block}.check-row b{font:500 14px Kanit}.check-row small{font-size:12px;color:var(--muted);margin-top:2px}.save-news-btn{width:100%;padding:12px}.cancel-btn{display:block;text-align:center;padding:9px;margin-top:7px;color:#6a8193;font:500 14px Kanit}.cancel-btn:hover{color:#1263a0}.info-note{background:#f0f8fd;border:1px solid #d9eaf5;border-radius:10px;padding:12px;color:#5b7489;font-size:13px;line-height:1.7}
@media(max-width:900px){.news-editor{grid-template-columns:1fr}.sticky-panel{position:static}.filter-form{flex-wrap:wrap}.filter-search{min-width:100%}.result-count{margin-left:0}.toolbar-row,.form-page-head{align-items:flex-start;flex-direction:column}.toolbar-row .primary-btn,.form-page-head .outline-btn{width:100%}}
@media(max-width:550px){.filter-form select{width:100%}.filter-panel{padding:10px}.page-section-title{font-size:20px}.form-page-head h2{font-size:25px}.admin-panel{padding:16px}}

/* ===== Announcement + Procurement ===== */
.page-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px}.page-head-row h2{margin:4px 0 2px}.page-section-title{font:600 26px Kanit;color:var(--navy)}.page-section-subtitle{margin:0;color:var(--muted);font-size:15px}.mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.mini-stats>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 17px;min-width:0}.mini-stats span,.mini-stats b{display:block}.mini-stats span{color:var(--muted);font:400 13px Kanit}.mini-stats b{color:var(--blue);font:600 28px Kanit;line-height:1.15;margin-top:3px}.filter-panel{overflow:visible}.announcement-filter,.procurement-filter{display:grid;grid-template-columns:minmax(260px,1fr) 180px 200px auto;align-items:center}.announcement-filter .filter-search,.procurement-filter .filter-search{min-width:0}.announcement-no{display:block;color:#8195a6;font-size:12px;margin-top:4px}.announcement-admin-table td{vertical-align:middle}.clean-form{overflow:visible}.clean-form h3{font:500 20px Kanit;color:var(--navy);margin:0 0 16px;padding-bottom:9px;border-bottom:1px solid #e6edf3}.clean-form .form-grid{row-gap:18px}.clean-form label{display:block;font-weight:600;color:#31536e;min-width:0}.clean-form label>input,.clean-form label>textarea,.clean-form label>select{font-family:Sarabun,sans-serif;font-weight:400}.clean-form .required{color:#d64b5a;margin-left:4px}.clean-form textarea{line-height:1.65;resize:vertical;min-height:130px}.field-help{display:block!important;color:#7a91a3!important;font-size:12px!important;margin-top:6px!important;font-weight:400!important;line-height:1.5}.form-options{display:flex;gap:14px;align-items:stretch;margin-top:20px}.form-options .check-row{flex:1;margin:0}.status-choice{width:220px;display:flex;flex-direction:column;gap:6px;font-weight:600;color:#31536e}.status-choice select{width:100%;padding:10px 12px;border:1px solid #c9d8e5;border-radius:9px;background:#fff;font:inherit}.file-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.file-box{min-width:0;border:1px dashed #b9cede;border-radius:12px;padding:15px;background:#f8fbfd}.file-box label{display:block}.file-box span{display:block;line-height:1.45}.file-box input[type=file]{display:block;width:100%;max-width:100%;margin-top:11px;font:13px Sarabun}.file-box small{display:block;color:#7b91a2;font-size:12px;margin-top:7px;line-height:1.45}.file-field input[type=file]{display:block;width:100%;padding:10px;border:1px dashed #b9cede;border-radius:9px;background:#f8fbfd;margin-top:7px}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;border-top:1px solid #e7eef3;margin-top:24px;padding-top:18px}.save-news-btn{min-width:140px}.procurement-panel{overflow:visible}.proc-list{display:grid;gap:10px}.proc-row{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:17px 18px;border:1px solid #e1eaf1;border-radius:13px;background:#fff}.proc-main{min-width:0;flex:1}.proc-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.proc-code{display:inline-block;font-size:12px;color:#71869a;background:#f2f7fb;padding:4px 8px;border-radius:6px}.proc-main h3{font:500 18px/1.45 Kanit;margin:7px 0 5px;color:#1c4569}.proc-main p{display:flex;gap:18px;flex-wrap:wrap;margin:0;color:#73889b;font-size:13px}.proc-main p span{white-space:nowrap}.proc-actions{display:flex;align-items:center;gap:7px;flex:none}.proc-actions form{margin:0}.edit-btn,.delete-btn{font:500 12px Kanit;padding:8px 10px;border-radius:7px;white-space:nowrap;cursor:pointer}.edit-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cce0ef;background:#f3f9fe;color:#1263a0}.delete-btn{border:1px solid #f1ccd2;background:#fff5f6;color:#c43d51}.proc-row[hidden]{display:none!important}.procurement-form{padding:24px}.procurement-form h3:not(:first-child){margin-top:28px}.proc-detail-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px}.detail-status{display:flex;align-items:center;gap:10px;margin-bottom:12px}.detail-table{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e1eaf2;border-radius:12px;overflow:hidden;margin-top:20px}.detail-table div{padding:13px;border-bottom:1px solid #e8eef3;min-width:0}.detail-table span,.detail-table b{display:block}.detail-table span{font-size:13px;color:#7b8fa0}.doc-links{display:grid;gap:9px}.doc-links a{display:flex;align-items:center;gap:10px;padding:12px;background:#f5f9fc;border-radius:10px;color:#1263a0}.doc-links a span{flex:1}.doc-links a b{font-size:13px}.muted{color:#8a9aaa}.timeline{margin-top:18px}.step{display:flex;gap:13px;position:relative;padding:12px 0}.step i{width:32px;height:32px;border-radius:50%;background:#e9f0f5;color:#6f8495;display:grid;place-items:center;font-style:normal;font-weight:700;z-index:1;flex:none}.step.done i{background:#dff4ee;color:#0b8878}.step:not(:last-child):after{content:"";position:absolute;left:15px;top:44px;width:2px;height:30px;background:#dbe6ed}.step b,.step small{display:block}.step small{color:#8193a3;margin-top:2px}
@media(max-width:900px){.page-head-row{align-items:flex-start;flex-direction:column}.page-head-row .primary-btn{width:100%}.mini-stats{grid-template-columns:repeat(2,1fr)}.announcement-filter,.procurement-filter{grid-template-columns:1fr}.proc-row{align-items:flex-start;flex-direction:column}.proc-actions{width:100%}.proc-detail-grid{grid-template-columns:1fr}.file-grid{grid-template-columns:1fr}.form-options{flex-direction:column}.status-choice{width:100%}}
@media(max-width:550px){.mini-stats{grid-template-columns:1fr 1fr}.mini-stats>div{padding:12px}.mini-stats b{font-size:24px}.form-actions{flex-direction:column-reverse}.form-actions>*{width:100%;text-align:center}.detail-table{grid-template-columns:1fr}}

/* Document management */
.documents-filter{grid-template-columns:2fr 1.15fr .8fr .8fr auto}.document-admin-list{display:grid;gap:10px}.document-admin-row{display:flex;gap:14px;align-items:center;padding:16px;border:1px solid #e1eaf1;border-radius:13px;background:#fff}.document-admin-icon{width:46px;height:46px;flex:0 0 46px;border-radius:12px;display:grid;place-items:center;background:#fff4d7;color:#a16c00;font-size:22px}.document-admin-main{min-width:0;flex:1}.document-admin-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.document-admin-main h3{font:500 18px Kanit;margin:7px 0 4px;color:#123f68}.document-admin-main p{display:flex;gap:14px;flex-wrap:wrap;margin:0;color:#7b8e9e;font-size:13px}.file-name{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{padding:4px 8px;border-radius:7px;font-size:12px;background:#eaf7ef;color:#18784b}.status-badge.draft{background:#f1f3f5;color:#687784}.document-file-box{border:1px dashed #b9cfdd;border-radius:12px;padding:15px;background:#f9fcfe}.document-file-box span,.document-file-box small{display:block}.document-file-box input{margin-top:10px;width:100%}.document-file-box small{color:#7d8e9c;margin-top:5px;font-weight:400}.check-row{display:flex;align-items:center;gap:8px!important;flex-direction:row!important}.check-row input{width:auto!important}.empty-state{padding:35px;text-align:center;color:#7d8e9c;background:#f8fbfd;border-radius:12px}@media(max-width:900px){.documents-filter{grid-template-columns:1fr}.document-admin-row{align-items:flex-start;flex-wrap:wrap}.document-admin-main{width:calc(100% - 60px)}.document-admin-row .proc-actions{width:100%;padding-left:60px}}

/* Procurement management — keep the same visual rhythm as document management */
.procurement-doc-filter{grid-template-columns:minmax(260px,1fr) 1.15fr .8fr .9fr auto}.procurement-doc-filter input,.procurement-doc-filter select{min-width:0}.procurement-doc-filter .outline-btn{white-space:nowrap;height:42px}.procurement-stats{margin-bottom:18px}

/* ===== Consistent management pages: News / Announcements / Procurement / Documents ===== */
.procurement-filter,.documents-filter{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px 180px auto;align-items:center;gap:10px}.procurement-filter .filter-search,.documents-filter .filter-search{min-width:0}.procurement-admin-table,.document-admin-table{min-width:1080px}.procurement-admin-table td,.document-admin-table td{vertical-align:middle}.procurement-admin-table .news-title-cell,.document-admin-table .news-title-cell{max-width:430px}.procurement-admin-table .announcement-no,.document-admin-table .announcement-no{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:410px}.procurement-admin-table .action-buttons,.document-admin-table .action-buttons{justify-content:flex-start}.procurement-admin-table .outline-btn,.document-admin-table .outline-btn{font-size:12px;padding:7px 9px}.documents-filter{grid-template-columns:minmax(260px,1fr) 210px 170px 170px auto}
@media(max-width:1100px){.procurement-filter,.documents-filter{grid-template-columns:minmax(220px,1fr) 160px 150px 160px auto}.procurement-admin-table,.document-admin-table{min-width:1000px}}
@media(max-width:900px){.procurement-filter,.documents-filter{grid-template-columns:1fr}.procurement-filter .outline-btn,.documents-filter .outline-btn{width:100%}}

/* ===== Personnel management ===== */
.personnel-filter{display:grid;grid-template-columns:minmax(260px,1fr) 190px 210px 160px auto;align-items:center;gap:10px}.personnel-stats{margin-bottom:18px}.personnel-admin-table{min-width:1180px}.personnel-admin-table td{vertical-align:middle}.personnel-thumb{width:52px;height:58px;border-radius:8px;overflow:hidden;background:#eef5f9;display:grid;place-items:center;color:#8aa0b0;font-size:22px}.personnel-thumb img{width:100%;height:100%;object-fit:cover}.personnel-name-cell strong{display:block;color:#123f68;font:500 15px Kanit;line-height:1.35}.personnel-name-cell small{display:block;color:#8a9baa;font-size:11px;margin-top:3px}.personnel-form{overflow:visible}.personnel-form-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;align-items:start}.personnel-photo-editor{display:grid;gap:12px}.personnel-preview{width:210px;height:250px;border-radius:12px;background:#eef5f9;border:1px solid #d7e5ee;display:grid;place-items:center;color:#8aa0b0;font-size:48px;overflow:hidden}.personnel-preview img{width:100%;height:100%;object-fit:cover}.personnel-fields{min-width:0}.personnel-fields .form-grid{grid-template-columns:1fr 1fr}.personnel-form .info-note{margin-top:22px}.personnel-form .document-file-box{font-weight:600;color:#31536e}.personnel-form .document-file-box input[type=file]{font-weight:400}@media(max-width:1000px){.personnel-filter{grid-template-columns:1fr 1fr}.personnel-form-grid{grid-template-columns:190px minmax(0,1fr)}.personnel-preview{width:175px;height:215px}}@media(max-width:700px){.personnel-filter{grid-template-columns:1fr}.personnel-form-grid{grid-template-columns:1fr}.personnel-photo-editor{max-width:280px}.personnel-preview{width:210px;height:250px}.personnel-fields .form-grid{grid-template-columns:1fr}.personnel-admin-table{min-width:1050px}}

/* Personnel: five summary groups */
.personnel-stats{grid-template-columns:repeat(5,1fr)}
@media(max-width:1100px){.personnel-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.personnel-stats{grid-template-columns:repeat(2,1fr)}}
/* ===== Homepage Management ===== */
.homepage-intro{background:linear-gradient(135deg,#fff,#f4faff)}.home-admin-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;align-items:center}.home-admin-grid p{margin:7px 0 0;color:var(--muted);line-height:1.7}.home-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.home-checks span{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#41627c;font-size:13px}.hero-admin-list{display:grid;gap:14px}.hero-admin-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;padding:15px;border:1px solid #dfe9f1;border-radius:14px;background:#fff}.hero-preview{height:145px;border-radius:11px;background:#edf6fc;display:grid;place-items:center;overflow:hidden;color:#7890a2}.hero-preview img{width:100%;height:100%;object-fit:cover}.hero-preview span{font-size:42px}.hero-preview small{display:block}.hero-fields{min-width:0}.hero-fields label,.quick-admin-row label{display:block;font-weight:600;color:#31536e}.hero-fields input,.quick-admin-row input{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #c9d8e5;border-radius:8px;font:inherit;background:#fff}.compact{gap:10px;margin:10px 0}.compact label{font-size:13px}.compact .check-row{display:flex;align-items:center;gap:7px;padding-top:25px}.compact .check-row input{width:auto;margin:0}.add-box{background:#f8fbfd;border-style:dashed;margin:16px 0 0}.add-box h3{font:500 18px Kanit;margin:0 0 14px;color:var(--navy)}.add-box .form-grid{gap:12px}.add-box .form-grid label{font-weight:600}.add-box .form-grid h3{grid-column:1/-1}.quick-admin-list{display:grid;gap:9px}.quick-admin-row{display:grid;grid-template-columns:54px 1.1fr 1fr 1.2fr 90px 80px auto auto;gap:8px;align-items:end;padding:10px;border:1px solid #e0e9f0;border-radius:11px;background:#fff}.quick-icon-input input{text-align:center;font-size:20px}.quick-admin-row label{font-size:12px}.quick-admin-row .check-row{display:flex;align-items:center;gap:5px;padding-bottom:9px}.quick-admin-row .check-row input{width:auto;margin:0}.quick-admin-row button{height:38px}.admin-panel h3{color:var(--navy)}.form-grid h3{margin:5px 0 0}.form-grid .check-row{display:flex;align-items:center;gap:8px}.form-grid .check-row input{width:auto;margin:0}.form-grid .check-row{font-weight:600}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;border-top:1px solid #e7eef3;margin-top:12px;padding-top:14px}.form-actions.full{grid-column:1/-1}.delete-btn{font:500 12px Kanit;padding:8px 10px;border-radius:7px;white-space:nowrap;cursor:pointer}.field-help{font-size:12px;color:#7a91a3;font-weight:400;margin-top:5px}.quick-admin-row .edit-btn{height:38px;cursor:pointer}@media(max-width:1100px){.quick-admin-row{grid-template-columns:54px 1fr 1fr 1fr 80px 70px auto auto}.home-admin-grid{grid-template-columns:1fr}.hero-admin-card{grid-template-columns:180px 1fr}}@media(max-width:800px){.hero-admin-card{grid-template-columns:1fr}.hero-preview{height:190px}.quick-admin-row{grid-template-columns:54px 1fr 1fr}.quick-admin-row>*:nth-child(4){grid-column:2/-1}.quick-admin-row>*:nth-child(5){grid-column:2}.quick-admin-row>*:nth-child(6){grid-column:3}.quick-admin-row>*:nth-child(7){grid-column:2}.quick-admin-row>*:nth-child(8){grid-column:3}.home-checks{grid-template-columns:1fr 1fr}}@media(max-width:550px){.home-checks{grid-template-columns:1fr}.quick-admin-row{grid-template-columns:1fr}.quick-admin-row>*{grid-column:1!important}.quick-admin-row .quick-icon-input{width:70px}.quick-admin-row .check-row{padding-bottom:0}.form-actions{flex-direction:column}.form-actions>*{width:100%}}

.site-settings-box{padding:16px;border:1px solid #dfe9f1;border-radius:14px;background:#fbfdff;margin-bottom:16px}.site-logo-editor{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:center}.site-logo-preview{width:150px;height:110px;border:1px solid #d7e5ee;border-radius:12px;background:#fff;display:grid;place-items:center;overflow:hidden;color:#7890a2;font-size:36px}.site-logo-preview img{width:100%;height:100%;object-fit:contain;padding:10px}.site-logo-preview small{font-size:12px}.site-settings-box .site-logo-editor{grid-column:1/-1}.admin-brand-logo{width:38px;height:38px;border-radius:10px;background:#eef6fb;display:grid;place-items:center;overflow:hidden;flex:none}.admin-brand-logo img{width:100%;height:100%;object-fit:contain;padding:4px}@media(max-width:700px){.site-logo-editor{grid-template-columns:1fr}.site-logo-preview{width:150px;height:100px}}


/* News multiple-image editor */
.news-gallery-admin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:120px}.news-gallery-item{position:relative;display:block;border:1px solid #d8e5ed;border-radius:12px;overflow:hidden;background:#f7fbfe;cursor:pointer}.news-gallery-item img{width:100%;height:150px;display:block;object-fit:cover}.news-gallery-item>span{display:block;padding:8px;font-size:12px;color:#49677f;background:#fff}.news-gallery-item input{vertical-align:middle;margin-right:5px}.cover-badge{position:absolute;left:8px;top:8px;background:#1263a0;color:#fff;border-radius:7px;padding:4px 7px;font:500 11px Kanit}.new-image-preview{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px}.new-image-thumb{height:90px;border-radius:9px;overflow:hidden;border:1px solid #d8e5ed;background:#f7fbfe}.new-image-thumb img{width:100%;height:100%;object-fit:cover}@media(max-width:700px){.news-gallery-admin{grid-template-columns:repeat(2,minmax(0,1fr))}.new-image-preview{grid-template-columns:repeat(3,1fr)}}@media(max-width:480px){.news-gallery-admin{grid-template-columns:1fr}.new-image-preview{grid-template-columns:repeat(2,1fr)}}

/* ===== Organization content management ===== */
.organization-intro{background:linear-gradient(135deg,#fff,#f4faff)}
.organization-intro-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:center}.organization-intro p{margin:7px 0 0;color:var(--muted);line-height:1.75}.organization-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.organization-checks span{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#41627c;font-size:13px}.org-count{font:500 14px Kanit;color:#52718a;background:#eef6fb;border-radius:20px;padding:6px 11px}.organization-admin-list{display:grid;gap:16px}.organization-admin-card{border:1px solid #dce8f0;border-radius:15px;background:#fff;padding:17px}.organization-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;padding-bottom:12px;border-bottom:1px solid #e8eef3}.organization-card-head>div{display:flex;align-items:center;gap:10px;min-width:0}.organization-card-head strong{font:500 19px Kanit;color:var(--navy);overflow:hidden;text-overflow:ellipsis}.org-order{font:500 11px Kanit;color:#47708c;background:#edf6fb;padding:5px 8px;border-radius:7px;white-space:nowrap}.organization-form-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(150px,.5fr);gap:14px}.organization-form-grid label{display:block;font-weight:600;color:#31536e;min-width:0}.organization-form-grid label>input,.organization-form-grid label>textarea{display:block;width:100%;margin-top:6px;padding:10px 11px;border:1px solid #c9d8e5;border-radius:9px;background:#fff;font:400 14px Sarabun,sans-serif;box-sizing:border-box}.organization-form-grid textarea{line-height:1.7;resize:vertical;min-height:150px}.organization-form-grid .full{grid-column:1/-1}.organization-form-grid .org-active{display:flex;align-items:center;gap:8px;padding:10px 0}.organization-form-grid .org-active input{width:auto;margin:0}.organization-media-block{border:1px solid #e0eaf1;border-radius:12px;background:#f8fbfd;padding:14px}.media-block-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:11px}.media-block-title b{font:500 16px Kanit;color:var(--navy)}.media-block-title small{color:#7b90a0;font-size:12px}.organization-image-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:12px}.organization-image-item{position:relative!important;background:#fff;border:1px solid #d8e5ed;border-radius:10px;overflow:hidden;padding:0!important;font-weight:400!important}.organization-image-item img{display:block;width:100%;height:120px;object-fit:cover}.organization-image-item>span{display:flex;align-items:center;gap:5px;padding:7px 8px 2px;font-size:12px;color:#587288}.organization-image-item>span input{width:auto!important;margin:0!important}.organization-image-item small{display:block;padding:0 8px 7px;color:#8a9ba8;font-size:11px}.file-drop-label{display:block!important;border:1px dashed #b8cddd;border-radius:10px;padding:12px;background:#fff}.file-drop-label input[type=file]{display:block!important;border:0!important;padding:0!important;margin-top:8px!important;background:transparent!important}.media-empty{padding:15px;border:1px dashed #c7d7e3;border-radius:9px;text-align:center;color:#8296a5;background:#fff;font-size:13px;margin-bottom:10px}.organization-pdf-current{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px;border:1px solid #d8e5ed;border-radius:9px;background:#fff;margin-bottom:10px}.organization-pdf-current>span{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:#fff0f0;color:#c44b4b;font:600 11px Kanit}.organization-pdf-current strong,.organization-pdf-current small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.organization-pdf-current strong{font-size:13px}.organization-pdf-current small{color:#8396a5;font-size:11px;margin-top:2px}.organization-pdf-current a{color:#1263a0;font-size:12px;white-space:nowrap}.organization-pdf-current label{font-size:12px;white-space:nowrap;color:#687f91}.organization-pdf-current label input{width:auto;margin-right:4px}.organization-empty{text-align:center;padding:45px 20px;color:#7890a1;background:#f8fbfd;border-radius:12px}.organization-empty div{font-size:42px}.organization-empty h3{font:500 21px Kanit;color:var(--navy);margin:7px 0 2px}.organization-empty p{margin:0}.organization-add-box{margin-top:16px}.required{color:#d64b5a;margin-left:4px}.organization-add-box .organization-form-grid{margin-top:3px}
@media(max-width:900px){.organization-intro-grid{grid-template-columns:1fr}.organization-image-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.organization-pdf-current{grid-template-columns:48px minmax(0,1fr) auto}.organization-pdf-current label{grid-column:2/-1}}
@media(max-width:650px){.organization-form-grid{grid-template-columns:1fr}.organization-form-grid .full{grid-column:1}.organization-card-head{align-items:flex-start;flex-direction:column}.organization-checks{grid-template-columns:1fr}.organization-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.organization-pdf-current{grid-template-columns:42px 1fr}.organization-pdf-current a,.organization-pdf-current label{grid-column:2}.organization-pdf-current a{justify-self:start}}

/* ===== ITA Management ===== */
.ita-admin-intro{background:linear-gradient(135deg,#fff,#f2fbff)}
.ita-intro-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;align-items:center}
.ita-intro-grid>b,.ita-intro-grid strong{color:var(--navy)}
.ita-intro-grid p{margin:7px 0 0;color:var(--muted);line-height:1.75}
.ita-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ita-checks span{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#41627c;font-size:13px}
.ita-year-list{display:grid;gap:18px}
.ita-year-card{overflow:visible}
.ita-year-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-bottom:16px;border-bottom:1px solid #e7eef3}
.ita-year-title{display:flex;align-items:center;gap:14px;min-width:0}
.ita-year-title h2{font:600 24px Kanit;margin:0;color:var(--navy)}
.ita-year-title p{margin:2px 0 0;color:var(--muted);font-size:13px}
.ita-year-badge{display:grid;place-items:center;min-width:72px;height:58px;padding:0 12px;border-radius:14px;background:linear-gradient(135deg,#1263a0,#0b8c83);color:#fff;font:600 17px Kanit;box-shadow:0 8px 18px rgba(18,99,160,.15)}
.ita-edit-details{margin-top:15px;border:1px solid #e2ebf1;border-radius:12px;background:#fbfdff}
.ita-edit-details summary{cursor:pointer;list-style:none;padding:11px 14px;color:#49677f;font:500 14px Kanit;display:flex;justify-content:space-between}
.ita-edit-details summary::-webkit-details-marker,.ita-section-card>summary::-webkit-details-marker,.ita-indicator-card>summary::-webkit-details-marker{display:none}
.ita-edit-details summary span{transition:.18s}
.ita-edit-details[open] summary span{transform:rotate(180deg)}
.ita-year-edit-form{padding:0 14px 14px}
.ita-section-area{margin-top:20px}
.ita-area-head,.ita-indicator-head{display:flex;justify-content:space-between;align-items:end;margin:0 0 12px}
.ita-area-head h3,.ita-indicator-head h4{font:500 20px Kanit;color:var(--navy);margin:0}
.ita-area-head small,.ita-indicator-head small{color:var(--muted)}
.ita-sections{display:grid;gap:12px}
.ita-section-card{border:1px solid #dce8f1;border-radius:14px;background:#fff;overflow:hidden}
.ita-section-card>summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 16px;background:linear-gradient(135deg,#f8fcff,#f1f8fc);list-style:none}
.ita-section-summary{display:flex;align-items:center;gap:12px;min-width:0}
.ita-section-summary>div{min-width:0}
.ita-section-summary strong{display:block;color:#234d6e;font:500 17px Kanit}
.ita-section-summary small{display:block;color:#7b8e9d;margin-top:2px;white-space:normal}
.ita-code{min-width:48px;height:34px;padding:0 8px;border-radius:9px;background:#1263a0;color:#fff;display:grid;place-items:center;font:600 14px Kanit;flex:none}
.ita-code-light{background:#eaf4ff;color:#1263a0;border:1px solid #d6e9f7}
.ita-chevron{color:#6e8799;font-size:20px;transition:.18s;flex:none}
.ita-section-card[open]>summary .ita-chevron{transform:rotate(180deg)}
.ita-section-body{padding:16px}
.ita-section-edit{display:grid;grid-template-columns:120px minmax(220px,1fr) 110px 180px;gap:10px;align-items:end;padding-bottom:17px;border-bottom:1px solid #e8eef3}
.ita-section-edit label,.ita-indicator-edit label,.ita-add-indicator label,.ita-add-section label{font-weight:600;color:#31536e}
.ita-section-edit input,.ita-section-edit textarea,.ita-indicator-edit input,.ita-indicator-edit textarea,.ita-add-indicator input,.ita-add-indicator textarea,.ita-add-section input,.ita-add-section textarea{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #c9d8e5;border-radius:8px;font:inherit;background:#fff}
.ita-section-edit .check-row,.ita-indicator-edit .check-row,.ita-add-indicator .check-row,.ita-add-section .check-row{display:flex;align-items:center;gap:7px;padding-bottom:9px;font-weight:600}
.ita-section-edit .check-row input,.ita-indicator-edit .check-row input,.ita-add-indicator .check-row input,.ita-add-section .check-row input{width:auto;margin:0}
.ita-indicator-head{margin-top:17px}
.ita-indicators{display:grid;gap:8px}
.ita-indicator-card{border:1px solid #e0e9f0;border-radius:11px;background:#fbfdff;overflow:hidden}
.ita-indicator-card>summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;list-style:none}
.ita-indicator-summary{display:flex;align-items:center;gap:9px;min-width:0}
.ita-indicator-summary strong{font:500 15px Kanit;color:#31536e;overflow:hidden;text-overflow:ellipsis}
.ita-indicator-meta{display:flex;align-items:center;gap:8px;color:#7b8e9d;font-size:12px;white-space:nowrap}
.status-mini{padding:3px 7px;border-radius:12px}.status-mini.on{background:#e5f5f1;color:#117c6e}.status-mini.off{background:#f2f3f5;color:#7b858e}
.ita-indicator-edit{padding:14px;border-top:1px solid #e5edf2;background:#fff}
.ita-indicator-edit .form-grid{gap:11px}
.ita-file-box{border:1px dashed #cbdde8;border-radius:11px;padding:12px;background:#f8fbfd}
.ita-file-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;color:#4b687e;font-size:13px}
.ita-file-current b{color:var(--navy)}
.ita-file-current span{flex:1;color:#7a8e9e}
.ita-file-current a{color:#1263a0;font-weight:600}
.ita-file-current .check-row{padding:0!important}
.ita-add-indicator{margin:14px 0 0;padding:16px;background:#f8fbfd;border-style:dashed}
.ita-add-indicator h4{font:500 17px Kanit;margin:0 0 13px;color:var(--navy)}
.ita-add-section{margin:16px 0 0;padding:17px;background:#fbfdff;border-style:dashed}
.ita-add-section h3{font:500 18px Kanit;margin:0 0 13px;color:var(--navy)}
.ita-empty{padding:55px;text-align:center}.ita-empty>div{font-size:45px}.ita-empty h2{font:500 24px Kanit;margin:8px 0 3px;color:var(--navy)}.ita-empty p{color:var(--muted);margin:0}
.ita-empty-small{padding:18px;text-align:center;background:#f8fbfd;border-radius:10px;color:#8193a2;font-size:13px;margin-bottom:12px}
.required{color:#d64b4b;margin-left:3px}
@media(max-width:1000px){.ita-intro-grid{grid-template-columns:1fr}.ita-section-edit{grid-template-columns:110px 1fr 100px}.ita-section-edit .check-row{grid-column:2/-1}.ita-section-edit .full{grid-column:1/-1}}
@media(max-width:750px){.ita-year-head{align-items:flex-start;flex-direction:column}.ita-year-title{align-items:flex-start}.ita-section-edit{grid-template-columns:1fr 1fr}.ita-section-edit>*{grid-column:auto!important}.ita-section-edit .full{grid-column:1/-1!important}.ita-indicator-card>summary{align-items:flex-start;flex-direction:column}.ita-indicator-meta{width:100%;justify-content:flex-end}.ita-file-current span{flex-basis:100%}}
@media(max-width:550px){.ita-checks{grid-template-columns:1fr}.ita-year-title h2{font-size:20px}.ita-section-edit{grid-template-columns:1fr}.ita-section-edit>*{grid-column:1!important}.ita-section-edit .full{grid-column:1!important}.ita-intro-grid{gap:12px}.ita-section-body{padding:11px}.ita-indicator-summary strong{white-space:normal}.ita-file-current{align-items:flex-start;flex-direction:column}.ita-file-current span{flex-basis:auto}.ita-year-edit-form{padding-left:10px;padding-right:10px}}


/* Homepage special image preview */
.special-image-editor{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:18px;align-items:start}
.special-image-preview{min-height:220px;border:1px solid #d7e5ee;border-radius:12px;background:#f7fbfe;display:grid;place-items:center;overflow:hidden;color:#7890a2}
.special-image-preview img{display:block;width:100%;max-height:340px;object-fit:contain}
.popup-image-preview{background:#f1f5f7}
@media(max-width:700px){.special-image-editor{grid-template-columns:1fr}.special-image-preview{min-height:180px}}

/* ===== Phase 3.5 — Admin UI polish ===== */
:root{
  --admin-primary:#1263a0;
  --admin-primary-dark:#075b91;
  --admin-teal:#0b8d89;
  --admin-gold:#e7a13a;
  --admin-danger:#c43d51;
  --admin-surface:#fff;
  --admin-line:#dce8f1;
  --admin-shadow:0 10px 28px rgba(23,77,115,.08);
}

/* Sidebar brand */
.admin-brand{position:relative;overflow:hidden}
.admin-brand::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--admin-primary),var(--admin-teal),var(--admin-gold));border-radius:2px}
.admin-brand>span{box-shadow:0 5px 14px rgba(18,99,160,.08);border:1px solid #dbeaf4}
.admin-brand-logo img{width:100%;height:100%;object-fit:contain;border-radius:12px}

/* Navigation polish */
.sidebar nav a{position:relative;min-height:46px}
.sidebar nav a::after{content:"›";margin-left:auto;color:#9aabba;font-size:20px;line-height:1;transition:.18s ease}
.sidebar nav a:last-child::after{content:"↗";font-size:15px}
.sidebar nav a:hover::after{color:var(--admin-primary);transform:translateX(2px)}
.sidebar nav a.active::after{color:var(--admin-primary);font-weight:700}
.sidebar nav a.active{background:linear-gradient(90deg,#e7f3ff,#f2f9fe)}
.menu-icon{border:1px solid #e7eef3;transition:.18s ease}
.sidebar nav a:hover .menu-icon{border-color:#cfe3f0;transform:scale(1.04)}
.sidebar nav a.active .menu-icon{border-color:#c6e2f5;box-shadow:0 4px 10px rgba(18,99,160,.08)}

/* Logout — keep as a real POST form/button */
.sidebar form{margin-top:auto}
.sidebar form::before{content:"บัญชีผู้ดูแลระบบ";display:block;color:#8799a8;font:500 11px Kanit;margin:0 2px 8px;letter-spacing:.15px}
.sidebar form button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:12px;background:linear-gradient(180deg,#fff7f8,#fff1f3);box-shadow:0 5px 14px rgba(196,61,81,.05);transition:.18s ease}
.sidebar form button::before{content:"↪";display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#ffe1e6;color:var(--admin-danger);font-size:15px;font-weight:700}
.sidebar form button:hover{background:linear-gradient(180deg,#fff0f3,#ffe8ec);border-color:#efb8c1;color:#ad3044;transform:translateY(-1px);box-shadow:0 8px 18px rgba(196,61,81,.09)}
.sidebar form button:focus-visible{outline:3px solid rgba(18,99,160,.22);outline-offset:2px}

/* Top header */
.admin-top{position:relative;padding:16px 18px 18px;background:rgba(255,255,255,.72);border:1px solid rgba(220,232,241,.9);border-radius:18px;box-shadow:0 7px 22px rgba(23,77,115,.045);backdrop-filter:blur(8px)}
.admin-top h1{letter-spacing:.05px}
.eyebrow{display:inline-flex;align-items:center;gap:6px}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--admin-teal);box-shadow:0 0 0 4px rgba(11,141,137,.10)}
.user-pill{display:flex;align-items:center;gap:7px;white-space:nowrap}
.user-pill:first-letter{font-size:17px}

/* Cards and panels */
.stat-card,.admin-panel{box-shadow:var(--admin-shadow)}
.stat-card{position:relative;overflow:hidden}
.stat-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--admin-primary),var(--admin-teal));opacity:.9}
.stat-card:hover{transform:translateY(-3px)}
.admin-panel{transition:box-shadow .18s ease,border-color .18s ease}
.admin-panel:hover{border-color:#d3e3ee;box-shadow:0 13px 30px rgba(23,77,115,.075)}

/* Forms / controls */
.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus,
.login-card input:focus,.filter-search:focus-within,.filter-form select:focus{
  outline:3px solid rgba(18,99,160,.12);
  border-color:#75afd2;
}
.primary-btn,.login-btn{box-shadow:0 6px 14px rgba(18,99,160,.13);transition:.18s ease}
.primary-btn:hover,.login-btn:hover{transform:translateY(-1px);box-shadow:0 9px 18px rgba(18,99,160,.18)}
.outline-btn{transition:.18s ease}
.outline-btn:hover{transform:translateY(-1px)}
.danger{transition:.18s ease}.danger:hover{transform:translateY(-1px)}

/* Tables */
th{position:sticky;top:0;z-index:1}
tbody tr{transition:background .16s ease}
tbody tr:hover{background:#f8fbfd}

/* Mobile */
@media(max-width:900px){
  .sidebar{padding:14px 14px 12px}
  .admin-brand{padding-bottom:16px;margin-bottom:12px}
  .admin-main{padding:18px}
  .admin-top{padding:14px 15px}
  .sidebar form{padding-top:14px}
}
@media(max-width:550px){
  .admin-top{border-radius:14px}
  .admin-top h1{font-size:25px}
  .user-pill{width:100%;justify-content:center}
  .stat-card{padding:18px}
  .admin-panel{padding:17px}
  .sidebar form button{min-height:46px}
}

@media(prefers-reduced-motion:reduce){
  .sidebar nav a,.menu-icon,.sidebar form button,.stat-card,.admin-panel,.primary-btn,.login-btn,.outline-btn,.danger{transition:none!important}
}

/* ===== Phase 3.5 v2 — Sidebar balance + visible logout ===== */
.sidebar{
  padding:16px 14px 12px;
  overflow-y:auto;
  scrollbar-width:thin;
}
.admin-brand{
  padding:6px 10px 14px;
  margin-bottom:10px;
  flex:0 0 auto;
}
.admin-brand>span{
  width:42px;
  height:42px;
  flex:0 0 42px;
}
.sidebar nav{
  gap:2px;
  flex:0 0 auto;
}
.sidebar nav a{
  min-height:40px;
  padding:8px 10px;
  gap:10px;
}
.menu-icon{
  width:24px;
  height:24px;
}
.sidebar form{
  margin-top:10px;
  padding-top:10px;
  flex:0 0 auto;
}
.sidebar form::before{
  margin-bottom:5px;
}
.sidebar form button{
  min-height:40px;
  padding:8px 12px;
}

@media(max-width:900px){
  .sidebar{
    padding:14px 14px 12px;
    overflow:visible;
  }
  .admin-brand{
    padding-bottom:14px;
    margin-bottom:12px;
  }
  .sidebar nav{
    gap:4px;
  }
  .sidebar nav a{
    min-height:42px;
    padding:9px 11px;
  }
  .sidebar form{
    margin-top:12px;
    padding-top:12px;
  }
}

/* ===== Phase 3.6 v2 — Mobile Responsive (preserve Admin 3.5 v2) ===== */
@media(max-width:900px){
  .admin-layout{display:block;min-height:100vh}
  .sidebar{
    position:static;
    inset:auto;
    width:100%;
    min-height:auto;
    padding:14px 14px 12px;
    overflow:visible;
    border-right:0;
    border-bottom:1px solid var(--line);
    box-shadow:0 4px 16px rgba(25,72,110,.05);
  }
  .admin-brand{
    display:flex;
    width:100%;
    padding:6px 8px 14px;
    margin-bottom:12px;
  }
  .admin-brand>span,
  .admin-brand-logo{
    width:42px;
    height:42px;
    flex:0 0 42px;
  }
  .admin-brand-logo img{width:100%;height:100%;object-fit:contain;padding:3px}
  .admin-brand b{font-size:17px}
  .sidebar nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4px;
  }
  .sidebar nav a{
    min-height:42px;
    padding:9px 11px;
  }
  .sidebar form{
    display:block;
    width:100%;
    margin-top:12px;
    padding-top:12px;
  }
  .sidebar form button{
    display:flex;
    width:100%;
    min-height:44px;
  }
  .admin-main{
    margin:0;
    width:100%;
    padding:20px;
  }
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:550px){
  .sidebar{padding:12px 10px}
  .admin-brand{padding-left:4px;padding-right:4px;padding-bottom:12px}
  .admin-brand>span,
  .admin-brand-logo{width:40px;height:40px;flex-basis:40px}
  .admin-brand b{font-size:16px}
  .sidebar nav{grid-template-columns:1fr;gap:3px}
  .sidebar nav a{min-height:40px;padding:8px 10px;font-size:14px}
  .sidebar form{margin-top:10px;padding-top:10px}
  .sidebar form button{min-height:44px}
  .admin-main{padding:16px}
  .cards{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .admin-brand,
  .sidebar nav a,
  .sidebar form button,
  .stat-card,
  .admin-panel,
  .primary-btn,
  .login-btn,
  .outline-btn,
  .danger,
  .edit-btn,
  .delete-btn{transition:none!important}
}

/* ===== Phase 3.7 — Final Admin Polish ===== */
.admin-main{min-width:0;overflow-x:hidden}
.admin-top>div{min-width:0}
.admin-top h1,.page-section-title,.form-page-head h2{overflow-wrap:anywhere}
.admin-panel,.filter-panel,.cards,.mini-stats,.form-grid,.news-editor,.home-admin-grid,.proc-detail-grid,.organization-form-grid,.ita-intro-grid{min-width:0}
.admin-panel a,.admin-panel button,.admin-panel label,.admin-panel td,.admin-panel th{overflow-wrap:anywhere}
.admin-panel .table-wrap{max-width:100%;overscroll-behavior-x:contain;scrollbar-width:thin}
.sidebar{overscroll-behavior-y:contain}
.sidebar nav a,.sidebar form button,.primary-btn,.login-btn,.outline-btn,.edit-btn,.delete-btn,.danger{min-height:38px}
.sidebar nav a:focus-visible,.sidebar form button:focus-visible,.user-pill:focus-visible,.primary-btn:focus-visible,.login-btn:focus-visible,.outline-btn:focus-visible,.edit-btn:focus-visible,.delete-btn:focus-visible,.danger:focus-visible{outline:3px solid rgba(18,99,160,.22);outline-offset:2px}
.stat-card,.admin-panel,.filter-panel,.login-card{will-change:auto}
.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus,.filter-search:focus-within,.filter-form select:focus{border-color:#5b9bc7;box-shadow:0 0 0 3px #dceefa}
.form-grid input:disabled,.form-grid textarea:disabled,.form-grid select:disabled{background:#f4f7f9;color:#8797a4;cursor:not-allowed}
button:disabled,.primary-btn:disabled,.login-btn:disabled,.outline-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}
.sidebar form{flex-shrink:0}
.admin-brand{flex-shrink:0}
@media(max-width:900px){
  .admin-main{overflow-x:hidden}
  .admin-panel{overflow-x:auto}
  .admin-top{width:100%}
}
@media(max-width:550px){
  .admin-top h1{font-size:27px}
  .admin-panel{padding:16px}
  .filter-panel{padding:11px}
  .sidebar form button{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .sidebar nav a,.sidebar form button,.stat-card,.primary-btn,.login-btn,.outline-btn,.edit-btn,.delete-btn,.danger{transition:none!important}
}

/* ===== Phase 3.8 — Admin Action Toast ===== */
.admin-toast{position:fixed;top:22px;right:24px;z-index:99999;display:flex;align-items:center;gap:12px;width:min(430px,calc(100vw - 32px));padding:13px 14px 14px 13px;background:rgba(255,255,255,.96);border:1px solid #dce8f1;border-radius:16px;box-shadow:0 18px 45px rgba(21,65,99,.18),0 3px 12px rgba(21,65,99,.08);backdrop-filter:blur(12px);animation:adminToastIn .38s cubic-bezier(.2,.8,.2,1) both;overflow:hidden}
.admin-toast-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;font:700 20px/1 Kanit;background:#e8f7ef;color:#188451}
.admin-toast-error .admin-toast-icon{background:#fff0f2;color:#c53d52}.admin-toast-warning .admin-toast-icon{background:#fff6df;color:#a16c00}
.admin-toast-body{min-width:0;display:grid;gap:1px;flex:1}.admin-toast-body strong{font:600 15px/1.35 Kanit;color:#173f62}.admin-toast-body small{font:400 12.5px/1.45 Sarabun;color:#71879a;overflow-wrap:anywhere}
.admin-toast-close{width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:#7c91a2;font:500 20px/1 Sarabun;cursor:pointer;display:grid;place-items:center;transition:.18s ease}.admin-toast-close:hover{background:#f1f5f8;color:#294f70}
.admin-toast-progress{position:absolute;left:0;bottom:0;height:3px;width:100%;background:#1b9a68;transform-origin:left;animation:adminToastProgress 4.8s linear forwards}.admin-toast-error .admin-toast-progress{background:#d05262}.admin-toast-warning .admin-toast-progress{background:#d39a28}
.admin-toast.is-closing{animation:adminToastOut .22s ease forwards}
@keyframes adminToastIn{from{opacity:0;transform:translate3d(24px,-8px,0) scale(.97)}to{opacity:1;transform:none}}
@keyframes adminToastOut{to{opacity:0;transform:translate3d(18px,-5px,0) scale(.98)}}
@keyframes adminToastProgress{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media(max-width:550px){.admin-toast{top:12px;right:12px;width:calc(100vw - 24px);border-radius:14px;padding:12px}.admin-toast-icon{width:35px;height:35px;flex-basis:35px}}
@media(prefers-reduced-motion:reduce){.admin-toast{animation:none}.admin-toast-progress{animation:none}.admin-toast.is-closing{animation:none;opacity:0}}

/* ===== Phase 3.11 — Complaint Center ===== */
.admin-top-tools{display:flex;align-items:center;gap:10px}.admin-notify{position:relative;width:43px;height:43px;display:grid;place-items:center;border:1px solid #dce8f1;border-radius:13px;background:#fff;color:#1263a0;text-decoration:none;box-shadow:0 5px 14px rgba(23,77,115,.06);transition:.18s ease}.admin-notify:hover{transform:translateY(-1px);border-color:#bfdbea;box-shadow:0 9px 20px rgba(23,77,115,.09)}.admin-notify-icon{font-size:25px;line-height:1;transform:rotate(45deg);display:block}.admin-notify-count{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#c74355;color:#fff;font:700 10px/19px Kanit;text-align:center;border:2px solid #fff}.admin-notify.has-new{animation:complaintBellPulse 1.8s ease-in-out infinite}.admin-notify.has-new .admin-notify-icon{color:#c74355}.sidebar-count{margin-left:auto;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#edf5fa;color:#1263a0;font:600 10px/19px Kanit;text-align:center;font-style:normal}.sidebar nav a.active .sidebar-count{background:#dceefa}.complaint-stat b{color:#c74355!important}.complaint-admin-summary{display:flex;gap:8px;align-items:center}.complaint-admin-summary span{padding:8px 11px;border:1px solid #dce8f1;border-radius:10px;background:#fff;color:#728898;font-size:12px}.complaint-admin-summary b{font:700 15px Kanit;color:#1263a0}.complaint-admin-summary .fresh b{color:#c74355}.complaint-admin-toolbar{padding:10px}.complaint-filter-links{display:flex;gap:7px;flex-wrap:wrap}.complaint-filter-links a{padding:8px 11px;border-radius:9px;color:#647d8e;text-decoration:none;font:500 12px Kanit;background:#f4f8fa}.complaint-filter-links a:hover{background:#eaf4fa;color:#1263a0}.complaint-filter-links a.active{background:#e1f0f8;color:#1263a0}.complaint-admin-list{display:grid;gap:15px;margin-top:15px}.complaint-admin-card{padding:0;overflow:hidden;border-left:4px solid #b9ccd8}.complaint-admin-card.status-new{border-left-color:#c74355}.complaint-admin-card.status-received{border-left-color:#1263a0}.complaint-admin-card.status-in_progress{border-left-color:#e29a25}.complaint-admin-card.status-waiting{border-left-color:#8b70b7}.complaint-admin-card.status-resolved,.complaint-admin-card.status-closed{border-left-color:#1b9a68}.complaint-admin-head{display:flex;justify-content:space-between;gap:16px;padding:18px 19px 14px;border-bottom:1px solid #e4edf2}.complaint-code{display:inline-block;padding:4px 8px;border-radius:7px;background:#edf6fb;color:#1263a0;font:600 10px/1.2 Kanit;letter-spacing:.5px}.complaint-admin-head h2{font:600 19px Kanit;color:#214b68;margin:7px 0 5px;overflow-wrap:anywhere}.complaint-meta{display:flex;gap:12px;flex-wrap:wrap;color:#8798a4;font-size:11px}.complaint-status-badge{align-self:flex-start;white-space:nowrap;padding:7px 10px;border-radius:10px;font:600 11px Kanit;background:#edf3f6;color:#637b8a}.complaint-status-badge.status-new{background:#fff0f2;color:#bd3c50}.complaint-status-badge.status-received{background:#eaf4fb;color:#1263a0}.complaint-status-badge.status-in_progress{background:#fff5e2;color:#a16c00}.complaint-status-badge.status-waiting{background:#f2edfa;color:#75599f}.complaint-status-badge.status-resolved,.complaint-status-badge.status-closed{background:#e8f7ef;color:#188451}.complaint-admin-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:0}.complaint-admin-detail{padding:17px 19px}.complaint-admin-detail h3,.complaint-admin-update h3{font:600 16px Kanit;color:#31556d;margin:0 0 9px}.complaint-description{white-space:pre-wrap;color:#526f82;line-height:1.75;font-size:13px;margin:0}.complaint-contact{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #e8eef2;color:#6f8593;font-size:12px}.complaint-location{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;padding:10px 11px;background:#f4fafc;border:1px solid #dcecf3;border-radius:10px}.complaint-location b{display:block;color:#31566e;font-size:12px}.complaint-location span{display:block;color:#7a909e;font-size:11px;margin-top:2px}.complaint-location a{white-space:nowrap;color:#1263a0;font:600 11px Kanit;text-decoration:none}.complaint-attachments{margin-top:14px}.complaint-attachments>b{display:block;font:600 12px Kanit;color:#31566e;margin-bottom:7px}.complaint-attachments>div{display:flex;gap:8px;flex-wrap:wrap}.complaint-attachments a{width:82px;height:64px;border-radius:9px;overflow:hidden;border:1px solid #dce8ef;background:#f3f8fb}.complaint-attachments img{width:100%;height:100%;object-fit:cover}.complaint-admin-update{padding:17px 19px;background:#f8fbfd;border-left:1px solid #e4edf2;display:grid;align-content:start;gap:10px}.complaint-admin-update label{font:600 12px Kanit;color:#527086}.complaint-admin-update select,.complaint-admin-update textarea{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #cbdde8;border-radius:9px;background:#fff;color:#34576d;resize:vertical}.complaint-admin-update textarea{line-height:1.55}.updated-note{font-size:10px;color:#91a0aa}.complaint-close-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;background:#f0faf5;border-top:1px solid #d7eee2;color:#527967;font-size:11px}.complaint-close-bar form{margin:0}.complaint-close-bar .delete-btn{min-height:34px}.complaint-empty{padding:50px;text-align:center}.complaint-empty-icon{margin:auto;width:54px;height:54px;border-radius:16px;background:#e8f7ef;color:#188451;display:grid;place-items:center;font-size:25px;font-weight:700}.complaint-empty h2{font:600 23px Kanit;color:#31566e;margin:10px 0 3px}.complaint-empty p{margin:0;color:#8194a2;font-size:12px}
@keyframes complaintBellPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px) rotate(-4deg);box-shadow:0 10px 24px rgba(199,67,85,.16)}}
@media(max-width:850px){.admin-top-tools{gap:7px}.complaint-admin-grid{grid-template-columns:1fr}.complaint-admin-update{border-left:0;border-top:1px solid #e4edf2}.complaint-close-bar{align-items:flex-start;flex-direction:column}}
@media(max-width:550px){.admin-notify{width:40px;height:40px}.complaint-admin-head{align-items:flex-start;flex-direction:column}.complaint-status-badge{align-self:flex-start}.complaint-admin-detail,.complaint-admin-update{padding:14px}.complaint-location{align-items:flex-start;flex-direction:column}.complaint-admin-summary{display:none}.complaint-filter-links{display:grid;grid-template-columns:1fr 1fr;width:100%}.complaint-filter-links a{text-align:center}}
@media(prefers-reduced-motion:reduce){.admin-notify{animation:none!important}}


/* ===== Patch 3 Hotfix — Admin Confirm Modal positioning ===== */
body.admin-confirm-open{overflow:hidden}
.admin-confirm-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px}
.admin-confirm-modal[hidden]{display:none}
.admin-confirm-backdrop{position:absolute;inset:0;background:rgba(14,35,49,.52);backdrop-filter:blur(3px);animation:adminConfirmFadeIn .18s ease both}
.admin-confirm-dialog{position:relative;width:min(450px,100%);padding:27px 26px 23px;border:1px solid #dce8ef;border-radius:20px;background:#fff;box-shadow:0 25px 70px rgba(8,34,51,.25);text-align:center;animation:adminConfirmDialogIn .22s cubic-bezier(.2,.8,.2,1) both;outline:0}
.admin-confirm-icon{width:54px;height:54px;margin:0 auto 13px;display:grid;place-items:center;border-radius:17px;background:#fff5e2;color:#a16c00;font:700 26px/1 Kanit}
.admin-confirm-dialog h2{margin:0 0 7px;color:#214b68;font:600 21px/1.35 Kanit}
.admin-confirm-dialog p{margin:0 auto;color:#6f8593;font:400 13px/1.7 Sarabun;white-space:pre-line;overflow-wrap:anywhere}
.admin-confirm-actions{display:flex;justify-content:center;gap:9px;margin-top:20px}.admin-confirm-actions button{min-width:112px}
@keyframes adminConfirmFadeIn{from{opacity:0}to{opacity:1}}
@keyframes adminConfirmDialogIn{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:500px){.admin-confirm-modal{padding:14px}.admin-confirm-dialog{padding:23px 18px 19px;border-radius:17px}.admin-confirm-actions{display:grid;grid-template-columns:1fr 1fr}.admin-confirm-actions button{width:100%;min-width:0}}
@media(prefers-reduced-motion:reduce){.admin-confirm-backdrop,.admin-confirm-dialog{animation:none}}

/* ===== Patch 3 — Unified Admin Confirm Modal ===== */
.admin-confirm-dialog.is-danger .admin-confirm-icon{background:#fff0f2;color:#c74355}.admin-confirm-dialog.is-warning .admin-confirm-icon{background:#fff5e2;color:#a16c00}.admin-confirm-dialog.is-info .admin-confirm-icon{background:#eaf4fb;color:#1263a0}
