:root{--bg:#f3f5f7;--card:#fff;--tx:#1d2733;--mu:#667585;--bd:#d8dee5;--ac:#1f5f99;--ok:#2e7d32;--wa:#b26a00;--er:#c62828}
[data-theme=dark]{--bg:#12171d;--card:#1b222b;--tx:#e6ebf0;--mu:#93a1b0;--bd:#2d3844;--ac:#5aa2e0}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--tx)}
header{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--card);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:5}
.brand{display:flex;flex-direction:column;flex:1}.hr{display:flex;gap:12px;align-items:center}
.layout{display:flex;min-height:calc(100vh - 52px)}nav{width:190px;background:var(--card);border-right:1px solid var(--bd);padding:8px;flex-shrink:0}
nav a{display:block;padding:8px 10px;border-radius:4px;color:var(--tx);cursor:pointer;text-decoration:none}nav a:hover{background:var(--bg)}nav a.on{background:var(--ac);color:#fff}
main{flex:1;padding:16px;min-width:0}#menu{display:none}
.card{background:var(--card);border:1px solid var(--bd);border-radius:6px;padding:14px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:12px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.stat b{font-size:26px;display:block}.stat span,.muted{color:var(--mu)}.small{font-size:12px}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.bar h2{margin:0;flex:1}
input,select,textarea,.btn{font:inherit;padding:6px 8px;border:1px solid var(--bd);border-radius:4px;background:var(--card);color:var(--tx)}
.btn{cursor:pointer}.btn.pri{background:var(--ac);color:#fff;border-color:var(--ac)}.btn.dng{color:var(--er);border-color:var(--er)}.btn.sm{padding:2px 7px;font-size:12px}
label{display:block;font-weight:600;font-size:12px;margin-bottom:8px}label input,label select,label textarea{display:block;width:100%;margin-top:3px;font-weight:400}
label.chk{font-weight:400;display:flex;gap:6px;align-items:center}label.chk input{width:auto;margin:0}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;background:var(--card)}th,td{padding:7px 9px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top}
th{font-size:12px;text-transform:uppercase;color:var(--mu)}td.tr{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tr.od td:first-child{border-left:3px solid var(--er)}
.badge{padding:1px 7px;border-radius:10px;font-size:11px;background:var(--bg);border:1px solid var(--bd);white-space:nowrap}
.b-Critical{background:var(--er);color:#fff}.b-High,.b-Pending{background:var(--wa);color:#fff}.b-Completed{background:var(--ok);color:#fff}.b-In\ Progress{background:var(--ac);color:#fff}
ul.mini{list-style:none;margin:0;padding:0}ul.mini li{padding:6px 0;border-bottom:1px solid var(--bd);cursor:pointer;display:flex;gap:8px;justify-content:space-between}
dialog{width:min(720px,96vw);border:1px solid var(--bd);border-radius:6px;background:var(--card);color:var(--tx);max-height:92vh}
dialog::backdrop{background:#0006}.fg{display:grid;gap:0 12px;grid-template-columns:1fr 1fr}.fg .w{grid-column:1/-1}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal div{min-height:54px;padding:4px;border:1px solid var(--bd);border-radius:4px;background:var(--card);cursor:pointer;overflow:hidden}
.cal .h{min-height:0;text-align:center;font-weight:600;cursor:default;border:0;background:none}.cal .t{border-color:var(--ac);box-shadow:inset 0 0 0 1px var(--ac)}.cal i{display:block;font-size:11px;color:var(--ac);font-style:normal}
.error{background:#fdecea;color:var(--er);padding:8px;border-radius:4px;margin-bottom:10px}
.loginpg{display:grid;place-items:center;min-height:100vh}.login{width:min(380px,92vw)}.login h1{margin:0 0 2px;font-size:22px}
@media(max-width:760px){#menu{display:block}nav{display:none;position:fixed;top:52px;left:0;bottom:0;z-index:6}nav.open{display:block}.fg{grid-template-columns:1fr}#clock{display:none}}
@media print{header,nav,.bar button,.noprint{display:none!important}body{background:#fff;color:#000}.card{border:0}}
