*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f4f7fb;color:#18263c}button,input,select,textarea{font:inherit}button{cursor:pointer}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:#142c43;color:#fff;padding:24px 16px;display:flex;flex-direction:column;gap:28px;flex-shrink:0}.brand{display:flex;align-items:center;gap:12px;padding:4px}.brand img{width:65px;height:55px;object-fit:contain;background:#fff;border-radius:12px;padding:4px}.brand strong{display:block;font-size:14px}.brand small,.sidebar-bottom small{display:block;color:#bacbd9;font-size:11px;margin-top:5px}.sidebar nav{display:grid;gap:7px}.nav{width:100%;text-align:left;background:transparent;border:0;color:#d5e1ec;padding:13px 14px;border-radius:9px}.nav:hover,.nav.active{background:#28658a;color:white}.sidebar-bottom{margin-top:auto;display:grid;gap:8px;font-size:13px}.sidebar-bottom select{background:#fff;color:#18263c}.main{flex:1;min-width:0;padding:28px 34px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px}.topbar h1{font-size:29px;margin:5px 0}.topbar p,.muted{color:#68798a;font-size:13px}.eyebrow{color:#287da2;font-weight:800;letter-spacing:1.5px;font-size:11px}.header-logo{width:96px;height:72px;object-fit:contain}.card,.stat{background:#fff;border:1px solid #e2e9ef;border-radius:14px;padding:22px;box-shadow:0 5px 18px #162d4210}.filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:18px}.filters label{min-width:150px;flex:1}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat small{color:#68798a;display:block;min-height:32px}.stat strong{font-size:30px;display:block;margin-top:8px;color:#176789}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}h2{font-size:19px;margin:0 0 10px}p{line-height:1.55}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid #e8edf2;padding:13px 10px;vertical-align:middle}th{background:#f8fafc;color:#53677a;font-size:12px;white-space:nowrap}td:first-child{min-width:200px}.pill{display:inline-block;padding:5px 9px;border-radius:30px;font-size:11px;font-weight:700;white-space:nowrap}.pill.missing{background:#edf0f4;color:#56616e}.pill.pending{background:#fff2d8;color:#94610b}.pill.approved{background:#e0f6e9;color:#15744c}.pill.revision{background:#ffe4e3;color:#b73d36}.page.hidden,.admin-only.hidden{display:none}.narrow{max-width:710px}label{display:grid;gap:7px;font-weight:600;font-size:13px;margin-bottom:15px}input,select,textarea{border:1px solid #ced9e2;border-radius:8px;padding:11px;background:white;width:100%;color:#172d40}textarea{resize:vertical}input[type=file]{padding:12px}label small{font-weight:400;color:#6b7b88}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.primary,.secondary,.mini{border:0;border-radius:8px;padding:11px 15px;font-weight:700}.primary{background:#176d91;color:white}.secondary{background:#e9eff4;color:#294158}.mini{font-size:12px;padding:7px 9px;background:#eaf2f7;color:#176789;margin:2px}.mini:hover,.primary:hover{filter:brightness(.94)}.mini:disabled{opacity:.4;cursor:not-allowed}.service{font-size:12px;color:#64798c;display:block;margin-top:4px}.note{font-size:12px;color:#63778a;max-width:220px;overflow-wrap:anywhere}.empty{text-align:center;color:#7d8a96;padding:28px}dialog{border:0;border-radius:14px;padding:26px;width:min(480px,calc(100% - 32px));box-shadow:0 20px 60px #0004}dialog::backdrop{background:#0d233a88}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}footer{font-size:12px;color:#83909c;padding:24px 0}#toast{position:fixed;right:20px;bottom:20px;background:#16364c;color:#fff;padding:12px 18px;border-radius:9px;display:none;max-width:350px}#toast.show{display:block}@media(max-width:1000px){.stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.layout{display:block}.sidebar{width:100%;gap:12px}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-bottom{margin:0}.main{padding:20px 14px}.stats{grid-template-columns:repeat(2,1fr)}.header-logo{width:62px}.topbar h1{font-size:22px}.two{grid-template-columns:1fr}.section-head{display:block}}.sidebar-bottom .secondary{width:100%;text-align:center}.template-form{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:end;gap:15px}.template-form label{margin:0}.template-form button{margin-bottom:0}.report-action{white-space:nowrap;margin:3px 0}.report-action small{color:#64798c}.page .card+.card{margin-top:18px}#adminContent.hidden,#adminLogin.hidden{display:none}@media(max-width:850px){.template-form{grid-template-columns:1fr}.template-form label{margin-bottom:8px}}
.assignment-grid{display:grid;gap:9px;margin:16px 0}.assignment-row{display:grid;grid-template-columns:minmax(220px,2fr) 1fr 1fr;gap:12px;align-items:center;padding:12px;border:1px solid #e2e9ef;border-radius:9px}.assignment-row strong{font-size:12px}.assignment-row label{display:flex;align-items:center;gap:8px;margin:0;font-weight:400}.assignment-row input{width:auto}@media(max-width:700px){.assignment-row{grid-template-columns:1fr}.assignment-row label{padding:2px}}

/* Revisi dashboard: satu baris status per area, tanpa kolom Aksi */
#dashboardRows td:first-child { width: 58%; min-width: 230px; font-weight: 600; }
#dashboardRows td:nth-child(2) { width: 20%; white-space: nowrap; }
#dashboardRows td:nth-child(3) { width: 22%; white-space: nowrap; }
#dashboardRows tr:hover { background: #f8fbfd; }
#dashboardRows .pill { min-width: 112px; text-align: center; }
#dashboard .table-wrap { border-radius: 9px; }
#dashboard .stats .stat { min-width: 0; }
@media (max-width: 700px) {
  #dashboardRows td:first-child { min-width: 190px; }
  #dashboardRows td { padding: 12px 9px; }
  #dashboard .section-head .muted { display: block; margin-top: 5px; }
}

.template-area-filter{display:block;max-width:420px;margin:18px 0}.template-area-filter select{display:block;width:100%;margin-top:7px}

/* Fix: all admin template controls have enough width; button on its own row. */
#templateForm.template-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
#templateForm.template-form>label{display:flex;flex-direction:column;min-width:0;width:100%;gap:9px;margin:0}
#templateForm.template-form select,#templateForm.template-form input[type=file]{display:block;min-width:0;width:100%;height:60px;padding:12px 14px;line-height:1.4;font-size:15px;color:#172d40;background-color:#fff}
#templateForm.template-form select{padding-right:32px;text-overflow:ellipsis;appearance:auto}
#templateForm.template-form option{font-size:15px;color:#172d40;background:#fff}
#templateForm.template-form button{grid-column:1;min-height:52px;width:100%;margin:0}
@media(max-width:1050px){#templateForm.template-form{grid-template-columns:repeat(2,minmax(0,1fr))}#templateForm.template-form>label:nth-child(3){grid-column:1/-1}}
@media(max-width:700px){#templateForm.template-form{grid-template-columns:minmax(0,1fr)}#templateForm.template-form>label:nth-child(3){grid-column:auto}}
