:root{--ink: #0f1c2b;--muted: #5b6676;--line: #e3e8ef;--soft: #f4f7fb;--bg: #fbfcfe;--card: #ffffff;--blue: #0036d0;--sky: #22b8fe;--violet: #9439f9;--bad: #c0362c;--radius: 14px;--grad: linear-gradient(90deg, var(--sky), var(--blue) 55%, var(--violet));color-scheme:light}@media(prefers-color-scheme:dark){:root{--ink: #e8edf5;--muted: #9aa6b8;--line: #253246;--soft: #172233;--bg: #0c131d;--card: #111b29;--blue: #5b82ff;--bad: #ff7b6e;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.wrap{max-width:1200px;margin:0 auto;padding:0 16px}.muted{color:var(--muted)}.small{font-size:13px}.warn{color:var(--bad)}.top{border-bottom:1px solid var(--line);background:var(--card);position:relative}.top:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--grad)}.top__inner{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{font-weight:700;font-size:18px;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.brand span{color:var(--blue)}.made-with{display:inline-flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;font-size:13px}.made-with img{display:block}@media(prefers-color-scheme:dark){.made-with img{filter:brightness(0) invert(1);opacity:.85}}.foot{border-top:1px solid var(--line);margin-top:48px;padding:24px 0 40px;color:var(--muted);font-size:13px}.foot__inner{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}.hero{padding:48px 16px 28px;max-width:820px;margin-left:max(0px,calc((100% - 1200px)/2))}.eyebrow{margin:0 0 8px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}h1{margin:0;font-size:clamp(28px,4.2vw,44px);line-height:1.1;letter-spacing:-.025em}.lead{color:var(--muted);font-size:17px;margin:14px 0 0;max-width:640px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.main{display:grid;gap:20px;min-width:0}.summary{position:sticky;top:16px;display:grid;gap:16px}@media(max-width:960px){.layout{grid-template-columns:1fr}.summary{position:static;order:-1}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 1px 2px #0f1c2b0a}.card h2{margin:0;font-size:17px;letter-spacing:-.01em}.card h3{margin:0 0 12px;font-size:15px}.step{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.step>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--card);font-size:13px;font-weight:700}.step__actions{margin-left:auto;display:flex;gap:8px}.btn{font:inherit;font-weight:600;font-size:14px;line-height:1.2;border-radius:10px;padding:10px 16px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;border:1px solid var(--blue);background:var(--blue);color:#fff;transition:background .15s,border-color .15s,color .15s}.btn:hover{background:color-mix(in srgb,var(--blue) 88%,#000);border-color:color-mix(in srgb,var(--blue) 88%,#000)}.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{padding:12px 22px;font-size:15px;min-height:46px}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn--ghost:hover{background:var(--soft);border-color:var(--muted)}.btn--light{background:#fff;color:#0f1c2b;border-color:#fff}.btn--light:hover{background:#e8eefc;border-color:#e8eefc}.btn--add{margin-top:10px;width:100%;background:transparent;color:var(--blue);border:1px dashed var(--line)}.btn--add:hover{background:color-mix(in srgb,var(--blue) 6%,transparent);border-color:var(--blue)}.templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.tpl{text-align:left;font:inherit;color:inherit;background:var(--soft);border:1px solid transparent;border-radius:12px;padding:14px;cursor:pointer;display:grid;gap:4px;transition:border-color .15s,transform .15s}.tpl:hover{border-color:var(--blue);transform:translateY(-1px)}.tpl strong{font-size:15px}.tpl span{color:var(--muted);font-size:13px;line-height:1.35}.tpl em{font-style:normal;color:var(--blue);font-size:12px;font-weight:600;margin-top:4px}.tpl--empty{background:transparent;border:1px dashed var(--line)}.rooms__head,.room{display:grid;grid-template-columns:minmax(120px,1.6fr) minmax(110px,1.3fr) minmax(100px,1.1fr) 70px 64px 66px 66px 32px;gap:6px;align-items:center}.rooms__head .num{font-size:12px}.rooms__head{font-size:12px;font-weight:600;color:var(--muted);padding:0 2px 6px;border-bottom:1px solid var(--line)}.room{padding:5px 0;border-bottom:1px solid var(--line)}.num{text-align:right;font-variant-numeric:tabular-nums;font-size:14px}.room input,.room select,.fields input{font:inherit;font-size:14px;color:var(--ink);background:var(--card);width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:7px 8px;min-height:38px}.room input:focus,.room select:focus,.fields input:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--blue) 35%,transparent);border-color:var(--blue)}.room .code{text-align:center;font-weight:700;letter-spacing:.08em;color:var(--blue)}.room .code.bad{border-color:var(--bad);color:var(--bad)}.room--invalid input[data-f=area]:placeholder-shown,.room--invalid .num{color:var(--bad)}.room--invalid{background:color-mix(in srgb,var(--bad) 6%,transparent)}.remove{border:0;background:none;color:var(--muted);font-size:20px;cursor:pointer;width:32px;height:32px;border-radius:8px}.remove:hover{background:var(--soft);color:var(--bad)}.info{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:50%;width:18px;height:18px;font-size:11px;line-height:1;cursor:pointer;padding:0;margin-left:2px}@media(max-width:720px){.rooms__head{display:none}.room{grid-template-columns:1fr 1fr 32px;grid-template-areas:"name name remove" "type floor floor" "area code code" "clean week week";padding:12px 0}.room [data-f=name]{grid-area:name;font-weight:600}.room [data-f=type]{grid-area:type}.room [data-f=floor]{grid-area:floor}.room [data-f=area]{grid-area:area}.room [data-f=code]{grid-area:code}.room [data-out=clean]{grid-area:clean;text-align:left;color:var(--muted)}.room [data-out=clean]:after{content:" min./gang"}.room [data-out=week]{grid-area:week;color:var(--muted)}.room [data-out=week]:after{content:" min./uge"}.remove{grid-area:remove}.step__actions{margin-left:0;width:100%}}.codehelp{margin-top:14px;background:var(--soft);border-radius:10px;padding:4px 14px;font-size:14px}.paste{background:var(--soft);border-radius:12px;padding:14px;margin-bottom:14px;display:grid;gap:8px;font-size:14px}textarea{font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--card);color:var(--ink);resize:vertical}.paste__actions{display:flex;gap:8px;align-items:center}.paste__actions .muted{margin-right:auto;font-size:13px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.fields label{display:grid;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}@media(max-width:560px){.fields{grid-template-columns:1fr}}.check{display:flex;gap:8px;align-items:flex-start;font-size:14px;margin:6px 0 14px}.check input{margin-top:3px;accent-color:var(--blue);width:16px;height:16px;flex:none}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.contact{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.contact h3{margin:0 0 4px}.mail{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.fine{font-size:12px;color:var(--muted);margin:-6px 0 14px}.fine a{color:inherit}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.card--summary h2{margin-bottom:14px}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 16px}.kpis div{background:var(--soft);border-radius:10px;padding:10px 12px}.kpis dt{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.kpis dd{margin:2px 0 0;font-size:20px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.bars{display:flex;gap:6px;height:120px;align-items:stretch}.bar{flex:1;display:grid;grid-template-rows:14px 1fr 16px;text-align:center;font-size:11px;color:var(--muted)}.bar b{grid-row:1;font-weight:600;color:var(--ink)}.bar i{grid-row:2;align-self:end;display:block;background:var(--grad);background-size:700% 100%;border-radius:6px 6px 2px 2px;min-height:3px;transition:height .25s}.bar span{grid-row:3}.card--lummi{background:var(--ink);color:var(--card);border:0;position:relative;overflow:hidden}.card--lummi:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--grad)}.card--lummi p{margin:0 0 14px;font-size:14px}@media(prefers-color-scheme:dark){.card--lummi{background:#1b2a40;color:var(--ink)}}.confirm-sheet{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000073;animation:confirmSheetFade .15s ease-out forwards}.confirm-sheet__dialog{width:100%;max-width:26rem;padding:24px;border-radius:12px;background:var(--card);color:var(--ink);box-shadow:0 20px 60px #0003}.confirm-sheet__title{margin:0 0 8px;font-size:1.05rem;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.confirm-sheet__title--only{margin-bottom:16px;font-size:1rem;font-weight:600}.confirm-sheet__message{margin:0 0 16px;font-size:.85rem;line-height:1.55;color:var(--muted);white-space:pre-line;overflow-wrap:anywhere}.confirm-sheet__actions{display:flex;justify-content:flex-end;gap:8px}.confirm-sheet__cancel,.confirm-sheet__confirm{min-height:2.5rem;padding:0 16px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.confirm-sheet__cancel{background:var(--card);color:var(--ink)}.confirm-sheet__confirm{border-color:var(--ink);background:var(--ink);color:var(--card)}.confirm-sheet__confirm--destructive{border-color:#b91c1c;background:#b91c1c;color:#fff}.confirm-sheet__cancel:focus-visible,.confirm-sheet__confirm:focus-visible{outline:2px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:2px}@media(max-width:47.99rem){.confirm-sheet{align-items:flex-end;padding:0}.confirm-sheet__dialog{max-width:none;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;animation:confirmSheetUp .2s ease-out forwards}.confirm-sheet__dialog:before{content:"";display:block;width:2.5rem;height:.3rem;margin:0 auto 16px;border-radius:999px;background:var(--line)}.confirm-sheet__title{font-size:1.1rem}.confirm-sheet__message{font-size:.95rem}.confirm-sheet__actions{flex-direction:column-reverse;gap:6px}.confirm-sheet__cancel,.confirm-sheet__confirm{width:100%;min-height:3rem;font-size:1rem}}@keyframes confirmSheetFade{0%{opacity:0}to{opacity:1}}@keyframes confirmSheetUp{0%{transform:translateY(8%)}to{transform:none}}
