body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 "Archivo",system-ui,sans-serif}
[hidden]{display:none!important}
a{color:var(--sky-ink)}
.btn{appearance:none;border:0;border-radius:99px;background:var(--navy);color:#fff;font:600 14px "Archivo",sans-serif;padding:11px 20px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:transform .2s cubic-bezier(.22,1,.36,1),background .2s,box-shadow .2s;white-space:nowrap}
.btn:hover{background:var(--sky-ink);transform:translateY(-1px)}.btn:active{transform:none}
.btn:focus-visible,.lnk:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.chip:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.btn-sm{padding:8px 14px;font-size:13px}.btn-ghost{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1.5px #c9d4dc}.btn-ghost:hover{background:var(--pale);color:var(--navy)}
.btn-ok{background:#16794a}.btn-ok:hover{background:#11643a}.btn-del{background:#fff;color:#9b1c1c;box-shadow:inset 0 0 0 1.5px #f1c4c4}.btn-del:hover{background:#fde3e3;color:#9b1c1c}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.lnk{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}
.muted{color:#5b6b78}.err{color:#9b1c1c;font-weight:600;min-height:1.4em;margin:0}
.card{background:#fff;border-radius:14px;box-shadow:0 1px 2px rgba(2,20,34,.06),0 12px 36px -22px rgba(2,20,34,.35)}
label{display:grid;gap:5px;font-size:13px;font-weight:600;color:#33434f}
input,select,textarea{font:15px "Archivo",sans-serif;padding:10px 12px;border:1.5px solid #c9d4dc;border-radius:10px;background:#fff;color:var(--ink);width:100%;min-width:0}
textarea{min-height:76px;resize:vertical}
.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(120% 80% at 80% 0%,#0b4a73 0%,var(--navy) 45%,var(--ink) 100%)}
.login-card{width:min(400px,100%);padding:34px 30px;display:grid;gap:14px}
.login-card h1{font:italic 400 40px/1 "Instrument Serif",serif;margin:6px 0 0;color:var(--navy)}.login-card p{margin:0}
.login-logo{height:44px;width:auto;justify-self:start}
.top{background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px clamp(14px,3vw,32px);position:sticky;top:0;z-index:5;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:700}.brand img{height:34px}.brand span{border-left:1px solid rgba(255,255,255,.25);padding-left:12px}
.top nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.top nav a:not(.btn){color:#d6eef7;text-decoration:none;font-weight:600;font-size:14px}.top nav a:not(.btn):hover{color:#fff}.top .btn{background:var(--sky);color:var(--ink)}.top .lnk{color:#d6eef7;font-size:14px}
.view{max-width:1120px;margin:0 auto;padding:clamp(16px,3vw,32px)}
.vh{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.vh h1{font:italic 400 clamp(32px,5vw,44px)/1 "Instrument Serif",serif;margin:0;color:var(--navy)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.stat{padding:16px 18px}.stat b{display:block;font-size:clamp(20px,3vw,28px);color:var(--navy);font-variant-numeric:tabular-nums}.stat span{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#5b6b78;font-weight:600}
.stat.od b{color:#9b1c1c}.stat.pd b{color:#16794a}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.chip{border:1.5px solid #c9d4dc;background:#fff;border-radius:99px;padding:6px 14px;font:600 13px "Archivo",sans-serif;cursor:pointer;color:#33434f;transition:background .2s,border-color .2s}
.chip[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}.chip:hover{border-color:var(--navy)}
.chip i{font-style:normal;opacity:.7;margin-left:4px}
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#5b6b78;text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background .15s}.tbl tbody tr:hover{background:#f8fafb}
.tbl .acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.tbl a.num{font-weight:700;text-decoration:none;color:var(--navy)}
.empty{padding:40px;text-align:center;color:#5b6b78}
.ed{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}
.ed-form{padding:20px;display:grid;gap:16px}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
fieldset{border:1px solid var(--line);border-radius:12px;padding:14px;margin:0;display:grid;gap:12px;min-width:0}
legend{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#5b6b78;padding:0 6px}
.items{display:grid;gap:10px}
.item{display:grid;grid-template-columns:minmax(0,1fr) 70px 100px 34px;gap:8px;align-items:start}
.item .x{border:0;background:none;color:#9b1c1c;font-size:20px;cursor:pointer;padding:8px 4px;border-radius:8px}.item .x:hover{background:#fde3e3}
.ed-tot{display:flex;justify-content:flex-end;gap:22px;font-variant-numeric:tabular-nums;flex-wrap:wrap}.ed-tot b{color:var(--navy);font-size:18px}
.ed-acts{display:flex;gap:8px;flex-wrap:wrap}
.ed-prev{position:sticky;top:80px}.ed-prev .inv{font-size:12px;padding:24px;transform-origin:top left}.ed-prev .inv h1{font-size:30px}
.ed-prev .lbl{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#5b6b78;margin:0 0 8px}
.linkbox{display:flex;gap:8px}.linkbox input{font-size:12px;color:#33434f;background:#f8fafb}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s cubic-bezier(.22,1,.36,1);z-index:20;max-width:min(92vw,520px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}.toast.bad{background:#9b1c1c}
.set{padding:20px;display:grid;gap:16px;max-width:760px}
.chk{display:flex;align-items:center;gap:10px;font-size:14px}.chk input{width:auto}
@media (max-width:900px){.ed{grid-template-columns:minmax(0,1fr)}.ed-prev{position:static}}
@media (max-width:640px){.stats{grid-template-columns:minmax(0,1fr)}.stat{display:flex;justify-content:space-between;align-items:baseline}
 .tbl thead{display:none}.tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}.tbl tr{padding:12px 14px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:2px 10px}
 .tbl td{border:0;padding:0}.tbl td.c-due,.tbl td.c-iss{display:none}.tbl td.c-acts{grid-column:1/-1;margin-top:8px}.tbl .acts{justify-content:flex-start}
 .row2{grid-template-columns:minmax(0,1fr)}.item{grid-template-columns:minmax(0,1fr) 60px 86px 30px}.brand span{display:none}.top nav{gap:12px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.top,.toast,.ed-form,.vh,.ed-prev .lbl{display:none!important}.view{padding:0}.ed{display:block}.ed-prev .inv{font-size:15px;padding:0}}
.login-logo{height:auto;width:min(190px,60%)}
.brand img{height:36px;width:auto}

.login-card .rm{display:flex;align-items:center;gap:10px;font-weight:500;font-size:14px;cursor:pointer}.login-card .rm input{width:18px;height:18px;margin:0;accent-color:var(--sky,#05A4E8)}
