:root{--bg:#eaeef3;--surface:#ffffff;--surface-2:#f4f6fa;--ink:#16233a;--ink-soft:#5c6879;--ink-faint:#8b95a5;--line:#dbe2ec;--line-soft:#e8edf4;--brand:#1f3a5f;--brand-ink:#ffffff;--accent:#bd852a;--wait:#a86e18;--wait-bg:#fbf1dd;--expect:#1d5f8a;--expect-bg:#e2eef7;--go:#1c7a5b;--go-bg:#def0e8;--stop:#a83c34;--stop-bg:#f8e4e1;--done:#586376;--done-bg:#eceff4;--shadow:0 1px 2px rgba(22,35,58,.06),0 6px 22px rgba(22,35,58,.07);--radius:14px;--radius-sm:9px;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3,h4{margin:0;line-height:1.15;letter-spacing:-.01em}header.appbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:var(--brand);color:var(--brand-ink)}.bar{max-width:1180px;margin:0 auto;padding:12px 20px;gap:16px;flex-wrap:wrap}.bar,.logo{display:flex;align-items:center}.logo{gap:11px;font-weight:800;font-size:17px}.logo .mark{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;background:var(--accent);color:#1a1205;font-size:16px}.logo small{display:block;font-weight:450;font-size:11px;opacity:.72}.spacer{flex:1 1}.whoami{font-size:12px;color:rgba(255,255,255,.9)}.ghost-btn{font-size:12.5px;color:var(--brand-ink);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:7px 11px;cursor:pointer}.ghost-btn:hover{background:rgba(255,255,255,.2)}.persona-banner{max-width:1180px;margin:0 auto;padding:20px 20px 0}.who{display:flex;align-items:center;gap:12px;margin-bottom:4px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:13px;color:#fff;background:var(--brand)}.persona-banner h2{font-size:19px}.persona-banner p{margin:2px 0 0;color:var(--ink-soft);font-size:13.5px}nav.tabs{max-width:1180px;margin:14px auto 0;padding:0 20px;display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto}nav.tabs button{font-size:13.5px;font-weight:500;color:var(--ink-soft);background:none;border:none;border-bottom:2px solid transparent;padding:11px 14px;cursor:pointer;white-space:nowrap;margin-bottom:-1px}nav.tabs button:hover{color:var(--ink)}nav.tabs button.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}main{max-width:1180px;margin:0 auto;padding:22px 20px 60px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.pad{padding:20px}.section-title{font-size:15px;font-weight:600}.muted{color:var(--ink-soft)}.tiny{font-size:12px}.mono{font-family:var(--mono)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:15px 16px}.stat .n{font-weight:700;font-size:26px}.stat .l{font-size:12px;color:var(--ink-soft);margin-top:2px}.stat.go .n{color:var(--go)}.stat.wait .n{color:var(--wait)}.stat.expect .n{color:var(--expect)}.req-list{display:flex;flex-direction:column;gap:11px}.req{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:15px 16px;display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.req .grow{flex:1 1;min-width:200px}.req .vname{font-weight:600;font-size:15px}.req .sub{color:var(--ink-soft);font-size:13px;margin-top:2px}.req .idtag{font-family:var(--mono);font-size:11.5px;color:var(--ink-faint)}.req-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mail{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;display:flex;gap:13px;align-items:flex-start}.mail .env{width:34px;height:34px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;font-size:16px;flex:none}.mail .to{color:var(--accent);font-weight:600}.mail .vname{font-weight:600;font-size:14px;margin:1px 0}.mail .sub{font-size:13px;color:var(--ink-soft)}.rooms-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}@media(max-width:640px){.rooms-grid{grid-template-columns:1fr}}.room-col{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px;min-height:80px}.room-h{font-weight:700;font-size:13.5px;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:10px}.slot{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px;margin-bottom:8px}.slot:last-child{margin-bottom:0}.slot-t{font-family:var(--mono);font-size:12px;color:var(--ink-soft)}.slot-v{font-size:13px;margin:2px 0 6px}.pill,.slot-v{font-weight:600}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:4px 10px;border-radius:100px}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.wait{color:var(--wait);background:var(--wait-bg)}.pill.expect{color:var(--expect);background:var(--expect-bg)}.pill.go{color:var(--go);background:var(--go-bg)}.pill.stop{color:var(--stop);background:var(--stop-bg)}.pill.done{color:var(--done);background:var(--done-bg)}.btn{font-size:13.5px;font-weight:600;border-radius:9px;padding:9px 15px;cursor:pointer;border:1px solid transparent}.btn:hover{filter:brightness(.96)}.btn.primary{background:var(--brand);color:var(--brand-ink)}.btn.go{background:var(--go);color:#fff}.btn.stop{background:var(--stop);color:#fff}.btn.outline{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn.small{padding:7px 12px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px 16px;gap:14px 16px}.field{display:flex;flex-direction:column;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:12.5px;font-weight:500;color:var(--ink-soft)}.field input,.field select,.field textarea{font-size:14px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:9px 11px;width:100%}.field textarea{min-height:64px;resize:vertical}.legend{font-size:12px;font-weight:700;color:var(--accent);margin:20px 0 12px}.legend:first-child{margin-top:0}.autofill{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:4px 14px;margin-bottom:2px}.af-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}.af-row:last-child{border-bottom:none}.af-row span{color:var(--ink-soft)}.af-row b{font-weight:600;text-align:right}.lock{font-size:11px;color:var(--go);font-weight:600;margin-left:6px}.availbox{background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13px}.avail{font-weight:600}.avail.ok{color:var(--go)}.avail.bad{color:var(--stop)}.consent{display:flex;gap:9px;align-items:flex-start;margin-top:11px;font-size:13px;color:var(--ink-soft);cursor:pointer}.consent input{margin-top:2px;width:16px;height:16px}.note{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:12px 14px;font-size:13px;color:var(--ink-soft)}.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}table{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}td,th{text-align:left;padding:10px 13px;border-bottom:1px solid var(--line-soft)}th{font-size:11px;color:var(--ink-faint);font-weight:600;background:var(--surface-2)}tr:last-child td{border-bottom:none}.empty{text-align:center;padding:46px 20px;color:var(--ink-soft)}.empty .ico{font-size:30px;opacity:.5}.empty p{margin:8px 0 0}.login-screen{position:fixed;inset:0;z-index:100;background:linear-gradient(160deg,var(--brand),#0f1d31);display:grid;place-items:center;padding:24px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.35);width:100%;max-width:390px;padding:34px 30px;text-align:center}.login-card h1{font-size:21px;margin:16px 0 4px}.login-sub{color:var(--ink-soft);font-size:13.5px;margin:0 0 22px}.lp-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:7px;gap:7px;text-align:left}.lp-btn{font-size:12.5px;font-weight:500;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;text-align:left}.lp-btn:hover{border-color:var(--accent);color:var(--accent)}.mark-lg{width:46px;height:46px;border-radius:12px;background:var(--accent);color:#1a1205;display:inline-grid;place-items:center;font-size:24px}.modal-overlay{position:fixed;inset:0;background:rgba(12,18,30,.55);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:34px 16px;overflow:auto}.modal{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);width:100%;max-width:640px}.modal .mh{border-bottom:1px solid var(--line);padding:16px 20px;display:flex;align-items:center;justify-content:space-between}.modal .mbody{padding:20px;max-height:70vh;overflow:auto}.modal .mfoot{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.kv{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;background:var(--line);border-radius:10px;overflow:hidden}.kv div{background:var(--surface);padding:10px 14px}.kv .k{font-size:11px;color:var(--ink-faint)}.kv .v{font-size:13.5px;font-weight:500;margin-top:1px}.kv .span{grid-column:1/-1}.err{background:var(--stop-bg);color:var(--stop);border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px}@media (max-width:640px){.form-grid,.kv{grid-template-columns:1fr}}