:root{--pro:#004B87;--blue:#0081C6;--green:#84BD00;--purple:#492F92;--orange:#FF8200;--red:#C8102E;--bg:#F5F0EF;--surface:#fff;--sunk:#EEF3F8;--fg:#1F2A36;--body:#333;--muted:#5B6672;--line:#D6DEE7;--chip:#E5F1FA;--font:"Open Sans", Arial, Helvetica, sans-serif}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--body);font-family:var(--font);font-size:15px;line-height:1.5}button,input,textarea{font:inherit}:focus-visible{outline:3px solid var(--orange);outline-offset:2px}.sr{position:absolute;left:-9999px}.top{background:var(--pro);color:#fff;position:sticky;top:0;z-index:5}.bar{display:flex;align-items:center;gap:16px;padding:10px max(16px,env(safe-area-inset-left));flex-wrap:wrap;max-width:1200px;margin:0 auto}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}.tile{width:36px;height:36px;border-radius:10px;background:var(--blue);display:grid;place-items:center;font-weight:800;font-size:18px;color:#fff}.tile.big{width:64px;height:64px;font-size:30px;border-radius:16px}.brand-text{display:flex;flex-direction:column;line-height:1.15}.org{font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.85;font-weight:700}.app{font-size:18px;font-weight:800}.nav{display:flex;gap:4px}.nav a{color:#dcebf7;text-decoration:none;padding:6px 10px;border-radius:6px;font-weight:600}.nav a.on{background:#ffffff29;color:#fff}.sp{flex:1}.seg{display:inline-flex;border:1px solid rgba(255,255,255,.55);border-radius:8px;overflow:hidden}.seg button{background:transparent;border:0;color:#fff;padding:5px 9px;font-size:12px;font-weight:700;cursor:pointer}.seg button.on{background:#fff;color:var(--pro)}.stripe{display:flex;height:5px}.stripe i{flex:1}.stripe i:nth-child(1){background:var(--blue)}.stripe i:nth-child(2){background:var(--green)}.stripe i:nth-child(3){background:var(--purple)}.stripe i:nth-child(4){background:var(--orange)}.btn{border:0;border-radius:8px;padding:8px 14px;font-weight:700;cursor:pointer}.btn.orange{background:var(--orange);color:#1b1b1b}.btn.blue{background:var(--blue);color:#fff}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--fg)}.link{background:none;border:0;color:var(--pro);text-decoration:underline;padding:0;cursor:pointer;font-weight:600}.sample{background:#fff3e5;color:#6b3a00;text-align:center;font-size:13px;padding:6px 16px;border-bottom:1px solid #FFD3A3}main{max-width:1200px;margin:0 auto;padding:20px max(16px,env(safe-area-inset-left)) 48px}.page{display:grid;gap:14px}.h{color:var(--pro);font-size:22px;margin:0}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button{border:0;border-radius:999px;padding:6px 12px;background:var(--surface);color:var(--muted);font-weight:600;cursor:pointer;border:1px solid var(--line)}.tabs button.on{background:var(--pro);color:#fff;border-color:var(--pro)}.tabs em{font-style:normal;opacity:.8;margin-left:4px}.rows{list-style:none;margin:0;padding:0;display:grid;gap:8px}.row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:10px;text-decoration:none;color:var(--fg)}.row:hover{border-color:var(--blue)}.row.s-late{border-left-color:var(--red)}.row.s-soon{border-left-color:var(--orange)}.row.s-staff{border-left-color:var(--green)}.mid{min-width:0;display:flex;flex-direction:column}.subj{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.src{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:4px;color:#fff}.src.family{background:var(--purple)}.src.staff{background:var(--green);color:#16200a}.due{font-size:13px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.due.late{color:var(--red)}.due.soon{color:#b35a00}.due.ok{color:var(--muted)}.empty{background:var(--surface);border:1px dashed var(--line);border-radius:10px;padding:28px;display:grid;gap:4px;text-align:center;color:var(--muted)}.empty b{color:var(--fg)}.back{color:var(--pro);font-weight:600;text-decoration:none}.detail{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}@media (max-width:820px){.detail{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;display:grid;gap:12px;min-width:0}.edge-purple{border-top:5px solid var(--purple)}.edge-blue{border-top:5px solid var(--blue)}.edge-green{border-top:5px solid var(--green)}.edge-red{border-top:5px solid var(--red)}.card h1{font-size:20px;margin:0;color:var(--fg)}.thread{display:grid;gap:8px}.msg{background:var(--sunk);border-radius:8px;padding:10px 12px}.msg.note{background:#fff3e5;border:1px dashed var(--orange)}.msg small{display:block;color:var(--muted);font-size:12px;margin-bottom:2px}.auto{display:block;font-size:12px;color:var(--muted);margin-top:4px}textarea,input[type=text],input[type=search]{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:#fff;color:var(--fg)}.actions{display:flex;gap:8px;flex-wrap:wrap}.hint{font-size:13px;color:var(--muted);margin:0}.facts dl{margin:0;display:grid;gap:4px}.facts dt{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:6px}.facts dd{margin:0;color:var(--fg)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#001e3c59;z-index:10;display:flex;justify-content:flex-end}.drawer{background:var(--surface);width:min(460px,100%);height:100%;overflow:auto;padding:18px;border-left:5px solid var(--green);display:grid;align-content:start;gap:12px}.drawer-head{display:flex;justify-content:space-between;align-items:center}.drawer-head h2{margin:0;color:var(--pro)}.drawer form{display:grid;gap:10px}.drawer label{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.drawer label.check{text-transform:none;letter-spacing:0;font-size:14px;color:var(--fg);display:flex;gap:8px;align-items:center}fieldset{border:0;padding:0;margin:0}legend{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:0;background:var(--chip);color:var(--fg);border-radius:999px;padding:6px 11px;font-weight:600;cursor:pointer;font-size:13px}.chip.on{background:var(--pro);color:#fff}.route{font-size:14px}.ok-msg{background:#eef7da;border:1px solid var(--green);border-radius:8px;padding:12px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}@media (max-width:640px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px}.kpi b{display:block;font-size:24px;color:var(--fg);font-variant-numeric:tabular-nums}.kpi span{font-size:12px;color:var(--muted)}.tblwrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px}table.load{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.load th,table.load td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}table.load th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}table.load td.late{color:var(--red);font-weight:700}.loadbar{height:8px;border-radius:4px;background:var(--sunk);overflow:hidden;min-width:80px}.loadbar i{display:block;height:100%;background:var(--blue)}.loadbar i.hot{background:var(--orange)}.fam-page{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 62px)}.family-left{background:var(--pro);color:#fff;padding:48px 32px;display:flex;flex-direction:column;justify-content:center;gap:14px}.family-left h1{margin:0;font-size:40px}.family-left p{margin:0;color:#dcebf7;max-width:36ch;font-size:17px}.family-right{padding:48px 32px;display:flex;align-items:center;font-size:18px;color:var(--fg)}@media (max-width:760px){.fam-page{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.logo{height:34px;width:auto;display:block}.divider{width:1px;height:28px;background:#ffffff73}.brand .app{font-size:20px;font-weight:800;color:#fff}.stacked{width:min(260px,70%);height:auto}.family-right{flex-direction:column;align-items:flex-start;justify-content:center;gap:16px}.family-right .hz{width:min(320px,90%);height:auto}.stripe.wide{width:180px;height:6px}@media (max-width:560px){.logo{height:26px}.brand .app{font-size:17px}}
