/* Design ก "ทางการ สะอาด" — navy, white cards, Kanit headings, Sarabun body. */
:root{--brand:#1e3a8a;--brand2:#2563eb;--ink:#1f2937;--mute:#6b7280;--line:#e5e7eb;--soft:#eff4ff;--page:#eef2f8;--card:#fff;
--green:#16a34a;--yellow:#d97706;--red:#dc2626;--head:'Kanit',sans-serif;--body:'Sarabun',sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--page)}
body{font-family:var(--body);color:var(--ink);min-height:100vh;overflow-x:clip;font-size:15px}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font:inherit;color:var(--ink)}
a{color:var(--brand2)}
h1,h2,h3,h4{font-family:var(--head);font-weight:600}
.mute{color:var(--mute)} .small{font-size:13px} .tiny{font-size:12px} .center{text-align:center}
.hide{display:none!important}
/* boxes & forms */
.box{background:#fff;border-radius:12px;padding:12px 14px;margin-bottom:10px;line-height:1.45;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.box h4{font:500 15px var(--head);margin-bottom:4px}
.lbl{display:block;font-size:13px;color:var(--mute);margin:10px 0 4px}
.fld{width:100%;padding:9px 11px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-size:15px}
.fld:focus{outline:2px solid #bfdbfe;border-color:var(--brand2)}
textarea.fld{resize:vertical;min-height:70px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{padding:6px 12px;border-radius:999px;border:1px solid #cbd5e1;font-size:14px;background:#fff}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.seg{display:flex;gap:4px;margin-top:8px}
.seg button{flex:1;padding:7px 2px;border-radius:7px;font:500 13.5px var(--head);background:var(--soft);color:var(--ink)}
.seg button.on{background:var(--brand);color:#fff}
.seg button.on.done{background:var(--green)}
.seg button.blk{color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:8px;font:500 14.5px var(--head);background:var(--brand);color:#fff;text-decoration:none}
.btn:hover{filter:brightness(1.1)}
.btn.o{background:#fff;border:1.5px solid var(--brand);color:var(--brand)}
.btn.g{background:var(--soft);color:var(--ink)}
.btn.red{background:var(--red)} .btn.green{background:var(--green)}
.btn.sm{padding:6px 10px;font-size:13px}
.btn[disabled]{opacity:.5;pointer-events:none}
.btns{display:flex;gap:6px;flex-wrap:wrap}
.btns .btn{flex:1}
.submit{width:100%;margin-top:14px;padding:12px;border-radius:9px;background:var(--brand);color:#fff;font:500 16px var(--head)}
.submit.red{background:var(--red)}
.submit[disabled]{opacity:.55}
.pill{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--brand2);white-space:nowrap;font-weight:500}
.pill.red{background:#fee2e2;color:var(--red)} .pill.green{background:#dcfce7;color:var(--green)} .pill.amber{background:#fef3c7;color:#b45309} .pill.gray{background:#f1f5f9;color:var(--mute)}
.trow{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.av{width:30px;height:30px;border-radius:50%;background:var(--brand);display:grid;place-items:center;color:#fff;font:600 12px var(--head);flex:none}
/* tasks */
.task{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--line)}
.task:last-child{border:0}
.dot{width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:11px;color:#fff;font-weight:700}
.s-done{background:var(--green)} .s-doing{background:var(--brand2)} .s-todo{border:2px solid #cbd5e1} .s-blocked{background:var(--red)}
.task .nm{flex:1;line-height:1.3;min-width:0}
.task .nm i{display:block;font-style:normal;font-size:12.5px;color:var(--mute)}
.task.dn .nm{color:var(--mute);text-decoration:line-through}
/* KPI rows */
.kp{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px;border-bottom:1px solid var(--line)}
.kp:last-child{border:0}
.lamp{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}
.l-green{background:var(--green)} .l-yellow{background:var(--yellow)} .l-red{background:var(--red)} .l-none{background:#cbd5e1}
.kp .v{margin-left:auto;font:600 14px var(--head);text-align:right}
.kp .v small{display:block;font:400 11.5px var(--body);color:var(--mute)}
.stat{display:flex;gap:6px;margin:4px 0 8px}
.stat div{flex:1;background:var(--soft);border-radius:8px;padding:6px;text-align:center}
.stat b{display:block;font:600 22px var(--head)}
.stat span{font-size:12px;color:var(--mute)}
details.mem{background:#fff;border-radius:12px;margin-bottom:8px}
details.mem summary{list-style:none;padding:11px 13px;display:flex;align-items:center;gap:9px;cursor:pointer}
details.mem summary::-webkit-details-marker{display:none}
details.mem .tl{padding:0 13px 10px}
.big{font:600 28px var(--head);color:var(--brand)}
.empty{padding:26px 12px;text-align:center;color:var(--mute)}
/* dashboard (shared by app and admin) */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tile{background:#fff;border-radius:12px;padding:13px 15px;box-shadow:0 1px 3px rgba(15,23,42,.06)}
.tile span{font-size:13.5px;color:var(--mute);display:flex;align-items:center;gap:6px}
.tile b{display:block;font:600 27px var(--head);margin-top:2px}
.tile small{font-size:12.5px;color:var(--mute)}
.dsec{margin-top:18px}
.dsec h3{font-size:17px;color:var(--brand);margin-bottom:10px}
.depts{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.dept{background:#fff;border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px rgba(15,23,42,.06);border-top:4px solid var(--green)}
.dept.yellow{border-top-color:var(--yellow)} .dept.red{border-top-color:var(--red)}
.dept h4{font-size:15.5px;display:flex;align-items:center;gap:7px}
.dept .meta{font-size:12px;color:var(--mute);margin:2px 0 6px}
.dcols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}
.panel{background:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px rgba(15,23,42,.06);margin-bottom:14px}
.wl{display:grid;grid-template-columns:118px minmax(0,1fr) 92px;gap:8px;align-items:center;font-size:13.5px;padding:4px 0}
.wl .nm small{color:var(--mute);font-size:11.5px;display:block;line-height:1.1}
.wl .track{height:14px;background:#f1f5f9;border-radius:4px;position:relative}
.wl .fill{position:absolute;left:0;top:0;bottom:0;background:var(--brand2);border-radius:4px}
.wl .late{position:absolute;top:0;bottom:0;background:var(--red);border-radius:0 4px 4px 0}
.wl .thr{position:absolute;top:-4px;bottom:-4px;width:0;border-left:2px dashed #94a3b8}
.wl .num{text-align:right;font-variant-numeric:tabular-nums}
.wl.over .nm{color:var(--red);font-weight:600}
.legend{display:flex;gap:14px;font-size:12px;color:var(--mute);margin-bottom:8px;flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.dq{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:14px}
.dq .btns{margin-top:8px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl td,.tbl th{padding:8px 7px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{font-weight:500;color:var(--mute);font-size:12.5px;white-space:nowrap}
.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(16px);background:#111827;color:#fff;padding:10px 18px;border-radius:10px;font-size:14px;z-index:90;opacity:0;transition:.25s;pointer-events:none;max-width:calc(100vw - 32px);text-align:center}
.toast.on{opacity:1;transform:translateX(-50%)}
.toast.err{background:var(--red)}
@media (max-width:900px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.dcols{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.wl{grid-template-columns:90px minmax(0,1fr) 74px}.tile b{font-size:23px}}
