:root{--bg:#eef3f7;--surface:#fff;--surface-2:#f5f8fb;--text:#13222f;--muted:#5b6b7a;--line:#d6e0e8;--primary:#0e5a8a;--primary-strong:#0b4a72;--primary-soft:#dcecf7;--billed:#0e3a5c;--billed-text:#fff;--on:#1f8a5b;--warn:#9a5b00;--warn-soft:#fff3dc;--danger:#b3261e;--danger-soft:#fde8e6;--radius:12px;--shadow:0 1px 2px #10222f0f, 0 2px 8px #10222f0d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0d1720;--surface:#15222e;--surface-2:#1b2a37;--text:#e6eef5;--muted:#93a5b5;--line:#2a3b4a;--primary:#5fb0e8;--primary-strong:#86c5f0;--primary-soft:#1d3a52;--billed:#1f5c8a;--billed-text:#fff;--on:#3fbf86;--warn:#f0b252;--warn-soft:#3a2c12;--danger:#f2827a;--danger-soft:#3c1d1b;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.4}h1,h2,h3{margin:0;line-height:1.2}h2{font-size:1.15rem}h3{font-size:1rem}.muted{color:var(--muted)}.page-pad{padding:24px}.unit{color:inherit;opacity:.75;margin-left:4px;font-size:.6em;font-weight:500}.button{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--text);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-weight:500;display:inline-flex}.button:hover:not(:disabled){border-color:var(--primary)}.button.primary{background:var(--primary);border-color:var(--primary);color:#fff}@media (prefers-color-scheme:dark){.button.primary{color:#08131c}}.button.primary:hover:not(:disabled){background:var(--primary-strong)}.button.big{justify-content:center;min-height:48px;font-size:1.05rem}.button:disabled,.icon-button:disabled,.link-button:disabled,.step:disabled{opacity:.45;cursor:default}.icon-button{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-button.danger:hover:not(:disabled),.link-button.danger{color:var(--danger)}.link-button{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px 2px;font-size:.9rem;display:inline-flex}.input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:40px;color:var(--text);font:inherit;border-radius:8px;padding:8px 10px}.input:focus{outline:2px solid var(--primary);outline-offset:-1px}.input.invalid{border-color:var(--danger);background:var(--danger-soft)}.input.missing{border-color:var(--warn);background:var(--warn-soft)}.input.short{width:80px}.input.compact{width:auto;min-height:34px;padding:4px 8px}textarea.input{resize:vertical}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field-label{color:var(--muted);font-size:.85rem;font-weight:600}.field.grow{flex:1}.hint{color:var(--muted);margin:2px 0 0;font-size:.82rem;display:block}.check-field,.radio-field{cursor:pointer;align-items:center;gap:8px;display:flex}.check-field input,.radio-field input{width:20px;height:20px;accent-color:var(--primary)}.check-field{align-self:end;min-height:40px}.toggle{background:var(--line);cursor:pointer;border:none;border-radius:999px;flex:none;width:52px;height:30px;transition:background .15s;position:relative}.toggle.on{background:var(--on)}.toggle-knob{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.toggle.on .toggle-knob{transform:translate(22px)}.toggle:disabled{opacity:.5}.stepper{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.step{background:var(--surface-2);width:42px;height:40px;color:var(--text);cursor:pointer;border:none;justify-content:center;align-items:center;display:inline-flex}.step:hover:not(:disabled){background:var(--primary-soft)}.step-value{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;font-size:1.05rem;font-weight:700}.segmented{border:1px solid var(--line);border-radius:10px;display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);min-height:36px;color:var(--text);font:inherit;cursor:pointer;border:none;padding:6px 14px}.segmented button+button{border-left:1px solid var(--line)}.segmented button.selected{background:var(--primary);color:#fff;font-weight:600}@media (prefers-color-scheme:dark){.segmented button.selected{color:#08131c}}.badge{background:var(--primary-soft);color:var(--primary-strong);border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600;display:inline-block}.badge.warn{background:var(--warn-soft);color:var(--warn)}.error{background:var(--danger-soft);color:var(--danger);border-radius:8px;padding:10px 12px}.error ul{margin:6px 0 0;padding-left:20px}.success{color:var(--on);margin:0}.notice{border-radius:var(--radius);background:var(--primary-soft);align-items:center;gap:10px;padding:10px 14px;display:flex}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tabs a,.tabs button{color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 14px;font-weight:600;text-decoration:none}.tabs .selected{color:var(--primary);border-bottom-color:var(--primary)}.tabs.secondary{border-bottom:none;gap:6px;margin-bottom:6px}.tabs.secondary button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 14px}.tabs.secondary .selected{background:var(--primary);border-color:var(--primary);color:#fff}.app-bar{z-index:20;padding:8px 16px;padding-top:max(8px, env(safe-area-inset-top));background:var(--billed);color:#fff;align-items:center;gap:16px;display:flex;position:sticky;top:0}.brand{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;font-size:1.05rem;font-weight:700;display:flex;overflow:hidden}.main-nav{gap:4px;display:flex}.main-nav a{color:#ffffffd9;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-weight:600;text-decoration:none;display:inline-flex}.main-nav a.selected,.main-nav a:hover{color:#fff;background:#ffffff26}.app-bar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.app-bar .input.compact{color:#fff;background:#ffffff1f;border-color:#ffffff40}.app-bar .input.compact option{color:#13222f}.app-bar .icon-button{color:#fff}.app-bar .icon-button:hover{background:#ffffff26}.content{max-width:1400px;padding:16px;padding-bottom:max(24px, env(safe-area-inset-bottom));margin:0 auto}.center-page{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}.login{flex-direction:column;gap:14px;width:100%;max-width:380px;padding:28px;display:flex}.login-mark{color:var(--primary);align-items:center;gap:10px;display:flex}.login .muted{margin:-6px 0 4px}.login .language{align-self:center;width:auto}.totals{z-index:10;background:var(--bg);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;padding:10px 0;display:grid;position:sticky;top:56px}.total-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px 16px}.total-card.billed{background:var(--billed);border-color:var(--billed);color:var(--billed-text)}.total-card.billed .badge{color:#fff;background:#ffffff2e}.total-card.over{outline:3px solid var(--danger)}.total-label{align-items:center;gap:6px;font-size:.92rem;font-weight:600;display:flex}.total-value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:2.1rem;font-weight:800}.total-sub{opacity:.9;flex-wrap:wrap;align-items:center;gap:6px;min-height:1.2em;font-size:.85rem;display:flex}.incomplete-mark{color:var(--warn);margin-right:4px}.total-card.billed .incomplete-mark{color:#ffd38a}.capacity{background:#7f7f7f33;border-radius:6px;height:20px;margin-top:8px;position:relative;overflow:hidden}.capacity-fill{background:var(--on);opacity:.6;position:absolute;inset:0 auto 0 0}.total-card.over .capacity-fill{background:var(--danger)}.capacity-text{padding:0 8px;font-size:.75rem;line-height:20px;position:relative}.incomplete-note{color:var(--warn);grid-column:1/-1;align-items:center;gap:6px;margin:0;font-size:.88rem;display:flex}.warnings{border-radius:var(--radius);background:var(--warn-soft);color:var(--warn);flex-direction:column;gap:4px;margin:0 0 10px;padding:10px 14px;list-style:none;display:flex}.warnings li{align-items:flex-start;gap:8px;display:flex}.warnings svg{flex:none;margin-top:2px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 4px;display:flex}.wetbulb{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-right{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.save-status{min-height:1.3em;color:var(--muted);align-items:center;gap:6px;margin:0 0 10px;font-size:.82rem;display:flex}.save-status.offline{color:var(--danger)}.slopes{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));align-items:start;gap:14px;display:grid}.slope-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.slope-head{background:var(--surface-2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding:12px 16px;display:flex}.slope-flow{font-variant-numeric:tabular-nums;font-weight:700}.valve-row{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 16px;display:flex}.valve-main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.valve-name{font-weight:600}.refill-row{align-items:center;gap:10px;padding:6px 0;display:flex}.slope-card>.refill-row{border-bottom:1px solid var(--line);padding:10px 16px}.refill-name{flex:1}.refill-flow{color:var(--muted);white-space:nowrap;font-size:.9rem}.sections{flex-direction:column;display:flex}.section-card+.section-card{border-top:1px solid var(--line)}.section-card.active{background:color-mix(in srgb, var(--on) 5%, var(--surface))}.section-head{align-items:center;gap:12px;padding:12px 16px;display:flex}.section-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.section-name{font-size:1.02rem;font-weight:700}.station-badge{color:var(--muted);font-size:.8rem}.station-badge.none{color:var(--danger)}.section-flow{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.2rem;font-weight:800}.section-flow .muted{font-size:.95rem;font-weight:500}.section-body{flex-direction:column;gap:10px;padding:0 16px 14px;display:flex}.equipment{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 12px}.equipment.mobile{border-style:dashed}.equipment-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;font-size:.9rem;display:flex}.equipment-name{font-weight:600}.mode-row{justify-content:space-between;align-items:center;gap:10px;padding:4px 0;display:flex}.mode-row .select{flex:1;width:auto}.mode-name{flex-direction:column;display:flex}.mode-flow{color:var(--muted);font-size:.8rem}.section-actions{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.add-mobile{gap:8px;width:100%;display:flex}.add-mobile .select{flex:1}.modal-backdrop{z-index:50;background:#0a141e73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);flex-direction:column;width:100%;max-width:560px;max-height:calc(100vh - 32px);display:flex;box-shadow:0 10px 40px #00000040}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-body{flex-direction:column;gap:10px;padding:16px 18px;display:flex;overflow-y:auto}.save-row{gap:8px;display:flex}.save-row .button{white-space:nowrap}.config-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.config-list li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.config-text{flex-direction:column;flex:1;min-width:0;display:flex}.config-text .muted{font-size:.85rem}.setup-tab{flex-direction:column;gap:14px;display:flex}.setup-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:16px;display:flex}.group-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:10px;display:flex}.unit-picker{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.editor-card{border:1px solid var(--line);background:var(--surface);border-radius:10px}.setup-group .editor-card{background:var(--surface-2)}.editor-summary{align-items:center;gap:6px;padding:4px 8px;display:flex}.summary-button{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-wrap:wrap;flex:1;align-items:center;gap:10px;padding:8px 4px;display:flex}.editor-body{flex-direction:column;gap:12px;padding:12px 14px 14px;display:flex}.editor-card.open .editor-summary+.editor-body{border-top:1px solid var(--line)}.editor-row-head{align-items:end;gap:8px;display:flex}.form-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.installed-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.editor-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.push-right{margin-left:auto}.move-buttons{display:inline-flex}.modes-title{margin-top:4px}.modes{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.mode-editor{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;padding:8px 12px 12px}.mode-editor-head{align-items:center;gap:8px;display:flex}.mode-editor-head .radio-field{margin-right:auto}.mode-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.slope-editor .section-editor{background:var(--surface-2)}.password-form{flex-direction:column;align-items:flex-start;gap:10px;padding-top:8px;display:flex}.password-form .form-grid{width:100%}@media (width<=640px){.content{padding:10px}.app-bar{gap:8px;padding:6px 10px}.main-nav a span{display:none}.brand-name{text-overflow:ellipsis;max-width:40vw;overflow:hidden}.totals{grid-template-columns:1fr 1fr;gap:6px;padding:6px 0;top:48px}.total-card{padding:8px 10px}.total-card.billed{grid-column:1/-1}.total-value{font-size:1.6rem}.total-card .badge,.capacity-text{display:none}.capacity{height:6px;margin-top:4px}.slopes{grid-template-columns:1fr}.toolbar-right{margin-left:0}.save-row{flex-direction:column}}
