:root{--bg:#fff;--panel:#fff;--panel-2:#f4f4ee;--panel-3:#f7f7f0;--canvas:#efefea;--ink:#000;--ink-2:#333;--ink-3:#555;--ink-4:#777;--line:#ddd;--line-2:#ddd;--line-3:#bbb;--line-4:#666;--rule:#000;--dot:#bbb;--link:#03a;--link-seen:#551a8b;--hr-gap:8px;--btn:#eeeee6;--btn-hover:#ddddd4;--warn:#b06000;--warn-bg:#faf2e4;--warn-line:#e3d2ae;--warn-ink:#7a5210;--bad:#a02010;--ok:#1f6b3a;--bronze:#8a6a2f;--brand:#000;--brand-2:#000;--brand-soft:#f4f4ee;--navy:#000;--cut:#b08d4c;--fill:#1f63d8;--c1:#16171a;--c2:#7fa38e;--c3:#b08d4c;--c4:#1f63d8;--c5:#a02010;--c6:#5a5a50;--c7:#c9c4b4;--scope-1:#16171a;--scope-2:#4a4a42;--scope-3:#7fa38e;--scope-4:#b08d4c;--scope-5:#c9c4b4;--rail:330px;--results:360px;--pad:12px;--sans:Helvetica, Arial, "Liberation Sans", sans-serif;--mono:ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}a{color:var(--ink);text-decoration:underline}a:hover{color:var(--ink)}h1,h2,h3,h4{margin:0;font-size:14px;font-weight:700}h1{font-size:15px}p{margin:0 0 8px}b,strong{font-weight:700}.m,.mono,.amt,.val,.n{font-family:var(--mono);font-variant-numeric:tabular-nums}.r{text-align:right}.l{text-align:left}.dim,.sub{color:var(--ink-3)}.tight{line-height:1.3}.grow{flex:1}.hr{background:var(--line);height:1px;margin:var(--hr-gap) 0}.hr+.sec{margin-top:calc(-1 * var(--hr-gap))}.sec-rule{align-items:center;gap:10px;margin:18px 0 4px;display:flex}.sec-rule h2{white-space:nowrap;margin:0;font-size:14px;font-weight:700}.sec-rule .rule{background:var(--rule);flex:1;height:1px}.rule{background:var(--rule);height:1px}.eyebrow{color:var(--ink-4);margin-bottom:2px;font-size:13px}.eyebrow.dim{color:var(--ink-4)}button{font:inherit}.cta,.mini,.ghost-btn,.seg button,.pills button,.adm-tabs button,.linkish,.app-nav button,.lp-nav button,.acct-pill{font:inherit;border:1px solid var(--rule);background:var(--btn);color:var(--ink);cursor:pointer;text-align:center;border-radius:0;padding:4px 12px}.cta:hover:not(:disabled),.mini:hover:not(:disabled),.ghost-btn:hover,.seg button:hover,.pills button:hover,.adm-tabs button:hover,.linkish:hover:not(:disabled),.app-nav button:hover,.lp-nav button:hover,.acct-pill:hover{background:var(--btn-hover)}.cta{background:var(--ink);color:#fff;border-color:var(--ink);width:100%;padding:6px 12px;display:block}.cta:hover:not(:disabled){color:#fff;background:#222}.cta:disabled,.mini:disabled,button:disabled{background:var(--panel-2);color:var(--ink-4);border-color:var(--line-3);cursor:not-allowed}.cta.compact{width:auto;padding:4px 12px}.cta.ghost{background:var(--btn);color:var(--ink);border-color:var(--rule)}.cta.ghost:hover:not(:disabled){background:var(--btn-hover);color:var(--ink)}.cta.attn,.mini.attn{background:var(--ink);border-color:var(--ink);color:#fff}.cta.attn:hover:not(:disabled),.mini.attn:hover:not(:disabled){background:#222}[role=alertdialog] .mini.attn,[role=alertdialog] .cta.attn{color:var(--bad);border-color:var(--bad);background:#fff}[role=alertdialog] .mini.attn:hover,[role=alertdialog] .cta.attn:hover{background:#fbefed}.mini.run.attn{background:var(--bronze);border-color:var(--bronze);color:#fff}.mini.run.attn:hover:not(:disabled){background:#6f5426}.mini{padding:3px 9px}.mini.run{background:var(--ink);color:#fff;border-color:var(--ink)}.mini.run:hover:not(:disabled){background:#222}.mini.danger,.danger{color:var(--bad);border-color:var(--bad);background:var(--panel)}.mini.danger:hover{background:#fbefed}.mini-chev{color:var(--ink-4)}.mini[aria-pressed=true],.seg button[aria-pressed=true],.pills button[aria-pressed=true],.pills button.on,.adm-tabs button.on,.adm-tabs button[aria-pressed=true],.auth-tabs button.on,.auth-tabs button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.ghost-btn{padding:2px 8px;font-size:13px}.linkish{padding:3px 9px}.seg{gap:0;display:flex}.seg button{white-space:nowrap;text-overflow:ellipsis;border-right-width:0;flex:1;padding:3px 6px;overflow:hidden}.seg button:last-child{border-right-width:1px}.pills{flex-wrap:wrap;gap:5px;display:flex}.pills button{padding:2px 9px;font-size:13px}select,textarea,input:not([type]),input[type=text],input[type=number],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=url]{width:100%;font:inherit;color:var(--ink);border:1px solid var(--line-4);background:#fff;border-radius:0;padding:4px 6px}select:focus,input:focus,textarea:focus{border-color:var(--ink);outline:none}input[type=range]:focus{border:0}select{cursor:pointer}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:12px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:#999;height:1px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid var(--ink);background:#fff;width:9px;height:9px;margin-top:-4px}input[type=range]::-moz-range-track{background:#999;height:1px}input[type=range]::-moz-range-thumb{border:1px solid var(--ink);background:#fff;border-radius:0;width:9px;height:9px}input[type=range]:disabled{opacity:.45;cursor:not-allowed}.kbd{font-family:var(--mono);border:1px solid var(--line-3);background:var(--panel-2);padding:0 4px;font-size:12px}table{border-collapse:collapse;width:100%}.tbl{font-size:14px}.tbl th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--rule);white-space:nowrap;padding:3px 8px;font-weight:400}.tbl th.r,.tbl td.r{text-align:right}.tbl td{border-bottom:1px dotted var(--dot);vertical-align:top;padding:4px 8px}.tbl td.m{white-space:nowrap}.tbl .tag{font-family:var(--mono);color:var(--ink-3);white-space:nowrap;font-size:13px}.tbl tr:hover td{background:var(--panel-3)}.tbl .grp td{background:var(--panel-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:4px 8px;font-weight:700}.tbl .grp:hover td{background:var(--panel-2)}.tbl .rolled{font-family:var(--mono);color:var(--ink-3);border:1px solid var(--line-3);white-space:nowrap;margin-left:8px;padding:0 5px;font-size:12px}.sched-head{align-items:baseline;gap:10px;margin:20px 0 6px;display:flex}.sched-head h3{font-size:14px;font-weight:700}.sched-head span{color:var(--ink-3);font-size:13px}.sched-scroll{overflow-x:auto}table.sched{font-size:13px}table.sched th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--rule);white-space:nowrap;background:#fff;padding:3px 8px;font-weight:400;position:sticky;top:0}table.sched td{border-bottom:1px dotted var(--dot);vertical-align:top;padding:3px 8px}table.sched td.n,table.sched td.t{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}table.sched td.n{text-align:right}table.sched td.basis{color:var(--ink-3);min-width:260px}table.sched tbody tr:hover td{background:var(--panel-3)}.app-bar{border-bottom:2px solid var(--rule);background:#fff}.app-bar-inner{justify-content:space-between;align-items:baseline;gap:16px;max-width:1720px;margin:0 auto;padding:10px 16px;display:flex}.app-bar-left{align-items:baseline;gap:10px;min-width:0;display:flex}.app-bar-right{align-items:baseline;gap:10px;display:flex}.brand-mark,.app-bar .brand-mark{font-family:var(--sans);letter-spacing:0;color:var(--ink);margin:0;font-size:15px;font-weight:700}.app-nav{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13px;display:flex}.app-nav button{padding:3px 9px}.app-nav button:hover{color:var(--ink)}.app-nav .on{border:1px solid var(--rule);background:var(--ink);color:#fff;padding:3px 9px;font-weight:700}.adm-tag,.ro-chip{color:var(--ink-4);border:1px solid var(--line-3);background:var(--panel-2);padding:0 6px;font-size:13px}.acct{position:relative}.acct-pill{align-items:baseline;gap:4px;padding:3px 9px;display:inline-flex}.acct-chev{color:var(--ink-4);font-size:11.5px;text-decoration:none}.acct-menu{z-index:900;border:1px solid var(--rule);background:#fff;flex-direction:column;align-items:stretch;gap:0;min-width:168px;padding:0;display:flex;position:absolute;top:calc(100% + 6px);right:0}.acct-menu button{font:inherit;text-align:left;cursor:pointer;border:0;border-bottom:1px solid var(--line-2);color:var(--ink);white-space:nowrap;background:0 0;padding:6px 10px;text-decoration:none}.acct-menu button:last-child{border-bottom:0}.acct-menu button:hover{background:var(--panel-2)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin:14px 0 10px;display:flex}.page-head h1{font-size:15px;font-weight:700}.sec{font-family:var(--sans);letter-spacing:0;color:var(--ink);border-bottom:1px solid var(--rule);background:0 0;align-items:center;gap:8px;padding:5px 0;font-size:14px;font-weight:700;display:flex;position:static}.sec .n{color:var(--ink-4);font-weight:400}.sec .dot{color:var(--ink-4)}.sec-chev,.sec-hint{color:var(--ink-4);font-size:13px;font-weight:400}.banner{border:1px solid var(--rule);background:var(--panel-2);margin:8px 0;padding:5px 8px}.banner.bad{border-color:var(--bad);color:var(--bad);background:#fbefed}.sheet-bad{color:var(--bad);margin:6px 0 0}.banner.ok{border-color:var(--ok);color:var(--ok);background:#eff6f1}.sheet-ok{color:var(--ok);margin:6px 0 0}.note{color:var(--ink-2);gap:8px;padding:5px 0;font-size:14px;line-height:1.5;display:flex}.note .bullet{color:var(--ink-4)}.spin{border:1px solid var(--line-3);border-top-color:var(--ink);border-radius:50%;width:14px;height:14px;margin:0 auto 10px;animation:.78s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.boot,.crash{max-width:560px;margin:0 auto;padding:60px 16px}.boot-msg,.crash-msg{color:var(--ink-3)}.landing{background:#fff;height:100%;overflow-y:auto}.lp-body{max-width:1020px;margin:0 auto;padding:14px 16px 60px}.lp-bar{background:#fff}.lp-bar-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;max-width:1020px;margin:0 auto;padding:14px 16px 6px;display:flex}.lp-bar-left{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.lp-nav{color:var(--ink-4);flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;display:flex}.lp-nav button{padding:3px 9px}.lp-nav button:hover{color:var(--ink)}.lp-bar+*{border-top:2px solid var(--rule)}.lp-hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:12px 26px;padding:12px 0 22px;display:grid}.lp-hero h1{font-family:var(--sans);letter-spacing:0;margin:0 0 8px;font-size:15px;font-weight:700;line-height:1.45}.lp-lede{font-family:var(--sans);color:var(--ink-2);max-width:74ch;margin:0 0 12px;font-size:14px;line-height:1.45}.lp-cta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lp-cta-row .cta{width:auto;padding:8px 18px;font-weight:700;display:inline-block}.lp-frame{border:1px solid var(--rule);background:var(--panel-3);text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--ink);padding:8px 10px;display:block}.lp-frame:hover{background:var(--panel-2)}.lp-frame.empty{color:var(--ink-3);cursor:default}.lp-frame.empty:hover{background:var(--panel-3)}.lp-frame-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.lp-frame-who{font-weight:700}.lp-frame-figs{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 12px;margin-top:6px;display:grid}.lp-frame-figs>div{min-width:0}.lp-frame-figs span{color:var(--ink-3);font-size:13px;display:block}.lp-frame-figs b{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700;display:block}.lp-sec{padding:0 0 22px}.lp-sec:first-of-type{border-top:0}.lp-sec h2{font-family:var(--sans);letter-spacing:0;margin:0;font-size:14px;font-weight:700}.lp-sec-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:7px;padding-bottom:3px;display:flex}.lp-dark{color:var(--ink);background:0 0;border-radius:0;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px 26px;padding:0;display:grid}.lp-dark h2{color:var(--ink);margin-bottom:5px}.lp-dark p{color:var(--ink-2);max-width:74ch;margin:0 0 8px}.lp-access{grid-template-columns:minmax(300px,420px) minmax(0,1fr);align-items:start;gap:10px 30px;padding-bottom:22px;display:grid}.lp-access .auth{position:static}.lp-foot{border-top:2px solid var(--rule);color:var(--ink-4);flex-wrap:wrap;justify-content:space-between;gap:4px 20px;margin-top:10px;padding:7px 0 0;font-size:13px;display:flex}.lp-foot .brand-mark{font-size:13px}.projects-page{background:#fff;height:100%;overflow-y:auto}.projects-body{max-width:1440px;margin:0 auto;padding:0 16px 60px}.projects-sub{color:var(--ink-3)}.stat-strip{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:4px 20px;margin-bottom:12px;padding:6px 0;display:grid}.stat{min-width:0}.stat-k{color:var(--ink-3);font-size:13px}.stat-v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.stat-u{color:var(--ink-3);margin-left:3px;font-size:13px;font-weight:400}.stat-n{color:var(--ink-4);font-size:13px}.site-rows{display:block}.site-row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(180px,260px) minmax(0,1fr) minmax(180px,240px);display:grid}.site-row.busy{opacity:.5;pointer-events:none}.sr-id{border-right:1px solid var(--line-2);flex-direction:column;justify-content:space-between;gap:10px;min-width:0;padding:10px 12px 10px 0;display:flex}.sr-id h3{margin:0 0 3px;font-size:14px;font-weight:700}.sr-where{color:var(--ink-3);font-size:13px;line-height:1.5}.sr-edited{color:var(--ink-4);font-size:13px}.sr-unsolved{color:var(--ink-4);margin:0;font-size:13px}.sr-cost{border-right:1px solid var(--line-2);min-width:0;padding:10px 12px}.sr-figure{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.sr-figure b{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:21px;font-weight:700;line-height:1.1}.sr-figure span{color:var(--ink-3);font-size:13px}.sr-legend{margin-top:7px}.sr-legend>div{min-width:0}.sr-legend b{color:var(--ink);font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;display:block}.sr-side{flex-direction:column;justify-content:space-between;gap:10px;min-width:0;padding:10px 0 10px 12px;display:flex}.sr-specs{gap:2px;min-width:0;display:grid}.sr-specs>div{flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px;display:flex}.sr-specs span:first-child{color:var(--ink-3)}.sr-specs span:last-child{font-family:var(--mono);font-variant-numeric:tabular-nums}.sr-actions{flex-wrap:wrap;gap:5px;display:flex}.sr-actions .cta{flex:100%}.sr-actions .mini{flex:1 1 0;min-width:0}.actions{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.sr-bar,.stackbar{background:var(--panel-2);border:1px solid var(--line-3);width:100%;height:14px;margin:8px 0 0;display:flex;overflow:hidden}.hero .stackbar{height:12px;margin-top:10px}.sr-bar i,.stackbar i{min-width:2px;display:block}.sr-bar>i,.stackbar>i{height:100%;display:block}.sr-legend,.legend{color:var(--ink-3);flex-wrap:wrap;gap:3px 12px;font-size:13px;display:flex}.sr-legend span,.legend span{align-items:baseline;gap:4px;display:flex}.sr-legend i,.legend i{flex:none;width:7px;height:7px;display:inline-block}.add-site{text-align:left;width:100%;font:inherit;cursor:pointer;border:0;border-bottom:1px dotted var(--dot);color:var(--ink);background:0 0;align-items:baseline;gap:8px;padding:8px 0;display:flex}.add-site:hover{background:var(--panel-3)}.add-mark{color:var(--ink-4)}.add-text{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.add-title{color:var(--ink);font-weight:700}.add-sub{color:var(--ink-3);font-size:13px}.add-go{color:var(--ink-4);margin-left:auto}.app{background:var(--bg);grid-template-rows:auto minmax(0,1fr);grid-template-columns:0 minmax(0,1fr) 0;height:100%;transition:grid-template-columns .26s cubic-bezier(.22,.61,.36,1);display:grid}.app.rail-open{grid-template-columns:var(--rail) minmax(0, 1fr) 0px}.app.results-open{grid-template-columns:0px minmax(0, 1fr) var(--results)}.app.rail-open.results-open{grid-template-columns:var(--rail) minmax(0, 1fr) var(--results)}.rail-inner{width:var(--rail)}.results-inner{width:var(--results)}.pane-handle{z-index:800;border:1px solid var(--rule);width:14px;height:46px;color:var(--ink-3);cursor:pointer;background:#fff;border-radius:0;place-items:center;padding:0;font-size:13px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.pane-handle:hover{background:var(--ink);border-color:var(--ink);color:#fff}.pane-handle.left{border-left:0;left:0}.pane-handle.right{border-right:0;right:0}.pane-handle.closed{height:62px;color:var(--ink)}.save-state{color:var(--ink-4);font-size:13px}.save-state.dirty{color:var(--warn)}.stage{background:var(--canvas);min-width:0;position:relative;overflow:hidden}.studio-bar{border-bottom:2px solid var(--rule);background:#fff;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;padding:5px 10px;display:flex}.studio-bar .name,input.project-name,input.name{font:inherit;border:1px solid var(--line-4);color:var(--ink);background:#fff;width:190px;padding:2px 6px;font-weight:700;text-decoration:none}.studio-bar .name:focus,input.project-name:focus{border-color:var(--ink);outline:none}input.project-name[readonly]{border-color:var(--line-2);color:var(--ink-3)}.stale-chip,.engine-stale,.pc-stale{color:var(--warn);font-size:13px}.stale-chip{margin-left:4px}.wrap{height:100%;min-height:0;display:grid}.rail,.results{border-right:1px solid var(--rule);background:#fff;min-width:0;overflow:hidden auto}.results{border-right:0;border-left:1px solid var(--rule)}.rail-inner,.results-inner{padding:0 0 20px}.field{padding:5px 8px}.field-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.field-head .name{color:var(--ink-3)}.field-head .pending{animation:1.25s ease-in-out infinite value-pending}@keyframes value-pending{0%,to{opacity:1}50%{opacity:.42}}.lbl,.k{color:var(--ink-3)}.v,.val{text-align:right}.unit{color:var(--ink-4);margin-left:5px}.cost-row .unit,.cost-head .unit{margin-left:0}.val-edit{text-align:right;width:68px;font-family:var(--mono)}.pad{padding:0 8px}.grid2{grid-template-columns:1fr 1fr;gap:6px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.row,.kv{justify-content:space-between;gap:8px;padding:1.5px 0;display:flex}.kv .k{color:var(--ink-3)}.kv .v{white-space:nowrap}.sec-fold{text-align:left;width:100%;font:inherit;cursor:pointer;border:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--line-2);background:var(--panel-2);color:var(--ink);align-items:center;gap:6px;padding:5px 8px;font-weight:700;display:flex}.sec-fold:hover{background:var(--btn-hover)}.sec-fold .sec-chev{color:var(--ink-4)}.head{border-bottom:1px solid var(--rule);background:var(--panel-2);z-index:2;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;font-weight:700;display:flex;position:sticky;top:0}.block-card,.stage-tools,.stage-bl,.stage-tr-stack,.hud,.scalebar,.compass{font-family:var(--sans)}.stage-tools{z-index:700;flex-wrap:wrap;align-items:flex-start;gap:5px;display:flex;position:absolute;top:8px;left:8px;right:8px}.stage:has(.stage-tr-stack) .stage-tools{right:230px}.stage:has(.leaflet-container) .stage-tools{left:52px}.stage-bl{z-index:500;align-items:center;gap:5px;display:flex;position:absolute;bottom:8px;left:8px}.stage-tr-stack{z-index:500;flex-direction:column;align-items:flex-end;gap:6px;width:214px;display:flex;position:absolute;top:8px;right:8px}.stage-tr-stack .hud{width:100%;position:static}.scalebar,.compass{border:1px solid var(--line-3);color:var(--ink-3);background:#fff;padding:1px 6px;font-size:13px}.compass{z-index:500;position:absolute;bottom:8px;right:8px}.hud{z-index:500;border:1px solid var(--rule);background:#fff;position:absolute}.card.hud{padding:7px 8px}.hud>.hud-head{width:calc(100% + 16px);margin:-7px -8px 6px}.hud>.hud-head:last-child{margin-bottom:-7px}.hud-head{width:100%;font:inherit;color:inherit;text-align:left;border:0;border-bottom:1px solid var(--rule);background:var(--panel-2);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:3px 7px;display:flex}.hud-head:hover{background:var(--btn-hover)}.hud-title{font-weight:700}.hud-chev{color:var(--ink-4)}.place-search{font:inherit;border:1px solid var(--rule);color:var(--ink);background:#fff;width:210px;padding:2px 6px}.risk-hist{border-bottom:1px solid var(--rule);align-items:flex-end;gap:1px;height:46px;margin-top:6px;display:flex}.risk-hist i{background:#e2dfd4;flex:1;min-height:1px;display:block}.risk-hist i.band{background:#c9c4b4}.risk-hist i.edge{background:#8c8778}.risk-hist i.mid{background:var(--ink)}.bar-track{background:var(--panel-2);border:0;height:4px;margin-top:4px}.bar-track i{background:var(--bronze);height:100%;display:block}.empty{text-align:center;color:var(--ink-3);padding:22px 9px;line-height:1.6}.ticks{color:var(--ink-3);justify-content:space-between;margin-top:4px;font-size:13px;display:flex}.results .grid3>div{text-align:center}.hero{border-bottom:1px solid var(--rule);padding:10px 9px 12px}.hero .big{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.15}.hero .cap{color:var(--ink-3);font-size:14px}.figures{grid-template-columns:1fr 1fr;gap:3px 12px;margin-top:3px;display:grid}.figures span{color:var(--ink-3);white-space:nowrap;font-size:13px}.figures b{color:var(--ink);font-family:var(--mono)}.cost-head,.cost-row{text-align:left;width:100%;font:inherit;color:var(--ink);background:0 0;border:0;grid-template-columns:8px minmax(0,1fr) 40px 40px 58px;align-items:baseline;gap:6px;padding:3px 9px;display:grid}.cost-head{color:var(--ink-3);border-bottom:1px solid var(--rule);padding-bottom:3px;font-size:13px}.cost-head span{text-align:right}.cost-head span:nth-child(2){text-align:left}.cost-row{cursor:pointer;border-bottom:1px dotted var(--dot)}.cost-row:hover{background:var(--panel-3)}.cost-row .sw{align-self:center;width:8px;height:8px}.cost-row .nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-weight:400;overflow:hidden}.cost-row:hover .nm{color:var(--ink)}.cost-row .amt,.cost-row .unit{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.cost-row .unit{color:var(--ink-3)}.cost-row.sub{cursor:default;color:var(--ink-3);font-size:13px}.cost-row.sub:hover{background:0 0}.cost-row.sub .nm{color:var(--ink-3);padding-left:6px;text-decoration:none}.cost-row.total,.total{border-top:1px solid var(--rule);cursor:default;border-bottom:0;font-weight:700}.cost-row.total:hover{background:0 0}.cost-row.total .nm{color:var(--ink);white-space:normal;text-overflow:clip;font-weight:700;text-decoration:none;overflow:visible}.card,.block-card{border:1px solid var(--rule);background:#fff;padding:6px 8px}.thumb{aspect-ratio:16/11;border:1px solid var(--rule);background:var(--panel-2);width:100%;position:relative;overflow:hidden}.thumb svg,.thumb img{width:100%;height:100%;display:block}.thumb img{object-fit:cover}.thumb img.off{opacity:0;pointer-events:none;position:absolute}.scroll{overflow-y:auto}.col{flex-direction:column;gap:8px;display:flex}.body{color:var(--ink-2)}.bar{align-items:center;gap:8px;display:flex}.probe{padding:4px 9px;font-size:13px}.adm-chip{color:var(--ink-3);border:1px solid var(--line-3);background:var(--panel-2);padding:0 5px;font-size:13px}.leaflet-container{width:100%;height:100%;background:var(--canvas)!important;font-family:var(--sans)!important;font-size:13px!important}.leaflet-control-attribution{background:#ffffffdb!important;font-size:12px!important}.leaflet-bar a,.leaflet-control-zoom a{color:var(--ink)!important;border-radius:0!important}.vertex-dot{border:1px solid var(--ink);background:#fff;width:9px;height:9px;margin:-4.5px 0 0 -4.5px}.vertex-dot.first{background:var(--ink);cursor:pointer}.scalebar .bar{border:1px solid var(--ink-2);border-top:0;height:5px;margin-bottom:2px;display:flex}.scalebar .bar i{border-right:1px solid var(--ink-2);flex:1}.scalebar .bar i:nth-child(odd){background:var(--ink-2)}.scalebar .bar i:last-child{border-right:0}.scalebar .ticks{justify-content:space-between;margin:0;display:flex}.hero .sub{border-top:1px solid var(--line-2);gap:0;margin-top:10px;padding-top:8px;display:flex}.hero .sub>div{flex:1;min-width:0;padding-right:10px}.hero .sub>div+div{border-left:1px solid var(--line-2);padding-left:10px}.hero .sub .k{font-family:var(--sans);color:var(--ink-3);font-size:14px}.hero .sub .v{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);text-align:left;margin-top:1px;font-size:17px;font-weight:700}.block-scrim{z-index:600;background:#ffffffd1;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.block-card{width:min(380px,100%);padding:12px 14px}.block-card h3{margin:0 0 6px;font-size:14px;font-weight:700}.block-card p{color:var(--ink-2);margin:0 0 8px}.block-card .figures{grid-template-columns:1fr 1fr;gap:2px 14px;margin-bottom:10px;display:grid}.block-card .figures>div{min-width:0}.block-card .figures .k{color:var(--ink-3);font-size:13px}.block-card .figures .v{text-align:left;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:19px;font-weight:700;line-height:1.2}.block-card .actions{gap:5px;margin-top:4px;display:grid}.block-card .actions .cta{width:100%}.auth label{margin-bottom:8px;display:block}.auth label>span{color:var(--ink-3);margin-bottom:2px;display:block}.auth input{width:100%}.auth .cta{margin-top:2px}.auth .linkish{width:fit-content;margin-top:7px;display:block}.auth-tabs button{flex:none}.auth .banner{margin:6px 0}.field-head .val-edit{width:72px}.solving-bar span{background:var(--ink);height:100%;display:block}.adm-table td.wrap,.adm-tbl td.wrap{white-space:normal;font-family:var(--sans)}.gate p,.adm-basis p{margin:0 0 6px}.rail .field,.rail .pad,.rail .row,.rail .kv,.rail .note,.rail .sec,.rail .head,.rail .sec-fold,.rail table,.results .hero,.results .sec,.results .head,.results .cost-head,.results .cost-row,.results .risk-hist,.results .ticks,.results .kv,.results .row,.results .note,.results table{padding-left:var(--pad);padding-right:var(--pad)}.rail table td:first-child,.results table td:first-child,.rail table th:first-child,.results table th:first-child{padding-left:0}.rail table td:last-child,.results table td:last-child,.rail table th:last-child,.results table th:last-child{padding-right:0}.results .stackbar,.results .bar-track{margin-left:var(--pad);margin-right:var(--pad);width:auto}.rail input[type=range]{display:block}.modal-bg,.sheet-scrim,.gate-scrim{z-index:3000;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal,.sheet,.gate,.tour-card,.solving-card{border:1px solid var(--rule);box-shadow:none;background:#fff;border-radius:0}.modal{flex-direction:column;width:min(1180px,100%);max-height:100%;display:flex}.modal-head{border-bottom:2px solid var(--rule);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 14px;display:flex}.modal-head h2{font-family:var(--sans);letter-spacing:0;color:var(--ink);font-size:14px;font-weight:700}.modal-tabs{flex-wrap:wrap;gap:5px;margin-left:auto;display:flex}.modal-body{flex:1;padding:0 14px 14px;overflow-y:auto}.modal-body .tbl th:first-child,.modal-body .tbl td:first-child{padding-left:0}.modal-body .tbl th:last-child,.modal-body .tbl td:last-child{padding-right:0}.modal-body .pad,.modal-body .field,.modal-body .note{padding-left:0;padding-right:0}.sheet{width:min(460px,100%);max-height:100%;overflow-y:auto}.sheet-head{border-bottom:2px solid var(--rule);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.sheet-head h2{margin:0;font-size:14px;font-weight:700}.sheet-sec{border-top:1px solid var(--line-2);padding:10px 12px}.sheet-sec:first-of-type{border-top:0}.sheet-sec h3{margin:0 0 6px;font-size:14px;font-weight:700}.sheet-sec p{color:var(--ink-2);margin:0 0 8px}.sheet-sec .kv{padding:2px 0}.sheet-sec .kv span{color:var(--ink-3)}.sheet-sec .kv b{font-weight:700}.sheet-form{align-items:center;gap:6px;padding:0;display:flex}.sheet-stack{gap:6px;display:grid}.sheet-form input{flex:1;min-width:0}.sheet-form .mini{flex:none}.sheet-confirm{color:var(--ink-2);margin:0 0 8px;display:block}.sheet-confirm>span{margin-bottom:3px;display:block}.sheet-confirm code{font-family:var(--mono);font-size:13px}.sheet-actions{flex-wrap:wrap;gap:6px;padding:0;display:flex}.sheet-sec.danger{border:0;border-top:1px solid var(--line-2);color:inherit;background:0 0}.sheet-sec.danger h3,.sheet-sec.danger p{color:var(--bad)}.gate{width:min(420px,100%);padding:12px}.gate-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.solving{z-index:700;background:#ffffffe0;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.solving.done{opacity:0;transition:opacity .16s ease-out}.solving-card{width:min(420px,100%);padding:10px 12px}.solving-head{align-items:baseline;gap:8px;display:flex}.solving-title{font-weight:700}.solving-rule{background:var(--line-2);flex:1;height:1px}.solving-count{color:var(--ink-4);font-size:13px;font-family:var(--mono)}.solving-subject{color:var(--ink-3);margin:3px 0 6px}.solving-stages{margin:0;padding:0;list-style:none}.solving-stage{color:var(--ink-4);grid-template-columns:14px 1fr;align-items:baseline;gap:6px;padding:1.5px 0;display:grid}.solving-stage.live,.solving-stage.done{color:var(--ink)}.solving-mark{font-family:var(--mono)}.solving-stage.live .solving-mark{animation:1.25s ease-in-out infinite value-pending}.solving-bar{background:var(--line-2);height:2px;margin-top:8px;position:relative}.solving-bar i{background:var(--ink-3);height:100%;animation:1.25s ease-in-out infinite value-pending;position:absolute;top:0}.tour{z-index:5000;pointer-events:none;position:fixed;inset:0}.tour-veil{z-index:0;pointer-events:auto;background:#0000004d;position:absolute;inset:0}.tour-card{pointer-events:auto;z-index:2;width:min(320px,100vw - 24px);padding:8px 10px;position:absolute}.tour-step{color:var(--ink-4);font-size:13px;font-family:var(--mono)}.tour-card h3{margin:1px 0 3px;font-size:14px;font-weight:700}.tour-card p{color:var(--ink-2);margin:0}.tour-actions{align-items:baseline;gap:6px;margin-top:8px;display:flex}.tour-ring{border:2px solid var(--ink);pointer-events:none;z-index:1;position:absolute}.auth{max-width:100%}.auth-tabs{gap:5px;margin-bottom:8px;display:flex}.auth-note{color:var(--ink-3);margin-top:5px;font-size:13px}.setpw{max-width:420px;margin:0 auto;padding:60px 16px}.setpw-h{margin:0 0 4px;font-size:15px;font-weight:700}.sld-wrap{--sld-paper:#fff;--sld-ink:#14161b;--sld-dim:#5c6069;--sld-earth:#146b4a;--sld-frame:#b9bcc2}.sld-bar{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.sld-no{font-family:var(--mono);font-size:13px;font-weight:700}.sld{border:1px solid var(--line-2);background:#fff;width:100%;height:auto;display:block}.sld-notes{flex-direction:column;gap:5px;margin:12px 0 0;padding-left:20px;display:flex}.sld-notes li{color:var(--ink-2);max-width:92ch;font-size:14px;line-height:1.5}@media print{.sld-bar,.sld-notes{break-inside:avoid}.sld{border:0}}.adm{background:#fff;height:100%;overflow-y:auto}.adm-body{max-width:1720px;margin:0 auto;padding:0 16px 60px}.adm-find{width:220px}.adm-tabs{flex-wrap:wrap;gap:5px;margin-bottom:10px;display:flex}.adm-tabs button{padding:2px 9px;font-size:13px}.adm-h3{margin:14px 0 5px;font-weight:700}.adm-note{color:var(--ink-3);max-width:80ch;margin:4px 0 10px}.adm-basis{color:var(--ink-3);font-size:13px}.adm-scroll{overflow-x:auto}.adm-table,.adm-tbl{font-size:13px}.adm-tbl th,.adm-table th{text-align:left;color:var(--ink-3);white-space:nowrap;border-bottom:1px solid var(--rule);background:#fff;padding:3px 8px;font-weight:400;position:sticky;top:0}.adm-tbl th.r,.adm-tbl td.r,.adm-table th.r,.adm-table td.r{text-align:right}.adm-tbl td,.adm-table td{border-bottom:1px dotted var(--dot);white-space:nowrap;vertical-align:top;font-family:var(--mono);font-variant-numeric:tabular-nums;padding:3px 8px}.adm-tbl td.l,.adm-table td.l{font-family:var(--sans);white-space:normal}.adm-tbl td .sub,.adm-table td .sub{color:var(--ink-4);font-size:12px;font-weight:400;display:block}.adm-tbl tbody tr:hover td,.adm-table tbody tr:hover td{background:var(--panel-3)}.use-stats{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 20px;margin-bottom:18px;padding:7px 0;display:grid}.use-stat{min-width:0}.use-stat span{color:var(--ink-3);font-size:13px;display:block}.use-stat b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:19px;font-weight:700;display:block}.use-stat i{color:var(--ink-4);font-size:13px;font-style:normal;display:block}.use-sec{border-bottom:1px solid var(--rule);align-items:baseline;gap:14px;margin:0 0 8px;padding-bottom:3px;display:flex}.use-sec h2{margin:0;font-size:14px;font-weight:700}.use-key{color:var(--ink-3);gap:14px;font-size:13px;display:flex}.use-key span{align-items:baseline;gap:5px;display:flex}.use-key i{width:8px;height:8px;display:inline-block}.use-key i.sign,.use-bar.sign{background:var(--ink)}.use-key i.proj,.use-bar.proj{background:#7fa38e}.use-chart{border-bottom:1px solid var(--rule);grid-template-columns:repeat(30,1fr);align-items:end;gap:3px;height:110px;margin-bottom:22px;padding:0 0 20px;display:grid}.use-day{align-items:flex-end;height:100%;display:flex;position:relative}.use-bars{align-items:flex-end;gap:1px;width:100%;height:100%;display:flex}.use-bar{flex:1;min-height:2px}.use-day-n{font-family:var(--mono);color:var(--ink-4);font-size:12px;position:absolute;bottom:-18px;left:50%;transform:translate(-50%)}.use-note{color:var(--ink-3);max-width:74ch;margin:18px 0 40px;font-size:13px;line-height:1.5}@media (width<=900px){.app,.app.rail-open,.app.results-open,.app.rail-open.results-open{grid-template-columns:minmax(0,1fr);position:relative}.rail,.results{z-index:30;width:min(var(--rail), 88vw);visibility:hidden;position:absolute;top:0;bottom:0}.rail{border-right:2px solid var(--rule);left:0}.results{width:min(var(--results), 88vw);border-left:2px solid var(--rule);z-index:31;right:0}.app.rail-open .rail,.app.results-open .results{visibility:visible}.rail-inner{width:min(var(--rail), 88vw)}.results-inner{width:min(var(--results), 88vw)}.studio-bar{row-gap:6px}}@media (width>=1500px){:root{--rail:380px;--results:430px}}@media (width>=1800px){:root{--rail:420px;--results:490px}}@media (width>=2200px){:root{--rail:460px;--results:560px}}@media (width<=1180px){:root{--rail:296px;--results:320px}}@media (width<=860px){.lp-hero{grid-template-columns:minmax(0,1fr)}}@media (width<=700px){.app-bar-inner,.lp-bar-inner,.lp-body,.projects-body,.adm-body{padding-left:12px;padding-right:12px}.lp-nav{display:none}.sr-figure,.lp-access{grid-template-columns:minmax(0,1fr)}.lp-frame-figs,.stat-strip,.use-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.app{transition-duration:1ms}.field-head .pending{opacity:.6;animation:none}.solving-stage.live .solving-mark{animation:none}.solving-bar i{opacity:.7;animation:none}.spin{animation:none}.solving.done{transition:none}}.px-head{align-items:baseline;gap:12px;margin-top:10px;margin-bottom:6px;display:flex}.px-mode{flex:none}.px-mode button{flex:none;padding:2px 10px;font-size:13px;overflow:visible}.px-head-n{color:var(--ink-4);font-size:13px}.px-head-at{font-family:var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px;font-weight:700}.px-chart{border:1px solid var(--line-2);padding:6px 6px 0}.px-chart svg{width:100%;height:auto;display:block}.px-grid{stroke:var(--line-2);stroke-width:1px}.px-grid.base{stroke:var(--ink-4);stroke-width:1px;stroke-dasharray:3 3}.px-axis{font-family:var(--mono);fill:var(--ink-4);font-variant-numeric:tabular-nums;font-size:11px}.px-cross{stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:2 3}.px-line{fill:none;stroke-width:1.75px;stroke-linejoin:round}.px-line.scenario{stroke-width:1.25px;opacity:.55}.px-dot{fill:var(--ink);stroke:#fff;stroke-width:1.5px}.px-tools{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px 22px;margin-top:10px;display:grid}.px-slider{min-width:0;display:block}.px-sl-head{align-items:baseline;gap:6px;margin-bottom:2px;font-size:13px;display:flex}.px-sl-name{color:var(--ink);align-items:baseline;gap:5px;display:inline-flex}.px-sl-head b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);margin-left:auto}.px-sl-d{font-style:normal;font-family:var(--mono);color:var(--ink-4);text-align:right;min-width:46px;font-size:12px}.px-sl-d.up{color:var(--bad)}.px-sl-d.dn{color:var(--ok)}.px-slider input[type=range]{width:100%}.px-reset{margin-top:10px}.px-split{grid-template-columns:minmax(0,1.55fr) minmax(230px,1fr);align-items:start;gap:6px 32px;display:grid}@media (width<=1000px){.px-split{grid-template-columns:minmax(0,1fr)}}.px-side{min-width:0}.px-side .sec-rule{margin-top:0}.px-side .px-tools{grid-template-columns:minmax(0,1fr);gap:9px}.px-key{border-collapse:collapse;width:100%;margin-top:10px;font-size:13px}.px-key th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--rule);padding:0 6px 3px;font-weight:400}.px-key th.r,.px-key td.r{text-align:right}.px-key td{border-bottom:1px dotted var(--dot);color:var(--ink-4);white-space:nowrap;padding:3px 6px}.px-key td.r{font-family:var(--mono);font-variant-numeric:tabular-nums}.px-key tr{cursor:pointer}.px-key tr:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.px-key tr:hover td{background:var(--panel-3);color:var(--ink-3)}.px-key tr.on td{color:var(--ink)}.px-key tr.on td:nth-child(2){font-weight:700}.px-key-mark{width:30px;padding-right:0!important}.px-key-mark svg{width:26px;height:8px;display:block}.px-key-mark i{border:1px solid var(--line-3);width:8px;height:8px;margin-left:9px;display:block}.px-key tr:hover .px-key-mark i{border-color:var(--ink-3)}.firm-check{color:var(--ink-2);align-items:baseline;gap:7px;margin:2px 0 6px;font-size:13px;display:flex}.firm-check input{margin:0}
