:root{--bg:#f5f6f8;--surface:#fff;--text:#1d2430;--muted:#5a6573;--border:#e2e6eb;--border-strong:#7d8794;--primary:#2f6f5e;--primary-hover:#255a4c;--primary-soft:#e3f0ec;--danger:#b4423a;--ok:#2a8049;--warn:#c98a12;--bad:#c0392b;--radius:10px;--shadow:0 1px 2px #141e280f, 0 2px 8px #141e280a;--surface-2:#f1f3f5;--surface-3:#f7f8fa;--on-primary:#fff;--ok-soft:#e6f4ea;--warn-soft:#fdf3dc;--bad-soft:#fbecea;--info-soft:#eef3ff;--hint-bg:#fff8e6;--hint-border:#f3dfa8;--hint-text:#8a5a00;--accent:#d97000;--accent-text:#a85a00;--ok-text:#23703d;--warn-text:#8a5a00;--bad-text:#a8322a;--primary-text:#285f51;--plan-bg:#fbfcfd;--plan-grid:#edf0f3;--plan-grid-major:#dbe1e7;--plan-ink:#3b4652;--backdrop:#141c2459;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#4a3aa7;--series-8:#e34948;--series-other:#a3abb5;--series-saved:#5b7c99;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3{margin:0;font-weight:600}h1{align-items:center;gap:10px;font-size:1.6rem;display:flex}h2{font-size:1.15rem}h3{font-size:1rem}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:.85rem}.spacer{flex:1}.center-screen{place-items:center;height:100%;min-height:200px;display:grid}.error{color:var(--danger);background:var(--bad-soft);border-radius:8px;padding:8px 12px;font-size:.9rem}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;justify-content:space-between;align-items:center;padding:10px 24px;display:flex;position:sticky;top:0}.topbar-right{align-items:center;gap:12px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:8px;font-weight:700;display:flex}.brand.big{font-size:1.4rem}.brand-mark{background:var(--primary);width:28px;height:28px;color:var(--on-primary);border-radius:8px;place-items:center;font-size:1rem;display:inline-grid}.content{flex:1}.page{max-width:1100px;margin:0 auto;padding:24px}.page-wide{max-width:none}.page-head{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:16px;display:flex}.page-head .btn{margin-left:auto}.breadcrumbs{color:var(--muted);margin-bottom:6px;font-size:.85rem}.breadcrumbs a:hover{color:var(--primary)}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-head p{margin:0}.narrow{flex-direction:column;gap:16px;max-width:720px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.empty{text-align:center;color:var(--muted);padding:36px}.home-card,.room-card{align-items:flex-start;gap:14px;transition:border-color .15s,transform .15s;display:flex}.home-card:hover,.room-card:hover{border-color:var(--primary);transform:translateY(-1px)}.home-card-icon{font-size:1.8rem}.stats{flex-wrap:wrap;gap:10px;margin-top:8px;font-size:.85rem;display:flex}.badge{background:var(--primary-soft);color:var(--primary-text);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.75rem}.badge.ok{background:var(--ok-soft);color:var(--ok-text)}.badge.warn{background:var(--warn-soft);color:var(--warn-text)}.badge.bad{background:var(--bad-soft);color:var(--bad-text)}.swatch{border:1px solid #00000014;border-radius:5px;flex:none;width:18px;height:18px;display:inline-block}.swatch.small{border-radius:3px;width:12px;height:12px}.room-card .swatch{margin-top:3px}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;display:flex}.list li>div:first-child{flex:1}.list li:last-child{border-bottom:none}.list li.clickable{cursor:pointer}.list li.clickable:hover{background:var(--surface-2)}.device-group{margin-bottom:18px}.device-group h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px;font-size:.9rem}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:hover{background:var(--primary-hover)}.btn.primary:disabled{opacity:.6;cursor:default}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{background:var(--surface);color:var(--danger);border-color:var(--bad-soft)}.btn.danger:hover{background:var(--bad-soft)}.btn.small{padding:4px 10px;font-size:.85rem}.btn.icon{padding:4px 8px;font-size:1.1rem;line-height:1}.btn.google{background:var(--surface)}.btn.google .g{color:#4285f4;font-weight:700}.link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:4px}.form{flex-direction:column;gap:12px;display:flex}.form.two-col{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.form.inline{flex-flow:wrap;align-items:flex-end}.form.inline label{flex:1;min-width:220px}.span-2{grid-column:span 2}label,.field{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}label>input,label>select,label>textarea{color:var(--text)}input,select,textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;padding:8px 10px;font-size:.95rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}input[type=color]{width:100%;height:38px;padding:2px}.form-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.divider{text-align:center;color:var(--muted);font-size:.85rem;position:relative}.check{color:var(--text);flex-direction:row;align-items:center;gap:6px;font-size:.85rem}.check input[type=range]{width:90px;padding:0}.rating{align-items:center;gap:6px;padding:8px 0;display:flex}.rating .dot{border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:50%;width:20px;height:20px;padding:0}.rating .dot.on{background:var(--primary);border-color:var(--primary)}.danger-zone{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.danger-zone p{margin:0}.auth-screen{background:linear-gradient(160deg, var(--primary-soft), var(--bg) 60%);place-items:center;min-height:100vh;padding:16px;display:grid}.auth-card{flex-direction:column;gap:14px;width:100%;max-width:380px;padding:28px;display:flex}.auth-card p{margin:0 0 4px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.modal-backdrop{background:var(--backdrop);z-index:100;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:520px;max-height:90vh;overflow:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.chip:hover{border-color:var(--primary)}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:18px;display:grid}.metric{text-align:left;cursor:pointer;font:inherit;border-left:4px solid var(--border);flex-direction:column;justify-content:flex-start;align-items:stretch;gap:2px;display:flex}.metric.ok{border-left-color:var(--ok)}.metric.warn{border-left-color:var(--warn)}.metric.bad{border-left-color:var(--bad)}.metric.selected{outline:2px solid var(--primary)}.metric-label{color:var(--muted);font-size:.85rem}.metric-value{font-size:1.5rem;font-weight:600}.metric-value .unit{color:var(--muted);font-size:.85rem;font-weight:400}.sparkline{width:100%;height:28px;color:var(--primary);margin-top:4px}.env-bottom{grid-template-columns:320px 1fr;align-items:start;gap:16px;display:grid}.env-bottom h3{margin-bottom:10px}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table td{border-bottom:1px solid var(--border);padding:6px 4px}.table td.num{text-align:right;font-weight:600}.num.ok{color:var(--ok-text)}.num.warn{color:var(--warn-text)}.num.bad{color:var(--bad-text)}.plan-workspace{grid-template-columns:260px 1fr;gap:16px;height:calc(100vh - 150px);min-height:520px;display:grid}.plan-sidebar{flex-direction:column;gap:12px;display:flex;overflow-y:auto}.side-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.side-title{justify-content:space-between;align-items:center;margin-bottom:6px;font-weight:600;display:flex}.side-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.floor-list,.room-list{margin:0;padding:0;list-style:none}.floor-list li{border-radius:6px;align-items:center;display:flex}.floor-list li.active{background:var(--primary-soft)}.floor-name{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;padding:6px 8px}.room-list li{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 8px;display:flex}.room-list li .muted{margin-left:auto}.room-list li:hover{background:var(--surface-2)}.room-list li.active{background:var(--primary-soft)}.help ul{margin:6px 0 0;padding-left:16px}.help li{margin-bottom:4px}.plan-main{flex-direction:column;gap:10px;min-width:0;display:flex}.plan-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.plan-toolbar select{padding:6px 8px;font-size:.85rem}.seg{border:1px solid var(--border);background:var(--surface);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;background:0 0;border:none;padding:7px 12px;font-size:.85rem}.seg button+button{border-left:1px solid var(--border)}.seg button.active{background:var(--primary);color:var(--on-primary)}.seg button:disabled{opacity:.4;cursor:default}.plan-views{flex:1;gap:10px;min-height:0;display:grid}.plan-views.mode-split{grid-template-columns:1fr 1fr}.plan-pane{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:0;position:relative;overflow:hidden}.plan2d{-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:100%;display:block}.plan2d.tool-rect,.plan2d.tool-polygon{cursor:crosshair}.plan-bg{fill:var(--plan-bg)}.grid-minor{stroke:var(--plan-grid);stroke-width:1px}.grid-major{stroke:var(--plan-grid-major);stroke-width:1px}.room-shape path{fill-opacity:.55;stroke:var(--plan-ink);stroke-width:2.5px;stroke-linejoin:round}.tool-select .room-shape path{cursor:move}.room-shape.selected path{fill-opacity:.75;stroke:var(--accent);stroke-width:3px}.room-label{fill:var(--text);font-size:13px;font-weight:600}.room-area{fill:var(--muted);font-size:11px}.ghost{fill:none;stroke:#9aa5b1;stroke-width:1.5px;stroke-dasharray:5 4}.dim-label{fill:var(--accent-text);paint-order:stroke;stroke:var(--surface);stroke-width:3px;font-size:11px;font-weight:600}.vertex-handle{fill:var(--surface);stroke:var(--accent);stroke-width:2px;cursor:grab}.mid-handle{fill:var(--accent);fill-opacity:.35;stroke:var(--accent);cursor:copy}.mid-handle:hover{fill-opacity:.9}.draft{fill:#2f6f5e26;stroke:var(--primary);stroke-width:2px;stroke-dasharray:6 4}.draft-pt{fill:var(--primary)}.draft-start{fill:var(--surface);stroke:var(--primary);stroke-width:2px}.cursor-pt{fill:var(--primary)}.coord-label{fill:var(--muted);font-size:11px}.scale-bar line{stroke:var(--plan-ink);stroke-width:2px}.scale-bar text{fill:var(--plan-ink);font-size:11px}.fit-btn{background:var(--surface);width:32px;height:32px}.label3d{background:var(--surface);border:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.label3d.selected{border-color:var(--accent);color:var(--accent-text)}@media (width<=900px){.plan-workspace{grid-template-columns:1fr;height:auto}.plan-views{height:70vh}.plan-views.mode-split{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.env-bottom,.form.two-col{grid-template-columns:1fr}.span-2{grid-column:auto}.page{padding:16px}}.hint{background:var(--hint-bg);border:1px solid var(--hint-border);border-radius:8px;padding:8px 12px;font-size:.88rem}.no-pick{pointer-events:none}.plan2d.tool-door,.plan2d.tool-window,.plan2d.tool-place,.plan2d.tool-calibrate{cursor:crosshair}.plan2d.tool-moveBg{cursor:move}.opening-gap{stroke:var(--plan-bg);stroke-width:5px}.opening-hit{stroke:#0000;stroke-width:14px;cursor:ew-resize}.opening.door .door-leaf{stroke:#6b4f2a;stroke-width:2px}.opening.door .door-arc{fill:none;stroke:#6b4f2a;stroke-width:1px;stroke-dasharray:4 3}.opening.window .window-line{stroke:#2a7ab0;stroke-width:2px}.opening.opening .opening-gap{stroke:var(--plan-bg);stroke-dasharray:3 3}.opening.selected .opening-gap{stroke:#ffd59e}.opening-preview{stroke-width:6px;stroke-linecap:round;opacity:.7}.opening-preview.door{stroke:#6b4f2a}.opening-preview.window{stroke:#2a7ab0}.device-shape rect{stroke:#1d2430;stroke-width:1px;fill-opacity:.85;cursor:move}.device-shape.selected rect{stroke:var(--accent);stroke-width:2.5px}.device-front{stroke:#fff;stroke-width:2px;opacity:.8}.device-label{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3px;font-size:10px}.calib-line{stroke:#d6336c;stroke-width:2px;stroke-dasharray:6 4}.calib-pt{fill:#d6336c}.file-btn{cursor:pointer}.btn.active-tool{border-color:var(--primary);background:var(--primary-soft)}.form.compact{gap:8px;margin-top:8px}.form.compact input,.form.compact select{padding:5px 7px;font-size:.85rem}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.row3{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.device-mini{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;font-size:.88rem;list-style:none;display:flex}.device-mini li{align-items:center;gap:6px;display:flex}.grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.detect-list{max-height:50vh;margin-bottom:12px;padding:0;overflow:auto}.detect-list li{padding:8px 12px}.chart-card{margin-bottom:16px;position:relative}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.metric-chart{width:100%;position:relative}.metric-chart svg{display:block}.chart-empty{place-items:center;height:120px;display:grid}.chart-band{fill:#2f8a4e;fill-opacity:.08}.chart-grid{stroke:var(--plan-grid)}.chart-axis{fill:var(--muted);font-size:11px}.chart-line{fill:none;stroke:var(--primary);stroke-width:2px;stroke-linejoin:round}.chart-pt{fill:var(--primary);stroke:var(--surface);stroke-width:2px}.chart-pt.out{fill:var(--bad)}.chart-pt.hover{fill:var(--surface);stroke:var(--primary)}.chart-cross{stroke:#9aa5b1;stroke-dasharray:3 3}.chart-tip{pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);white-space:nowrap;border-radius:8px;flex-direction:column;padding:6px 10px;font-size:.82rem;display:flex;position:absolute;transform:translate(-50%)}.tip-warn{color:var(--bad)}.chart-legend{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 6px;display:flex}.legend-band{background:#2f8a4e26;border-radius:2px;width:14px;height:10px;display:inline-block}.legend-out{background:var(--bad);border-radius:50%;width:9px;height:9px;margin-left:10px;display:inline-block}.status-text{font-size:.78rem;font-weight:600}.status-text.warn{color:var(--warn-text)}.status-text.bad{color:var(--bad-text)}.env-bottom{grid-template-columns:1fr 1fr}.alerts{border-left:4px solid var(--warn);margin-bottom:16px}.alerts ul{margin:8px 0 0;padding-left:18px}.alerts li{margin-bottom:6px}.alerts a{color:var(--primary);font-weight:600}.token-box{background:var(--hint-bg);border:1px solid var(--hint-border);border-radius:8px;flex-direction:column;gap:6px;margin-top:12px;padding:10px 12px;display:flex}.token-box code{word-break:break-all;font-size:.85rem}pre.code{color:#e8edf2;background:#1d2430;border-radius:8px;padding:12px;font-size:.8rem;line-height:1.5;overflow-x:auto}.narrow .card h3{margin-bottom:8px}.list code{word-break:break-all}.plan-views{position:relative}.plan-overlay{z-index:5;pointer-events:none;flex-direction:column;gap:6px;max-width:min(640px,90%);display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.plan-overlay>*{pointer-events:auto;box-shadow:var(--shadow)}.plan-overlay:empty{display:none}.error.dismissable{cursor:pointer}.plan-overlay>.hint{pointer-events:none}.plan-overlay>.hint button{pointer-events:auto}.row2 input,.row3 input,.row2 select,.row3 select{width:100%;min-width:0}.row2 label,.row3 label{min-width:0}.device-shape.warn rect{stroke:var(--bad);stroke-width:2.5px;stroke-dasharray:4 2}.clearance-zone{fill:#2f6f5e1f;stroke:var(--primary);stroke-dasharray:4 3;stroke-width:1px}.layout-warnings ul{margin:0;padding-left:16px;font-size:.85rem}.layout-warnings li{cursor:pointer;margin-bottom:4px}.layout-warnings li:hover{color:var(--primary)}.home-layout{grid-template-columns:230px 1fr;min-height:calc(100vh - 57px);display:grid}.home-nav{background:var(--surface);border-right:1px solid var(--border);height:calc(100vh - 57px);padding:16px 12px;position:sticky;top:57px;overflow-y:auto}.home-nav-back{justify-content:flex-start;width:100%;margin-bottom:12px;font-size:.9rem;display:flex}.home-nav-back:hover{border-color:var(--primary);color:var(--primary)}.home-crumbs{align-items:center;gap:8px;min-width:0;margin-bottom:8px;font-size:.88rem;display:flex}.back-pill{background:var(--primary-soft);color:var(--primary-text);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:5px 12px 5px 9px;font-weight:600;display:inline-flex}.back-pill:hover{background:var(--primary);color:var(--on-primary)}.crumb-home{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);overflow:hidden}.theme-toggle{width:34px;height:34px}.home-nav-title{border-bottom:1px solid var(--border);flex-direction:column;margin-bottom:8px;padding:0 8px 10px;display:flex}.nav-group{margin-bottom:10px}.nav-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 8px 4px;font-size:.72rem}.nav-item{color:var(--text);border-radius:7px;align-items:center;gap:8px;padding:7px 8px;font-size:.92rem;display:flex}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--primary-soft);color:var(--primary-text);font-weight:600}.nav-icon{text-align:center;width:20px}.nav-count{color:var(--muted);margin-left:auto;font-size:.75rem}.home-main{min-width:0;max-width:1200px;padding:20px 28px}.home-main.wide{max-width:none}.home-main-head{align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.nav-toggle{display:none}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.filters select,.toolbar select{padding:6px 8px;font-size:.88rem}.search{min-width:220px}input.short{width:110px}.row-wrap{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.row-wrap>label{flex:1;min-width:130px}.grow2{min-width:200px;flex:2!important}.inline-add{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.inline-add input:not([type=date]){flex:1;min-width:140px}.chip.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text)}.stat-inline{color:var(--muted);font-size:.9rem}.stat-inline strong{color:var(--text)}.bad-text{color:var(--bad-text)}.hero-number{letter-spacing:-.01em;font-size:1.8rem;font-weight:700}.small-hero{font-size:1.3rem}.progress{background:var(--surface-2);border-radius:999px;height:8px;margin:8px 0 4px;overflow:hidden}.progress>div{background:var(--primary);border-radius:999px;height:100%}.small-progress{width:90px;margin:0}.avatar{background:var(--primary-soft);width:26px;height:26px;color:var(--primary);border-radius:50%;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:inline-grid}.stat-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px;display:grid}.stat{flex-direction:column;gap:4px;display:flex}.stat strong{font-size:1.25rem}.stat .inline-add{margin:0}.stat .inline-add input{width:100%;min-width:0}.table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 4px;font-size:.78rem;font-weight:600}.table th.num,.table td.num{text-align:right}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.table-scroll{overflow-x:auto}.num-input{text-align:right;width:90px;padding:4px 6px}.unit-input{width:60px;padding:4px 6px}.clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;display:-webkit-box;overflow:hidden}.overview-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-bottom:14px;display:grid}.ov-card.wide{grid-column:1/-1}.ov-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.ov-head a{color:var(--primary)}.ov-list{margin:0;padding:0;list-style:none}.ov-list li{border-bottom:1px solid var(--surface-2);align-items:center;gap:8px;padding:6px 0;font-size:.9rem;display:flex}.ov-list li:last-child{border-bottom:none}.urg{border-radius:50%;flex:none;width:8px;height:8px}.urg.warn{background:var(--warn)}.urg.bad{background:var(--bad)}.onboarding{border-left:4px solid var(--primary);margin-bottom:14px}.onboarding ol{margin:8px 0 0;padding-left:20px}.onboarding a{color:var(--primary);font-weight:600}.task-list li{gap:12px}.urgency{background:var(--surface-2);border-radius:3px;flex-direction:column-reverse;flex:none;width:6px;height:34px;display:flex;overflow:hidden}.urgency>div{width:100%}.urgency.ok>div{background:var(--ok)}.urgency.soon>div{background:#a3c79a}.urgency.warn>div{background:var(--warn)}.urgency.bad>div{background:var(--bad)}.load-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.load-chip{align-items:center;gap:4px;display:inline-flex}.est-controls{flex-direction:column;gap:14px;margin-bottom:14px;display:flex}.level-pick,.kind-pick{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.level{text-align:left;border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.level span{color:var(--muted)}.level.active{border-color:var(--primary);background:var(--primary-soft)}.est-total{border-left:4px solid var(--primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.suggestions{border-left:4px solid var(--warn);margin-bottom:14px}.suggestions ul{margin:6px 0 0;padding-left:18px}.est-room{margin-bottom:10px;padding:0;overflow:hidden}.est-room-head{cursor:pointer;text-align:left;background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:10px;width:100%;padding:12px 16px;display:flex}.est-room-head:hover{background:var(--surface-2)}.est-table{width:calc(100% - 32px);margin:0 16px 12px}.project-card{flex-direction:column;gap:4px;display:flex}.project-card:hover{border-color:var(--primary)}.project-card-head{align-items:center;gap:10px;display:flex}.project-icon{font-size:1.5rem}.project-icon.big{font-size:2.2rem}.project-head{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.project-head-side{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.warnings{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.warning{font-size:.9rem}.warning.warn{color:var(--hint-text)}.warning.bad{color:var(--bad);font-weight:600}.stepper{gap:0;margin:0 0 14px;padding:0;list-style:none;display:flex;overflow-x:auto}.stepper li{flex:1;min-width:110px;position:relative}.stepper li a{text-align:center;color:var(--text);flex-direction:column;align-items:center;gap:4px;padding:0 4px;font-size:.78rem;display:flex}.stepper li:before{content:"";background:var(--border);z-index:0;width:100%;height:2px;position:absolute;top:7px;left:-50%}.stepper li:first-child:before{display:none}.stepper .dot{border:2px solid var(--border);background:var(--surface);z-index:1;border-radius:50%;width:16px;height:16px}.stepper li.doing .dot{border-color:var(--primary);background:var(--primary-soft)}.stepper li.done .dot{border-color:var(--primary);background:var(--primary)}.stepper li.done:before,.stepper li.doing:before{background:var(--primary)}.step-name{line-height:1.2}.phase{margin-bottom:10px;scroll-margin-top:70px}.phase-head{align-items:center;gap:10px;display:flex}.phase p{margin:4px 0 8px}.ptask-list{margin:0;padding:0;list-style:none}.ptask{border-bottom:1px solid var(--surface-2);cursor:pointer;align-items:flex-start;gap:10px;padding:6px 0;display:flex}.ptask:last-child{border-bottom:none}.ptask.done .ptask-title{color:var(--muted);text-decoration:line-through}.ptask.doing .ptask-title{font-weight:600}.ptask.warned{background:var(--bad-soft)}.status-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1.15rem;line-height:1.3}.mini-bars{background:var(--surface-2);border-radius:3px;width:120px;height:12px;position:relative;overflow:hidden}.mb{border-radius:3px;position:absolute;top:0;bottom:0;left:0}.mb.alloc{background:var(--primary-soft)}.mb.used{background:var(--primary);height:6px;top:3px}.bar-cell{width:130px}.legend-swatch{border-radius:2px;width:12px;height:8px;margin:0 4px 0 8px;display:inline-block}.legend-swatch.alloc{background:var(--primary-soft)}.legend-swatch.used{background:var(--primary)}.quote-card{cursor:pointer}.quote-card.accepted{border-color:var(--ok)}.quote-card.rejected{opacity:.6}.compare td.best{background:var(--ok-soft)}.compare td.bad{color:var(--bad);font-weight:600}.compare td.missing{color:var(--muted);font-style:italic}.compare .total-row td{border-top:2px solid var(--border)}.best-swatch{background:var(--ok-soft);border:1px solid var(--ok);vertical-align:middle;width:12px;height:10px;display:inline-block}.lines-table td{padding:3px 2px}.lines-table select,.lines-table input{padding:4px 6px;font-size:.85rem}.shop-table td{vertical-align:top}.status-select{border-radius:999px;padding:3px 6px;font-size:.82rem}.status-select.ordered{background:var(--info-soft)}.status-select.delivered{background:var(--hint-bg)}.status-select.assembled{background:var(--ok-soft)}.status-select.returned,.status-select.cancelled{background:var(--surface-2);color:var(--muted)}.prio.must{color:var(--primary)}.prio.later{color:var(--muted)}.contractor-card{cursor:pointer;flex-direction:column;gap:8px;display:flex}.contractor-card:hover{border-color:var(--primary)}.stars{color:var(--warn-text);letter-spacing:1px}.contact-row{flex-wrap:wrap;gap:6px;display:flex}.files-panel{flex-direction:column;gap:12px;display:flex}.upload-form{gap:8px}.file-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.files-panel.compact .file-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.file-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.file-thumb{background:var(--surface-2);cursor:pointer;border:none;place-items:center;height:120px;padding:0;display:grid}.file-thumb img{object-fit:cover;width:100%;height:100%}.file-icon{color:var(--bad);font-size:1.2rem;font-weight:700}.file-meta{flex-direction:column;gap:3px;padding:8px 10px 0;font-size:.88rem;display:flex}.file-meta .badge{align-self:flex-start}.file-actions{justify-content:space-between;padding:4px 6px 6px;display:flex}.lightbox{z-index:200;cursor:zoom-out;background:#0a0e14d9;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lightbox img{border-radius:6px;max-width:100%;max-height:88vh}.lightbox-caption{color:#fff;margin-top:8px}.meter-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;display:grid}.meter-card{flex-direction:column;gap:8px;display:flex}.small-table td{padding:4px;font-size:.85rem}.bar-chart{align-items:flex-end;gap:6px;height:190px;padding-top:10px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.bar{background:var(--primary);border-radius:4px 4px 0 0;width:100%;max-width:42px;min-height:2px}.bar.hover{background:var(--primary-hover)}.bar-value{white-space:nowrap;height:16px}.bar-label{white-space:nowrap}.pantry{grid-template-columns:3fr 2fr;align-items:start;gap:16px;display:grid}.pantry .row-wrap{margin-bottom:10px}.qty-cell{white-space:nowrap}.qty-cell span{text-align:center;min-width:54px;display:inline-block}.grocery-list{margin:0;padding:0;list-style:none}.grocery-list li{border-bottom:1px solid var(--surface-2);justify-content:space-between;align-items:center;padding:4px 0;display:flex}.grocery-list li.done label{color:var(--muted);text-decoration:line-through}.print-only{display:none}@media print{.topbar,.home-nav,.no-print,.home-main-head .nav-toggle{display:none!important}.home-layout{display:block}.home-main{max-width:none;padding:0}.print-only{display:block}.card{box-shadow:none;break-inside:avoid}body,.app{background:var(--surface)}}@media (width<=900px){.home-layout{grid-template-columns:1fr}.home-nav{z-index:60;width:260px;box-shadow:var(--shadow);transition:transform .2s;position:fixed;top:57px;left:0;transform:translate(-100%)}.home-nav.open{transform:none}.nav-toggle{display:inline-flex}.home-main{padding:16px}.pantry{grid-template-columns:1fr}.project-head-side{align-items:flex-start}}.row2 input[type=checkbox],.row3 input[type=checkbox],.row2 input[type=range]{width:auto}.row2 .check{align-self:center}.readiness-head{align-items:center;gap:18px;margin-bottom:14px;display:flex}.score-ring{border:6px solid var(--border);border-radius:50%;flex:none;place-items:center;width:84px;height:84px;font-size:1.4rem;font-weight:700;display:grid}.score-ring.ok{border-color:var(--ok);color:var(--ok)}.score-ring.warn{border-color:var(--warn);color:var(--warn)}.score-ring.bad{border-color:var(--bad);color:var(--bad)}.readiness-list{margin:8px 0 0;padding:0;list-style:none}.readiness-list li{border-bottom:1px solid var(--surface-2);gap:10px;padding:7px 0;display:flex}.readiness-list li:last-child{border-bottom:none}.readiness-list li.ok{color:var(--muted)}.ri-icon{text-align:center;flex:none;width:20px}.dossier-form .card{margin-bottom:12px}.dossier-form h3{margin-bottom:2px}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 16px;margin:8px 0;display:grid}.listing-text{white-space:pre-wrap;background:var(--surface-3);border:1px solid var(--border);border-radius:8px;padding:12px;font-family:inherit;font-size:.92rem}.dossier-view{flex-direction:column;gap:16px;display:flex}.dv-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dv-summary{background:var(--surface-3);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;padding:12px;display:grid}.dv-section h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:4px;font-size:.95rem}.dv-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 16px;display:grid}.dv-field{flex-direction:column;display:flex}.dv-two{grid-template-columns:1fr 260px;align-items:start;gap:16px;display:grid}.mini-plan{width:100%;max-height:240px}.dv-reno{border-bottom:1px solid var(--surface-2);padding:6px 0}.dv-photos{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;display:grid}.dv-photos img{object-fit:cover;border-radius:6px;width:100%;height:120px}.dv-foot{border-top:1px solid var(--border);padding-top:8px}.epc-badge{color:#fff;background:#888;border-radius:8px;flex:none;place-items:center;width:56px;height:56px;font-size:1.6rem;font-weight:800;display:grid}.epc-Ap,.epc-A{background:#00843d}.epc-B{background:#4caf50}.epc-C{color:#1d2430;background:#b5cf28}.epc-D{color:#1d2430;background:#ffd500}.epc-E{background:#f7a600}.epc-F{background:#ec6608}.epc-G{background:#e30613}.public-page{background:var(--bg);min-height:100vh}.public-head{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.public-main{flex-direction:column;gap:14px;max-width:980px;margin:0 auto;padding:20px 16px;display:flex}@media print{.public-head{display:none}.public-main{max-width:none;padding:0}}@media (width<=700px){.dv-two{grid-template-columns:1fr}}.fin-card,.program-card{cursor:pointer;flex-direction:column;gap:6px;display:flex}.program-card{cursor:default}.fin-card:hover{border-color:var(--primary)}.elig-row{color:var(--text);align-items:center;gap:10px;padding:4px 0;display:flex}.doc-list{color:var(--text);margin:4px 0;padding-left:18px}.schedule{max-height:60vh;overflow:auto}.calc .card{margin-bottom:12px}.warning.info{color:var(--muted)}.coverage-bar{background:var(--bad-soft);border-radius:6px;height:18px;margin:10px 0 6px;display:flex;overflow:hidden}.cov{height:100%}.cov.own,.own-sw{background:#8fc1a9}.cov.loan,.loan-sw{background:var(--primary)}.cov.grant,.grant-sw{background:#e0a81e}.step-preview{margin:0;padding-left:20px}.pw-steps{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.pw-step{padding:10px 14px}.pw-step.done{opacity:.75}.pw-step-head{cursor:pointer;align-items:center;gap:10px;display:flex}.pw-step-body{flex-direction:column;gap:8px;margin:10px 0 2px 32px;display:flex}.struck{color:var(--muted);text-decoration:line-through}.lot-card{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.lot-lines{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.invite-list{margin:0;padding:0;list-style:none}.invite-list li{border-bottom:1px solid var(--surface-2);align-items:center;gap:8px;padding:4px 0;font-size:.9rem;display:flex}.modal:has(.compare-lot){max-width:1100px}.modal:has(.lines-table){max-width:900px}.compare td.low{color:var(--accent-text);font-weight:600}.low-text{color:var(--accent-text)}.bid-table .num-input{width:100px}.note-input{width:100%;margin-top:4px;padding:3px 6px;font-size:.8rem}.boot-card{text-align:left;flex-direction:column;gap:8px;max-width:420px;display:flex}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.topbar{padding-top:max(10px, env(safe-area-inset-top))}.home-main,.public-main,.auth-screen{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.zoom-btns{flex-direction:column;gap:6px;display:flex}@media (width<=900px){.topbar{padding-left:12px;padding-right:12px}.topbar-right .muted{display:none}.home-nav{top:calc(57px + env(safe-area-inset-top));height:calc(100vh - 57px - env(safe-area-inset-top))}.table{display:block;overflow-x:auto}.modal-backdrop{align-items:end;padding:0}.modal{max-width:none;max-height:92vh;padding-bottom:calc(16px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0}.row3,.stat-row{grid-template-columns:1fr 1fr}.overview-grid,.grid,.meter-grid{grid-template-columns:1fr}.est-total,.project-head{flex-direction:column;align-items:stretch}.plan-toolbar .seg{max-width:100%;overflow-x:auto}.tabs button{padding:10px}.plan-main{order:-1}.plan-sidebar .help{display:none}.plan-views{height:62vh}}:root[data-theme=dark]{--bg:#12161b;--surface:#1b2128;--surface-2:#252c35;--surface-3:#20262e;--text:#e6eaef;--muted:#98a3b0;--border:#303842;--border-strong:#6e7987;--primary:#4fa58c;--primary-hover:#5db89d;--primary-soft:#1f3a33;--on-primary:#0d1512;--danger:#ec7a70;--ok:#5cc27f;--warn:#e6b04a;--bad:#ef6f62;--ok-soft:#1d3326;--warn-soft:#3a2f17;--bad-soft:#3d2220;--info-soft:#1d2a40;--hint-bg:#2e2716;--hint-border:#4d401f;--hint-text:#e6c27a;--accent:#f0a040;--accent-text:#f0a94f;--ok-text:#6fd08f;--warn-text:#e6b04a;--bad-text:#f4857a;--primary-text:#6cc2a8;--plan-bg:#161b21;--plan-grid:#222932;--plan-grid-major:#2e3742;--plan-ink:#b8c2cd;--backdrop:#0009;--shadow:0 1px 2px #0006;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#2a9a2a;--series-7:#9085e9;--series-8:#e66767;--series-other:#7a8592;--series-saved:#86a6c4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .swatch{border-color:#ffffff26}:root[data-theme=dark] .room-shape path{fill-opacity:.45}:root[data-theme=dark] .device-shape rect{stroke:var(--plan-ink)}@media print{:root[data-theme=dark]{--bg:#fff;--surface:#fff;--text:#1d2430;--muted:#5a6573;--border:#e2e6eb;--border-strong:#7d8794}}:root[data-theme=dark] .opening.door .door-leaf,:root[data-theme=dark] .opening.door .door-arc,:root[data-theme=dark] .opening-preview.door{stroke:#c9a46f}:root[data-theme=dark] .opening.window .window-line,:root[data-theme=dark] .opening-preview.window{stroke:#6cb6e6}.month-chart{position:relative}.chart-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.chart-top .chart-legend{flex:1;gap:4px 12px}.chart-top .link{margin-left:auto}.legend-item{color:var(--muted);align-items:center;gap:5px;font-size:.8rem;display:inline-flex}.legend-sw{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.legend-line{border-radius:1px;flex:none;width:14px;height:2px;display:inline-block}.chart-wrap{width:100%;position:relative}.chart-zero{stroke:var(--plan-grid-major)}.chart-tick{fill:var(--muted);font-size:11px}.chart-tick.strong{fill:var(--text);font-weight:600}.chart-dot{stroke:var(--surface);stroke-width:2px}.chart-tip .tip-row{white-space:nowrap;align-items:center;gap:6px;font-size:.8rem;display:flex}.chart-tip .tip-row.total{border-top:1px solid var(--border);margin-top:3px;padding-top:3px;font-weight:600}.chart-tip .grow,.tip-row .grow{flex:1}.table.compact td,.table.compact th{padding:4px 6px}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px;display:grid}.kpi{flex-direction:column;gap:2px;padding:12px 14px;display:flex}.kpi .kpi-label{color:var(--muted);font-size:.8rem}.kpi .kpi-value{letter-spacing:-.01em;font-size:1.35rem;font-weight:700}.kpi .kpi-sub{color:var(--muted);font-size:.78rem}.delta-up{color:var(--bad)}.delta-down,.delta-good{color:var(--ok)}.money-grid{grid-template-columns:1.4fr 1fr;gap:14px;margin-bottom:14px;display:grid}.money-grid>.card{min-width:0}.hbars{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hbars li{grid-template-columns:minmax(90px,150px) 1fr auto;align-items:center;gap:8px;font-size:.86rem;display:grid}.hbars li.clickable{cursor:pointer}.hbars li.clickable:hover .hb-label{color:var(--primary)}.hb-label{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;display:flex;overflow:hidden}.hb-track{background:var(--surface-2);border-radius:0 4px 4px 0;height:10px;overflow:hidden}.hb-fill{border-radius:0 4px 4px 0;height:100%}.hb-value{text-align:right;white-space:nowrap;font-weight:600}.tag{background:var(--surface-2);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:1px 8px;font-size:.75rem;display:inline-flex}.tag.on{background:var(--primary);color:var(--on-primary)}button.tag{cursor:pointer;border:none}.tag-input{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.tag-input input{background:0 0;border:none;outline:none;flex:1;min-width:100px;padding:2px 0}.tag-input input:focus{outline:none}.tag-sugg{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.tag-sugg button{border:1px dashed var(--border);color:var(--muted);background:0 0}.tx-list{margin:0;padding:0;list-style:none}.tx-list li{border-bottom:1px solid var(--surface-2);cursor:pointer;align-items:center;gap:10px;padding:9px 4px;display:flex}.tx-list li:hover{background:var(--surface-2)}.tx-list .tx-main{flex:1;min-width:0}.tx-list .tx-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tx-list .tx-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:.78rem;display:flex}.tx-amount{white-space:nowrap;font-weight:700}.tx-amount.income{color:var(--ok)}.tx-day{color:var(--muted);padding:10px 4px 2px;font-size:.78rem}.tx-day:first-letter{text-transform:uppercase}.quick-add{grid-template-columns:auto 110px 1fr 1fr auto;align-items:center;gap:8px;margin-bottom:12px;display:grid}.quick-add .seg button{padding:7px 10px}.sub-list{flex-direction:column;gap:10px;display:flex}.sub-card{cursor:pointer;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.sub-card:hover{border-color:var(--primary)}.sub-card.inactive{opacity:.6}.sub-logo{color:#fff;border-radius:10px;place-items:center;width:42px;height:42px;font-size:1.05rem;font-weight:700;display:grid;box-shadow:inset 0 0 0 42px #0000004d}.sub-main{min-width:0}.sub-main .sub-name,.order-main .sub-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sub-main .sub-meta,.order-main .sub-meta,.shop-table .sub-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:.8rem;display:flex}.sub-side{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.sub-price{white-space:nowrap;font-weight:700}.sub-price small{color:var(--muted);font-weight:400}.preset-grid{flex-wrap:wrap;gap:6px;display:flex}.price-hist{margin:0;padding:0;font-size:.88rem;list-style:none}.price-hist li{border-bottom:1px solid var(--surface-2);justify-content:space-between;padding:4px 0;display:flex}@media (width<=900px){.section-head:has(.tabs){flex-direction:column;align-items:stretch}.section-head:has(.tabs) .row-wrap{justify-content:flex-end}.money-grid{grid-template-columns:1fr}.kpi-row,.quick-add{grid-template-columns:1fr 1fr}.quick-add .seg,.quick-add .qa-title{grid-column:1/-1}.hbars li{grid-template-columns:100px 1fr auto}.sub-card{grid-template-columns:36px 1fr auto;gap:10px}.sub-logo{width:36px;height:36px}}.order-card{cursor:pointer;grid-template-columns:1fr minmax(230px,300px);gap:16px;padding:14px;display:grid}.order-main{flex-direction:column;gap:4px;min-width:0;display:flex}.order-dates{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:2px;font-size:.82rem;display:flex}.order-money{flex-direction:column;align-items:stretch;gap:4px;display:flex}.order-total{text-align:right;font-size:1.1rem;font-weight:700}.order-money .progress{margin:2px 0}.order-lines{flex-direction:column;align-items:flex-end;gap:1px;font-size:.82rem;display:flex}.order-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.warn-text{color:var(--warn-text)}.form-section{color:var(--text);border-top:1px solid var(--border);margin-top:4px;padding-top:10px;font-size:.9rem;font-weight:600}.form-section .muted{font-size:.82rem;font-weight:400}@media (width<=900px){.order-card{grid-template-columns:1fr;gap:10px}.order-total,.order-lines{text-align:left;align-items:flex-start}.order-actions{justify-content:flex-start}.toolbar .seg{max-width:100%;overflow-x:auto}}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:300;background:var(--text);color:var(--bg);box-shadow:var(--shadow);border-radius:10px;max-width:min(520px,100vw - 32px);padding:10px 16px;font-size:.9rem;transition:opacity .4s;position:fixed;transform:translate(-50%)}.toast.out{opacity:0}.toast{align-items:center;gap:14px;display:flex}.toast-undo{color:var(--primary-soft);cursor:pointer;background:0 0;border:none;min-height:36px;padding:6px 4px;font-size:.9rem;font-weight:700}:root[data-theme=dark] .toast-undo{color:var(--primary)}.row-actions{white-space:nowrap;text-align:right}.bulk-bar{background:var(--primary-soft);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 8px;display:flex}.order-card.picked,.table tr.picked td{background:var(--primary-soft)}.order-card.picked{border-color:var(--primary)}input.pick{vertical-align:-2px;pointer-events:none;width:16px;height:16px;margin-right:6px}.insights{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.insights li{background:var(--surface-2);border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;font-size:.9rem;display:flex}.insights li.good{background:var(--ok-soft)}.insights li.warn{background:var(--warn-soft)}.insights li.bad{background:var(--bad-soft)}.ins-icon{text-align:center;flex:none;width:16px;font-weight:700}.insights li.good .ins-icon{color:var(--ok)}.insights li.warn .ins-icon{color:var(--warn)}.insights li.bad .ins-icon{color:var(--bad)}.split-bar{background:var(--surface-2);border-radius:6px;gap:2px;height:16px;margin:4px 0 12px;display:flex;overflow:hidden}.split-bar>div{height:100%}.table.compact td.num,.table.compact th.num{white-space:nowrap}.order-card{cursor:default;padding:0;display:block}.order-card.inactive{opacity:.75}.order-head{cursor:pointer;grid-template-columns:1fr minmax(230px,300px);gap:16px;padding:14px;display:grid}.order-card:hover{border-color:var(--border)}.order-head:hover .sub-name{color:var(--primary)}.order-items{border-top:1px solid var(--surface-2);margin:0;padding:0 14px 8px;list-style:none}.order-items li{border-bottom:1px solid var(--surface-2);cursor:pointer;grid-template-columns:1fr auto 120px;align-items:center;gap:10px;padding:7px 0;font-size:.9rem;display:grid}.order-items li:last-child{border-bottom:none}.order-items li:hover .oi-name{color:var(--primary)}.oi-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.oi-price{white-space:nowrap;font-weight:600}.status-select.small{padding:3px 6px;font-size:.8rem}.order-edit-items{flex-direction:column;gap:6px;display:flex}.oe-row{align-items:center;gap:6px;display:flex}.oe-row.existing,.oe-row:not(.draft){background:var(--surface-2);border-radius:8px;padding:6px 8px}.oe-name{min-width:0;color:var(--text);flex:1;font-size:.9rem}.oe-price{white-space:nowrap;color:var(--text);font-weight:600}.oe-row.draft input:first-child{flex:1;min-width:0}.oe-qty{width:64px}.oe-num{width:90px}.oe-row.draft select{width:120px}@media (width<=900px){.order-head{grid-template-columns:1fr;gap:10px}.order-items li{grid-template-columns:1fr auto 104px;gap:8px}.oi-name{white-space:normal}.oe-row.draft{flex-wrap:wrap}.oe-row.draft input:first-child{flex-basis:100%}}.user-link:hover{color:var(--primary);text-decoration:underline}.narrow-page{max-width:760px}.narrow-page h1{margin-bottom:14px}.account-icon{display:none}@media (width<=900px){.account-icon{display:inline-flex}}.danger-zone label{align-self:stretch}.order-card.done{opacity:.92}.order-card.done .order-total{color:var(--muted)}.order-card.picked{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.oi-break{color:var(--muted);font-size:.75rem;display:block}.list-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:6px 0 2px;font-size:.95rem}.reading-input{width:92px;padding:5px 8px}.bottom-bar{display:none}.tab-link{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px}.tab-link.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.nav-scrim{display:none}@media (width<=900px){.bottom-bar{z-index:70;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bb-item{min-height:54px;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 0;font-size:.7rem;display:flex}.bb-item.active{color:var(--primary);font-weight:600}.bb-icon{font-size:1.25rem;line-height:1}.home-main{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}.home-main-head .nav-toggle{display:none}.home-nav{bottom:calc(54px + env(safe-area-inset-bottom));height:auto!important}.nav-scrim{z-index:55;background:var(--backdrop);display:block;position:fixed;inset:0}.toast{bottom:calc(70px + env(safe-area-inset-bottom))}.btn{min-height:44px}.btn.small{min-height:38px;padding:6px 12px}.btn.icon{min-width:44px}.nav-item{padding:11px 8px}}@media (width<=600px){.table.stack,.table.stack tbody{display:block;overflow:visible}.table.stack thead{display:none}.table.stack tr{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;gap:4px 12px;padding:10px 2px;display:grid}.table.stack td{border:none;align-items:center;gap:6px;min-width:0;padding:0;display:flex;text-align:left!important}.table.stack td:first-child{grid-column:1/-1;display:block}.table.stack td[data-label]:before{content:attr(data-label) ": ";color:var(--muted);font-size:.78rem;font-weight:400}.table.stack td.num{font-weight:600}.table.stack td.stack-actions{grid-column:1/-1;justify-content:flex-end}.table.stack td:empty{display:none}}.pantry-add{grid-template-columns:2fr 1.3fr .7fr .7fr .8fr 1.1fr auto;align-items:end;gap:8px;margin-bottom:12px;display:grid}@media (width<=900px){.pantry-add{grid-template-columns:1fr 1fr}.pantry-add .pa-name,.pantry-add .btn{grid-column:1/-1}}.steps{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.steps li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.steps li.done{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.step-check{border:2px solid var(--border);width:20px;height:20px;color:var(--on-primary);border-radius:50%;flex:none;place-items:center;font-size:.75rem;display:inline-grid}.steps li.done .step-check{background:var(--ok);border-color:var(--ok)}@media (width<=900px){.ov-list li{flex-wrap:wrap;row-gap:6px}.ov-list li .grow{flex:150px;min-width:0}.overview-grid>.card{min-width:0}.reading-input{width:84px}}.pantry>.card,.pantry-add>*{min-width:0}.pantry-add input,.pantry-add select{width:100%;min-width:0}.modal:has(.import-list){max-width:960px}.import-list{border:1px solid var(--border);border-radius:8px;flex-direction:column;max-height:55vh;display:flex;overflow-y:auto}.import-row{border-bottom:1px solid var(--surface-2);grid-template-columns:1fr 110px 170px 170px;align-items:center;gap:8px;padding:8px 10px;display:grid}.import-row.skipped{opacity:.55}.import-row select{min-width:0;padding:5px 6px;font-size:.82rem}.ir-main{min-width:0}.ir-desc{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.ir-amount{text-align:right;white-space:nowrap;font-weight:700}.ir-amount.income{color:var(--ok)}@media (width<=700px){.import-row{grid-template-columns:1fr auto}.import-row select{grid-column:span 1}.ir-desc{white-space:normal}}.insight-card{margin-bottom:14px}.unit-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.unit-tile{background:var(--surface-3);border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.unit-tile strong{font-size:1.1rem}.score-line{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;margin:6px 0;display:flex}.insight-card .kpi{padding:0}.btn.apple{color:#fff;background:#000;border-color:#000}:root[data-theme=dark] .btn.apple{color:#000;background:#fff;border-color:#fff}.legal h1{margin-bottom:10px}.legal h2{margin:16px 0 6px}.legal p,.legal li{line-height:1.55}.legal-links{text-align:center;margin:0}.stage-cards{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stage-card{text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;display:flex}.stage-card.on{border-color:var(--primary);background:var(--primary-soft)}.stage-icon{font-size:1.4rem}@media (width<=600px){.stage-cards{grid-template-columns:1fr}}.site-board{flex-direction:column;gap:14px;display:flex}.site-board .money-grid{margin-bottom:0}.site-card{border-left:4px solid var(--primary);margin-bottom:14px}.site-head{grid-template-columns:1fr auto;align-items:start;gap:16px;display:grid}.site-money{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.phase-strip{gap:3px;margin:6px 0 8px;display:flex}.ps{background:var(--surface-2);border-radius:3px;flex:1;height:8px}.ps.done{background:var(--ok)}.ps.current{background:var(--primary)}.ps.late{background:var(--bad)}.site-now{flex-wrap:wrap;align-items:center;gap:6px;font-size:.92rem;display:flex}.timeline{margin:0;padding:0;list-style:none}.tl-row{border-bottom:1px solid var(--surface-2);grid-template-columns:18px 1fr;gap:8px;padding:7px 0;display:grid}.tl-dot{border:2px solid var(--border);background:var(--surface);border-radius:50%;width:12px;height:12px;margin-top:4px}.tl-row.done .tl-dot{background:var(--ok);border-color:var(--ok)}.tl-row.current .tl-dot{background:var(--primary);border-color:var(--primary)}.tl-row.late .tl-dot{background:var(--bad);border-color:var(--bad)}.tl-row.done .tl-name{color:var(--muted)}.tl-name{flex-wrap:wrap;align-items:center;gap:6px;font-size:.92rem;display:flex}.tl-dates{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.date-mini{width:auto;padding:3px 6px;font-size:.8rem}.roles{margin:0;padding:0;list-style:none}.role-row{border-bottom:1px solid var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.role-label{width:160px;color:var(--muted);flex:none;font-size:.82rem}.empty-role .role-label{color:var(--text)}.role-add{flex-wrap:wrap;flex:1;gap:6px;display:flex}.role-add input{flex:1;min-width:110px;padding:5px 8px}.step-check.as-btn{cursor:pointer;background:var(--surface);padding:0}@media (width<=900px){.site-head{grid-template-columns:1fr}.site-money{text-align:left;align-items:flex-start}.role-label{width:100%}}.inspections-list li{flex-wrap:nowrap;align-items:flex-start}.insp-text{flex:1;min-width:0}.share-opts{grid-template-columns:1fr 1fr;gap:6px 14px;display:grid}.share-list{margin:0;padding:0;list-style:none}.share-list li{border-bottom:1px solid var(--surface-2);flex-wrap:wrap;align-items:center;gap:10px;padding:9px 0;display:flex}.share-list li.off{opacity:.6}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.photo-grid .file-thumb img{object-fit:cover;border-radius:6px;width:100%;height:120px}.lightbox img{max-width:95vw;max-height:85vh}@media (width<=600px){.share-opts{grid-template-columns:1fr}}.feed{gap:12px;max-width:720px;display:grid}.composer-closed{text-align:left;color:var(--muted);cursor:text;font:inherit;width:100%}.composer-closed:hover{border-color:var(--primary)}.post.pinned{border-color:var(--warn)}.is-hidden{opacity:.55}.post-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.post-head .badge{margin-left:4px}.post-title{margin:8px 0 0}.post-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0}.comments{border-top:1px solid var(--surface-2);gap:8px;margin-top:10px;padding-top:8px;display:grid}.comment{align-items:flex-start;gap:6px;font-size:.92rem;display:flex}.comment .post-body{margin-top:2px}.comment-form{gap:6px;display:flex}.comment-form input{flex:1;min-width:0}.menu-wrap{position:relative}.menu-scrim{z-index:40;position:fixed;inset:0}.menu{z-index:41;background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:190px;padding:4px;display:grid;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #00000026}.menu button{text-align:left;cursor:pointer;color:var(--text);font:inherit;background:0 0;border:none;border-radius:6px;padding:9px 12px}.menu button:hover{background:var(--surface-2)}.danger-text,.menu button.danger-text{color:var(--bad)}.radio-list{gap:6px;display:grid}.code-pill{overflow-wrap:anywhere;background:var(--surface-2);border-radius:6px;max-width:100%;padding:4px 8px;font-size:.82rem;display:inline-block}.report-row{flex-wrap:wrap;align-items:flex-start!important}.report-preview{overflow-wrap:anywhere;margin:4px 0}.members-list .avatar{width:30px;height:30px;font-size:.85rem}.home-section-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin:28px 0 12px;display:flex}.home-section-head .actions,.section-head .actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.section-head>.tabs{min-width:0}@media (width<=640px){.section-head{flex-wrap:wrap}.section-head>*{min-width:0;max-width:100%}.section-head>.tabs{flex:100%}}.market-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.market-bar .seg{max-width:100%;overflow-x:auto}.market-bar .seg button{white-space:nowrap}.market-bar input[type=search]{flex:1;min-width:140px}.market-bar .btn{margin-left:auto}.listing-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.listing-card{text-align:left;cursor:pointer;font:inherit;color:inherit;flex-direction:column;padding:0;display:flex;overflow:hidden}.listing-card:hover{border-color:var(--primary)}.listing-thumb{aspect-ratio:4/3;background:var(--surface-2);place-items:center;font-size:2.4rem;display:grid;position:relative}.listing-thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.listing-status{background:var(--warn);color:#fff;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700;position:absolute;top:8px;left:8px}.listing-status.sold{background:var(--bad)}.listing-info{gap:2px;padding:10px 12px 12px;display:grid}.listing-title{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.listing-price{font-size:1.02rem}.listing-price.give{color:var(--ok)}.listing-price.wanted{color:var(--primary)}.listing-price.big{font-size:1.3rem}.listing-gallery img{object-fit:contain;background:var(--surface-2);border-radius:10px;width:100%;max-height:52vh}.listing-dots{gap:6px;margin-top:6px;display:flex;overflow-x:auto}.listing-dots button{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;flex:none;padding:0}.listing-dots button.on{border-color:var(--primary)}.listing-dots img{object-fit:cover;border-radius:6px;width:54px;height:54px;display:block}.listing-detail{margin-top:10px}.photo-picks{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.photo-pick{position:relative}.photo-pick img{object-fit:cover;border-radius:8px;width:72px;height:72px;display:block}.photo-pick button{background:var(--bad);color:#fff;cursor:pointer;border:none;border-radius:50%;width:22px;height:22px;line-height:1;position:absolute;top:-6px;right:-6px}.photo-add{border:1.5px dashed var(--border);cursor:pointer;width:72px;height:72px;color:var(--muted);border-radius:8px;place-items:center;font-size:.82rem;display:grid}@media (width<=640px){.listing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.market-bar .btn{margin-left:0}}.msg-link{text-decoration:none;position:relative}.unread-dot{background:var(--bad);color:#fff;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;display:inline-grid}.unread-dot.top{position:absolute;top:-2px;right:-4px}.messages{grid-template-columns:320px 1fr;gap:14px;min-height:60vh;display:grid}.conv-list{max-height:75vh;padding:6px;overflow:auto}.conv-list ul{margin:0;padding:0;list-style:none}.conv-row{color:inherit;border-radius:10px;align-items:center;gap:10px;padding:10px;text-decoration:none;display:flex}.conv-row:hover,.conv-row.on{background:var(--surface-2)}.conv-text{min-width:0;display:grid}.conv-last{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.conv-last.unread{color:var(--text);font-weight:600}.conv-meta{justify-items:end;gap:4px;display:grid}.conv-empty{place-items:center;display:grid}.conv-view{flex-direction:column;max-height:75vh;padding:0;display:flex}.conv-head{border-bottom:1px solid var(--surface-2);align-items:center;gap:8px;padding:12px 14px;display:flex}.conv-back{display:none}.conv-body{flex:1;align-content:start;gap:8px;padding:14px;display:grid;overflow-y:auto}.bubble-row{display:flex}.bubble-row.mine{justify-content:flex-end}.bubble{background:var(--surface-2);border-radius:14px;gap:4px;max-width:78%;padding:8px 12px;display:grid}.bubble-row.mine .bubble{background:var(--primary);color:var(--on-primary)}.bubble .post-body{margin:0}.bubble-meta{opacity:.75;align-items:center;gap:8px;font-size:.72rem;display:flex}.bubble-meta .link{padding:0;font-size:.72rem}.bubble-listing{color:inherit;font-size:.8rem;font-weight:600;text-decoration:underline}.conv-compose{border-top:1px solid var(--surface-2);align-items:flex-end;padding:10px 14px}.conv-compose textarea{resize:none;field-sizing:content;flex:1;min-height:40px;max-height:140px}.conv-closed{border-top:1px solid var(--surface-2);margin:0;padding:12px 14px}@media (width<=760px){.messages{grid-template-columns:1fr}.messages.has-open .conv-list,.messages:not(.has-open) .conv-view,.messages:not(.has-open) .conv-empty{display:none}.conv-back{display:inline-grid}.conv-view,.conv-list{max-height:none}.conv-view{min-height:calc(100dvh - 190px)}}.share-title{text-align:left;color:var(--text);padding:0;font-size:1.02rem}.project-view-modal{gap:12px;max-height:72vh;display:grid;overflow-y:auto}.project-view-modal .card{box-shadow:none}.share-intro{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.share-intro p{flex:220px;margin:0}.pantry{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.pantry-groups{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));align-items:start;gap:12px;display:grid}@media (width<=640px){.pantry-groups{grid-template-columns:minmax(0,1fr)}}.pantry-group{padding:10px 14px}.pantry-group-head{cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:4px 0;display:flex}.supply-list{margin:6px 0 0;padding:0;list-style:none}.supply-list li{border-top:1px solid var(--surface-2);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 0;display:grid}.supply-main{text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;gap:2px;min-width:0;padding:0;display:grid}.supply-badges{flex-wrap:wrap;gap:4px;display:flex}.supply-badges:empty{display:none}.supply-actions{align-items:center;gap:4px;display:flex}.three-col{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.form-group{border:1px solid var(--border);border-radius:10px;gap:10px;margin:0;padding:10px 12px 12px;display:grid}.form-group legend{color:var(--muted);padding:0 6px;font-size:.82rem;font-weight:600}.hint-row{background:var(--primary-soft);border-radius:8px;margin:0;padding:6px 10px}.icon-input{text-align:center;flex:none;width:3.2em}.cat-edit li input.grow{min-width:0}.cat-edit select{max-width:42%}.basket-row{flex-wrap:wrap}.basket-why{display:block}@media (width<=640px){.supply-list li{grid-template-columns:1fr auto}.supply-actions{grid-column:1/-1;justify-content:flex-end}.three-col{grid-template-columns:1fr 1fr}.cat-edit li{flex-wrap:wrap}.cat-edit select{flex:1;max-width:100%}}.three-col>*,.three-col input,.three-col select{width:100%;min-width:0}.month-nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.month-nav input[type=month]{width:auto}.month-kpis{margin-top:12px}.month-bar{background:repeating-linear-gradient(135deg, var(--surface-2) 0 6px, var(--primary-soft) 6px 12px);border-radius:999px;height:10px;margin-top:10px;overflow:hidden}.month-bar .spent{background:var(--primary);border-radius:999px 0 0 999px;height:100%}.month-grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.source-btn{text-align:left;color:var(--text);padding:0}.source-btn.on{color:var(--primary);font-weight:600}.expected-list li{align-items:flex-start}.exp-date{width:3.2em;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;padding-top:2px;font-size:.85rem}.exp-note{display:block}.exp-amount{white-space:nowrap}.expected-list li.is-overdue .exp-date{color:var(--bad);font-weight:600}@media (width<=760px){.month-grid{grid-template-columns:minmax(0,1fr)}}.todo-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:14px;margin-top:4px;display:grid}.todo-nav{padding:10px;position:sticky;top:76px}.todo-nav-select{width:100%;display:none}.todo-nav-list{margin:0 0 6px;padding:0;list-style:none}.todo-nav-list button{cursor:pointer;width:100%;font:inherit;color:inherit;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:7px 8px;display:flex}.todo-nav-list button:hover{background:var(--surface-2)}.todo-nav-list button.on{background:var(--primary-soft);color:var(--primary);font-weight:600}.todo-nav-head{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 8px 4px;font-size:.72rem}.todo-new-list{width:100%;margin-top:6px}.todo-items{margin:8px 0 0;padding:0;list-style:none}.todo-items li{border-top:1px solid var(--surface-2);align-items:flex-start;gap:10px;padding:9px 0;display:flex}.todo-items li.done .todo-title{color:var(--muted);text-decoration:line-through}.todo-items li.prio-high{box-shadow:inset 3px 0 0 var(--bad);padding-left:8px}.todo-check{border:2px solid var(--border);background:var(--surface);cursor:pointer;width:22px;height:22px;color:var(--on-primary);border-radius:50%;flex:none;place-items:center;margin-top:1px;padding:0;font-size:.75rem;display:grid}.todo-check:hover{border-color:var(--primary)}.todo-check.on{background:var(--primary);border-color:var(--primary)}.todo-body{text-align:left;cursor:pointer;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex:1;gap:3px;padding:0;display:grid}.todo-title{overflow-wrap:anywhere}.todo-meta{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.todo-meta:empty{display:none}.todo-people{flex:none;gap:2px;display:flex}.avatar.me{background:var(--primary);color:var(--on-primary)}.todo-title-input{font-size:1.05rem;font-weight:600}.chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.num-input{width:4.5em}.todo-checklist{margin:4px 0;padding:0;list-style:none}.todo-checklist li{justify-content:space-between;align-items:center;display:flex}.ov-list .todo-check{width:20px;height:20px}@media (width<=760px){.todo-layout{grid-template-columns:minmax(0,1fr)}.todo-nav{align-items:center;gap:8px;display:flex;position:static}.todo-nav-select{flex:1;min-width:0;display:block}.todo-nav>:not(.todo-nav-select):not(.todo-new-list){display:none}.todo-new-list{flex:none;width:auto;margin:0}}.savings-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.savings-now{align-items:center;gap:8px;display:flex}.horizon-custom{margin:0}.horizon-custom input{width:5em}.savings-table td,.savings-table th{white-space:nowrap}.savings-table .num{text-align:right;font-variant-numeric:tabular-nums}.savings-table tr.future td{color:var(--muted)}.savings-table tr.now td{background:var(--primary-soft);font-weight:600}.inline-edit{gap:4px;display:inline-flex}.inline-edit input{width:7em}.ok-text{color:var(--ok-text)}.savings-scroll{max-height:60vh;overflow-y:auto}.savings-grid~* .seg button,.site-board .seg button{white-space:nowrap}.site-board .seg{max-width:100%;overflow-x:auto}.access-line{margin:4px 0 8px;font-size:.9rem}.liquidity{margin-top:14px}.liq-bar{background:var(--surface);border-radius:999px;gap:2px;height:12px;display:flex;overflow:hidden}.liq-seg.free{background:var(--ok)}.liq-seg.notice{background:var(--primary)}.liq-seg.loss{background:var(--warn)}.liq-seg.locked{background:var(--muted)}.liq-legend{flex-wrap:wrap;gap:4px 16px;margin-top:6px;display:flex}.liq-options{flex-wrap:wrap;gap:6px;display:flex}.unlock-date{min-width:6.5em;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.85rem}.currency-bar{border-top:1px solid var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.rate-input{align-items:center;gap:6px;display:inline-flex}.rate-input input{text-align:right;width:5.5em}.savings-group{gap:10px;display:grid}.savings-group-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin-top:4px;display:flex}.savings-group-head h3,.include-check h3{margin:0;display:inline}.savings-group-head .check{gap:8px;font-size:1.05rem}.include-check{align-items:center;gap:8px;min-width:0}.include-check input{flex:none}.evo-table td{vertical-align:top}.evo-account{border-top:1px solid var(--surface-2);margin-top:12px;padding-top:12px}.loan-card .progress{margin:8px 0}.calc-results{gap:10px;margin-top:14px;display:grid}.calc-cols{grid-template-columns:1fr 1fr;gap:10px;display:grid}.calc-col{border:1px solid var(--border);border-radius:10px;gap:2px;padding:10px 12px;display:grid}.calc-col.best{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}@media (width<=640px){.calc-cols{grid-template-columns:1fr}}.vehicle-card{color:inherit;text-decoration:none}.vehicle-card:hover{border-color:var(--primary)}.plate{letter-spacing:.04em;border:1.5px solid var(--text);background:var(--surface);color:var(--text);vertical-align:middle;border-radius:4px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:700;display:inline-block}.deadline-list li{align-items:flex-start}.deadline-title{text-align:left;color:var(--text);justify-items:start;gap:3px;padding:0;display:grid}.debt-row{border-top:1px solid var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;padding-top:12px;display:flex}.nut-link{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.nut-daybar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.nut-daybar input[type=date]{width:auto}.nut-daybar .nut-add{margin-left:auto}.nut-summary{grid-template-columns:minmax(200px,1fr) 2fr;gap:18px;margin-bottom:14px;display:grid}.nut-summary>p{grid-column:1/-1;margin:0}.nut-kcal{flex-direction:column;gap:2px;display:flex}.nut-kcal .kpi-value{font-size:1.6rem;font-weight:700}.nut-kcal .kpi-value .muted{font-size:1rem;font-weight:500}.nut-bars{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 18px;display:grid}.nut-bar .progress{height:6px;margin:4px 0 6px}.nut-bar-text{justify-content:space-between;gap:8px;font-size:.85rem;display:flex}.nut-weight{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.nut-weight input{width:90px}.nut-meal{margin-bottom:12px}.nut-meal-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.nut-meal-head h3{margin:0}.nut-meal-head .btn{margin-left:auto}.nut-entries{margin:8px 0 0;padding:0;list-style:none}.nut-entry{border-top:1px solid var(--border);align-items:center;gap:8px;padding:8px 0;display:flex}.nut-entry-name{flex-direction:column;flex:1;min-width:0;display:flex}.nut-grams{flex-direction:row;align-items:center;gap:4px}.nut-grams input{text-align:right;width:64px}.nut-entry select{width:auto;max-width:110px}.nut-add-head{justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:10px;display:flex}.nut-search{width:100%}.nut-sub{margin:14px 0 8px}.nut-cats{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.nut-cats button{text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:10px;font-size:.88rem;display:flex}.nut-cats button:hover{border-color:var(--primary)}.nut-cat-icon{font-size:1.3rem}.nut-pick-list{margin:8px 0 0;padding:0;list-style:none}.nut-pick-list button{border:none;border-top:1px solid var(--border);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 4px;display:flex}.nut-pick-list button:hover{color:var(--primary)}.nut-amount{flex-direction:column;gap:10px;display:flex}.nut-raw{margin-top:4px}.nut-preview{background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:10px 12px;display:flex}.nut-preview strong{font-size:1.15rem}.nut-swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.nut-dash{border-top:2px dashed var(--text);width:16px;margin-left:10px;display:inline-block}.nut-stats{width:100%;max-width:640px}.nut-stats td:last-child{text-align:right}@media (width<=640px){.nut-summary{grid-template-columns:1fr}.nut-daybar .nut-add{width:100%;margin-left:0}.nut-entry{flex-wrap:wrap}.nut-entry-name{flex-basis:100%}.nut-entry .nut-grams{margin-left:auto}}.supp-today{flex-direction:column;gap:8px;padding:12px 16px;display:flex}.supp-today-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.supp-today-head a{color:var(--text);text-decoration:none}@media (width<=560px){.supp-row{flex-wrap:wrap}.supp-row .hab-name{flex-basis:calc(100% - 40px)}.supp-actions{justify-content:flex-end;width:100%}}.fit-week{margin:18px 0 8px}.fit-row{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.fit-row:hover{border-color:var(--primary)}.fit-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.fit-row-stats{color:var(--muted);flex-wrap:wrap;gap:4px 14px;display:flex}.fit-editor-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.fit-ex{margin:12px 0}.fit-ex-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.fit-ex-actions{flex-shrink:0;gap:2px;display:flex}.fit-sets{border-collapse:collapse;width:100%;margin:8px 0}.fit-sets th{text-align:left;color:var(--muted);padding:2px 4px;font-size:.78rem;font-weight:500}.fit-sets td{padding:3px 4px}.fit-sets td:first-child{width:44px}.fit-sets td:last-child{width:40px}.fit-sets input{text-align:center;width:100%;max-width:110px}.fit-muscles{flex-direction:column;gap:6px;display:flex}.fit-muscle{grid-template-columns:110px 1fr 32px;align-items:center;gap:10px;font-size:.88rem;display:grid}.fit-muscle-bar{background:var(--surface-2);border-radius:999px;height:10px;position:relative}.fit-muscle-bar>div{background:var(--series-1);border-radius:999px;height:100%}.fit-muscle-bar>i{background:var(--text);width:2px;height:16px;position:absolute;top:-3px}.hab-score{color:var(--muted);margin-left:auto;font-size:.9rem}.hab-score strong{color:var(--text);font-size:1.1rem}.hab-list{padding:4px 12px}.hab-row{border-top:1px solid var(--border);border-left:3px solid #0000;align-items:center;gap:10px;padding:10px 4px;display:flex}.hab-row:first-child{border-top:none}.hab-row.good{border-left-color:var(--ok)}.hab-row.bad{border-left-color:var(--bad)}.hab-icon{text-align:center;flex-shrink:0;width:28px;font-size:1.3rem}.hab-name{flex-direction:column;flex:1;min-width:0;display:flex}.hab-answers{flex-shrink:0;gap:6px;display:flex}.hab-btn{border:1px solid var(--border);background:var(--surface);min-width:52px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:8px 10px;font-weight:600}.hab-btn.on{color:#fff;background:var(--muted);border-color:#0000}.hab-btn.on.good{background:var(--ok)}.hab-btn.on.bad{background:var(--bad)}.hab-btn.hint{border-style:dashed;border-width:2px}.hab-btn.hint.good{border-color:var(--ok);color:var(--ok)}.hab-btn.hint.bad{border-color:var(--bad);color:var(--bad)}.hab-stats{flex-direction:column;gap:14px;display:flex}.hab-stat-head{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:4px;display:flex}.hab-cells{gap:2px;display:grid}.hab-cell{background:var(--surface-2);vertical-align:middle;border-radius:3px;min-width:4px;height:14px;display:inline-block}.chart-legend .hab-cell{width:12px}.hab-cell.good{background:var(--ok)}.hab-cell.bad{background:var(--bad)}.hab-cell.yes{background:var(--series-1)}.hab-manage{margin:8px 0;padding:0;list-style:none}.hab-manage li{border-top:1px solid var(--border);align-items:center;gap:6px;padding:6px 0;display:flex}.hab-manage li.off{opacity:.55}.hab-icon-in{text-align:center;width:46px}.hab-name-in{flex:1;min-width:0}.hab-manage select{width:auto;max-width:170px}@media (width<=640px){.hab-score{width:100%;margin-left:0}.hab-manage li{flex-wrap:wrap}.hab-name-in{flex-basis:calc(100% - 100px)}.fit-muscle{grid-template-columns:90px 1fr 28px}}.chart-head select{min-width:0;max-width:100%}.hab-row{flex-wrap:wrap}.hab-note{flex-basis:100%;padding-left:38px}.hab-note input{width:100%;padding:6px 10px;font-size:.9rem}.hab-notes{flex-direction:column;gap:2px;margin:6px 0 0;padding:0;list-style:none;display:flex}.hab-options{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.hab-options .chip{padding:4px 10px;font-size:.85rem}.asst-fab{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:80;background:var(--primary);color:#fff;font:inherit;box-shadow:var(--shadow);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:12px 16px;font-weight:600;display:flex;position:fixed}.asst-fab:hover{filter:brightness(1.08)}.asst-panel{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:90;background:var(--surface);border:1px solid var(--border);width:min(420px,100vw - 32px);height:min(640px,100vh - 100px);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;position:fixed;overflow:hidden}.asst-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 12px;display:flex}.asst-head-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.asst-consent{flex-direction:column;gap:12px;padding:16px;font-size:.92rem;display:flex;overflow-y:auto}.asst-consent ul{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.asst-msgs{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.asst-empty{flex-direction:column;gap:10px;display:flex}.asst-msg{overflow-wrap:anywhere;border-radius:12px;max-width:92%;padding:8px 12px;font-size:.92rem;line-height:1.45}.asst-msg.user{background:var(--primary-soft);color:var(--text);align-self:flex-end}.asst-msg.model{background:var(--surface-2);align-self:flex-start}.asst-msg p{margin:0 0 6px}.asst-msg p:last-child{margin-bottom:0}.asst-msg ul{margin:4px 0 6px;padding-left:18px}.asst-msg a{color:var(--primary);font-weight:600}.asst-proposal{border:1px dashed var(--primary);background:var(--surface);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:8px 10px;display:flex}.asst-proposal.saved{border-style:solid;border-color:var(--ok)}.asst-proposal.error{border-color:var(--bad)}.asst-saved{color:var(--ok);white-space:nowrap;font-weight:600}.asst-input{border-top:1px solid var(--border);gap:8px;padding:10px 12px;display:flex}.asst-input input{flex:1;min-width:0}.asst-off{align-self:center;margin:0 0 8px}.gaps-list{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.gaps-list li{align-items:flex-start;gap:10px;display:flex}.gaps-list .badge{text-align:center;flex-shrink:0;min-width:64px}.gaps-text{flex-direction:column;min-width:0;display:flex}.gaps-text a{color:var(--text);font-weight:600}@media (width<=900px){.asst-fab{bottom:calc(66px + env(safe-area-inset-bottom));padding:10px 14px;right:14px}.asst-fab-label{display:none}.asst-panel{width:auto;left:0;right:0;bottom:calc(54px + env(safe-area-inset-bottom));height:calc(100% - 54px - env(safe-area-inset-bottom) - env(safe-area-inset-top) - 40px);border-radius:14px 14px 0 0}}.fit-kind{border:1px dashed var(--border);background:var(--surface);min-width:34px;color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:6px 4px;font-size:.85rem}.fit-warm .fit-kind{border-color:var(--warn);color:var(--warn)}.fit-drop .fit-kind{border-color:var(--primary);color:var(--primary)}.fit-warm input{opacity:.75}.fit-effort{width:auto;max-width:92px;padding:6px 4px;font-size:.85rem}.fit-effort.easy{color:var(--ok)}.fit-effort.medium{color:var(--text)}.fit-effort.hard{color:var(--warn)}.fit-effort.max{color:var(--bad);font-weight:600}.fit-row-actions{white-space:nowrap;width:64px}.fit-row-actions .btn.on{color:var(--primary)}.fit-note-row td{padding-top:0}.fit-note-row input{text-align:left;width:100%;max-width:none;font-size:.85rem}.fit-ex-notes{width:100%;margin-top:8px;font-size:.85rem}.fit-own{margin-bottom:8px}.fit-evo{margin:10px 0 0;padding:0;list-style:none}.fit-evo li{border-top:1px solid var(--border)}.fit-evo-head{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:minmax(0,1fr) 80px auto auto;align-items:center;gap:10px;padding:8px 2px;display:grid}.fit-evo-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fit-evo-table{width:100%;margin-bottom:8px}@media (width<=640px){.fit-evo-head{grid-template-columns:minmax(0,1fr) auto}.fit-evo-head .fit-spark{display:none}.fit-sets input{max-width:64px}}.fit-advice{background:var(--surface-2);border-radius:8px;margin-top:4px;padding:6px 10px;font-size:.85rem}.fit-advice.increase{background:var(--ok-soft);color:var(--ok);font-weight:600}.fit-advice.harder{background:var(--warn-soft);color:var(--warn)}.fit-rules{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:6px;display:flex}.fit-rules label{flex-direction:column;font-size:.8rem}.fit-rules input{width:70px}.fit-ex>.fit-advice{margin-top:8px}.fit-ex>.nut-link{margin-top:4px;display:inline-block}@media (width<=640px){.fit-sets th,.fit-sets td{padding:3px 2px}.fit-sets input{min-width:44px;max-width:58px;padding-left:4px;padding-right:4px}.fit-sets td:nth-child(3) input{max-width:66px}.fit-effort{max-width:74px}.fit-row-actions{width:56px}.fit-row-actions .btn.icon{padding:4px}}.train-today{flex-direction:column;gap:12px;margin-bottom:14px;display:flex}.train-head{justify-content:space-between;align-items:baseline;display:flex}.train-head h3{margin:0}.train-go{background:var(--primary);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:999px;align-self:flex-start;align-items:center;gap:10px;padding:12px 20px;font-size:1.05rem;font-weight:700;animation:1.6s ease-in-out infinite train-pulse;display:inline-flex}.train-dot{background:#fff;border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite train-blink}@keyframes train-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--primary) 55%, transparent)}50%{box-shadow:0 0 0 10px color-mix(in srgb, var(--primary) 0%, transparent)}}@keyframes train-blink{0%,to{opacity:1}50%{opacity:.25}}.train-rest{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.train-cycle{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.train-cycle li{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:.82rem}.train-cycle li.rest{border-style:dashed}.train-cycle li.now{border-color:var(--primary);color:var(--primary);font-weight:700;animation:1.2s ease-in-out infinite train-blink}.train-cycle li.done{border-color:var(--ok);color:var(--ok);font-weight:600}.train-walk{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:10px;display:flex}.train-walk-label{font-weight:600}.train-walk label{flex-direction:row;align-items:center;gap:4px}.train-walk input{width:64px}.train-edit{margin:8px 0 12px;padding:0;list-style:none}.train-edit li{border-top:1px solid var(--border);align-items:center;gap:4px;padding:4px 0;display:flex}.train-edit li>span{flex:1}.train-mini{color:var(--text);align-items:center;gap:10px;margin-bottom:14px;text-decoration:none;display:flex}.train-mini.workout{border-left:4px solid var(--primary)}.train-mini-icon{font-size:1.3rem}.train-pulse-text{color:var(--primary);animation:1.2s ease-in-out infinite train-blink}@media (prefers-reduced-motion:reduce){.train-go,.train-dot,.train-cycle li.now,.train-pulse-text{animation:none}}.push-prefs{flex-direction:column;gap:8px;margin-top:8px;display:flex}.push-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.push-row select{width:auto}.push-parts{flex-direction:column;gap:4px;padding-left:4px;display:flex}.push-preview{flex-direction:column;gap:6px;margin-top:10px;display:flex}.push-bubble{background:var(--surface-2);white-space:pre-line;border-radius:14px;flex-direction:column;gap:2px;max-width:420px;padding:10px 12px;font-size:.88rem;display:flex}.landing{--bg:#070b12;--surface:#101824d1;--surface-2:#142033;--text:#e8f1f5;--muted:#8fa3b5;--border:#22344a;--primary:#3be0c0;--primary-soft:#3be0c024;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) clamp(16px, 4vw, 56px) max(24px, env(safe-area-inset-bottom));color:var(--text);background:radial-gradient(1200px 700px at 30% 40%,#0f2433 0%,#070b12 60%);grid-template-columns:minmax(0,1.25fr) minmax(300px,400px);align-items:center;gap:24px;display:grid}.landing .auth-card{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 20px 60px #00000073}.landing .auth-card input{color:var(--text);border-color:var(--border);background:#0c1522}.landing .auth-card .btn.primary{background:var(--primary);color:#04231d;font-weight:700}.landing .auth-card a,.landing .auth-card .link{color:var(--primary)}.auth-title{margin:0 0 4px;font-size:1.15rem;font-weight:600}.landing-hero{flex-direction:column;align-items:center;min-width:0;display:flex}.landing-name{letter-spacing:.08em;text-wrap:balance;background:linear-gradient(90deg,#bff6ec,#3be0c0 40%,#b28dff);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.2rem,5vw,3.6rem);font-weight:300}.landing-tagline{color:var(--muted);text-align:center;max-width:46ch;margin:6px 0 0}.neural{width:100%;max-width:620px;height:auto;overflow:visible}.neural-body{fill:none;stroke:#9ff3e3;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.neural-inner{stroke:#3be0c0;stroke-width:.8px;opacity:.55}.neural-neuron{fill:#d6fff7}.neural-edge{fill:none;stroke-width:1.6px;opacity:.9}.neural-zone-ring{fill:#070b12d9;stroke-width:1.6px}.neural-label{fill:#dbe8ef;letter-spacing:.02em;font-size:15px;font-weight:600}.neural.animate .neural-body{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.2s ease-out forwards nh-draw}.neural.animate .neural-edge{stroke-dasharray:1;stroke-dashoffset:1px;animation:.9s ease-out forwards nh-draw}.neural.animate .neural-zone{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.5s ease-out forwards nh-pop}.neural.animate .neural-neuron{animation:2.4s ease-in-out infinite nh-blink}.neural.animate .neural-zone-ring{animation:3.2s ease-in-out 3s infinite nh-breathe}.neural-spark{opacity:0;animation:.3s linear forwards nh-show}@keyframes nh-draw{to{stroke-dashoffset:0}}@keyframes nh-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes nh-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes nh-breathe{0%,to{stroke-opacity:1}50%{stroke-opacity:.45}}@keyframes nh-show{to{opacity:1}}@media (width<=860px){.landing{grid-template-columns:minmax(0,1fr);place-items:start center;gap:8px}.landing .auth-card,.neural{max-width:420px}.neural-label{font-size:19px}}.landing-hero .neural{margin-top:28px}@media (width<=860px){.landing-hero .neural{margin-top:22px}.landing-tagline{font-size:.92rem}}.lang-switch{border:1px solid var(--border);border-radius:999px;align-self:flex-start;display:inline-flex;overflow:hidden}.lang-switch button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:.85rem;font-weight:600}.lang-switch button.on{background:var(--primary);color:var(--on-primary)}.landing .lang-switch button.on{color:#04231d}.topbar-lang{align-self:center}.topbar-lang button{padding:4px 9px;font-size:.78rem}@media (width<=440px){.topbar-right{gap:6px}.topbar-lang button{padding:4px 7px}.topbar .brand-name{display:none}}.landing{position:relative}.landing-lang{top:max(16px, env(safe-area-inset-top));z-index:2;position:absolute;right:16px}:root{accent-color:var(--primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary-soft);outline-offset:0}[tabindex="-1"]:focus{outline:none}.skip-link{z-index:1000;background:var(--primary);color:var(--on-primary);border-radius:8px;padding:10px 16px;font-weight:600;transition:top .15s;position:fixed;top:-60px;left:12px}.skip-link:focus{top:max(10px, env(safe-area-inset-top))}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}button:disabled,.btn:disabled,.btn[aria-disabled=true],input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{background:var(--surface)}.btn.primary:disabled:hover{background:var(--primary)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--bad)}input[aria-invalid=true]:focus,select[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus{outline-color:var(--bad-soft);border-color:var(--bad)}.field-hint{color:var(--muted);font-size:.8rem}.field-error{color:var(--bad-text);font-size:.8rem;font-weight:500}[data-field-error]:after{content:attr(data-field-error);color:var(--bad-text);font-size:.8rem;font-weight:500}@media (width<=900px){.stat-row>:last-child:nth-child(odd),.kpi-row>:last-child:nth-child(odd){grid-column:1/-1}}.nav-item,.stat,.metric-label{overflow-wrap:anywhere}.tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding-inline:24px}.tabs::-webkit-scrollbar{display:none}.tabs.fade-end{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}.tabs.fade-start{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 40px),#0000)}.tabs.fade-start.fade-end{-webkit-mask-image:linear-gradient(90deg,#0000,#000 40px calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#0000,#000 40px calc(100% - 40px),#0000)}.tabs button{flex:none}.tabs button:focus-visible{outline-offset:-2px}.modal-backdrop{animation:.15s ease-out ux-fade}.modal:focus{outline:none}.modal-grab{display:none}.modal.nudge{animation:.3s ease-in-out ux-nudge}@keyframes ux-fade{0%{opacity:0}}@keyframes ux-nudge{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes ux-rise{0%{opacity:.4;transform:translateY(40px)}}.dialog-msg{color:var(--text);white-space:pre-line;margin:0 0 14px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.btn.destructive{background:var(--danger);border-color:var(--danger);color:#fff}.btn.destructive:hover{background:var(--bad)}:root[data-theme=dark] .btn.destructive{color:#1b0d0b}.amount-input{text-align:right;width:100%;font-weight:600;font-size:1.4rem!important}.skeleton{flex-direction:column;gap:10px;display:flex}.skeleton.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.sk{background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);background-size:200% 100%;border-radius:8px;animation:1.4s ease-in-out infinite ux-shimmer}.sk-line{height:14px}.sk-line.title{width:40%;height:22px}.sk-line:last-child:not(:first-child){width:70%}.sk-card{border-radius:var(--radius);height:96px}@keyframes ux-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.link,.nut-link,.ov-head a,.chart-top a,.hit{position:relative}.link:before,.nut-link:before,.ov-head a:before,.chart-top a:before,.hit:before{content:"";width:max(100%,44px);height:max(100%,44px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=900px),(pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not(.amount-input),select,textarea{font-size:16px!important}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,.btn{min-height:44px}.btn.small{min-height:40px}.btn.icon{min-width:44px}.chip,.hab-btn,.back-pill{min-height:44px}.seg button,.topbar .brand,.lang-switch button,.topbar-lang button{min-width:44px;min-height:44px}.nav-item{min-height:44px}.tabs button{min-width:44px;min-height:44px}label.check,.check{min-height:44px}input[type=checkbox],input[type=radio],input.pick{width:20px;height:20px}.toast-undo{min-height:44px;padding:6px 10px}.rating{gap:10px}.rating .dot{width:32px;height:32px}}@media (width<=900px){.modal-backdrop{height:var(--vvh,100%);top:var(--vvt,0);bottom:auto}.modal{max-height:calc(var(--vvh,100vh) - max(12px, env(safe-area-inset-top)));animation:.2s ease-out ux-rise}.modal:has(.form-actions){padding-bottom:0}.modal-grab{cursor:grab;touch-action:none;background:0 0;border:none;width:100%;height:22px;margin:-10px 0 4px;padding:0;display:block}.modal-grab:before{content:"";background:var(--border-strong);opacity:.6;border-radius:3px;width:40px;height:5px;margin:0 auto;display:block}.modal .form-actions{z-index:2;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);margin:4px -16px 0;position:sticky;bottom:0}.dialog-actions .btn{flex:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.sk{animation:none}}.field>input,.field>select,.field>textarea{color:var(--text)}.ico{vertical-align:middle;fill:none;stroke:currentColor;stroke-dasharray:none;flex:none;display:inline-block}.nav-item .nav-icon{opacity:.85;width:18px;height:18px}.nav-item.active .nav-icon{opacity:1}.btn.icon .ico{display:block}.theme-toggle,.msg-link{place-items:center;display:inline-grid}@media (width>=901px){.home-crumbs-phone{display:none}}@media (width<=900px){.bb-icon{width:22px;height:22px}.app.has-bottom-bar .content{padding-bottom:calc(64px + env(safe-area-inset-bottom))}}.first-steps{padding:10px 14px}.fs-head{align-items:center;gap:8px;display:flex}.fs-close{margin-left:auto;font-size:1.2rem;line-height:1}.fs-steps{flex-wrap:wrap;gap:8px;margin:6px 0 0;padding:0 0 2px;list-style:none;display:flex}@media (width<=640px){.fs-steps{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}}.fs-steps li{flex:none}.fs-steps .chip{white-space:nowrap;color:var(--primary);font-size:.88rem;font-weight:600}@media (width<=640px){.ov-list li.ov-pay{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name amount""date act";align-items:center;gap:6px 10px;display:grid}.ov-pay>.grow{white-space:normal;overflow-wrap:anywhere;grid-area:name;min-width:0}.ov-pay>strong{white-space:nowrap;grid-area:amount;justify-self:end}.ov-pay>.badge{grid-area:date;justify-self:start}.ov-pay>.btn{grid-area:act;justify-self:end}}.empty-row{flex-wrap:wrap;align-items:center;gap:12px;padding:4px 0 12px;display:flex}.empty-row p{flex:260px;margin:0}p.empty-row{padding:8px 0}.pw-field{align-items:center;display:flex;position:relative}.pw-field input{flex:1;min-width:0;padding-right:78px}.pw-toggle{padding:4px 10px;position:absolute;top:50%;right:4px;transform:translateY(-50%);min-height:0!important}.pw-short{color:var(--warn)}.forgot-link{align-self:flex-start;margin-top:-8px;padding-left:0}.neural{transition:max-width .3s}.neural.compact{max-width:440px}@media (width<=860px){.neural.compact{max-width:210px}.landing-hero .neural.compact{margin-top:8px}.neural.compact .neural-label{display:none}.landing-lang{place-self:start end;margin-bottom:-4px;position:static}}@media (prefers-reduced-motion:reduce){.neural{transition:none}}.asst-fab{justify-content:center;width:48px;height:48px;padding:0}.asst-title{align-items:center;gap:6px;display:inline-flex}@media (width<=900px){.asst-fab{width:44px;height:44px;right:22px;bottom:calc(132px + env(safe-area-inset-bottom));opacity:.92;padding:0}}.nav-group-link{border-radius:7px;display:block}.nav-group-link:hover,.nav-group-link.active{background:var(--surface-2);color:var(--primary-text)}@media (width<=900px){.home-nav{display:none}}.more-sheet{max-width:640px}.more-search{border:1px solid var(--border-strong,var(--border));color:var(--muted);border-radius:10px;flex-direction:row;align-items:center;gap:8px;margin-bottom:12px;padding:0 10px;display:flex}.more-search input{min-width:0;color:var(--text);box-shadow:none;background:0 0;border:none;flex:1;padding:10px 0;outline:none!important}.more-search:focus-within{border-color:var(--primary)}.more-group{margin-bottom:12px}.more-group h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:.75rem}.more-group h3 a{color:inherit}.more-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.more-tile{border:1px solid var(--border);min-height:76px;color:var(--text);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px 4px;font-size:.8rem;line-height:1.2;display:flex}.more-tile:hover{border-color:var(--primary)}.more-tile.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text);font-weight:600}.more-row{border-bottom:1px solid var(--border);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px;margin-bottom:12px;padding-bottom:8px;display:grid}.more-row a{min-height:56px;color:var(--text);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:.8rem;display:flex}.more-row a:hover{background:var(--surface-2)}.area-strip{display:none}@media (width<=900px){.area-strip{scrollbar-width:none;gap:8px;margin:-4px -16px 12px;padding:0 16px 2px;display:flex;overflow-x:auto}.area-strip::-webkit-scrollbar{display:none}.area-strip .chip{white-space:nowrap;flex:none;font-size:.85rem}}.qa-fab{display:none}.qa-top{align-items:center;gap:4px;display:inline-flex}@media (width<=900px){.qa-top{display:none}.qa-fab{z-index:65;right:16px;bottom:calc(66px + env(safe-area-inset-bottom));background:var(--primary);width:56px;height:56px;color:var(--on-primary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;box-shadow:0 6px 18px #00000040}.home-main{padding-bottom:calc(140px + env(safe-area-inset-bottom))!important}.app.has-bottom-bar .content{padding-bottom:calc(140px + env(safe-area-inset-bottom))}}.qa-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.qa-option{border:1px solid var(--border);background:var(--surface);min-height:56px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.qa-option:hover{border-color:var(--primary)}.qa-option .ico{color:var(--primary)}.qa-amount{font-weight:700;font-size:1.6rem!important}.ov-summary{color:var(--muted);margin:0 0 12px;font-weight:600}.for-you{color:var(--text);align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;display:flex}.for-you:hover{border-color:var(--primary)}.for-you-parts{min-width:0;color:var(--muted);flex:1;font-size:.9rem}.for-you-chev,.eu-chev{color:var(--muted);margin-left:auto;font-size:1.3rem}.ov-tag{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:0 6px;font-size:.75rem;display:inline-block}.ov-more{color:var(--primary);margin-top:6px;display:inline-block}.ov-do .todo-check{position:relative}.ov-do .todo-check:after{content:"";position:absolute;inset:-12px}.eu-private{margin:-4px 0 12px}.eu-today{margin-bottom:16px}.eu-today h2{margin:0 0 10px;font-size:1.05rem}.eu-entries{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.eu-entry{flex-direction:column;gap:8px;padding:0;display:flex}.eu-entry-main{color:var(--text);align-items:center;gap:12px;min-height:64px;padding:14px;display:flex}.eu-entry-main>span:not(.eu-chev){flex-direction:column;display:flex}.eu-entry-main .ico{color:var(--primary)}.eu-extra{align-self:flex-start;margin:-6px 14px 12px}.start-page{max-width:560px;margin:0 auto}.start-choices{gap:10px;margin:16px 0;display:grid}.start-choice{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;border:1px solid var(--border);align-items:center;gap:14px;padding:14px;display:flex}.start-choice>span:nth-child(2){flex-direction:column;flex:1;display:flex}.start-choice.on{border-color:var(--primary);background:var(--primary-soft)}.start-icon{font-size:1.6rem}.start-tick{border:2px solid var(--border-strong,var(--border));width:26px;height:26px;color:var(--on-primary);border-radius:50%;place-items:center;font-weight:700;display:grid}.start-choice.on .start-tick{background:var(--primary);border-color:var(--primary)}.start-actions{justify-content:space-between;gap:12px;display:flex}.health-private{margin:0 0 8px}.health-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.health-daybar .health-score{margin-left:auto;font-size:.95rem}.health-daybar .health-score strong{font-size:1.1rem}@media (width<=640px){.health-daybar .health-score{width:100%;margin-left:0}}.fit-editor-head{z-index:20;background:var(--bg);justify-content:flex-start;align-items:center;gap:10px;margin:0 -4px 10px;padding:6px 4px;display:flex;position:sticky;top:0}.fit-editor-title{flex-direction:column;min-width:0;display:flex}.fit-editor-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fit-live{vertical-align:2px;margin-left:8px;font-size:.72rem}.fit-finished{color:var(--ok);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-weight:600;display:flex}.fit-finish{width:100%;margin:16px 0 8px;padding:14px;font-size:1.05rem;font-weight:700;display:block}.fit-details{margin-top:12px}.fit-details>summary{cursor:pointer;color:var(--muted);padding:4px 0;font-size:.9rem}.fit-details[open]>summary{margin-bottom:10px}.fit-details .row-wrap+.row-wrap{margin-top:8px}.fit-more{min-width:44px;min-height:44px;padding:0 8px;font-size:1.2rem;line-height:1}.fit-more.on{color:var(--primary)}.fit-menu{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.fit-menu .chip{min-height:40px}.fit-menu .chip:disabled{opacity:.45;cursor:default}.fit-danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 45%, var(--border))}.fit-ex>.fit-rules-link{margin-top:6px;display:inline-block}.fit-rules-check{align-items:center;gap:6px;min-height:40px;font-size:.85rem;flex-direction:row!important}.fit-rules-check input{width:auto}.fit-editor .fit-sets{table-layout:auto}.fit-editor .fit-sets td{vertical-align:middle;padding:4px 3px}.fit-editor .fit-sets td:first-child{width:40px}.fit-editor .fit-sets td:last-child{width:44px}.fit-editor .fit-sets input{text-align:center;width:100%;min-width:56px;max-width:96px;min-height:46px;padding:6px 4px;font-size:20px;font-weight:600}.fit-editor .fit-sets input::placeholder{color:var(--muted);opacity:.4;font-weight:400}.fit-editor .fit-note-row input{text-align:left;max-width:none;min-height:40px;font-size:16px;font-weight:400}.fit-label{text-align:center;color:var(--muted);font-size:.9rem;font-weight:600}.fit-warm .fit-label{color:var(--warn)}.fit-drop .fit-label{color:var(--primary)}.fit-tick-cell{width:48px}.fit-tick{border:2px solid var(--border);background:var(--surface);width:46px;height:46px;color:var(--muted);font:inherit;cursor:pointer;border-radius:12px;font-size:1.25rem;font-weight:700}.fit-tick.on{background:var(--ok);border-color:var(--ok);color:#fff}.fit-done td{background:var(--ok-soft)}.fit-done td:first-child{border-radius:10px 0 0 10px}.fit-done td:last-child{border-radius:0 10px 10px 0}.fit-done input{border-color:color-mix(in srgb, var(--ok) 40%, var(--border))}@media (width<=640px){.fit-editor .fit-sets input{min-width:48px;max-width:none}.fit-editor .fit-sets th,.fit-editor .fit-sets td{padding:3px 2px}}.fit-editor.resting{padding-bottom:84px}.fit-restbar{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:250;background:var(--text);width:min(560px,100vw - 24px);color:var(--bg);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:6px;padding:8px 10px;display:flex;position:fixed;overflow:hidden;transform:translate(-50%)}.fit-restbar-fill{background:color-mix(in srgb, var(--primary) 45%, transparent);z-index:-1;transition:width .25s linear;position:absolute;inset:0 auto 0 0}.fit-restbar-time{font-variant-numeric:tabular-nums;flex:1;font-size:1.15rem;font-weight:700}.fit-restbar .btn{min-height:44px;color:inherit;border-color:color-mix(in srgb, var(--bg) 35%, transparent);background:0 0}.fit-restbar .btn:not(.ghost){background:var(--bg);color:var(--text)}.fit-restbar.over{background:var(--ok);color:#fff}.fit-restbar.over .btn:not(.ghost){color:var(--ok);background:#fff}@media (width<=900px){.fit-restbar{bottom:calc(66px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.fit-restbar-fill{transition:none}}.fit-sum{margin-bottom:8px}.fit-prs{flex-direction:column;gap:6px;margin:6px 0 10px;padding:0;list-style:none;display:flex}.fit-records h3{margin-bottom:4px}.train-walk{flex-direction:column;align-items:stretch}.train-walk-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.train-walk-head .btn{min-width:40px;min-height:40px}.train-walk-quick .chip{min-height:40px}.train-walk-fields{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.train-walk-fields input{width:72px;min-height:40px}.hab-confirm{margin-bottom:10px}.hab-setup .chip-list{margin-top:10px}.hab-setup .chip{min-height:40px}.hab-btn.hint{border-style:dashed;border-width:2px;border-color:var(--muted);color:var(--text)}.nut-empty{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.nut-more{grid-column:1/-1;justify-self:start;margin-top:2px}.nut-weight-done{gap:10px}.nut-entry-line{padding:0}.nut-entry-btn{min-width:0;min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 0;display:flex}.nut-entry-btn:hover .nut-entry-text{color:var(--primary)}.nut-entry-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nut-entry-nums{flex-shrink:0}.nut-entry-open{background:var(--surface-2);border-radius:10px;flex-wrap:wrap;margin:0 -8px;padding:8px}.nut-entry-open .nut-entry-btn{flex-direction:column;flex-basis:100%;align-items:flex-start;gap:2px;padding:2px 0}.nut-del{color:var(--bad);margin-left:auto}.nut-added{background:var(--ok-soft);color:var(--ok);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;font-weight:600;display:flex}@media (width<=640px){.nut-weight{flex-wrap:nowrap}.nut-weight>.muted{flex:1;min-width:0}.nut-weight-done{flex-wrap:wrap}}.fit-gym-open{white-space:nowrap;min-height:40px;margin-left:auto}.gym-mode{--bg:#0d1014;--surface:#171b21;--surface-2:#222830;--text:#eef1f4;--muted:#9aa5b1;--border:#2e353e;--primary:#4fa58c;--primary-soft:#1f3a33;--primary-text:#6cc2a8;--ok:#5cc27f;--ok-soft:#1d3326;--bad:#ef6f62;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;z-index:95;overscroll-behavior:contain;padding:calc(8px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));background:var(--bg);color:var(--text);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.gym-mode.light{--bg:#f5f6f8;--surface:#fff;--surface-2:#eceff2;--text:#1d2430;--muted:#5a6573;--border:#d5dae0;--primary:#2f6f5e;--primary-soft:#e3f0ec;--primary-text:#285f51;--ok:#2a8049;--ok-soft:#e6f4ea;--bad:#c0392b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.gym-top{align-items:center;gap:10px;display:flex}.gym-title{text-align:center;flex-direction:column;flex:1;min-width:0;display:flex}.gym-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gym-title .small{color:var(--muted);font-variant-numeric:tabular-nums}.gym-icon{border:1px solid var(--border);background:var(--surface);min-width:48px;min-height:48px;color:var(--text);font:inherit;cursor:pointer;border-radius:14px;font-size:1.5rem;line-height:1}.gym-icon:disabled{opacity:.3;cursor:default}.gym-ex{flex-direction:column;flex:1;gap:14px;width:100%;max-width:560px;margin:14px auto 0;display:flex}.gym-ex-nav{align-items:center;gap:8px;display:flex}.gym-ex-name{text-align:center;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gym-ex-name .small,.gym-prev{color:var(--muted)}.gym-ex-name h2{margin:0;font-size:1.45rem;line-height:1.2}.gym-advice{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-size:.92rem}.gym-advice.increase{border-color:var(--ok);color:var(--ok)}.gym-sets{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.gym-set{border:1px solid var(--border);background:var(--surface);min-width:56px;min-height:48px;color:var(--text);font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:4px 10px;font-size:.85rem;display:flex}.gym-set-n{color:var(--muted);font-size:.75rem;font-weight:700}.gym-set.warm .gym-set-n{color:#e6b04a}.gym-set.done{background:var(--ok-soft);border-color:var(--ok)}.gym-set.now{outline:3px solid var(--primary);outline-offset:1px}.gym-set.add{color:var(--muted);font-size:1.4rem}.gym-which{text-align:center;color:var(--muted);margin:0;font-weight:600}.gym-stepper{grid-template-columns:1fr 1.4fr 1fr;align-items:stretch;gap:10px;display:grid}.gym-step{border:1px solid var(--border);background:var(--surface-2);min-height:76px;color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;border-radius:18px;font-size:1.4rem;font-weight:700}.gym-step:active{background:var(--primary-soft)}.gym-value{border:2px solid var(--border);background:var(--surface);min-height:76px;color:var(--text);font:inherit;cursor:pointer;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;line-height:1.05;display:flex}.gym-value strong{font-variant-numeric:tabular-nums;font-size:2.6rem}.gym-value span{color:var(--muted);font-size:.85rem}.gym-tick{background:var(--ok);color:#fff;min-height:72px;font:inherit;cursor:pointer;touch-action:manipulation;border:none;border-radius:18px;font-size:1.35rem;font-weight:800}.gym-mode:not(.light) .gym-tick:not(.done){color:#0d1512}.gym-tick.done{background:var(--surface-2);color:var(--text);border:1px solid var(--ok);font-size:1.1rem}.gym-bottom{width:100%;max-width:560px;margin:16px auto 0}.gym-next{background:var(--surface);width:100%;min-height:56px;color:var(--text);border-color:var(--border);font-size:1.05rem;font-weight:700}.gym-next.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.gym-mode:not(.light) .gym-next.primary{color:#0d1512}.gym-mode~.fit-restbar{bottom:calc(16px + env(safe-area-inset-bottom))}.gym-mode:has(~.fit-restbar){padding-bottom:calc(96px + env(safe-area-inset-bottom))}@media (height<=640px){.gym-step,.gym-value{min-height:62px}.gym-value strong{font-size:2.1rem}.gym-tick{min-height:60px}}.health-today-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.health-today-head h2{margin:0 0 4px}.health-block{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.health-block-label{font-weight:600}.health-block-label a,a.health-block-label{color:inherit}.ok-line{color:var(--ok-text)}.health-line{flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;display:flex}.health-workout-go{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.health-workout-go .train-go{align-self:auto}.health-chips .chip{min-height:44px;padding:6px 14px}.health-habits{flex-direction:column;display:flex}.health-habit{border-top:1px solid var(--border);align-items:center;gap:8px;padding:8px 0;display:flex}.health-habit:first-child{border-top:none}.health-habit-name{flex:1;min-width:0}.health-habit .hab-btn{min-height:44px}.health-food-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.health-food-row{justify-content:space-between;gap:10px;display:flex}.health-food .progress{height:6px;margin:-4px 0 0}.health-food .nut-weight{border-top:1px solid var(--border);margin:4px 0 0;padding-top:10px}.health-week-open{align-self:center;margin:4px 0 12px}.health-streaks{margin-bottom:12px}.health-streaks h3{margin-bottom:8px}.health-streak+.health-streak{margin-top:10px}.health-streak-head{justify-content:space-between;gap:10px;margin-bottom:4px;font-size:.92rem;display:flex}.health-streak-n{font-weight:700}.health-cells{gap:2px;display:grid}.health-cell{background:var(--surface-2);vertical-align:middle;box-sizing:border-box;border-radius:3px;min-width:6px;height:14px;display:inline-block}.health-streak-legend .health-cell{width:12px;height:12px;margin:0 2px 0 8px}.health-streak-legend .health-cell:first-child{margin-left:0}.health-cell.done{background:var(--ok)}.health-cell.partial{background:color-mix(in srgb, var(--ok) 40%, var(--surface-2))}.health-cell.missed{background:color-mix(in srgb, var(--bad) 35%, var(--surface-2))}.health-cell.rest{border:1px dashed var(--border-strong);background:0 0}.health-cell.today{border:2px solid var(--primary);background:0 0}.health-streak-legend{margin:10px 0 0}.health-week{border-left:4px solid var(--primary);margin-bottom:12px;position:relative}.health-week-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding-right:40px;display:flex}.health-week-head h3{margin:0}.health-week-nav{align-items:center;gap:4px;display:inline-flex}.health-week-nav .btn{min-width:40px;min-height:40px}.health-week-x{min-width:40px;min-height:40px;font-size:1.2rem;position:absolute;top:8px;right:8px}.health-week-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.health-week-grid>div{flex-direction:column;gap:2px;display:flex}.health-week-big{font-size:1.3rem}.health-confetti{z-index:400;pointer-events:none;position:fixed;top:40%;left:50%}.health-confetti i{opacity:0;width:8px;height:12px;animation:health-pop 1.6s cubic-bezier(.2, .7, .3, 1) var(--d) forwards;border-radius:2px;position:absolute}@keyframes health-pop{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--x), 45vh) rotate(var(--r));opacity:0}}@media (prefers-reduced-motion:reduce){.health-confetti{display:none}}:root{--money-projects:#8d6e3f;--money-orders:#0f8fa8;--money-travel:#9b3c8c}:root[data-theme=dark]{--money-projects:#c39a5e;--money-orders:#3cb4cc;--money-travel:#c77dbb}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--money-projects:#c39a5e;--money-orders:#3cb4cc;--money-travel:#c77dbb}}.money-standing{gap:6px;margin-bottom:14px;padding:12px 16px;display:grid}.money-standing h3{margin:0 0 2px;font-size:.95rem}.money-standing ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.money-standing li{align-items:baseline;gap:8px;font-size:.92rem;display:flex}.money-standing li:before{content:"•";color:var(--muted)}.money-standing li.good:before{content:"✓";color:var(--ok)}.money-standing li.warn:before,.money-standing li.bad:before{content:"!";color:var(--bad);font-weight:700}.money-standing .link{justify-self:start}.money-include{position:relative}.money-include>summary{cursor:pointer;list-style:none}.money-include>summary::-webkit-details-marker{display:none}.money-include-panel{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:8px;min-width:260px;max-width:calc(100vw - 32px);padding:12px 14px;display:grid;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #0000001f}.money-include-panel select{width:100%}.money-filters{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 12px;display:flex}.kpi-sub.expected{color:var(--muted);font-style:italic}.ov-head .seg button{padding:4px 10px;font-size:.82rem}.tx-list li.tx-other{cursor:default}.tx-list li.tx-other .tx-title a{color:inherit}.tx-source{color:var(--muted);white-space:nowrap;font-size:.78rem}.entry-form{gap:12px;display:grid}.entry-amount input{width:100%;padding:10px 12px;font-size:1.8rem;font-weight:700}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;min-height:36px;padding:7px 12px;font-size:.9rem}.chip.on{background:var(--primary-soft);border-color:var(--primary);color:var(--text);font-weight:600}.entry-form details>summary{cursor:pointer;color:var(--muted);padding:6px 0}.entry-form details[open]>summary{margin-bottom:8px}.entry-form .more-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.entry-form .more-fields .span-2{grid-column:1/-1}.entry-form label{gap:4px;font-size:.9rem;display:grid}.entry-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.entry-actions .spacer{flex:1}@media (width<=900px){.money-actions{gap:6px;width:100%}.money-actions .btn{padding:6px 10px;font-size:.85rem}.entry-modal-save{bottom:calc(-16px - env(safe-area-inset-bottom));background:var(--surface);padding:10px 0 calc(10px + env(safe-area-inset-bottom));margin-bottom:calc(-16px - env(safe-area-inset-bottom));border-top:1px solid var(--border);position:sticky}}.quick-add>*{min-width:0}.quick-add input,.quick-add select{width:100%}@media (width<=600px){.quick-add{grid-template-columns:minmax(0,1fr)}.quick-add .btn{width:100%}.entry-form .more-fields{grid-template-columns:minmax(0,1fr)}}.month-label{text-align:center;min-width:9.5em;font-weight:600}.expected-list .exp-note{white-space:normal;text-overflow:clip;overflow:visible}.pantry-row .exp-note{display:block}.plan-pay{white-space:nowrap}.buckets-lines{margin:0;padding:0;list-style:none;display:none}.buckets-lines li{border-bottom:1px solid var(--surface-2);flex-wrap:wrap;gap:4px 8px;padding:6px 0;display:flex}.buckets-lines li strong{margin-right:auto}@media (width<=600px){.buckets-table{display:none}.buckets-lines{display:block}}.bill-month>summary{cursor:pointer;gap:8px;padding:8px 0;font-weight:600;display:flex}.bill-month>summary .grow{flex:1}.meter-read{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.meter-read input{width:11em;max-width:100%;padding:8px 10px;font-size:1.1rem}.savings-intro{gap:8px;padding:18px;display:grid}.savings-intro p{margin:0}.plan-actions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.pantry-row .link{text-align:left;white-space:normal}.money-hub{gap:14px;display:grid}.hub-month{gap:10px;display:grid}.hub-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hub-head h3{margin:0}.hub-spent{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.hub-spent strong{font-variant-numeric:tabular-nums;font-size:1.7rem}.hub-bar{background:var(--border);border-radius:6px;height:10px;position:relative}.hub-bar-fill{background:var(--primary);border-radius:6px;height:100%}.hub-bar-fill.over{background:var(--bad)}.hub-bar-pace{background:var(--text);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.hub-pace{margin:0}.hub-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.hub-fig{border:1px solid var(--border);color:inherit;border-radius:10px;gap:2px;min-width:0;padding:10px 12px;text-decoration:none;display:grid}a.hub-fig:hover{border-color:var(--primary)}.hub-fig .kpi-label,.hub-fig .kpi-sub{color:var(--muted);font-size:.85rem}.hub-fig .kpi-value{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.hub-standing{border-top:1px solid var(--border);margin:0;padding:10px 0 0}.hub-tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.hub-tile{color:inherit;align-items:center;gap:12px;min-height:64px;padding:14px 16px;text-decoration:none;display:flex}.hub-tile:hover{border-color:var(--primary)}.hub-tile .ico{color:var(--primary);flex-shrink:0}.hub-tile-text{flex:1;gap:2px;min-width:0;display:grid}.hub-tile-go{color:var(--muted);font-size:1.3rem}@media (width<=600px){.hub-figures,.hub-tiles{grid-template-columns:minmax(0,1fr)}}.bills-guide{margin:-4px 0 12px}.bill-sub-hint{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.fund-row{text-align:left;white-space:normal}@media (width<=900px){.env-bottom{grid-template-columns:minmax(0,1fr)}.env-bottom>*{min-width:0}}.plan-zoom{z-index:3;position:absolute;top:10px;right:10px}.vertex-handle.picked{fill:var(--accent)}.plan-viewbar{align-items:center;gap:8px;min-width:0;display:flex}.plan-viewbar select{max-width:40vw;padding:6px 8px}.plan-tools-compact{flex-shrink:1;min-width:0;overflow-x:auto}.plan-tools-compact button{padding:7px 10px;font-size:1rem}.plan-touch-actions{z-index:6;flex-wrap:wrap;justify-content:center;gap:8px;width:max-content;max-width:94%;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.plan-touch-actions .btn{box-shadow:var(--shadow)}.plan-touch-help ul{margin:6px 0 0;padding-left:16px}.plan-touch-help li{margin-bottom:4px}@media (width<=900px){.plan-workspace.phone-view .plan-sidebar,.plan-workspace.phone-view .plan-toolbar,.plan-workspace.phone-edit .plan-toolbar{display:none}.plan-workspace.phone-view .plan-views{flex:none;height:calc(100dvh - 290px);min-height:320px}.plan-workspace.phone-edit .plan-views{flex:none;height:calc(100dvh - 300px);min-height:300px}}.room-todo{border-left:4px solid var(--warn);margin-bottom:14px;padding:10px 14px}.room-todo-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.room-todo ul,.device-maint ul{margin:0;padding:0;list-style:none}.room-todo li,.device-maint li{border-top:1px solid var(--border);align-items:center;gap:10px;padding:5px 0;display:flex}.room-todo li:first-child,.device-maint li:first-child{border-top:none}.device-maint{border:1px solid var(--border);border-radius:8px;padding:8px 12px}.env-add{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.env-add select{min-width:0;max-width:100%}.env-add .env-add-value{width:110px}.env-add .error{flex-basis:100%}.env-more{margin:-8px 0 16px}.env-threshold{max-width:520px}.env-threshold h3{margin-bottom:10px}.tasks-intro{margin:-4px 0 12px}.task-bucket{margin-bottom:14px}.task-bucket .list-heading{margin:8px 0 6px;font-size:1rem}.task-bucket.overdue .list-heading{color:var(--bad)}.todo-fab{display:none}@media (width<=900px){.todo-fab{right:16px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:40;width:52px;height:52px;box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.6rem;display:inline-flex;position:fixed}}.more-menu{display:inline-flex;position:relative}.more-menu-list{z-index:30;background:var(--surface);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0}.more-menu-list button{text-align:left;cursor:pointer;font:inherit;color:var(--text);white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:9px 10px}.more-menu-list button:hover{background:var(--surface-2)}.supply-actions .on-list{color:var(--ok)}.grocery-list li{gap:6px;padding:0}.grocery-row{cursor:pointer;min-width:0;font:inherit;color:inherit;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:11px 4px;display:flex}.grocery-list li.done .grocery-row .grow{color:var(--muted);text-decoration:line-through}.grocery-remove{opacity:.7;margin-left:12px}.grocery-cart-head{width:100%;font:inherit;cursor:pointer;color:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:14px 4px 6px;font-weight:600;display:flex}.grocery-done-bar{bottom:calc(8px + env(safe-area-inset-bottom));z-index:5;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;display:flex;position:sticky}.basket-head{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.basket-head .grow{min-width:0}.basket-head .seg{max-width:100%;overflow-x:auto}.basket-total{min-width:0}.basket-total .kpi-value{font-size:1.35rem;font-weight:700}.basket-total .kpi-sub{color:var(--muted);font-size:.8rem}@media (width<=900px){.basket-head{flex-direction:column;align-items:stretch}.grocery-done-bar{bottom:calc(70px + env(safe-area-inset-bottom))}}.upload-form{flex-direction:column;gap:8px;display:flex}.upload-pick{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.upload-big{cursor:pointer;min-height:44px;padding:10px 18px;font-size:1rem}.upload-big.disabled{opacity:.6;pointer-events:none}.upload-kind{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.upload-kind .chip{min-height:36px}.file-edit{flex-direction:column;gap:6px;padding:6px 10px;display:flex}.file-edit input{width:100%;min-width:0}.pw-step-files{flex-direction:column;gap:6px;display:flex}.pw-step-files .files-panel{margin:4px 0}.rooms-list{margin:0;padding:4px 0;list-style:none}.rooms-list li+li{border-top:1px solid var(--border)}.rooms-row{color:inherit;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:flex}.rooms-row:hover{background:var(--surface-2)}.rooms-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rooms-main strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rooms-signs{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:50%;display:flex}.room-hub{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.room-hub>.room-todo{grid-column:1/-1;margin-bottom:0}.room-todo .todo-check{flex:none}.room-todo .badge{white-space:nowrap}.hub-card{min-width:0;padding:12px 14px}.hub-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.hub-head h3{margin:0;font-size:1rem}.hub-empty{margin:4px 0}.hub-add{margin-top:8px}.hub-flags{flex-wrap:wrap;gap:6px;margin:0 0 6px;display:flex}.hub-flags a.badge{text-decoration:none}.hub-list{margin:0;padding:0;list-style:none}.hub-list li+li{border-top:1px solid var(--border)}.hub-row{width:100%;min-height:44px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:6px 2px;text-decoration:none;display:flex}.hub-row:hover{background:var(--surface-2)}.hub-row .grow{text-overflow:ellipsis;min-width:0;overflow:hidden}.hub-climate{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.hub-metric{border:1px solid var(--border);border-left:4px solid var(--ok);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:8px 10px;display:flex}.hub-metric.warn{border-left-color:var(--warn)}.hub-metric.bad{border-left-color:var(--bad)}.hub-metric strong{font-size:1.15rem}@media (width<=900px){.room-hub{grid-template-columns:minmax(0,1fr)}}.inv-filters{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 10px;display:flex}.inv-filters input[type=search]{flex:220px;min-width:0}.inv-filters select{max-width:100%}.inv-filters .chip-list{flex-basis:100%}.inv-noreceipt{margin-left:4px}.pw-start-lead{margin:4px 0 10px;font-weight:600}.pw-start{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.pw-start-card{text-align:left;font:inherit;color:inherit;cursor:pointer;border:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:4px;min-height:44px;display:flex}.pw-start-card:hover{border-color:var(--primary)}.pw-start-icon{font-size:1.5rem;line-height:1}.share-audience{margin:0;font-size:.95rem}.share-row .grow{white-space:normal}.share-row .badge{margin-right:4px}.share-row .row-wrap{flex-wrap:wrap;gap:8px;display:flex}.share-row .btn{min-height:40px}.proj-head-compact{flex-wrap:wrap;align-items:center;position:relative}.proj-head-main h2{white-space:normal;margin:0 0 6px}.proj-head-main{white-space:normal}.proj-more-btn{align-self:flex-start;min-width:44px;min-height:44px;padding:0 8px;font-size:1.4rem;line-height:1}.proj-more{border-top:1px solid var(--surface-2);flex-direction:column;flex-basis:100%;gap:10px;padding-top:10px;display:flex}.proj-more label{color:var(--muted);flex-direction:column;gap:4px;max-width:360px;font-size:.85rem;display:flex}.proj-more select{color:var(--text)}.danger-text{color:var(--danger)}.proj-tabs-sticky{z-index:5;background:var(--bg);margin:0 -4px;padding:0 4px;position:sticky;top:56px}.proj-tabs-sticky .tabs{margin-bottom:12px}.ptask{align-items:center}.ptask .ptask-body{white-space:normal;overflow:visible}.ptask .ptask-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ptask-check{border:2px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--on-primary);cursor:pointer;border-radius:50%;flex:none;place-items:center;padding:0;font-size:1.15rem;display:inline-grid}.ptask-check.doing{border-color:var(--primary);color:var(--primary)}.ptask-check.done{background:var(--ok);border-color:var(--ok)}.ptask-check:hover{border-color:var(--primary)}.ptask-check:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.room-budgets{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:8px 0;display:grid}.room-budget{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.room-budget.over{border-color:var(--bad)}.rb-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.rb-alloc{align-items:center;gap:6px;display:flex}.rb-alloc .num-input{width:96px}.rb-bar{background:var(--surface-2);border-radius:5px;height:10px;position:relative;overflow:hidden}.rb-bar>div{border-radius:5px;position:absolute;top:0;bottom:0;left:0}.rb-committed,.legend-swatch.rb-committed{background:var(--primary-soft)}.rb-paid,.legend-swatch.rb-paid{background:var(--primary)}.rb-bar .rb-limit{background:var(--text);border-radius:0;width:2px;left:auto;transform:translate(-1px)}.legend-swatch.rb-limit{background:var(--text);width:2px}.room-budget.over .rb-committed{background:var(--bad)}.rb-nums{flex-wrap:wrap;gap:4px 14px;display:flex}.empty-rooms{flex-direction:column;gap:6px;padding:8px 0;display:flex}.empty-rooms p{margin:0}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.conv-none{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.enc-field{border:none;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.enc-field legend{margin-bottom:4px;padding:0;font-size:.9rem}.enc-choices{flex-wrap:wrap;gap:6px 16px;display:flex}.dossier-share-warn{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.dossier-share-warn ul{margin:0;padding-left:18px}.dossier-share-warn p{margin:0}.public-gone{text-align:center;flex-direction:column;align-items:center;gap:8px;max-width:460px;margin:40px auto;display:flex}.public-gone h2,.public-gone p{margin:0}.public-gone-icon{font-size:2.2rem}.new-pro{margin:0}.bid-main{padding-bottom:calc(110px + env(safe-area-inset-bottom))}.bid-intro h2{margin:2px 0 4px}.bid-who{margin:0;font-size:1.05rem;font-weight:600}.bid-deadline{margin:6px 0;font-weight:600}.bid-deadline.soon{color:var(--warn)}.bid-lines{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.bid-line{flex-direction:column;gap:8px;margin:0;display:flex}.bid-line.missing{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.bid-line.off{opacity:.75}.bid-line-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.bid-line-head strong{white-space:normal}.bid-line-head .muted{white-space:nowrap}.bid-price{flex-direction:column;gap:4px;display:flex}.bid-price-input{align-items:center;gap:8px;display:flex}.bid-price-input input{text-align:right;flex:1;min-width:0;min-height:48px;padding:10px 12px;font-size:1.35rem}.bid-price-input span{color:var(--muted);font-size:1.05rem}.bid-line-foot{align-items:center;gap:10px;display:flex}.bid-line-off{justify-content:space-between;align-items:center;gap:10px;display:flex}.bid-line .row-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bid-line .btn{min-height:40px}.bid-line .note-input{width:100%}.bid-sticky{z-index:30;background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--shadow);padding:10px 16px calc(10px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0}.bid-sticky-row{justify-content:space-between;align-items:center;gap:12px;max-width:948px;margin:0 auto;display:flex}.bid-sticky-row>div{flex-direction:column;display:flex}.bid-total{font-size:1.3rem}.bid-sticky .btn{min-height:48px;padding:0 22px;font-size:1rem}.bid-sticky .error{max-width:948px;margin:0 auto 6px}@media (width<=900px){.proj-tabs-sticky{top:52px}.project-head.proj-head-compact{flex-direction:row;align-items:center;gap:10px;padding:12px}.proj-head-compact .project-icon.big{font-size:1.6rem}.proj-head-main h2{font-size:1.15rem}}@media print{.bid-sticky,.proj-more-btn{display:none}}.proj-hub{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:14px;display:grid}.proj-hub-card{color:var(--text);align-items:center;gap:12px;min-height:64px;margin:0;text-decoration:none;display:flex}.proj-hub-card:hover{border-color:var(--primary)}.proj-hub-card .grow{white-space:normal;flex-direction:column;gap:2px;display:flex}.proj-hub-icon{flex:none;font-size:1.5rem}.proj-hub-chev{color:var(--muted);flex:none;font-size:1.4rem}.next-step{border-color:var(--primary);flex-direction:column;gap:6px;display:flex}.stage-bar{gap:3px;display:flex}.stage-bar span{background:var(--surface-2);border-radius:3px;flex:1;height:6px}.stage-bar span.done{background:var(--ok)}.stage-bar span.current{background:var(--primary)}.next-label{text-transform:uppercase;letter-spacing:.04em;color:var(--primary-text);margin-top:4px;font-size:.78rem;font-weight:700}.next-title{white-space:normal;margin:0;font-size:1.15rem}.next-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.next-actions .btn{min-height:44px}.next-saved{color:var(--ok-text);margin:4px 0 0;font-weight:600}.stages{flex-direction:column;gap:6px;display:flex}.stage{margin:0;padding:0;overflow:hidden}.stage-row{width:100%;min-height:48px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:8px 14px;display:flex}.stage-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.stage-dot{background:var(--surface-2);width:26px;height:26px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:700;display:inline-grid}.stage-dot.done{background:var(--ok);color:var(--on-primary)}.stage-dot.current{background:var(--primary);color:var(--on-primary)}.stage-name{white-space:normal;flex:1;font-weight:600}.stage.done .stage-name,.stage.todo .stage-name{font-weight:500}.stage.done .stage-name,.stage-chev{color:var(--muted)}.stage-body{padding:0 14px 12px}.stage.current{border-color:var(--primary)}.ptask.is-next{background:var(--primary-soft);border-radius:8px;padding-left:6px;padding-right:6px}.stage-done{flex-direction:column;gap:10px;display:flex}.stage-done p{margin:0}.before-after{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.before-after figure{flex-direction:column;gap:4px;margin:0;display:flex}.before-after img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);background:var(--surface-2);width:100%}.before-after figcaption{color:var(--muted);text-align:center;font-size:.85rem}.moving-paperwork{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.moving-paperwork .grow{white-space:normal;min-width:200px}.money-views{margin-bottom:12px}.manual-quotes{border-top:1px solid var(--border);margin-top:18px;padding-top:12px}.manual-quotes h3{margin:0 0 8px}.bid-thread{flex-direction:column;gap:8px;max-height:50vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.bid-thread li{background:var(--surface-2);border-radius:14px;flex-direction:column;align-self:flex-start;gap:2px;max-width:85%;padding:8px 12px;display:flex}.bid-thread li.me{background:var(--primary-soft);align-self:flex-end}.bid-thread li p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.bid-thread time{font-size:.75rem}.bid-thread-form{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.bid-thread-form textarea{flex:1;min-width:0;font-size:16px}.bid-thread-form .btn{min-height:44px}.bid-thread-form .error{flex-basis:100%}.bid-ask{flex-direction:column;gap:8px;display:flex}.bid-ask h3,.bid-ask p{margin:0}.bid-ask-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.bid-ask-row .btn{min-height:44px}.share-row .badge.warn{margin-left:4px}.share-row{flex-wrap:wrap}.share-row .grow{min-width:min(100%,180px)}.journey>.chip-list{margin:10px 0 8px}.neighbor-pros{margin-top:18px}.neighbor-pros>h3{margin:0 0 8px}.contractor-history div{margin-top:2px}.lot-pick li .grow{white-space:normal}
