@layer components{.page{flex-direction:column;height:100%;min-height:0;display:flex}.page-head{flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px 10px;display:flex;& h1{margin-right:6px;font-size:16px;font-weight:700}}.page-body{flex:1;grid-template-columns:minmax(0,1fr) auto;min-height:0;display:grid}.page-main{flex-direction:column;gap:10px;min-width:0;min-height:0;padding:0 18px 14px;display:flex}.page.sheet{gap:12px;padding:0 18px 18px;overflow:auto;&>.sheet-head{z-index:3;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;align-items:center;gap:6px;min-height:50px;margin:0 -18px;padding:9px 18px;display:flex;position:sticky;top:0;&>h1{align-items:center;gap:8px;margin:0 8px 0 0;font-size:15px;font-weight:700;display:flex;& svg{width:18px;height:18px;color:var(--accent-text)}}&>.muted{font-size:12.5px}}&>p,&>div[role=alert]{margin:0}&>[role=alert]:not(.empty){border-radius:var(--radius);background:var(--danger-soft);color:var(--danger-text);white-space:pre-wrap;flex-wrap:wrap;flex:none;align-items:center;gap:10px;padding:9px 12px;font-size:13px;display:flex}&>[role=status]{border-radius:var(--radius);background:var(--info-soft);color:var(--info-text);flex:none;padding:8px 12px;font-size:13px}&>.card{flex:none}&>.empty{border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);flex:none;height:auto;min-height:260px;& p{max-width:560px;margin:0}}& h3{margin:0;font-size:13px;font-weight:650}}.sheet-note{background:var(--warn-soft);border-color:#0000;gap:2px;padding:10px 14px;display:grid;& strong{color:var(--warn-text);font-size:13px}& p{margin:0}}.sheet-table{max-height:60vh;overflow:auto;& .table td:first-child .btn.ghost{margin-left:-8px;font-weight:600}& tr[aria-selected=true] td{background:var(--accent-softer)}}.sheet-section{gap:10px;padding:12px 14px;display:grid}.sheet-query{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;padding:12px 14px;display:flex;& label{color:var(--text-3);gap:4px;font-size:12px;display:grid}& .input{min-width:150px;height:30px;color:var(--text)}& .inline{height:30px;color:var(--text);align-items:center;gap:6px;font-size:13px;display:inline-flex}& input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);margin:0}}.date-range{align-items:center;gap:6px;display:inline-flex;& .input.date{width:136px;height:30px;font-family:var(--font-num);color:var(--text-2);&.custom{color:var(--text);border-color:var(--accent)}}& .input.date::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}}.search-box{position:relative;& svg{width:15px;height:15px;color:var(--text-3);position:absolute;top:8px;left:9px}& .input{width:240px;height:30px;padding-left:30px}}.select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-3) 50%), linear-gradient(135deg, var(--text-3) 50%, transparent 50%);background-position:calc(100% - 13px) 13px,calc(100% - 9px) 13px;background-repeat:no-repeat;background-size:4px 4px;height:30px;padding:0 28px 0 10px}.stats{flex-wrap:wrap;flex:none;gap:10px;display:flex}.stat-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:2px;min-width:128px;padding:10px 14px;display:grid;& span{color:var(--text-3);font-size:11.5px}& strong{font-size:17px;font-weight:700}&.accent{background:var(--accent-softer);border-color:var(--accent-border)}}.method-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex;& .badge{height:24px}}.vt{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.vt-head{background:var(--surface-2);border-bottom:1px solid var(--line);min-height:32px;color:var(--text-3);align-items:center;gap:10px;padding:0 14px;font-size:11.5px;font-weight:600;display:grid;& .right{text-align:right}& .center{text-align:center}}.vt-body{contain:strict;outline:none;flex:1;min-height:0;overflow:auto}.vt-row{border-bottom:1px solid var(--line);cursor:default;white-space:nowrap;align-items:center;gap:10px;height:36px;padding:0 14px;display:grid;position:absolute;top:0;left:0;right:0;&>span{text-overflow:ellipsis;min-width:0;overflow:hidden}& .right{text-align:right}& .center{text-align:center}&:hover{background:var(--surface-hover)}&.on{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}&.muted-row{color:var(--text-3)}}.wg{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);contain:strict;outline:none;flex:1;min-height:0;overflow:auto}.wg-inner{min-height:100%;position:relative}.wg-head{z-index:2;background:var(--surface-2);border-bottom:1px solid var(--line);height:32px;color:var(--text-3);white-space:nowrap;align-items:center;gap:8px;padding:0 12px;font-size:11.5px;font-weight:600;display:grid;position:sticky;top:0;& .right{text-align:right}& .center{text-align:center}}.wg-row{border-bottom:1px solid var(--line);white-space:nowrap;cursor:default;align-items:center;gap:8px;padding:0 12px;font-size:12.5px;display:grid;position:absolute;top:0;left:0;right:0;&>span{text-overflow:ellipsis;min-width:0;overflow:hidden}& .right{text-align:right}& .center{justify-content:center;display:flex}&:hover{background:var(--surface-hover)}&.on{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}}.rg{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);contain:strict;outline:none;flex:1;min-height:0;overflow:auto}.rg-inner{flex-direction:column;min-height:100%;display:flex;position:relative}.rg-head{z-index:2;background:var(--surface-2);border-bottom:1px solid var(--line-strong);color:var(--text-3);flex:none;font-size:11.5px;font-weight:600;display:grid;position:sticky;top:0}.rg-hc{white-space:nowrap;border-right:1px solid var(--line);align-items:center;gap:2px;min-width:0;padding:0 8px;display:flex;overflow:hidden;&.center{justify-content:center}}.rg-band{border-bottom:1px solid var(--line);color:var(--text-2);justify-content:center}.rg-sort{border-style:solid;border-width:0 1px 0 0;border-color:var(--line);font:inherit;color:inherit;text-align:left;background:0 0;&:hover{background:var(--surface-hover);color:var(--text-2)}&.right{justify-content:flex-end}&.on{color:var(--text)}& svg{flex:none;width:12px;height:12px}}.rg-title{text-overflow:ellipsis;overflow:hidden}.rg-row{border-bottom:1px solid var(--line);white-space:nowrap;cursor:default;align-items:center;width:100%;height:30px;font-size:12.5px;display:grid;position:absolute;top:0;left:0;&>span{text-overflow:ellipsis;border-right:1px solid color-mix(in oklch, var(--line) 60%, transparent);align-items:center;min-width:0;height:100%;padding:0 8px;display:flex;overflow:hidden}&>.right{justify-content:flex-end}&>.neg{color:var(--danger-text)}&:hover{background:var(--surface-hover)}}.rg-link{all:unset;cursor:pointer;color:var(--info-text);text-underline-offset:2px;text-decoration:underline;text-decoration-color:color-mix(in oklch, var(--info-text) 40%, transparent);&:hover{text-decoration-color:currentColor}&:focus-visible{outline:2px solid var(--info-text);outline-offset:1px;border-radius:2px}}.rg-index{color:var(--text-3);font-family:var(--font-num);justify-content:center;font-size:11px}.rg-foot{z-index:1;background:var(--surface-2);border-top:1px solid var(--line-strong);white-space:nowrap;flex:none;align-items:center;height:32px;margin-top:auto;font-size:12.5px;font-weight:650;display:grid;position:sticky;bottom:0;&>span{text-overflow:ellipsis;min-width:0;padding:0 8px;overflow:hidden}&>.right{text-align:right}}.rg-foot+.rg-foot{border-top-color:var(--line);margin-top:0}.rg-blank{color:var(--danger-text);background:var(--danger-soft)}.rg-tint-a{background:var(--band-a)}.rg-tint-b{background:var(--band-b)}.vt-empty{text-align:center;color:var(--text-3);padding:48px}.vt-loading{padding:10px 14px}.detail{border-left:1px solid var(--line);background:var(--surface);width:400px;min-height:0;animation:slide-in var(--dur-2) var(--ease-out);flex-direction:column;display:flex}@keyframes slide-in{0%{opacity:0;transform:translate(12px)}}.detail-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:16px 16px 12px;display:flex;& h2{font-size:15px;font-weight:700}& .sub{color:var(--text-3);margin-top:2px;font-size:12px}}.detail-body{flex:1;align-content:start;gap:14px;min-height:0;padding:14px 16px;display:grid;overflow:auto}.detail-foot{border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;gap:8px;padding:12px 16px;display:flex}.kv{grid-template-columns:76px 1fr;gap:6px 10px;font-size:12.5px;display:grid;& dt{color:var(--text-3)}& dd{overflow-wrap:anywhere;min-width:0;margin:0}}.section-title{color:var(--text-2);font-size:12px;font-weight:650}.mini-table{width:100%;font-size:12.5px;& th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--line);padding:4px 0;font-size:11.5px;font-weight:600}& td{border-bottom:1px dashed var(--line);padding:6px 0}& .right{text-align:right}& :is(th,td)+:is(th,td){padding-left:14px}& tfoot td{border:0;padding-top:8px;font-weight:700}}.detail-amount{font-size:26px;font-weight:750}.ticket-next{border-radius:var(--radius);background:var(--accent-softer);align-items:baseline;gap:8px;padding:10px 12px;display:flex;& b{font-size:18px}}.table{background:var(--surface);border-collapse:separate;border-spacing:0;width:100%;& th{z-index:1;text-align:left;height:30px;color:var(--text-3);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:0 10px;font-size:11.5px;font-weight:600;position:sticky;top:0}& td{border-bottom:1px solid var(--line);white-space:nowrap;height:34px;padding:0 10px}& tbody tr:hover td{background:var(--surface-hover)}& tr.on td{background:var(--accent-softer)}& .right{text-align:right}& tfoot td{border:0;font-weight:700}&.compact td{height:32px}}.modal .table{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.bill-head{grid-template-columns:140px minmax(220px,1.4fr) 110px 1fr 1fr;align-items:end;gap:12px;display:grid}.bill-no{height:32px;color:var(--accent-text);align-items:center;font-size:18px;font-weight:750;display:flex}.bill-text{align-items:center;height:32px;display:flex}.views{border-bottom:1px solid var(--line);background:var(--surface);flex:none;align-items:flex-end;gap:2px;padding:0 12px;display:flex}.view-tab{height:36px;color:var(--text-2);background:0 0;border:0;padding:0 14px;font-weight:550;position:relative;&:hover:not(:disabled){color:var(--text)}&:disabled{opacity:.5}&.on{color:var(--text);&:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}}}.tab-page{flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px 12px 12px;display:flex}.tab-query{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex;& .input{height:30px}& .row{gap:6px;&>.faint{white-space:nowrap}}}.query-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);flex:none;gap:8px;padding:10px 12px;display:grid;&>.tab-query>.btn.primary{min-width:96px}}.grid-foot{color:var(--text-2);flex:none;align-items:center;gap:22px;padding:2px 4px;font-size:12.5px;display:flex;& b{color:var(--text)}}.tab-scroll{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex:1;min-height:0;overflow:auto}.msg-text{white-space:pre-line;overflow-wrap:anywhere;line-height:1.65}.cond-label{color:var(--text-3);white-space:nowrap}.side-title{color:var(--text-2);font-size:12.5px;font-weight:650}.cond{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:6px;font-size:12.5px;display:grid;& .select,& .input{width:100%;height:28px;font-size:12.5px}& .row{min-width:0}}.cond-text{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.meter-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex;& .tool-sep{background:var(--line);width:1px;height:18px;margin:0 4px}}.radio{white-space:nowrap;cursor:default;align-items:center;gap:6px;font-size:13px;display:inline-flex;& input{accent-color:var(--accent);margin:0}}.nowrap{white-space:nowrap}.small{font-size:11.5px}.cond-pick{justify-content:space-between;width:100%;min-width:0;& .grow{text-align:left;text-overflow:ellipsis;overflow:hidden}}.tree-group{gap:2px;display:grid}.tree-kid{padding-left:20px}.res-pick{height:380px;padding:6px 10px}.res-group{border-bottom:1px dashed var(--line);gap:4px;padding:6px 0;display:grid}.res-items{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:2px 8px;padding-left:22px;display:grid}.pick-row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:10px;padding:4px 0;display:flex}.pick-chips{flex-wrap:wrap;gap:4px;display:flex}.modal.wizard-modal{width:min(940px,100vw - 48px)}.wizard{border-top:1px solid var(--line);grid-template-columns:176px minmax(0,1fr);min-height:440px;margin-top:12px;display:grid}.wizard-steps{border-right:1px solid var(--line);background:var(--surface-2);align-content:start;gap:4px;margin:0;padding:14px 10px;list-style:none;display:grid;& li{border-radius:var(--radius-sm);height:32px;color:var(--text-3);align-items:center;gap:8px;padding:0 8px;font-size:12.5px;display:flex;& .num{background:var(--surface-active);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;display:grid}}& li.past{color:var(--text-2);& .num{background:var(--success-soft);color:var(--success-text)}}& li.on{background:var(--accent-softer);color:var(--text);font-weight:600;& .num{background:var(--accent);color:var(--on-accent)}}}.wizard-body{flex-direction:column;min-width:0;padding:16px 20px;display:flex}.wizard-page{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex;& h3{font-size:14px;font-weight:650}}.guide{color:var(--text-2)}.wizard-form{grid-template-columns:76px minmax(0,380px);align-items:center;gap:10px 8px;font-size:13px;display:grid;& .select,& .input{height:30px}& .cond-pick{justify-self:stretch}}.wizard-line{color:var(--text-3);grid-column:1/-1;align-items:center;gap:8px;font-size:12px;display:flex;&:after{content:"";background:var(--line);flex:1;height:1px}}.wizard-table{flex:1;max-height:330px}.wizard-confirm{border:1px solid var(--line);border-radius:var(--radius);gap:6px;margin:0;padding:8px 14px 12px;display:grid;& legend{color:var(--text-2);padding:0 6px;font-size:12px}}.wizard-summary{align-items:center;gap:8px;font-weight:600;display:flex}.wizard-log{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);height:300px;margin:0;padding:8px 10px;font-size:12px;line-height:1.75;list-style:none;overflow:auto}.loading-progress{top:var(--loading-top,32px);z-index:3;background:var(--surface);height:30px;color:var(--accent-text);border-bottom:1px solid var(--line);pointer-events:none;flex:none;align-items:center;padding:3px 12px 0;font-size:12px;font-weight:550;display:flex;position:sticky}.loading-progress-track,.request-progress{background:var(--accent-softer);height:3px;overflow:hidden}.loading-progress-track{position:absolute;inset:0 0 auto}.loading-progress-track>i,.request-progress>i{background:linear-gradient(90deg, transparent, var(--accent), var(--accent));border-radius:8px;width:35%;height:100%;animation:1.35s ease-in-out infinite query-progress;display:block}.request-progress{z-index:30;pointer-events:none;grid-area:main;align-self:start}.request-status{color:var(--accent-text);font-weight:550}.request-status>i{background:var(--accent);border-radius:50%;width:6px;height:6px}@keyframes query-progress{0%{transform:translate(-100%)}to{transform:translate(390%)}}@media (prefers-reduced-motion:reduce){.loading-progress-track>i,.request-progress>i{background:var(--accent);width:100%;animation:none}}.ai-fab{z-index:90;touch-action:none;cursor:grab;isolation:isolate;color:#cfae66;width:42px;height:42px;box-shadow:inset 0 1px 0 #ffe4a024, inset 0 -2px 6px #0000008c, var(--shadow-lg);transition:transform var(--dur-3,.32s) var(--ease-out), color var(--dur-3,.32s), box-shadow var(--dur-3,.32s);background:radial-gradient(circle at 34% 28%,#2b2519 0%,#16120c 58%,#0b0907 100%);border:0;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:44px;right:16px;& svg{z-index:2;width:20px;height:20px;transition:filter var(--dur-3,.32s);position:relative}&:before{content:"";border-radius:inherit;z-index:0;background:conic-gradient(from var(--ai-fab-angle), #4d391b, #b48c45, #f0d796, #9c7432, #3f2e15, #c29b52, #4d391b);-webkit-mask-composite:xor;opacity:.7;transition:opacity var(--dur-3,.32s);padding:1px;position:absolute;inset:0;mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-position:0 0,0 0;mask-size:auto,auto;mask-repeat:repeat,repeat;mask-clip:content-box,border-box;mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}&:after,& .ai-fab-stars{content:"";border-radius:inherit;z-index:1;pointer-events:none;opacity:0;transition:opacity var(--dur-3,.32s);position:absolute;inset:4px}&:after{background:radial-gradient(1.5px 1.5px at 27% 31%,#f0d492e6,#0000 70%),radial-gradient(1.3px 1.3px at 71% 23%,#f0d492b3,#0000 70%),radial-gradient(1.6px 1.6px at 64% 74%,#debc70cc,#0000 70%),radial-gradient(1.2px 1.2px at 20% 67%,#debc7099,#0000 70%)}& .ai-fab-stars{background:radial-gradient(1.3px 1.3px at 46% 15%,#f6e0a8cc,#0000 70%),radial-gradient(1.4px 1.4px at 82% 52%,#d6b268b3,#0000 70%),radial-gradient(1.2px 1.2px at 36% 84%,#f6e0a899,#0000 70%),radial-gradient(1.1px 1.1px at 13% 42%,#d6b26880,#0000 70%)}&:hover{color:#e6c983;box-shadow:inset 0 1px 0 #ffe4a02e, inset 0 -2px 6px #0000008c, 0 0 10px #c49c4e29, var(--shadow-lg);transform:translateY(-1px);& svg{filter:drop-shadow(0 0 2px #deba6c59)}&:before{opacity:1;animation:7s linear infinite ai-fab-gild}&:after{animation:3.4s ease-in-out infinite ai-fab-twinkle}& .ai-fab-stars{animation:4.6s ease-in-out -2.1s infinite ai-fab-twinkle}}&:active{cursor:grabbing;transform:none}&:focus-visible{outline-offset:2px;outline:1px solid #c29b52}}@keyframes ai-fab-gild{to{--ai-fab-angle:360deg}}@keyframes ai-fab-twinkle{0%,to{opacity:.12;transform:rotate(0)scale(1)}45%{opacity:.55;transform:rotate(14deg)scale(1.04)}70%{opacity:.25;transform:rotate(9deg)scale(.98)}}@media (prefers-reduced-motion:reduce){.ai-fab:hover:before,.ai-fab:hover:after,.ai-fab:hover .ai-fab-stars{animation:none}.ai-fab:hover:after,.ai-fab:hover .ai-fab-stars{opacity:.35}}.ai-panel{z-index:90;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-xl);width:min(420px,100vw - 40px);height:min(600px,100vh - 120px);box-shadow:var(--shadow-lg);animation:pop-in var(--dur-2) var(--ease-out);transform-origin:100% 100%;flex-direction:column;display:flex;position:fixed;bottom:44px;right:16px;overflow:hidden}.ai-head{border-bottom:1px solid var(--line);background:var(--surface-2);align-items:center;gap:10px;padding:12px 10px 12px 14px;display:flex;& .ai-mark{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-text);border-radius:9px;flex:none;place-items:center;display:grid;& svg{width:17px;height:17px}}& .ai-title{flex-direction:column;flex:1;min-width:0;display:flex;& b{font-weight:650}& span{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}}}.ai-icon{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-3);background:0 0;border:0;place-items:center;display:grid;& svg{width:16px;height:16px}&:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}&:disabled{opacity:.4}}.ai-list{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px;display:flex;overflow:auto}.ai-welcome{color:var(--text-2);flex-direction:column;align-items:flex-start;gap:8px;display:flex;& p{margin:0 0 2px}}.ai-suggest{border:1px solid var(--line);background:var(--surface);color:var(--text);text-align:left;border-radius:999px;padding:7px 12px;&:hover{border-color:var(--accent-border);background:var(--accent-softer);color:var(--accent-text)}}.ai-msg{border-radius:var(--radius-lg);white-space:pre-wrap;overflow-wrap:anywhere;max-width:88%;padding:9px 12px;line-height:1.6;&.user{background:var(--accent);color:var(--on-accent);border-bottom-right-radius:4px;align-self:flex-end}&.bot{background:var(--surface-2);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}& strong{font-weight:650}}.ai-steps{border-bottom:1px dashed var(--line);flex-wrap:wrap;gap:4px;margin:0 0 6px;padding:0 0 6px;list-style:none;display:flex;& li{color:var(--text-3);white-space:normal;align-items:center;gap:3px;font-size:11.5px;display:inline-flex}& li+li:before{content:"·";margin-right:3px}& li.off{color:var(--danger-text)}& svg{flex:none;width:12px;height:12px}}.ai-thinking{color:var(--text-3);align-items:center;gap:4px;display:inline-flex;& i{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite ai-dot}& i:nth-child(2){animation-delay:.15s}& i:nth-child(3){animation-delay:.3s}& span{margin-left:4px}}@keyframes ai-dot{0%,80%,to{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.ai-thinking i{opacity:.6;animation:none}}.ai-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger-text);align-self:stretch;padding:8px 12px;font-size:12.5px}.ai-input{border-top:1px solid var(--line);background:var(--surface);align-items:flex-end;gap:8px;padding:10px;display:flex;& textarea{field-sizing:content;resize:none;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);min-height:38px;max-height:120px;color:var(--text);flex:1;padding:8px 10px;line-height:1.5;&:focus-visible{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-ring);outline:none}}}.ai-send{border-radius:var(--radius-sm);background:var(--accent);width:38px;height:38px;color:var(--on-accent);border:0;flex:none;place-items:center;display:grid;& svg{width:18px;height:18px}&:hover:not(:disabled){background:var(--accent-hover)}&:disabled{opacity:.4}}.ai-panel[data-wide=true]{width:min(880px,100vw - 40px);height:min(760px,100vh - 100px)}.ai-msg.bot:has(.ai-table){max-width:100%}.ai-text{flex-direction:column;gap:6px;display:flex;& code{background:var(--surface-hover);font-family:var(--font-mono);border-radius:4px;padding:0 4px;font-size:.92em}}.ai-link{border:1px solid var(--accent-border);background:var(--accent-softer);color:var(--accent-text);font:inherit;cursor:pointer;white-space:nowrap;vertical-align:baseline;border-radius:5px;align-items:center;gap:1px;margin:0 1px;padding:0 5px;line-height:1.5;display:inline-flex;& svg{flex:none;width:13px;height:13px}&:hover{background:var(--accent-soft)}&:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);outline:none}}.ai-table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);white-space:normal;max-height:420px;overflow:auto}.ai-table{border-collapse:collapse;width:100%;font-size:12.5px;line-height:1.45;& th,& td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:4px 8px}& th{background:var(--surface-2);color:var(--text-2);font-weight:600;position:sticky;top:0}& td.num{text-align:right;font-variant-numeric:tabular-nums}& tbody tr:last-child td{border-bottom:0}& tbody tr:hover td{background:var(--surface-hover)}}.app{grid-template-columns:auto 1fr;grid-template-rows:var(--titlebar-h) 1fr 26px;background:var(--bg);grid-template-areas:"title title""rail main""status status";height:100vh;display:grid}.titlebar{min-width:0;padding-left:10px;padding-right:calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw) + 8px);background:var(--bg-sunken);border-bottom:1px solid var(--line);app-region:drag;-webkit-app-region:drag;user-select:none;grid-area:title;align-items:center;gap:6px;display:flex;& button,& input,& [role=tab],& .no-drag{app-region:no-drag;-webkit-app-region:no-drag}}.brand{letter-spacing:.02em;white-space:nowrap;align-items:center;gap:8px;padding-right:6px;font-weight:650;display:flex;& img{width:22px;height:22px;box-shadow:var(--shadow-sm);border-radius:6px}}.site-switch{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);max-width:220px;height:28px;color:var(--text);align-items:center;gap:6px;padding:0 8px 0 10px;font-weight:600;display:inline-flex;& span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}& svg{width:14px;height:14px;color:var(--text-3);flex:none}&:hover{border-color:var(--line-strong)}}.tabs{scrollbar-width:none;flex:0 auto;align-self:stretch;align-items:flex-end;gap:2px;min-width:0;margin-left:4px;padding-top:6px;display:flex;overflow-x:auto}.tab{border-radius:var(--radius) var(--radius) 0 0;min-width:max-content;height:33px;color:var(--text-2);cursor:default;white-space:nowrap;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:1px solid #0000;border-bottom:0;flex:none;align-items:center;gap:6px;padding:0 6px 0 10px;display:flex;position:relative;& .tab-title{white-space:nowrap}& .tab-close{width:18px;height:18px;color:var(--text-3);visibility:hidden;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid;& svg{width:12px;height:12px}&:hover{background:var(--surface-active);color:var(--text)}}&:hover{background:var(--surface-hover);color:var(--text);& .tab-close{visibility:visible}}&[aria-selected=true]{background:var(--bg);color:var(--text);border-color:var(--line);height:34px;margin-bottom:-1px;font-weight:550;& .tab-close{visibility:visible}&:before{content:"";background:var(--accent);border-radius:0 0 2px 2px;height:2px;position:absolute;top:-1px;left:10px;right:10px}}}.tab-new,.tab-close-all{flex:none;width:26px;height:26px;margin:0 2px 4px}.tab-close-all:disabled{opacity:.35}.titlebar-spacer{flex:1;align-self:stretch;min-width:24px}.search-trigger{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:260px;height:28px;color:var(--text-3);flex:none;align-items:center;gap:8px;padding:0 6px 0 10px;display:flex;& svg{width:14px;height:14px}& span{text-align:left;flex:1}&:hover{border-color:var(--line-strong);color:var(--text-2)}}.rail{width:var(--rail-w);background:var(--bg-sunken);border-right:1px solid var(--line);scrollbar-width:none;transition:width var(--dur-2) var(--ease-out);flex-direction:column;grid-area:rail;gap:2px;padding:8px 6px;display:flex;overflow:hidden auto;&[data-expanded=true]{width:168px}}.rail-item{border-radius:var(--radius);height:38px;color:var(--text-2);white-space:nowrap;text-align:left;background:0 0;border:0;flex:none;align-items:center;gap:10px;padding:0 12px;display:flex;position:relative;& svg{stroke-width:1.75px;flex:none;width:19px;height:19px}& span{opacity:0;transition:opacity var(--dur-1);font-weight:500}.rail[data-expanded=true] & span{opacity:1}&:hover{background:var(--surface-hover);color:var(--text)}&[aria-current=page]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);& svg{color:var(--accent-text)}&:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:10px;left:-6px}}}.rail-sep{background:var(--line);flex:none;height:1px;margin:6px 8px}.rail-bottom{flex-direction:column;gap:2px;margin-top:auto;display:flex}.main{grid-area:main;min-width:0;min-height:0;position:relative;overflow:hidden}.pane{position:absolute;inset:0;overflow:hidden}.statusbar{border-top:1px solid var(--line);background:var(--bg-sunken);color:var(--text-3);grid-area:status;align-items:center;gap:16px;padding:0 12px;font-size:11.5px;display:flex;& .item{white-space:nowrap;align-items:center;gap:5px;display:inline-flex;& svg{width:12px;height:12px}}& .dot{background:var(--success);width:7px;height:7px;box-shadow:0 0 0 2px var(--success-soft);border-radius:50%}& .dot.off{background:var(--danger);box-shadow:0 0 0 2px var(--danger-soft)}}.palette-overlay{z-index:200;background:color-mix(in oklch, var(--scrim) .24, transparent);animation:fade-in var(--dur-1);justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette{background:var(--overlay);backdrop-filter:blur(24px)saturate(1.5);border:1px solid var(--line-strong);border-radius:var(--radius-xl);width:min(640px,100vw - 48px);box-shadow:var(--shadow-lg);animation:pop-in var(--dur-2) var(--ease-out);overflow:hidden;& [cmdk-input]{border:0;border-bottom:1px solid var(--line);background:0 0;outline:none;width:100%;height:52px;padding:0 18px 0 46px;font-size:15px;&:focus-visible{box-shadow:none}}& .palette-search-icon{width:18px;height:18px;color:var(--text-3);position:absolute;top:17px;left:17px}& [cmdk-list]{max-height:min(460px,60vh);padding:6px;scroll-padding:6px;overflow:auto}& [cmdk-group-heading]{color:var(--text-3);padding:8px 10px 4px;font-size:11.5px;font-weight:600}& [cmdk-item]{border-radius:var(--radius-sm);cursor:default;align-items:center;gap:10px;min-height:40px;padding:6px 10px;display:flex;&>svg{width:17px;height:17px;color:var(--text-3);flex:none}& .t{font-weight:550}& .s{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}& .money{color:var(--danger-text);margin-left:auto;font-weight:600}&[data-selected=true]{background:var(--accent-soft);&>svg{color:var(--accent-text)}}}& [cmdk-empty]{text-align:center;color:var(--text-3);padding:32px}& .palette-foot{border-top:1px solid var(--line);color:var(--text-3);gap:14px;padding:8px 14px;font-size:11.5px;display:flex;& span{align-items:center;gap:4px;display:inline-flex}}}}@layer features{.login{background:var(--bg);grid-template-columns:1.1fr minmax(380px,.9fr);height:100vh;display:grid;position:relative}.login-drag{height:var(--titlebar-h);app-region:drag;-webkit-app-region:drag;z-index:2;position:absolute;inset:0 0 auto}.login-art{color:oklch(97% .006 260);background:radial-gradient(120% 90% at 0 100%,oklch(33% .09 258) 0%,#0000 60%),linear-gradient(160deg,oklch(25% .05 260),oklch(16% .025 262));place-items:center;display:grid;position:relative;overflow:hidden;& .glow{filter:blur(70px);opacity:.55;border-radius:50%;position:absolute}& .g1{background:oklch(55% .15 258);width:420px;height:420px;animation:18s ease-in-out infinite alternate drift;top:-120px;right:-100px}& .g2{background:oklch(70% .11 80);width:360px;height:360px;animation:22s ease-in-out infinite alternate-reverse drift;bottom:-140px;left:-80px}}@keyframes drift{to{transform:translate(-40px,30px)scale(1.08)}}.login-tagline{justify-items:start;gap:14px;max-width:420px;padding:0 48px;display:grid;position:relative;& img{border-radius:16px;width:64px;height:64px;box-shadow:0 12px 30px oklch(0% 0 0/.35)}& h1{letter-spacing:.04em;font-size:34px;font-weight:700}& p{color:oklch(85% .02 260);font-size:15px}}.login-card{place-self:center;gap:14px;width:min(360px,100% - 64px);display:grid}.login-head{margin-bottom:10px;& h2{font-size:24px;font-weight:700}& p{margin-top:4px}}.login-field{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);height:46px;transition:border-color var(--dur-1), box-shadow var(--dur-1);align-items:center;gap:10px;padding:0 8px 0 14px;display:flex;&>svg{width:17px;height:17px;color:var(--text-3);flex:none}& input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:100%;font-size:14px;&:focus-visible{box-shadow:none}}&:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);&>svg{color:var(--accent-text)}}}.login-row{justify-content:space-between;align-items:center;gap:12px;min-height:22px;display:flex}.login-error{color:var(--danger-text);font-size:12.5px}.login-submit{width:100%;margin-top:6px}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.menu-icon{color:light-dark(oklch(.5 calc(.15 * var(--menu-chroma,1)) var(--menu-hue)),oklch(.8 calc(.12 * var(--menu-chroma,1)) var(--menu-hue)));background:light-dark(oklch(.955 calc(.035 * var(--menu-chroma,1)) var(--menu-hue)),oklch(.3 calc(.045 * var(--menu-chroma,1)) var(--menu-hue)))}.rail.nav-rail{gap:8px}.rail.nav-rail[data-expanded=false]{width:70px}.nav-rail[data-expanded=false] .rail-item{flex-direction:column;justify-content:center;gap:3px;width:100%;height:auto;min-height:52px;padding:4px 0;&>span{opacity:1}& .rail-label{font-size:10px;line-height:14px}}.nav-rail[data-expanded=true] .rail-item{height:auto;min-height:48px;padding:6px 10px}.nav-rail .rail-item .rail-icon{opacity:1;width:30px;height:26px;transition:background var(--dur-1), color var(--dur-1);border-radius:8px;flex:none;place-items:center;display:grid;& svg{color:inherit;width:18px;height:18px}}.nav-rail .rail-label{white-space:normal;overflow-wrap:anywhere;min-width:0;line-height:1.5}.nav-rail-home,.nav-rail-section{flex-direction:column;flex:none;gap:2px;display:flex}.nav-rail-section-title{color:var(--text-3);white-space:nowrap;padding:4px 8px;font-size:10px;font-weight:600}.nav-rail[data-expanded=false] .nav-rail-section-title{text-align:center;padding:4px 0;font-size:9px}.nav-rail .rail-item[data-active=true]{color:var(--text);background:var(--surface-hover);& svg{color:var(--accent-text)}}.nav-rail .rail-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nav-rail .rail-item:not([aria-current=page],[data-active=true]) .rail-icon{color:var(--text-2);background:0 0}.nav-rail .rail-item:not([aria-current=page],[data-active=true]):hover .rail-icon{color:var(--text)}.nav-rail[data-expanded=false] .nav-rail-section-title{background:var(--line);height:1px;margin:4px 10px;padding:0;font-size:0}}@property --ai-fab-angle{syntax:"<angle>";inherits:false;initial-value:0deg}
