:root{--ground: #f6f6f3;--surface: #ffffff;--surface-2: #fafaf8;--ink: #15171c;--ink-2: #23262d;--muted: #5b6170;--line: #e3e3de;--line-soft: #eeeeea;--field: #d5d6d0;--accent: #0b6e6e;--accent-hover: #084f4f;--accent-soft: #e3f1f0;--nav: #15171c;--nav-active: #262a32;--nav-text: #c9ccd2;--nav-muted: #9aa0ab;--ok-bg: #e5f3ea;--ok-fg: #1e6b3a;--warn-bg: #fcefe0;--warn-fg: #7a3a00;--warn-line: #f1d3ae;--err-bg: #fdecea;--err-fg: #8a1c12;--radius: 12px;--radius-sm: 8px;--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--ground);color:var(--ink);font:15px/1.5 var(--font)}a{color:var(--accent)}a:hover{color:var(--accent-hover)}h1{margin:0;font-size:28px;font-weight:700}h2{margin:0;font-size:16px;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:13px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.between{justify-content:space-between}.shell{display:flex;min-height:100vh}.nav{width:232px;flex:none;background:var(--nav);color:#e8e8e4;padding:24px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 24px;font-weight:700;font-size:18px;color:#fff;text-decoration:none}.nav a.link{display:block;padding:11px 12px;border-radius:var(--radius-sm);color:var(--nav-text);text-decoration:none;font-size:14px}.nav a.link:hover{background:#1f232a;color:#fff}.nav a.link.active{background:var(--nav-active);color:#fff;font-weight:600}.nav .foot{margin-top:auto;padding:16px 12px 0;border-top:1px solid #2e323a;font-size:12px;color:var(--nav-muted)}.nav .foot button{background:none;border:0;color:var(--nav-text);padding:8px 0 0;font:inherit;cursor:pointer;text-decoration:underline}.main{flex:1;min-width:0;padding:32px 40px;display:flex;flex-direction:column;gap:24px}.main.flush{padding:0;gap:0}@media (max-width: 860px){.shell{flex-direction:column}.nav{width:auto;height:auto;position:static;flex-direction:row;flex-wrap:wrap;padding:12px}.brand{padding:4px 8px;width:100%}.nav .foot{display:none}.main{padding:20px 16px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media (max-width: 1100px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 700px){.grid4,.grid3,.grid2{grid-template-columns:1fr}}.stat .label{font-size:13px;color:var(--muted)}.stat .value{font-size:32px;font-weight:700;margin-top:6px}.stat .sub{font-size:13px;color:var(--muted);margin-top:4px}.stat.warn{background:var(--warn-bg);border-color:var(--warn-line)}.stat.warn .label,.stat.warn .value,.stat.warn .sub{color:var(--warn-fg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--radius-sm);border:1px solid var(--field);background:var(--surface);color:var(--ink);font:600 14px var(--font);cursor:pointer;text-decoration:none}.btn:hover{border-color:#b9bab3;color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover);color:#fff}.btn.small{min-height:36px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.55;cursor:default}.pill{min-height:40px;padding:0 14px;border-radius:99px;border:1px solid var(--field);background:var(--surface);color:var(--ink);font:600 13px var(--font);cursor:pointer}.pill[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}input[type=text],input[type=search],input[type=password],input[type=number],select,textarea{min-height:44px;padding:0 12px;border:1px solid var(--field);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:14px var(--font)}textarea{padding:12px 14px;resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,.pill:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{display:flex;flex-direction:column;gap:6px}.field label,.field .label{font-size:13px;font-weight:600}.check{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-size:14px}.check input{width:18px;height:18px}.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}.badge.ok{background:var(--ok-bg);color:var(--ok-fg)}.badge.warn{background:var(--warn-bg);color:var(--warn-fg)}.badge.err{background:var(--err-bg);color:var(--err-fg)}.badge.neutral{background:#edede8;color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px;font-weight:500;padding:10px 8px;background:var(--surface-2)}td{padding:12px 8px;border-top:1px solid var(--line-soft);vertical-align:middle}tr.issue td{background:#fff8f7}.notice{padding:12px 14px;border-radius:var(--radius-sm);font-size:14px}.notice.err{background:var(--err-bg);color:var(--err-fg)}.notice.warn{background:var(--warn-bg);color:var(--warn-fg)}.notice.ok{background:var(--ok-bg);color:var(--ok-fg)}.mail-top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:16px 24px;border-bottom:1px solid var(--line);background:var(--surface)}.mail-top input[type=search]{flex:1 1 320px}.mail-body{display:flex;flex:1;min-height:0}.mail-list{width:420px;flex:none;border-right:1px solid var(--line);background:var(--surface);overflow-y:auto;max-height:calc(100vh - 77px)}.mail-list .meta{padding:12px 20px;font-size:13px;color:var(--muted);border-bottom:1px solid var(--line-soft)}.mail-item{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;padding:14px 20px;border:0;border-bottom:1px solid var(--line-soft);background:none;color:var(--ink);font:inherit;cursor:pointer}.mail-item:hover{background:var(--surface-2)}.mail-item[aria-current=true]{background:var(--accent-soft)}.mail-item .top{display:flex;justify-content:space-between;gap:8px;font-size:13px}.mail-item .subj{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-item .sub{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader{flex:1;min-width:0;padding:28px 32px;display:flex;flex-direction:column;gap:18px;overflow-y:auto;max-height:calc(100vh - 77px)}.reader dl{display:grid;grid-template-columns:70px minmax(0,1fr);gap:6px 12px;margin:0;font-size:14px}.reader dt{color:var(--muted)}.reader dd{margin:0;overflow-wrap:anywhere}.body-text{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);font-size:15px;line-height:1.65;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere}.att{display:flex;flex-direction:column;gap:2px;min-width:220px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-decoration:none;color:var(--ink)}.att .name{font-weight:600;font-size:14px}.att .info{font-size:12px;color:var(--muted)}.empty{padding:40px;text-align:center;color:var(--muted)}@media (max-width: 1000px){.mail-body{flex-direction:column}.mail-list{width:auto;max-height:45vh;border-right:0;border-bottom:1px solid var(--line)}.reader{max-height:none;padding:20px 16px}}.chat{display:flex;flex-direction:column;min-height:100vh}.chat-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--line);background:var(--surface)}.chat-log{flex:1;padding:28px 32px;display:flex;flex-direction:column;gap:20px;max-width:920px;width:100%}.bubble-user{align-self:flex-end;max-width:620px;padding:14px 16px;border-radius:var(--radius);background:var(--ink);color:#fff;white-space:pre-wrap}.answer{padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);line-height:1.65}.answer p{margin:0 0 10px}.answer p:last-child,.answer ul:last-child{margin-bottom:0}.answer ul{margin:0 0 10px;padding-left:20px}.cite{font-family:var(--mono);font-size:12px;padding:1px 6px;border-radius:6px;background:var(--accent-soft);text-decoration:none}.steps{display:flex;flex-wrap:wrap;gap:8px}.step{font-family:var(--mono);font-size:12px;color:var(--muted);padding:4px 10px;border-radius:99px;background:#edede8}.source{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-decoration:none;color:var(--ink);font-size:14px}.composer{padding:16px 32px 28px;display:flex;flex-wrap:wrap;gap:10px;max-width:920px;width:100%}.composer textarea{flex:1 1 420px;min-height:56px;border-radius:var(--radius);font-size:15px}.composer .btn{min-height:56px;border-radius:var(--radius)}.chat-list a{display:block;padding:9px 12px;border-radius:var(--radius-sm);color:var(--nav-text);text-decoration:none;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list a.active,.chat-list a:hover{background:var(--nav-active);color:#fff}.thinking{color:var(--muted);font-size:14px}dialog{border:0;border-radius:var(--radius);padding:24px;width:min(440px,92vw);box-shadow:0 20px 60px #00000040}dialog::backdrop{background:#15171c73}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login form{width:min(380px,100%);display:flex;flex-direction:column;gap:16px}
