:root{color-scheme:light;--ground: #f5f5f2;--surface: #ffffff;--surface-2: #fafaf8;--surface-3: #f0f0ec;--ink: #14171a;--ink-2: #565e66;--ink-3: #8a9299;--rule: #e3e4df;--rule-strong: #c9cbc4;--accent: #1f5fb0;--accent-ink: #ffffff;--accent-soft: #e9f0f9;--accent-rule: #b9d0ea;--attention: #9a6200;--attention-soft: #fdf2dd;--attention-rule: #e8c988;--good: #2c6a48;--good-soft: #e6f2ea;--good-rule: #a9d3bc;--bad: #a4382a;--bad-soft: #fbebe8;--bad-rule: #eab5ac;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgb(20 23 26 / .05), 0 4px 14px -8px rgb(20 23 26 / .14);--shadow-lift: 0 2px 6px rgb(20 23 26 / .08), 0 18px 40px -18px rgb(20 23 26 / .3);--header-h: 3.5rem;--nav-w: 13.5rem;--tabbar-h: 3.75rem}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--ground: #101214;--surface: #191c1f;--surface-2: #1f2327;--surface-3: #262b30;--ink: #e8eaec;--ink-2: #9aa3ab;--ink-3: #6c757d;--rule: #2a2f34;--rule-strong: #3b4249;--accent: #6ba3e8;--accent-ink: #0b1723;--accent-soft: #16283c;--accent-rule: #2c4a6b;--attention: #e4a748;--attention-soft: #2c2315;--attention-rule: #56411f;--good: #74bd93;--good-soft: #172621;--good-rule: #2c4a3a;--bad: #e38a78;--bad-soft: #2b1a17;--bad-rule: #573029;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 4px 14px -8px rgb(0 0 0 / .6);--shadow-lift: 0 2px 6px rgb(0 0 0 / .5), 0 18px 40px -18px rgb(0 0 0 / .8)}}:root[data-theme=dark]{color-scheme:dark;--ground: #101214;--surface: #191c1f;--surface-2: #1f2327;--surface-3: #262b30;--ink: #e8eaec;--ink-2: #9aa3ab;--ink-3: #6c757d;--rule: #2a2f34;--rule-strong: #3b4249;--accent: #6ba3e8;--accent-ink: #0b1723;--accent-soft: #16283c;--accent-rule: #2c4a6b;--attention: #e4a748;--attention-soft: #2c2315;--attention-rule: #56411f;--good: #74bd93;--good-soft: #172621;--good-rule: #2c4a3a;--bad: #e38a78;--bad-soft: #2b1a17;--bad-rule: #573029;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 4px 14px -8px rgb(0 0 0 / .6);--shadow-lift: 0 2px 6px rgb(0 0 0 / .5), 0 18px 40px -18px rgb(0 0 0 / .8)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font:15px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3{font-weight:620;letter-spacing:-.012em;margin:0}.num,td.num,.kpi strong,.figure{font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--rule-strong);border-radius:10px;border:3px solid transparent;background-clip:content-box}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.4rem;padding:0 .85rem;border:1px solid var(--rule-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.875rem;font-weight:520;white-space:nowrap;transition:background .12s ease,border-color .12s ease,transform 60ms ease}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--bad);border-color:var(--bad-rule);background:var(--bad-soft)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-3);color:var(--ink)}.btn.small{min-height:2rem;padding:0 .6rem;font-size:.8rem}.link{background:none;border:0;padding:0;color:var(--accent);font-size:inherit;text-decoration:underline;text-underline-offset:2px}.field{display:flex;flex-direction:column;gap:.3rem}.field>span{font-size:.75rem;font-weight:560;color:var(--ink-2);letter-spacing:.01em}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{min-height:2.4rem;padding:.4rem .6rem;border:1px solid var(--rule-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);width:100%}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .45rem;border-radius:999px;font-size:.7rem;font-weight:580;letter-spacing:.02em;border:1px solid var(--rule);background:var(--surface-3);color:var(--ink-2);white-space:nowrap}.badge.attention{background:var(--attention-soft);border-color:var(--attention-rule);color:var(--attention)}.badge.good{background:var(--good-soft);border-color:var(--good-rule);color:var(--good)}.badge.bad{background:var(--bad-soft);border-color:var(--bad-rule);color:var(--bad)}.badge.accent{background:var(--accent-soft);border-color:var(--accent-rule);color:var(--accent)}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;overflow:hidden}.panel>header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.85rem 1.1rem;border-bottom:1px solid var(--rule);background:var(--surface-2)}.panel>header h2{font-size:.95rem}.panel>.body{padding:1.1rem}.panel>.body.flush{padding:0}.muted{color:var(--ink-2)}.small{font-size:.8rem}.spacer{flex:1}.error{color:var(--bad);font-size:.85rem}.empty{padding:2.5rem 1.5rem;text-align:center;color:var(--ink-2);display:flex;flex-direction:column;align-items:center;gap:.6rem}.boot{display:grid;place-items:center;height:100%;color:var(--ink-2)}.app{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;height:var(--header-h);flex:none;display:flex;align-items:center;gap:.75rem;padding:0 .9rem;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}.brand{display:flex;align-items:center;gap:.55rem;font-weight:650;font-size:.95rem}.brand .mark{width:1.6rem;height:1.6rem;border-radius:var(--radius-sm);flex:none;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:.72rem;font-weight:700;letter-spacing:-.02em}.topbar select{width:auto;min-width:8rem;max-width:14rem}.who{font-size:.82rem;color:var(--ink-2)}.shell{flex:1;display:flex;min-height:0}.rail{flex:none;width:var(--nav-w);padding:.9rem .65rem;border-right:1px solid var(--rule);background:var(--surface-2);position:sticky;top:var(--header-h);align-self:flex-start;height:calc(100dvh - var(--header-h));overflow-y:auto}.rail nav{display:flex;flex-direction:column;gap:.15rem}.rail a,.rail button.navitem{display:flex;align-items:center;gap:.6rem;padding:.5rem .65rem;border-radius:var(--radius-sm);border:0;background:none;width:100%;text-align:left;color:var(--ink-2);font-size:.875rem;font-weight:520;text-decoration:none}.rail button.navitem:hover{background:var(--surface-3);color:var(--ink)}.rail button.navitem.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.rail .icon{width:1.15rem;text-align:center;flex:none;opacity:.9}.rail .count{margin-left:auto;font-size:.7rem;font-weight:640;background:var(--attention-soft);color:var(--attention);border:1px solid var(--attention-rule);border-radius:999px;padding:0 .35rem}.rail .railgroup{margin:1rem 0 .35rem;padding:0 .65rem;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.view{flex:1;width:100%;max-width:72rem;margin:0 auto;padding:1.25rem 1.1rem 2rem;min-width:0}.view.chat{max-width:54rem;padding:0;display:flex;flex-direction:column;min-height:0}.tabbar{display:none}@media(max-width:860px){.rail{display:none}.view{padding:.9rem .8rem calc(var(--tabbar-h) + 1.5rem)}.view.chat{padding:0}.tabbar{position:fixed;inset:auto 0 0 0;z-index:40;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--rule)}.tabbar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;color:var(--ink-3);font-size:.66rem;font-weight:560;position:relative}.tabbar button .icon{font-size:1.15rem;line-height:1}.tabbar button.on{color:var(--accent)}.tabbar .count{position:absolute;top:.35rem;left:55%;background:var(--attention);color:var(--surface);border-radius:999px;font-size:.6rem;padding:0 .28rem;font-weight:700}}.signin{display:grid;place-items:center;min-height:100dvh;padding:1.5rem}.signin .card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-lift);padding:1.75rem;width:min(23rem,100%)}.signin h1{font-size:1.25rem;margin-bottom:.2rem}.signin form{display:flex;flex-direction:column;gap:.8rem;margin-top:1.2rem}.signin .foot{margin-top:1rem;display:flex;justify-content:center}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:.75rem;margin-bottom:1.25rem}.kpi{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:.8rem .9rem;box-shadow:var(--shadow);position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--rule)}.kpi.attention:before{background:var(--attention)}.kpi.good:before{background:var(--good)}.kpi.accent:before{background:var(--accent)}.kpi .label{display:block;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.3rem}.kpi strong{display:block;font-size:1.5rem;font-weight:640;letter-spacing:-.025em;line-height:1.15}.kpi strong.range{font-size:1rem;line-height:1.3}.kpi strong i{font-size:.8rem;font-style:normal;font-weight:500;color:var(--ink-2)}.kpi small{display:block;margin-top:.25rem;font-size:.75rem;color:var(--ink-2)}.meter{height:4px;border-radius:2px;background:var(--surface-3);margin-top:.5rem;overflow:hidden}.meter>span{display:block;height:100%;background:var(--accent);border-radius:2px}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{position:sticky;top:0;z-index:1;text-align:left;font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);font-weight:620;padding:.6rem .75rem;background:var(--surface-2);border-bottom:1px solid var(--rule);white-space:nowrap}tbody td{padding:.6rem .75rem;border-bottom:1px solid var(--rule);vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-2)}td.num,th.num{text-align:right}td .sub{display:block;font-size:.75rem;color:var(--ink-2);margin-top:.1rem}.rowname{font-weight:560}.chart{width:100%;height:auto;display:block}.chart .grid{stroke:var(--rule);stroke-width:1}.chart .actual{fill:none;stroke:var(--accent);stroke-width:2.25;stroke-linejoin:round}.chart .planned{fill:none;stroke:var(--ink-3);stroke-width:1.5;stroke-dasharray:5 4}.chart .area{fill:var(--accent);opacity:.08}.chart text{fill:var(--ink-2);font-size:10px}.legend{display:flex;gap:1rem;font-size:.78rem;color:var(--ink-2);margin-top:.5rem;flex-wrap:wrap}.legend i{display:inline-block;width:1.4rem;height:0;border-top-width:2px;border-top-style:solid;vertical-align:middle;margin-right:.35rem}.legend .a i{border-color:var(--accent)}.legend .p i{border-color:var(--ink-3);border-top-style:dashed}.thread{flex:1;min-height:0;overflow-y:auto;padding:1.1rem 1.1rem .5rem;display:flex;flex-direction:column;gap:.9rem;scroll-behavior:smooth}.turn{display:flex}.turn.user{justify-content:flex-end}.bubble{max-width:min(42rem,92%);padding:.6rem .85rem;border-radius:var(--radius);border:1px solid var(--rule);background:var(--surface);box-shadow:var(--shadow);word-break:break-word}.turn.user .bubble{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);border-bottom-right-radius:3px}.turn.assistant .bubble{border-bottom-left-radius:3px}.bubble p{margin:0 0 .6rem}.bubble p:last-child{margin-bottom:0}.bubble.note{background:var(--surface-2)}.bubble.applied{background:var(--good-soft);border-color:var(--good-rule)}.bubble.applied .lines{margin:.5rem 0 0;padding-left:1rem;font-size:.84rem}.route{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-bottom:.5rem;font-size:.72rem;color:var(--ink-2)}.citations{margin-top:.6rem;border-top:1px solid var(--rule);padding-top:.55rem}.citations ul{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.citations li{font-size:.8rem;display:flex;gap:.5rem;justify-content:space-between;align-items:baseline}.citations cite{font-style:normal;color:var(--ink-3);font-size:.72rem;white-space:nowrap}.composer{flex:none;position:sticky;bottom:0;padding:.65rem 1.1rem calc(.75rem + env(safe-area-inset-bottom));border-top:1px solid var(--rule);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.composer form{display:flex;gap:.5rem;align-items:flex-end}.composer textarea{resize:none;max-height:8rem;min-height:2.6rem;border-radius:var(--radius);padding:.55rem .7rem;line-height:1.4}.composer .send{min-height:2.6rem;min-width:2.6rem;padding:0 .9rem}.composer .hint{margin-top:.4rem;font-size:.72rem;color:var(--ink-3)}.composer.over{outline:2px dashed var(--accent);outline-offset:-6px;border-radius:var(--radius)}.suggestions{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.55rem}.chip{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:.28rem .65rem;font-size:.78rem}.chip:hover{background:var(--surface-3);color:var(--ink)}@media(max-width:860px){.thread{padding:.8rem .8rem .4rem}.composer{padding:.6rem .8rem calc(var(--tabbar-h) + env(safe-area-inset-bottom))}}.draft{border:1px solid var(--attention-rule);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden;max-width:min(42rem,96%)}.draft>header{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.6rem .85rem;background:var(--attention-soft);border-bottom:1px solid var(--attention-rule);font-size:.82rem;color:var(--attention);font-weight:560}.item{padding:.8rem .85rem;border-bottom:1px solid var(--rule)}.item:last-of-type{border-bottom:0}.item.off{opacity:.45}.item .head{display:flex;align-items:flex-start;gap:.6rem}.item .head input[type=checkbox]{width:1.1rem;height:1.1rem;margin-top:.2rem;flex:none}.item .title{font-weight:580;flex:1;min-width:0}.item .why{font-size:.74rem;color:var(--ink-3);margin-top:.1rem;font-weight:400}.item .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.6rem;margin-top:.7rem}.item .blocked{margin-top:.6rem;padding:.5rem .6rem;border-radius:var(--radius-sm);background:var(--bad-soft);border:1px solid var(--bad-rule);color:var(--bad);font-size:.8rem}.item .quote{margin-top:.55rem;font-size:.78rem;color:var(--ink-2);border-left:2px solid var(--rule-strong);padding-left:.55rem}.basis{display:flex;gap:.4rem}.basis label{flex:1;display:flex;flex-direction:column;gap:.1rem;cursor:pointer;border:1px solid var(--rule-strong);border-radius:var(--radius-sm);padding:.35rem .5rem;font-size:.78rem;background:var(--surface)}.basis label.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:580}.basis input{position:absolute;opacity:0;pointer-events:none}.basis .note{font-size:.68rem;color:var(--ink-3);font-weight:400}.basis label.on .note{color:var(--accent)}.assumed{display:flex;gap:.4rem;align-items:flex-start;margin-top:.45rem;font-size:.76rem;color:var(--attention)}.draft>footer{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.7rem .85rem;border-top:1px solid var(--rule);background:var(--surface-2)}.question{padding:.9rem 1.1rem;border-bottom:1px solid var(--rule)}.question:last-child{border-bottom:0}.question .prompt{font-weight:560}.question .evidence{margin-top:.3rem;font-size:.8rem;color:var(--ink-2);border-left:2px solid var(--rule-strong);padding-left:.55rem}.choices{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.choices button{border:1px solid var(--rule-strong);background:var(--surface);border-radius:var(--radius-sm);padding:.4rem .65rem;font-size:.82rem;text-align:left;max-width:100%}.choices button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:580}.choices button .detail{display:block;font-size:.7rem;color:var(--ink-3);font-weight:400}.choices button.on .detail{color:var(--accent)}.samples{margin-top:.7rem;overflow-x:auto}.samples table{font-size:.76rem}.samples th,.samples td{padding:.3rem .5rem;white-space:nowrap}.filelist{list-style:none;margin:0;padding:0}.filerow{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.7rem 1.1rem;border-bottom:1px solid var(--rule)}.filerow:last-child{border-bottom:0}.filerow .kindmark{width:2rem;height:2rem;flex:none;border-radius:var(--radius-sm);display:grid;place-items:center;font-size:.6rem;font-weight:700;background:var(--surface-3);color:var(--ink-2);letter-spacing:.02em}.filerow .name{font-weight:540;min-width:8rem;flex:1;word-break:break-word}.filerow .meta{font-size:.75rem;color:var(--ink-2)}.filerow .actions{display:flex;gap:.35rem;align-items:center;margin-left:auto}.toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--ink-2);cursor:pointer}.toggle input{width:1rem;height:1rem}.auditlist{list-style:none;margin:0;padding:0}.auditlist li{padding:.7rem 1.1rem;border-bottom:1px solid var(--rule);font-size:.86rem}.auditlist li:last-child{border-bottom:0}.auditlist cite{display:block;font-style:normal;font-size:.75rem;color:var(--ink-3);margin-top:.2rem}.tabs{display:flex;gap:.25rem}.tabs button{border:1px solid transparent;background:none;border-radius:var(--radius-sm);padding:.3rem .6rem;font-size:.82rem;color:var(--ink-2)}.tabs button.on{background:var(--surface);border-color:var(--rule);color:var(--ink);font-weight:580}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0a0c0e80;display:grid;place-items:center;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-lift);width:min(30rem,100%);max-height:85dvh;overflow-y:auto}.dialog>header{padding:1rem 1.1rem .6rem}.dialog>header h2{font-size:1rem}.dialog>.body{padding:0 1.1rem .6rem;font-size:.875rem}.dialog>footer{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap;padding:.85rem 1.1rem;border-top:1px solid var(--rule);background:var(--surface-2)}.impact{list-style:none;margin:.6rem 0;padding:0}.impact li{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px dashed var(--rule);font-size:.85rem}.impact li:last-child{border-bottom:0}.impact b{font-variant-numeric:tabular-nums}.keeps{margin-top:.6rem;padding:.55rem .65rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--rule);font-size:.8rem;color:var(--ink-2)}.reminder{display:flex;gap:.7rem;align-items:flex-start;padding:.75rem 1.1rem;border-bottom:1px solid var(--rule)}.reminder:last-child{border-bottom:0}.reminder .when{flex:none;width:5.5rem;font-size:.78rem;font-variant-numeric:tabular-nums}.reminder .when.overdue{color:var(--bad);font-weight:600}.reminder .what{flex:1;min-width:0}.reminder .src{margin-top:.35rem;font-size:.76rem;color:var(--ink-2);border-left:2px solid var(--rule-strong);padding-left:.55rem}.reminder .ops{display:flex;gap:.3rem;flex:none}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:.6rem}.grow{flex:1;min-width:0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}@media(max-width:560px){.hide-sm{display:none}}
