@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-vietnamese-wght-normal.3cbdnbmi1hpzs.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-latin-ext-wght-normal.3cxrhsknk8wrd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-latin-wght-normal.0inx24hl2eswd.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-cyrillic-ext-400-normal.0_q8wa_t-7-c7.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-400-normal.1-h66gx1kjeux.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-cyrillic-400-normal.2dcg25_89g34d.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-400-normal.1r3eey-1tdqwh.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-vietnamese-400-normal.40ek894ady0so.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-400-normal.0blsyrk14nago.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-latin-ext-400-normal.1ih4rrmj883u6.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-400-normal.0hj8bqnym411c.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-latin-400-normal.19gbeb610ur4n.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-400-normal.3nj-glub930lh.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-cyrillic-ext-500-normal.2tfs-ajhr_27q.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-500-normal.29wincfdhpbow.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-cyrillic-500-normal.30hm7mcic8nak.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-500-normal.1g2cl4geicio1.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-vietnamese-500-normal.400h8-n7y356b.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-500-normal.2w9-mj8vy__-b.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-latin-ext-500-normal.2yypdhrkbqnza.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-500-normal.3-fgi0nn_mag-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-latin-500-normal.25_05y-blbp24.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-500-normal.20ixcot5hpnm-.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#0d1215;--panel:#141b1f;--surface:#1b242a;--fg:#e6edf0;--muted:#9fb0b8;--line:#2c3a42;--accent:#e39a5f;--accent-soft:#3d2b1e;--accent-fg:#1a1009;--ok:#62c784;--warn:#e8ad4f;--crit:#f07366;--info:#94b8c8;--m-heat-f:#ef5a4c;--m-heat-r:#5794f0;--m-dhw:#f5a63c;--m-cold:#36c08a;--zone:#7cc4e0;--r-shk:#5794f0;--r-owner:#ef8a5c;--r-platform:#9fb0b8;--r-partner:#36c08a;--font-ui:"Archivo Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-ui);font-size:14px;line-height:1.45}a{color:var(--accent)}[hidden]{display:none!important}h1{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:700}h2{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;font-size:11px;font-weight:600;display:flex}.brand{color:var(--fg);align-items:center;gap:12px;text-decoration:none;display:flex}.brand svg{flex:none}.brand p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.muted{color:var(--muted);font-size:12.5px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.field{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12px;display:flex}.field .inp{background:var(--surface);border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;padding:0 8px;display:flex}.field input,.field select,.field textarea{width:100%;min-width:0;color:var(--fg);font:500 13px var(--font-ui);background:0 0;border:0;padding:8px 0}.field input[type=number],.field input.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.field textarea{resize:vertical;min-height:80px}.field input:focus,.field select:focus,.field textarea:focus{outline:none}.field .inp:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.unit{font:11px var(--font-mono);color:var(--muted);white-space:nowrap}.btn{font:600 12.5px var(--font-ui);border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;white-space:nowrap;border-radius:6px;padding:7px 11px;text-decoration:none;display:inline-block}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible,select:focus-visible,.seg button:focus-visible,.opt:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.danger{color:var(--crit)}.btn.small{padding:4px 8px;font-size:11.5px}.btn.big{padding:11px 18px;font-size:15px}.btn.link{color:var(--accent);background:0 0;border:0;padding:0;font-weight:600}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.seg{background:var(--panel);border:1px solid var(--line);border-radius:7px;flex-wrap:wrap;padding:2px;display:inline-flex}.seg button{font:600 12px var(--font-ui);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 10px}.seg button[aria-pressed=true]{background:var(--fg);color:var(--panel)}.pill{font:600 10px var(--font-mono);text-transform:uppercase;border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:99px;padding:1px 6px}.pill.ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 45%, var(--line))}.pill.warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, var(--line))}.pill.accent{color:var(--accent);border-color:var(--accent)}.errs{color:var(--crit);margin:6px 0;font-size:12.5px}.ok-msg{color:var(--ok);font-size:13px}.note{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--info);border-radius:6px;padding:8px 10px;font-size:12.5px}.note.warn{border-left-color:var(--warn)}.note.ok{border-left-color:var(--ok)}.note.err{border-left-color:var(--crit)}.info-list{color:var(--muted);flex-direction:column;gap:6px;max-width:80ch;margin:0 0 6px;padding-left:18px;font-size:13px;display:flex}.info-list li.warn{color:var(--warn)}p.note{margin:10px 0 0}table{border-collapse:collapse;width:100%;font-size:12.5px}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding:5px 4px;font-size:10.5px;font-weight:600}td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;vertical-align:top;padding:6px 4px}td.n,th.n{text-align:right;white-space:nowrap}td.n{font-family:var(--font-mono)}tfoot td{border-bottom:0;font-weight:600}select option,select optgroup{background:var(--surface);color:var(--fg)}.page{max-width:1240px;margin:0 auto;padding:20px 16px 60px}.page.narrow{max-width:760px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:14px;padding:16px}.card>h2:first-child{margin-top:0}.card.highlight{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.login{max-width:420px;margin:12vh auto}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end;gap:10px 14px;display:grid}.form-grid .full{grid-column:1/-1}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:12px;display:flex}textarea.plain{width:100%;font:12px var(--font-mono);color:var(--fg);background:var(--surface);border:1px solid var(--line);resize:vertical;border-radius:6px;min-height:240px;padding:8px}.ptable input,.ptable select{width:100%;min-width:0;font:12px var(--font-mono);background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:3px 4px}.ptable td{vertical-align:middle;padding:3px 2px}.scroll-x{overflow-x:auto}.cfg{grid-template-rows:auto 1fr;grid-template-columns:250px minmax(0,1fr) 340px;gap:12px;min-height:100vh;padding:12px 16px;display:grid}.cfg-top{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;display:flex}.cfg-top .brand b{letter-spacing:-.01em;font-size:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-height:0;display:flex}.panel>section,.panel>header,.panel>footer{border-bottom:1px solid var(--line);padding:14px 16px}.panel>footer{border-bottom:0;margin-top:auto}.sticky{align-self:start;max-height:calc(100vh - 24px);position:sticky;top:12px;overflow-y:auto}.steps-nav ol{flex-direction:column;gap:2px;margin:0;padding:8px;list-style:none;display:flex}.steps-nav li button{text-align:left;cursor:pointer;width:100%;color:var(--muted);font:600 13px var(--font-ui);background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:9px 10px;display:flex}.steps-nav li button:hover{background:var(--surface);color:var(--fg)}.steps-nav li button[aria-current=step]{background:var(--accent-soft);color:var(--fg)}.steps-nav .n{border:1px solid var(--line);width:24px;height:24px;font:500 11.5px var(--font-mono);background:var(--surface);border-radius:50%;flex:none;place-items:center;display:inline-grid}.steps-nav li button[aria-current=step] .n{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.steps-nav li.done .n{border-color:var(--ok);color:var(--ok)}.steps-nav small{color:var(--muted);font-size:11.5px;font-weight:500;display:block}.help-box{border-top:1px solid var(--line);padding:14px 16px}.help-box p{color:var(--muted);margin:0 0 8px;font-size:12.5px}.cfg-main{padding:20px 22px 28px}.cfg-main>h1{letter-spacing:-.02em;margin-bottom:4px;font-size:24px}.cfg-main>.lead{color:var(--muted);max-width:70ch;margin:0 0 18px}.cfg-main h3{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:22px 0 10px;font-size:11px;font-weight:600}.cfg-nav{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:26px;padding-top:16px;display:flex}.opts{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.opts.wide{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.opt{text-align:left;background:var(--surface);border:1px solid var(--line);color:var(--fg);font:inherit;cursor:pointer;border-radius:10px;flex-direction:column;gap:6px;padding:14px 14px 12px;display:flex;position:relative}.opt:hover{border-color:var(--accent)}.opt[aria-pressed=true],.opt.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.opt[aria-pressed=true]:after,.opt.on:after{content:"✓";background:var(--accent);width:22px;height:22px;color:var(--accent-fg);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;top:10px;right:12px}.opt.dim{opacity:.55}.opt .t{padding-right:26px;font-size:15px;font-weight:700;line-height:1.25}.opt .s{color:var(--muted);font-size:12.5px}.opt .price{font:600 16px var(--font-mono);font-variant-numeric:tabular-nums;margin-top:auto;padding-top:6px}.opt .price small{font:500 11px var(--font-ui);color:var(--muted);margin-left:4px}.opt ul{color:var(--muted);margin:2px 0 0;padding-left:16px;font-size:12.5px}.opt .tags{flex-wrap:wrap;gap:4px;min-height:18px;padding-right:28px;display:flex}.specs{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:2px 0;display:grid}.specs div{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 6px}.specs small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:9.5px;display:block}.specs span{font:500 12.5px var(--font-mono)}.qty{border:1px solid var(--line);background:var(--surface);border-radius:6px;align-items:center;display:inline-flex}.qty button{width:28px;height:28px;color:var(--fg);font:600 15px var(--font-ui);cursor:pointer;background:0 0;border:0}.qty button:disabled{opacity:.35;cursor:default}.qty span{text-align:center;min-width:30px;font:500 13px var(--font-mono)}.line-opts{flex-direction:column;gap:6px;display:flex}.line-opt{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.line-opt.on{border-color:var(--accent)}.line-opt .t{font-weight:600}.line-opt .s{color:var(--muted);font-size:12px}.line-opt .p{font:500 13px var(--font-mono);text-align:right;white-space:nowrap}.result{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;padding:14px 16px;display:flex}.result b{font:500 34px/1 var(--font-mono);letter-spacing:-.03em}.result .muted{max-width:60ch}.result-side{flex-direction:column;flex:1;gap:8px;min-width:240px;display:flex}.inp-inline select{font:600 12px var(--font-ui);color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:6px 8px}.check-inline{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.check-inline input{accent-color:var(--accent)}.cart h2{margin-bottom:8px}.cart-group{margin-bottom:12px}.cart-group h4{justify-content:space-between;gap:8px;margin:0 0 4px;font-size:12px;display:flex}.cart-group h4 .mono{font-size:12.5px}.cart-group ul{margin:0;padding:0;list-style:none}.cart-group li{border-bottom:1px dashed var(--line);justify-content:space-between;gap:8px;padding:3px 0;font-size:12.5px;display:flex}.cart-group li span:first-child{min-width:0}.cart-group li .mono{white-space:nowrap}.stage-tag{border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.stage-now{background:var(--accent)}.stage-later{background:var(--r-shk)}.stage-rec{background:var(--r-partner)}.totals{border-top:2px solid var(--fg);flex-direction:column;gap:4px;padding-top:8px;display:flex}.totals div{justify-content:space-between;gap:8px;display:flex}.totals .big{font-size:15px;font-weight:700}.totals .grant{color:var(--ok)}.cart-empty{color:var(--muted);font-size:12.5px}.modal-bg{z-index:50;background:#0a0e1073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;max-width:520px;max-height:calc(100vh - 32px);padding:18px 20px;overflow-y:auto;box-shadow:0 16px 40px #00000040}.modal h2{text-transform:none;letter-spacing:-.01em;color:var(--fg);font-size:17px}.checks{flex-direction:column;gap:8px;font-size:13px;display:flex}.checks label{align-items:flex-start;gap:8px;display:flex}.checks input{accent-color:var(--accent);flex:none;width:auto;margin-top:3px}.mobile-bar{display:none}.timeline{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.timeline li{color:var(--muted);grid-template-columns:22px 1fr;gap:10px;padding:6px 0;font-size:13px;display:grid}.timeline li:before{content:"";border:2px solid var(--line);background:var(--surface);border-radius:50%;width:12px;height:12px;margin:3px 0 0 4px}.timeline li.done{color:var(--fg)}.timeline li.done:before{background:var(--ok);border-color:var(--ok)}.timeline li.now{color:var(--fg);font-weight:600}.timeline li.now:before{border-color:var(--accent);background:var(--accent-soft)}@media (max-width:1100px){.cfg{grid-template-columns:220px minmax(0,1fr)}.cfg .cart-panel{grid-column:1/-1}.sticky{max-height:none;position:static}}@media (max-width:760px){.cfg{grid-template-columns:minmax(0,1fr);padding:10px 10px 76px}.steps-nav ol{flex-direction:row;overflow-x:auto}.steps-nav li button{padding:6px 8px}.steps-nav small,.steps-nav .lbl,.help-box{display:none}.cfg-main{padding:16px 14px 20px}.specs{grid-template-columns:repeat(2,minmax(0,1fr))}.line-opt{grid-template-columns:minmax(0,1fr) auto}.line-opt .p{grid-column:2}.mobile-bar{z-index:20;background:var(--panel);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex;position:fixed;bottom:0;left:0;right:0}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
