:root{--bg:#f6f7f9;--panel:#fff;--fg:#111827;--muted:#5b6474;--line:#d9dee6;--line-soft:#eceff3;--accent:#1d4ed8;--accent-soft:#e0e8ff;--block:#b91c1c;--block-soft:#fde2e2;--warn:#a15c00;--warn-soft:#fff1d6;--info:#1e5aa8;--info-soft:#e3eefc;--ok:#157f3b;--ok-soft:#dcf5e4;--focus:#f59e0b;--radius:8px;--shadow:0 1px 2px #1018280f, 0 2px 8px #1018280f;color:var(--fg);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);margin:0;padding:0}body{font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 4px;font-size:22px}h2{margin:18px 0 8px;font-size:17px}h3{margin:14px 0 6px;font-size:15px}p{margin:6px 0}small,.muted{color:var(--muted)}code{background:var(--line-soft);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}:focus-visible{outline:3px solid var(--focus);outline-offset:1px}button,.btn{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--fg);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:#f1f3f6;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:#1a43bd}button.danger{color:var(--block);border-color:#f3b4b4}button.small,.btn.small{padding:3px 8px;font-size:12px}button.link{color:var(--accent);background:0 0;border:none;padding:0}input,select,textarea{font:inherit;border:1px solid var(--line);color:var(--fg);background:#fff;border-radius:6px;min-width:0;padding:6px 8px}textarea{width:100%;min-height:60px}label.field{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}label.field>input,label.field>select,label.field>textarea{color:var(--fg);font-size:14px}label.check{align-items:center;gap:6px;display:inline-flex}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.grow,.spacer{flex:1}.grid2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.grid4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.stack>*+*{margin-top:12px}table.t{border-collapse:collapse;background:var(--panel);width:100%}table.t th,table.t td{text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;padding:6px 8px}table.t th{color:var(--muted);z-index:1;background:#fafbfc;font-size:12px;font-weight:600;position:sticky;top:0}table.t tr:hover td{background:#fafbff}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);max-height:70vh;overflow:auto}.chip{border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.chip.block{background:var(--block-soft);color:var(--block);border-color:#f5b5b5}.chip.warn{background:var(--warn-soft);color:var(--warn);border-color:#f2d199}.chip.info{background:var(--info-soft);color:var(--info);border-color:#b9d2f3}.chip.ok{background:var(--ok-soft);color:var(--ok);border-color:#a9e2bd}.chip.neutral{background:var(--line-soft);color:var(--muted)}.rot{border:1px solid #0000001f;border-radius:4px;align-items:center;padding:1px 6px;font-size:12px;font-weight:600;display:inline-flex}.alert{border-radius:var(--radius);border:1px solid;padding:10px 12px}.alert.error{background:var(--block-soft);color:#7f1d1d;border-color:#f5b5b5}.alert.warn{background:var(--warn-soft);color:#6b3d00;border-color:#f2d199}.alert.info{background:var(--info-soft);color:#173e74;border-color:#b9d2f3}.alert.ok{background:var(--ok-soft);color:#0d4d24;border-color:#a9e2bd}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.stat .v{font-size:22px;font-weight:700}.stat .l{color:var(--muted);font-size:12px}.topbar{color:#fff;z-index:50;background:#0f1b33;align-items:center;gap:14px;padding:8px 16px;display:flex;position:sticky;top:0}.topbar a{color:#dbe4ff}.topbar .brand{color:#fff;letter-spacing:.2px;font-weight:700}.topbar select,.topbar button{color:#fff;background:#1b2a4a;border-color:#2d3f66}.subnav{background:var(--panel);border-bottom:1px solid var(--line);gap:2px;padding:0 16px;display:flex;overflow-x:auto}.subnav a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:10px 12px}.subnav a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.subnav a:hover{color:var(--fg);text-decoration:none}main.page{max-width:1500px;margin:0 auto;padding:16px}main.page.wide{max-width:none}.bell{position:relative}.bell .count{color:#fff;background:#ef4444;border-radius:999px;padding:0 5px;font-size:11px;position:absolute;top:-6px;right:-6px}.dropdown{background:var(--panel);width:360px;max-height:420px;color:var(--fg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);z-index:60;position:absolute;top:36px;right:0;overflow:auto}.dropdown .item{border-bottom:1px solid var(--line-soft);padding:8px 12px}.dropdown .item.unread{background:#f4f7ff}.backdrop{z-index:80;background:#0f172a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border-radius:10px;width:min(560px,100vw - 32px);max-height:calc(100vh - 48px);padding:16px 18px;overflow:auto;box-shadow:0 10px 40px #00000040}.modal.wide{width:min(900px,100vw - 32px)}.drawer{background:var(--panel);z-index:70;flex-direction:column;width:min(520px,100vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #0000002e}.drawer header{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px 16px;display:flex}.drawer .body{flex:1;padding:12px 16px;overflow:auto}.drawer footer{border-top:1px solid var(--line);align-items:center;gap:8px;padding:12px 16px;display:flex}.toast{color:#fff;z-index:90;box-shadow:var(--shadow);background:#0f1b33;border-radius:8px;align-items:center;gap:12px;padding:10px 14px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast button{color:#9ec0ff;background:0 0;border-color:#3a5180}.vlist .v{border-bottom:1px solid var(--line-soft);cursor:pointer;padding:8px 10px}.vlist .v:hover{background:#f7f9fc}.vlist .v.overridden{opacity:.65}.calendar{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;display:grid}.calendar .wk{border:1px solid var(--line);text-align:left;background:#fff;border-radius:6px;padding:6px;font-size:12px;display:block}.calendar .wk.blocked{color:var(--muted);cursor:not-allowed;background:repeating-linear-gradient(45deg,#f1f3f6,#f1f3f6 4px,#e7eaef 4px 8px)}.calendar .wk.selected{outline:3px solid var(--accent);background:var(--accent-soft)}.calendar .wk.full{border-color:#f5b5b5}.heat td{text-align:center;border:1px solid #fff;min-width:22px;height:22px;padding:0;font-size:11px}.heat td.ok{background:#e7f6ec}.heat td.short{color:#7f1d1d;background:#fbd5d5;font-weight:700}.heat td.over{color:#6b3d00;background:#ffe3b3;font-weight:700}.heat td.lbl{text-align:left;white-space:nowrap;background:#fafbfc;padding:0 6px;position:sticky;left:0}.chat{flex-direction:column;gap:8px;max-height:60vh;display:flex;overflow:auto}.chat .msg{white-space:pre-wrap;border-radius:10px;max-width:85%;padding:8px 12px}.chat .msg.user{background:var(--accent-soft);align-self:flex-end}.chat .msg.bot{background:#f1f3f6;align-self:flex-start}.login{max-width:720px;margin:40px auto}.identity{border:1px solid var(--line);text-align:left;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.identity:hover{border-color:var(--accent)}@media (max-width:720px){main.page{padding:10px}.topbar{flex-wrap:wrap}.hide-mobile{display:none!important}.dropdown{width:calc(100vw - 20px);right:-60px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.action-bar{background:var(--panel,#fff);border:1px solid var(--border,#e5e7eb);border-radius:8px;flex-wrap:wrap;align-items:center;padding:6px 8px}.action-bar .divider{background:var(--border,#e5e7eb);align-self:stretch;width:1px;margin:0 4px}.page-chat-launcher{z-index:60;background:var(--accent,#1d4ed8);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:10px 16px;font-weight:600;position:fixed;bottom:20px;right:20px;box-shadow:0 6px 20px #0000002e}.page-chat-launcher:focus-visible{outline-offset:2px;outline:3px solid #93c5fd}.page-chat{z-index:60;background:var(--panel,#fff);border:1px solid var(--line,#e5e7eb);border-radius:12px;flex-direction:column;width:min(440px,100vw - 32px);height:min(640px,100vh - 40px);display:flex;position:fixed;bottom:20px;right:20px;overflow:hidden;box-shadow:0 12px 32px #00000038}.page-chat-head{border-bottom:1px solid var(--line,#e5e7eb);background:var(--bg,#f8fafc);align-items:center;gap:6px;padding:10px 12px;display:flex}.page-chat-body{flex-direction:column;flex:1;gap:8px;padding:10px 12px;display:flex;overflow-y:auto}.chat-msg{flex-direction:column;display:flex}.chat-msg.user{align-items:flex-end}.chat-msg.assistant{align-items:flex-start}.chat-msg .bubble{border-radius:10px;max-width:92%;padding:8px 10px;font-size:13px;line-height:1.4}.chat-msg .bubble.wide{width:100%;max-width:100%}.chat-msg.user .bubble{background:var(--accent,#1d4ed8);color:#fff}.chat-msg.assistant .bubble{background:var(--bg,#f1f5f9);color:inherit}.chip-btn{border-radius:999px}.page-chat-suggest{flex-wrap:wrap;gap:4px;padding:6px 12px 0;display:flex}.page-chat-input{gap:6px;padding:8px 12px 12px;display:flex}.page-chat-input input{flex:1}.page-chat-input input::placeholder{color:#9ca3af}@media (max-width:600px){.page-chat{width:calc(100vw - 16px);height:calc(100vh - 16px);bottom:8px;right:8px}.page-chat-launcher{bottom:12px;right:12px}}
