:root{--bg: #f6f3ec;--bg-soft: #ece7dc;--card: #fffdf7;--line: #e2dccb;--line-soft: #ede7d6;--ink: #1c1a14;--ink-2: #4a4639;--ink-3: #807a6a;--ink-4: #a8a293;--day: oklch(.72 .13 65);--day-ink: oklch(.45 .13 65);--day-soft: oklch(.94 .04 70);--night: oklch(.55 .13 255);--night-ink: oklch(.36 .13 255);--night-soft:oklch(.94 .025 255);--good: oklch(.55 .12 155);--bad: oklch(.55 .16 25);--r-sm: 6px;--r: 10px;--r-lg: 16px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Geist,ui-sans-serif,system-ui,-apple-system,sans-serif;font-feature-settings:"ss01","ss02","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:14px;line-height:1.45}.mono{font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"zero","ss01"}.serif{font-family:"Instrument Serif",Georgia,serif;font-weight:400;letter-spacing:-.01em}.tab{font-variant-numeric:tabular-nums}button{font:inherit;color:inherit}.app{max-width:1280px;margin:0 auto;padding:28px 32px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:28px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-family:Geist Mono;font-weight:600;font-size:14px;letter-spacing:-.04em}.brand-name{font-weight:600;letter-spacing:-.01em}.brand-sub{color:var(--ink-3);font-size:12px;margin-top:1px}.topbar-right{display:flex;align-items:center;gap:10px}.seg{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:3px;gap:1px}.seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:6px 12px;border-radius:6px;color:var(--ink-2);font-size:12.5px;font-weight:500;cursor:pointer;transition:background .12s,color .12s}.seg button:hover{color:var(--ink)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:500;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s,border-color .12s}.btn:hover{background:var(--bg-soft)}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:hover{background:#000}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--bg-soft)}.btn.danger{color:var(--bad)}.btn.sm{padding:4px 8px;font-size:11.5px}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px}.card-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.card-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.card-sub{font-size:12px;color:var(--ink-3)}.hero-main{display:flex;flex-direction:column;gap:18px}.hero-figure{display:flex;align-items:baseline;gap:14px}.hero-figure .big{font-family:Geist;font-weight:500;font-size:72px;line-height:1;letter-spacing:-.04em}.hero-figure .unit{color:var(--ink-3);font-size:18px;font-weight:400}.hero-meta{display:flex;gap:32px;padding-top:14px;border-top:1px dashed var(--line)}.hero-meta .lbl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}.hero-meta .val{font-size:18px;font-weight:500;letter-spacing:-.01em}.hero-meta .val small{color:var(--ink-3);font-weight:400;margin-left:2px;font-size:12px}.split{display:flex;flex-direction:column;gap:10px}.split-bar{height:10px;border-radius:999px;background:var(--bg-soft);overflow:hidden;display:flex}.split-bar .seg-day{background:var(--day);height:100%}.split-bar .seg-night{background:var(--night);height:100%}.split-legend{display:flex;justify-content:space-between;gap:16px;font-size:12.5px}.legend-item{display:flex;align-items:center;gap:8px}.legend-dot{width:8px;height:8px;border-radius:2px}.legend-dot.day{background:var(--day)}.legend-dot.night{background:var(--night)}.legend-val{color:var(--ink-3);margin-left:4px}.donut-wrap{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}.donut{position:relative;width:140px;height:140px}.donut svg{width:100%;height:100%;transform:rotate(-90deg)}.donut .center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center}.donut .center .num{font-size:24px;font-weight:500;letter-spacing:-.02em}.donut .center .sub{font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.breakdown{display:flex;flex-direction:column;gap:11px}.br-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.br-row .key{display:flex;align-items:center;gap:8px;color:var(--ink-2)}.br-row .key .sw{width:8px;height:8px;border-radius:2px}.br-row .val{font-weight:500}.br-row .pct{color:var(--ink-3);font-size:11.5px;margin-left:6px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.kpi{padding:18px 20px}.kpi .k-lbl{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}.kpi .k-val{font-size:28px;font-weight:500;letter-spacing:-.025em;line-height:1}.kpi .k-val .unit{font-size:14px;color:var(--ink-3);font-weight:400;margin-left:2px}.kpi .k-foot{margin-top:10px;font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:6px}.delta{display:inline-flex;align-items:center;gap:3px;font-weight:500;padding:2px 6px;border-radius:4px;font-size:11.5px}.delta.up{color:var(--bad);background:#ffe3df;background:oklch(.94 .04 25)}.delta.down{color:var(--good);background:#d7f4e0}.delta.flat{color:var(--ink-3);background:var(--bg-soft)}.chart-card{margin-bottom:16px}.chart-wrap{position:relative;width:100%;height:280px;margin-top:8px}.chart-wrap svg{width:100%;height:100%;display:block;overflow:visible}.chart-axis text{font-family:Geist Mono;font-size:10px;fill:var(--ink-3)}.grid-line{stroke:var(--line-soft);stroke-width:1}.chart-tooltip{position:absolute;background:var(--ink);color:var(--bg);padding:8px 10px;border-radius:6px;font-size:11.5px;pointer-events:none;transform:translate(-50%,-100%) translateY(-10px);white-space:nowrap;box-shadow:0 6px 24px #00000026;z-index:5}.chart-tooltip .tt-row{display:flex;gap:12px;justify-content:space-between}.chart-tooltip .tt-row .tt-k{opacity:.65}.chart-tooltip .tt-row .tt-v{font-family:Geist Mono;font-weight:500}.chart-tooltip .tt-date{font-weight:500;margin-bottom:4px}.grid-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.meter-table-card{padding:0;margin-bottom:0}.meter-table-hd{padding:18px 22px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line-soft)}.meter-table-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.mtable{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.mtable-group-row th{padding:10px 6px 2px;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);border-bottom:none}.mtable-group{text-align:center}.section-consumption,.section-cost{color:var(--ink-2)}.mtable-th{padding:4px 6px 10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);border-bottom:1px solid var(--line);text-align:left}.mtable-th.num{text-align:right}.mtable-div{width:1px;padding:0!important;border-bottom:none!important;background:var(--line);position:relative}.mtable-group-row .mtable-div{background:transparent}.mtable-td{padding:7px 6px;border-bottom:1px solid var(--line-soft);font-size:12px;font-variant-numeric:tabular-nums}.mtable-td.num{text-align:right;font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:"zero";font-size:11.5px}.mtable-note{font-size:10px;color:var(--ink-3);font-style:italic}.mtable-baseline .mtable-td{color:var(--ink-3)}.mtable tbody tr:hover{background:#00000004}.mtable .day-col{color:var(--day-ink)}.mtable .night-col{color:var(--night-ink)}.mtable .fw6{font-weight:600}.mtable-actions{text-align:center;opacity:0;transition:opacity .12s}.mtable tbody tr:hover .mtable-actions{opacity:1}.mtable-del{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--bad);font-size:16px;line-height:1;cursor:pointer;padding:0 4px;border-radius:4px}.mtable-del:hover{background:#0000000f}.mtable-totals .mtable-td{border-top:2px solid var(--line);border-bottom:none;background:var(--bg-soft)}.mtable-totals .mtable-div{background:var(--line);border-top:2px solid var(--line)}.mtable tfoot .mtable-div{background:var(--line)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-soft);font-size:13px}.table th{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);background:transparent;border-bottom:1px solid var(--line)}.table td.num{font-family:Geist Mono;font-feature-settings:"zero"}.table tbody tr:hover{background:#00000004}.table .num{text-align:right}.table .actions{text-align:right;opacity:0;transition:opacity .12s;white-space:nowrap}.table tbody tr:hover .actions{opacity:1}.form-card{display:flex;flex-direction:column;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.field input,.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:9px 11px;font:inherit;font-family:Geist Mono;color:var(--ink);transition:border-color .12s,background .12s}.field input:focus,.field select:focus{outline:none;border-color:var(--ink);background:var(--card)}.field .hint{font-size:11px;color:var(--ink-3);font-family:Geist Mono}.field .err{font-size:11px;color:var(--bad)}.field.day-field input:focus{border-color:var(--day)}.field.night-field input:focus{border-color:var(--night)}.field .accent-bar{height:2px;border-radius:2px;margin-bottom:4px}.field.day-field .accent-bar{background:var(--day)}.field.night-field .accent-bar{background:var(--night)}.form-actions{display:flex;justify-content:space-between;align-items:center}.tariff-card{padding:0}.tariff-hd{padding:18px 22px;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center}.tariff-list{padding:14px 22px 18px;display:flex;flex-direction:column;gap:12px}.tariff-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;font-size:13px}.tariff-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em}.tariff-pill.day{background:var(--day-soft);color:var(--day-ink)}.tariff-pill.night{background:var(--night-soft);color:var(--night-ink)}.tariff-pill.standing{background:var(--bg-soft);color:var(--ink-2)}.tariff-pill .dot{width:6px;height:6px;border-radius:50%}.tariff-pill.day .dot{background:var(--day)}.tariff-pill.night .dot{background:var(--night)}.tariff-pill.standing .dot{background:var(--ink-3)}.tariff-val{text-align:right;font-family:Geist Mono;font-weight:500}.tariff-val .small{color:var(--ink-3);font-weight:400;font-size:11.5px;margin-left:4px}.tariff-meta{color:var(--ink-3);font-size:11.5px}.tariff-edit-input{width:84px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-family:Geist Mono;text-align:right;color:var(--ink)}.tariff-edit-input:focus{outline:none;border-color:var(--ink)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;font-size:12.5px;z-index:100;box-shadow:0 8px 24px #0000002e;animation:toastIn .25s ease}@keyframes toastIn{0%{transform:translate(-50%,10px);opacity:0}to{transform:translate(-50%);opacity:1}}.tod-strip{height:22px;width:100%;border-radius:4px;background:linear-gradient(90deg,var(--night) 0%,var(--night) 29.16%,var(--day) 29.16%,var(--day) 100%);position:relative;margin-top:4px}.tod-strip:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100% / 24 - 1px),rgba(255,255,255,.18) calc(100% / 24 - 1px),rgba(255,255,255,.18) calc(100% / 24));pointer-events:none}.tod-ticks{display:flex;justify-content:space-between;font-family:Geist Mono;font-size:9.5px;color:var(--ink-3);margin-top:3px}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;background:var(--bg-soft);font-size:11px;color:var(--ink-2);font-weight:500}.chip .dot{width:6px;height:6px;border-radius:50%;background:var(--good)}body.compact .card{padding:16px}body.compact .kpi .k-val{font-size:24px}body.compact .hero-figure .big{font-size:56px}.row{display:flex;align-items:center;gap:8px}.stack-2{display:flex;flex-direction:column;gap:2px}.muted{color:var(--ink-3)}.grow{flex:1}.page-tabs{margin-left:auto;margin-right:16px}.appl-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.appl-stat{text-align:center}.appl-big{font-size:32px;font-weight:500;letter-spacing:-.025em;line-height:1;margin-top:10px}.cat-bars{display:flex;flex-direction:column;gap:10px}.cat-row{display:grid;grid-template-columns:140px 1fr 130px;align-items:center;gap:12px;font-size:12.5px}.cat-label{display:flex;align-items:center;gap:8px}.cat-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.cat-name{font-weight:500}.cat-count{font-size:10px;color:var(--ink-3);background:var(--bg-soft);padding:1px 5px;border-radius:4px}.cat-bar-wrap{height:8px;border-radius:999px;background:var(--bg-soft);overflow:hidden}.cat-bar{height:100%;border-radius:999px;transition:width .3s ease;min-width:2px}.cat-val{text-align:right;font-weight:500;font-size:12px}.cat-kwh{display:block;font-size:10px;color:var(--ink-3);font-weight:400}.cat-pill{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.sched-pill{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600;text-transform:capitalize}.sched-day{background:var(--day-soft);color:var(--day-ink)}.sched-night{background:var(--night-soft);color:var(--night-ink)}.sched-always{background:#dbf2e4;color:#005636;color:oklch(.4 .1 160)}.duty-badge{display:inline-block;padding:2px 5px;border-radius:4px;font-size:10px;font-weight:600;background:#fee2cf;color:#7f4413;font-family:Geist Mono,monospace}.usage-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:500;background:var(--bg-soft);color:var(--ink-3);white-space:nowrap}.sched-group{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.sched-opt{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--bg);padding:8px 14px;font:inherit;font-size:12px;font-weight:500;color:var(--ink-2);cursor:pointer;text-transform:capitalize;border-right:1px solid var(--line);transition:background .12s,color .12s}.sched-opt:last-child{border-right:none}.sched-opt:hover{background:var(--bg-soft)}.sched-opt.active{background:var(--ink);color:var(--bg)}.edit-row{background:var(--bg)}.edit-inp{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:5px;padding:5px 7px;font:inherit;font-size:11.5px;background:var(--card);color:var(--ink)}.edit-inp.num{text-align:right;font-family:Geist Mono}.edit-inp:focus{outline:none;border-color:var(--ink)}.edit-sel{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;border:1px solid var(--line);border-radius:5px;padding:5px 7px;font:inherit;font-size:11px;background:var(--card);color:var(--ink)}.mtable-edit{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--ink-3);font-size:11px;font-weight:500;cursor:pointer;padding:2px 6px;border-radius:4px}.mtable-edit:hover{background:#0000000f;color:var(--ink)}.appl-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.meter-split-item{display:flex;align-items:center;gap:4px}.meter-split-dot{width:7px;height:7px;border-radius:2px;flex-shrink:0}.meter-split-pct{font-size:14px;font-weight:600;color:var(--ink)}.meter-split-label{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}.cycle-badge{display:inline-block;padding:2px 5px;border-radius:4px;font-size:10px;font-weight:600;background:#dbe9fc;color:#0e4786;font-family:Geist Mono,monospace;white-space:nowrap}.cycle-calc{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;display:flex;flex-direction:column;gap:6px}.cycle-calc-row{display:flex;align-items:center;gap:6px}.cycle-calc-label{font-size:11px;font-weight:500;color:var(--ink-2);width:50px;flex-shrink:0}.cycle-calc-inp{width:72px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);border-radius:5px;padding:6px 8px;font:inherit;font-size:13px;font-family:Geist Mono,monospace;text-align:right;background:var(--card);color:var(--ink)}.cycle-calc-inp:focus{outline:none;border-color:var(--ink)}.cycle-calc-x{font-size:13px;color:var(--ink-3)}.cycle-calc-eq{font-size:12px;color:var(--ink-2);font-family:Geist Mono,monospace;margin-left:4px}.cycle-calc-total{display:flex;align-items:center;padding-top:6px;border-top:1px solid var(--line-soft);font-size:12px;color:var(--ink)}.form-preview{background:var(--bg);border:1px dashed var(--line);border-radius:var(--r);padding:14px 18px}.form-preview-row{display:flex;gap:20px;flex-wrap:wrap}.form-preview-item{display:flex;flex-direction:column;gap:2px;min-width:90px}.form-preview-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:600}.form-preview-val{font-size:15px;color:var(--ink)}.cyl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px 16px;padding:18px 22px}.cyl-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:9px 11px;font:inherit;font-family:Geist Mono;color:var(--ink);width:100%;cursor:pointer;transition:border-color .12s,background .12s}.cyl-select:focus{outline:none;border-color:var(--ink);background:var(--card)}.cyl-results{padding:18px 22px;border-top:1px solid var(--line-soft)}.cyl-results-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin-bottom:12px}.cyl-results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px 18px}.cyl-result-item{display:flex;flex-direction:column;gap:2px}.cyl-result-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.cyl-result-val{font-size:14px;color:var(--ink)}.cyl-result-sub{font-size:10.5px;color:var(--ink-3);font-family:Geist Mono}.cyl-warning{margin-top:12px;padding:10px 14px;border-radius:var(--r-sm);background:#ffeada;background:oklch(.95 .06 60);color:#733e00;color:oklch(.42 .1 60);font-size:12px;font-weight:500}.cyl-comparison{padding:18px 22px;border-top:1px solid var(--line-soft)}@media(max-width:1100px){.hero,.grid-bottom{grid-template-columns:1fr}.kpis,.appl-summary{grid-template-columns:repeat(2,1fr)}.appl-form{grid-template-columns:1fr 1fr}.cat-row{grid-template-columns:100px 1fr 100px}}@media(max-width:600px){.appl-summary{grid-template-columns:1fr 1fr}.appl-form{grid-template-columns:1fr}}
