/* Domek: local, dependency-free, light enough for the wall tablet. */
:root{color-scheme:dark;--bg:#131514;--sidebar:#101211;--card:#1c1f1d;--raised:#242824;--hover:#2b302b;--line:#333932;--text:#f3f3ec;--muted:#adb5aa;--subtle:#979f93;--accent:#edbd80;--accent-ink:#252118;--accent-wash:#342d22;--green:#a5d1a9;--green-wash:#26372b;--blue:#a5c8dc;--blue-wash:#26333a;--red:#f0a399;--red-wash:#3e2b29;--shadow:0 5px 20px #0000000a;--radius:22px;--sidebar-width:216px;--weather:#222d2a;--warm:#30291e}
:root[data-theme=light]{color-scheme:light;--bg:#f5f5f0;--sidebar:#efefe9;--card:#fffefa;--raised:#f1f2eb;--hover:#e7e9df;--line:#dedfd4;--text:#252c24;--muted:#5d685a;--subtle:#667060;--accent:#87551b;--accent-ink:#fffdf8;--accent-wash:#f4e7d2;--green:#376943;--green-wash:#e5efdf;--blue:#365f78;--blue-wash:#e4eef1;--red:#a14538;--red-wash:#f8e8e2;--shadow:0 5px 22px #31392a04;--weather:#e6ece2;--warm:#fbf0dc}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{color:inherit;cursor:pointer}button:disabled{cursor:default}button,a{-webkit-user-select:none;user-select:none}button{border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button,input,select{min-height:44px}button{transition:opacity .18s,transform .18s}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.55}h1,h2,h3,p{margin:0}h1{font-size:36px;line-height:1.18;font-weight:560;letter-spacing:-1.3px}h2{font-size:17px;font-weight:600;letter-spacing:-.3px}h3{font-size:15px;font-weight:600}small{font-size:12px}.icon{width:22px;height:22px;display:inline-block;flex-shrink:0;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.8px;text-transform:uppercase;font-weight:650;color:var(--muted)}.number{letter-spacing:-1.6px;font-weight:550;line-height:1.15}.unit{font-size:15px;letter-spacing:0;color:var(--muted);font-weight:400}.row{display:flex;align-items:center;gap:12px}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:grid;gap:18px}.grow{flex:1;min-width:0}.good{color:var(--green)}.warning{color:var(--accent)}.danger{color:var(--red)}.hidden{display:none!important}.skip-link{position:fixed;top:-100px;left:20px;padding:12px 20px;background:var(--accent);color:var(--accent-ink);z-index:100}.skip-link:focus{top:12px}.loading-screen{min-height:100dvh;display:grid;place-content:center;text-align:center;gap:18px;color:var(--muted)}.loading-mark{font-size:65px;color:var(--accent)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--sidebar);border-right:1px solid var(--line);padding:38px 20px 26px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:12px;align-items:center;padding:0 14px;font-size:25px;letter-spacing:-1px;font-weight:650}.brand-icon{display:grid;place-items:center;width:38px;height:40px;color:var(--accent)}.brand-icon .icon{width:32px;height:32px}.nav-caption{font-size:10px;letter-spacing:1.6px;color:var(--subtle);margin:54px 15px 16px}.navigation{display:grid;gap:8px}.nav-link{min-height:50px;border-radius:12px;display:flex;gap:14px;align-items:center;padding:0 16px;font-size:14px;color:var(--muted);font-weight:550}.nav-link:hover{background:var(--raised);color:var(--text)}.nav-link.active{background:var(--accent-wash);color:var(--accent)}.nav-link.active:after{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;margin-left:auto}.sidebar-bottom{margin-top:auto;padding:24px 14px 0}.sidebar-bottom .icon{color:var(--subtle);margin-bottom:14px}.sidebar-bottom p{font-size:12px;color:var(--muted);line-height:1.9}.sidebar-bottom small{display:block;color:var(--subtle);margin-top:20px;font-size:10px;letter-spacing:1.4px}.workspace{margin-left:var(--sidebar-width);min-height:100dvh}.topbar{height:90px;padding:0 48px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.breadcrumbs{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:12px}.breadcrumbs .icon{width:17px}.breadcrumbs span:last-child{color:var(--text)}.top-actions{display:flex;gap:16px;align-items:center}.icon-button{width:44px;height:44px;display:inline-grid;place-items:center;border-radius:50%;background:var(--card);border:1px solid var(--line)}.icon-button:hover{background:var(--hover)}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent-wash);font-weight:600;color:var(--accent);font-size:13px}.connection{font-size:11px;display:flex;align-items:center;gap:8px;color:var(--muted)}.dot{width:6px;height:6px;background:var(--green);border-radius:50%;display:inline-block;flex-shrink:0}.connection.offline .dot{background:var(--red)}.main{max-width:1540px;margin:auto;padding:37px 48px 32px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading .eyebrow{margin-bottom:10px}.page-heading p{margin-top:10px;color:var(--muted);font-size:13px}.date-chip{font-size:12px;border:1px solid var(--line);border-radius:30px;padding:10px 15px;display:flex;align-items:center;gap:9px;white-space:nowrap}.date-chip .icon{width:16px;height:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:25px;box-shadow:var(--shadow);min-width:0}.card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.card-label{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:550}.card-label>.icon{width:18px;height:18px;color:var(--muted)}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px;min-height:44px;color:var(--muted);border-radius:10px;padding:0 8px}.text-button:hover{color:var(--text);background:var(--raised)}.text-button .icon{width:16px;height:16px}.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:20px;font-size:11px;line-height:1.5;background:var(--raised);color:var(--muted);white-space:nowrap}.pill.green{background:var(--green-wash);color:var(--green)}.pill.amber{background:var(--accent-wash);color:var(--accent)}.pill.red{background:var(--red-wash);color:var(--red)}.pill.blue{background:var(--blue-wash);color:var(--blue)}.pill .icon{width:13px;height:13px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:27px 0 15px}.section-title p{font-size:12px;color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;padding:11px 18px;border-radius:12px;background:var(--raised);border:1px solid var(--line);font-size:13px;font-weight:550;min-height:46px}.button:hover{background:var(--hover)}.button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.button .icon{width:18px;height:18px}.empty{font-size:13px;color:var(--muted);padding:22px 0;line-height:1.8}.notice{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--raised);padding:13px 16px;font-size:12px;color:var(--muted);margin-bottom:22px}.notice .icon{width:18px;height:18px}.notice.error{color:var(--red);background:var(--red-wash)}.footer{font-size:10px;color:var(--subtle);display:flex;justify-content:space-between;gap:12px;margin-top:28px;letter-spacing:.3px}
/* Overview */
.dashboard{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}.weather-card{grid-column:span 5;background:var(--weather);position:relative;overflow:hidden;min-height:305px}.weather-now{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:4px 0 27px}.temperature{font-size:64px}.weather-now p{font-size:13px;margin-top:9px;color:var(--muted)}.weather-art{width:135px;height:110px;color:var(--blue);filter:drop-shadow(0 10px 17px #00000015)}.weather-art .icon{width:100%;height:100%;stroke-width:1.1}.forecast{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);padding-top:17px;gap:10px}.forecast-day{text-align:center;font-size:12px;display:grid;gap:6px;justify-items:center}.forecast-day .icon{color:var(--blue);width:23px;height:23px}.forecast-day span{color:var(--muted);font-size:11px}.forecast-day b{font-weight:550}.forecast-day small{font-size:10px;color:var(--muted)}.energy-now{grid-column:span 7}.power-main{display:flex;align-items:center;gap:25px;margin-bottom:14px}.power-main .number{font-size:57px}.cost-now{padding-left:25px;border-left:1px solid var(--line);font-size:21px}.cost-now small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.price-line{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:12px}.price-line .icon{width:15px;height:15px;color:var(--accent)}.mini-chart{width:100%;height:66px;display:block}.mini-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:8px}.shortcuts-card{grid-column:span 5}.shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.device-tile{position:relative;border-radius:16px;border:1px solid var(--line);padding:17px;text-align:left;background:var(--raised);display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:141px;width:100%;color:var(--text)}.device-tile .tile-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px;margin-bottom:24px}.tile-top>.icon{width:24px;height:24px;color:var(--muted)}.tile-state{font-size:10px;color:var(--muted)}.device-tile.on{background:var(--warm);border-color:var(--accent)}.device-tile.on .tile-top>.icon{color:var(--accent)}.device-tile.on.light .tile-top>.icon{filter:drop-shadow(0 0 9px #eeb97588)}.device-tile.on .tile-state{color:var(--accent)}.device-tile strong{font-size:13px;font-weight:550;overflow-wrap:anywhere}.device-tile small{font-size:11px;color:var(--muted);margin-top:3px}.device-tile.unavailable{background:var(--card);color:var(--muted);border-style:dashed;opacity:.7}.device-tile.pending:after{content:"";position:absolute;right:12px;bottom:12px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.olie-preview{grid-column:span 3;display:flex;flex-direction:column}.olie-preview .card-top{margin-bottom:12px}.preview-ring{display:flex;justify-content:center;align-items:center;gap:14px;flex:1}.preview-ring .ring{width:134px;height:134px}.preview-ring .ring strong{font-size:31px}.olie-preview>p{font-size:11px;text-align:center;color:var(--muted);margin-top:13px}.agenda-card{grid-column:span 4}.agenda-item{display:flex;gap:13px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.agenda-item:first-of-type{padding-top:0}.agenda-item:last-child{border:0;padding-bottom:0}.agenda-date{width:37px;flex-shrink:0;text-align:center;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.7px}.agenda-date b{display:block;font-size:23px;color:var(--text);line-height:1.2;font-weight:500}.agenda-item strong{font-size:12px;font-weight:550;display:block}.agenda-item small{color:var(--muted);font-size:10px}.agenda-item>.icon{margin-left:auto;width:17px;height:17px;color:var(--muted)}.home-alerts{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}.alert-chip{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;min-height:44px}.alert-chip .icon{width:15px;height:15px}.alert-chip.attention{color:var(--accent);background:var(--accent-wash);border-color:transparent}.room-glances{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.room-glance{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:16px;display:grid;gap:9px;min-height:104px}.room-glance>.icon{color:var(--room-color);width:19px;height:19px}.room-glance small{font-size:11px;color:var(--muted)}.room-glance strong{font-size:21px;letter-spacing:-.6px;font-weight:550}.room-glance:hover{background:var(--raised)}
/* Rooms */
.room-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.filter-button{padding:10px 17px;border-radius:25px;border:1px solid var(--line);font-size:12px;color:var(--muted);background:var(--card)}.filter-button.active{color:var(--accent);border-color:var(--accent);background:var(--accent-wash)}.rooms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.room-card{padding:22px}.room-card:first-child{grid-row:span 2}.room-heading{display:flex;align-items:center;gap:11px;margin-bottom:20px}.room-heading>.icon{color:var(--room-color);width:21px;height:21px}.room-heading small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.room-heading h2{font-size:15px}.room-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-tiles .device-tile{min-height:139px;padding:14px}.room-tiles .device-tile .tile-top{margin-bottom:18px}.sensor-tile{border-radius:15px;background:var(--raised);border:1px solid var(--line);padding:16px;min-width:0;grid-column:1/-1}.sensor-top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:11px}.sensor-top .icon{width:17px;height:17px;color:var(--room-color)}.sensor-body{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px}.sensor-body .number{font-size:35px}.sensor-body .unit{font-size:19px}.humidity{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:4px}.humidity .icon{width:13px;height:13px}.sparkline{display:block;width:100%;height:32px;max-width:130px;color:var(--room-color)}.history-caption{display:block;font-size:9px;color:var(--muted);margin-top:6px}.sensor-tile.unavailable{border-style:dashed;opacity:.7}.sensor-tile.info .number{font-size:25px}.room-only{grid-template-columns:repeat(2,minmax(0,1fr))}.room-only .room-card{grid-column:1/-1;max-width:900px}.room-only .room-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.room-only .sensor-tile{grid-column:auto}
/* Screen time */
.olie-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.olie-device{padding:27px}.olie-device .card-top{margin-bottom:14px}.device-title{display:flex;gap:11px;align-items:center}.device-title>.icon{color:var(--accent);width:23px;height:23px}.device-title p{font-size:11px;color:var(--muted);margin-top:3px}.ring{position:relative;width:220px;height:220px;flex-shrink:0;margin:auto}.ring svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}.ring-track{stroke:var(--line)}.ring-progress{stroke:var(--accent)}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-center>small{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.ring-center strong{font-size:46px;font-weight:550;letter-spacing:-1.6px;line-height:1.1}.ring-center>span{font-size:11px;color:var(--muted);margin-top:8px}.screen-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:center;margin:17px 0 22px}.screen-metrics>div+div{border-left:1px solid var(--line)}.screen-metrics small{color:var(--muted);font-size:11px;display:block;margin-bottom:4px}.screen-metrics b{font-size:18px;font-weight:500}.time-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding-bottom:22px;border-bottom:1px solid var(--line)}.time-button{min-height:46px;border-radius:11px;background:var(--accent-wash);color:var(--accent);font-size:13px;font-weight:600}.time-button:first-child{background:var(--raised);color:var(--muted)}.switch-list{margin-top:9px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:56px}.switch-row>span{font-size:12px}.switch-row small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.switch-control{width:48px;min-width:48px;height:44px;display:grid;place-items:center;padding:0}.switch-track{display:block;width:40px;height:23px;border-radius:15px;background:var(--line);position:relative}.switch-track:after{content:"";position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:var(--muted);transition:transform .18s}.switch-control[aria-checked=true] .switch-track{background:var(--accent)}.switch-control[aria-checked=true] .switch-track:after{background:var(--accent-ink);transform:translateX(17px)}.tasks-section{margin-top:26px;padding-top:23px;border-top:1px solid var(--line)}.tasks-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.tasks-title .icon{width:16px;height:16px;color:var(--accent);margin-right:6px}.tasks-title h3{font-size:13px}.task-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border:0}.task-check{width:44px;flex-shrink:0;display:grid;place-items:center;margin-left:-7px}.checkbox{width:21px;height:21px;border:1px solid var(--subtle);border-radius:7px;display:grid;place-items:center}.checkbox .icon{width:14px;height:14px}.task-check[aria-checked=true] .checkbox{background:var(--green-wash);color:var(--green);border-color:var(--green)}.task-row.completed .task-name{text-decoration:line-through;color:var(--muted)}.task-name{font-size:12px;overflow-wrap:anywhere;flex:1;min-width:0}.task-name small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.reward{color:var(--green);background:var(--green-wash);border-radius:6px;padding:3px 7px;font-size:10px;white-space:nowrap}.add-task{margin-top:16px;display:grid;grid-template-columns:1fr 85px 44px;align-items:end;gap:9px}.field label{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.field input,.field select{border:1px solid var(--line);background:var(--raised);color:var(--text);border-radius:10px;padding:10px 12px;width:100%;min-width:0;font-size:12px}.field input::placeholder{color:var(--muted)}.add-task .button{padding:10px;min-height:44px}.child-banner{background:var(--green-wash);border:1px solid var(--line);border-radius:16px;color:var(--green);padding:18px 22px;display:flex;align-items:center;gap:13px;margin-bottom:24px;font-size:13px}.child-shell .sidebar{display:none}.child-shell .workspace{margin-left:0}.child-shell .main{max-width:1120px}.child-shell .topbar .brand{padding:0;font-size:21px}.child-shell .topbar{max-width:1120px;margin:auto;border:0}.child-shell .main{padding-top:18px}.child-shell .olie-device{padding:27px}.child-shell .tasks-section{margin-top:15px}
/* Energy */
.energy-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}.stat-card{padding:22px}.stat-card>.row{font-size:12px;color:var(--muted)}.stat-card .row .icon{width:18px;height:18px}.stat-card .number{font-size:32px;margin-top:15px}.stat-card p{font-size:11px;color:var(--muted);margin-top:10px}.price-card{padding:26px}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:24px}.chart-header p{color:var(--muted);font-size:12px;margin-top:5px}.legend{display:flex;gap:16px;font-size:10px;color:var(--muted);flex-wrap:wrap}.legend span{display:flex;gap:5px;align-items:center}.legend i{width:7px;height:7px;border-radius:2px}.cheap{fill:var(--green)}.normal{fill:var(--accent)}.expensive{fill:var(--red)}.chart-readout{display:flex;align-items:center;gap:12px;font-size:12px;min-height:40px;margin-bottom:9px}.chart-readout strong{font-size:19px;font-weight:550}.chart-readout>span{color:var(--muted)}.price-chart{position:relative;width:100%;min-height:260px;touch-action:pan-y}.price-chart svg{width:100%;height:260px;display:block;overflow:visible}.price-chart text{font-family:inherit;fill:var(--muted);font-size:11px}.price-chart .now-label{fill:var(--text);font-size:9px;font-weight:600;letter-spacing:1px}.price-chart .grid-line{stroke:var(--line);stroke-width:1;stroke-dasharray:3 5}.price-chart .now-line{stroke:var(--text);stroke-width:1;stroke-dasharray:3 3}.price-chart .selected-bar{stroke:var(--text);stroke-width:1.7}.chart-navigation{display:flex;align-items:center;gap:12px;margin-top:10px}.chart-navigation label{font-size:10px;color:var(--muted);white-space:nowrap}.chart-slider{appearance:none;-webkit-appearance:none;width:100%;background:transparent;min-height:44px;margin:0;cursor:pointer}.chart-slider::-webkit-slider-runnable-track{height:3px;background:var(--line);border-radius:3px}.chart-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:17px;height:17px;margin-top:-7px;border:3px solid var(--card);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent)}.chart-slider::-moz-range-track{height:3px;background:var(--line)}.chart-slider::-moz-range-thumb{width:17px;height:17px;border:0;background:var(--accent);border-radius:50%}.best-window{display:flex;align-items:center;gap:16px;background:var(--green-wash);border:1px solid var(--line);border-radius:16px;padding:19px 22px;margin-top:20px}.best-window>.icon{color:var(--green);width:25px;height:25px}.best-window h3{font-size:14px;color:var(--green)}.best-window p{font-size:11px;color:var(--muted);margin-top:4px}.best-price{margin-left:auto;text-align:right;font-size:22px;color:var(--green);white-space:nowrap}.best-price small{display:block;font-size:10px;color:var(--muted)}.energy-bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-top:22px}.usage-bars{height:160px;width:100%;display:block}.usage-bars text{fill:var(--muted);font-size:11px;font-family:inherit}.usage-bars rect{fill:var(--blue)}.usage-bars .today{fill:var(--accent)}.cost-row{display:flex;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.cost-row .icon{width:18px;height:18px;color:var(--muted)}.cost-row:last-child{border:0;padding-bottom:0;font-size:16px}.cost-row small{display:block;font-size:10px;color:var(--muted);margin-left:30px;margin-top:2px}.cost-row b{font-weight:550}.history-footnote{font-size:10px;color:var(--muted);margin-top:13px}
/* More */
.cameras{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;margin-bottom:23px}.camera-card{overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:20px;min-width:0}.camera-header{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.camera-header h2{font-size:14px}.camera-view{width:100%;height:235px;position:relative;overflow:hidden;display:block;background:var(--raised);padding:0;border-top:1px solid var(--line)}.camera-view img{width:100%;height:100%;object-fit:cover;display:block}.camera-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:11px;color:var(--muted);background:linear-gradient(145deg,var(--raised),var(--card));font-size:11px}.camera-placeholder>.icon{width:35px;height:35px;opacity:.7}.camera-placeholder small{font-size:10px}.camera-expand{position:absolute;bottom:14px;right:14px;width:34px;height:34px;background:#131514d9;color:#f3f3ec;border-radius:10px;display:grid;place-items:center}.camera-expand .icon{width:18px;height:18px}.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.network-stats{display:flex;gap:30px;padding-bottom:20px;border-bottom:1px solid var(--line)}.network-stats .number{font-size:34px}.network-stats small{color:var(--muted);font-size:11px;display:block;margin-top:3px}.details-list{margin-top:14px;border-top:1px solid var(--line)}.details-list summary{cursor:pointer;padding:17px 0;min-height:48px;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:10px;list-style:none}.details-list summary::-webkit-details-marker{display:none}.details-list summary .icon{width:17px;height:17px}.details-list[open] summary .icon{transform:rotate(180deg)}.network-list{max-height:330px;overflow:auto;overscroll-behavior:contain;padding-right:7px}.network-device{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.network-device .dot{background:var(--subtle)}.network-device.seen .dot{background:var(--green)}.network-device strong{font-size:11px;font-weight:550;display:block;overflow-wrap:anywhere}.network-device small{color:var(--muted);font-size:10px}.system-item{display:flex;align-items:flex-start;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.system-item:last-child{border:0}.system-item>.icon{width:18px;height:18px;margin-top:2px}.system-item strong{font-size:12px;font-weight:550;display:block}.system-item small{font-size:10px;color:var(--muted);display:block;line-height:1.65;margin-top:3px;overflow-wrap:anywhere}.automation{display:flex;gap:9px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.automation>.dot{margin-top:6px}.automation strong{font-size:11px;font-weight:550;display:block}.automation small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.settings-card{margin-top:22px}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border:0}.settings-row strong{font-size:12px;font-weight:550}.settings-row p{font-size:11px;color:var(--muted);margin-top:3px}.settings-row .button{font-size:11px}.system-count{font-size:10px;color:var(--muted)}
/* Login, dialogs, feedback */
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 25%,var(--accent-wash),transparent 60%),var(--bg)}.login-card{width:100%;max-width:420px;text-align:center;padding:45px 34px}.login-logo{width:74px;height:74px;margin:0 auto 24px;border-radius:23px;background:var(--accent-wash);color:var(--accent);display:grid;place-items:center}.login-logo .icon{width:38px;height:38px}.login-card h1{font-size:38px}.login-card>p{color:var(--muted);font-size:13px;margin:15px 0 30px;line-height:1.8}.login-card .button{width:100%;margin-bottom:12px}.login-card .text-button{width:100%;margin-top:7px}.login-status{font-size:13px;color:var(--green);line-height:1.8;margin:16px 0}.login-kod{display:grid;gap:10px;margin-top:6px}.login-kod label{font-size:11px;color:var(--muted);text-align:left}.login-kod input{width:100%;height:64px;border:2px solid var(--accent);background:var(--raised);color:var(--text);border-radius:14px;text-align:center;font:600 30px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:10px;padding:0 0 0 10px}.login-kod input::placeholder{color:var(--subtle);letter-spacing:10px}.login-kod input:focus{outline:3px solid var(--accent-wash);outline-offset:2px}.login-kod .button{margin:0}.login-foot{margin-top:30px;font-size:10px;color:var(--muted)}.login-theme{position:fixed;right:22px;top:22px}.toasts{position:fixed;bottom:26px;left:calc(50% + var(--sidebar-width)/2);transform:translateX(-50%);z-index:100;max-width:calc(100% - 36px);pointer-events:none}.toast{background:var(--text);color:var(--bg);padding:13px 20px;border-radius:13px;box-shadow:0 7px 35px #0002;font-size:12px;animation:toast-in .2s ease-out}.modal-backdrop{position:fixed;inset:0;background:#000b;z-index:80;display:grid;place-items:center;padding:28px}.modal{position:relative;width:min(1200px,100%);background:var(--card);border:1px solid var(--line);border-radius:22px;padding:22px;max-height:95dvh;overflow:auto}.modal .camera-view{height:auto;aspect-ratio:16/9;border:0;border-radius:13px;cursor:default}.modal .card-top{margin-bottom:15px}.modal-confirm{max-width:460px;padding:26px}.modal-confirm p{font-size:13px;color:var(--muted);line-height:1.8;margin:14px 0 25px}.modal-confirm .row{justify-content:flex-end}.modal-confirm h2{padding-right:15px}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.main{padding-top:42px}.dashboard{gap:22px}.card{padding:27px}.weather-now{margin-bottom:29px}.weather-art{width:160px}.olie-preview .preview-ring .ring{width:145px;height:145px}.room-glance{padding:18px}.room-tiles .device-tile{min-height:146px}.camera-view{height:270px}}
@media(max-width:1199px){:root{--sidebar-width:92px}.sidebar{padding:28px 13px 20px}.brand{padding:0;justify-content:center}.brand>span:last-child,.nav-caption,.nav-link:after,.sidebar-bottom{display:none!important}.navigation{margin-top:45px;gap:12px}.nav-link{flex-direction:column;gap:5px;padding:10px 4px;min-height:67px;font-size:10px;border-radius:13px}.nav-link .icon{width:22px;height:22px}.topbar{height:77px;padding:0 28px}.main{padding:30px 28px}.page-heading{margin-bottom:25px}.page-heading h1{font-size:31px}.date-chip{padding:9px 12px;font-size:11px}.dashboard{gap:16px}.weather-card,.energy-now{grid-column:span 6}.shortcuts-card{grid-column:span 6}.olie-preview{grid-column:span 6}.agenda-card{grid-column:1/-1}.agenda-items{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.agenda-item{border-bottom:0;border-right:1px solid var(--line);padding:0 12px 0 0}.agenda-item:last-child{border:0}.card{padding:22px}.weather-art{width:100px}.temperature{font-size:52px}.power-main{gap:15px}.power-main .number{font-size:47px}.cost-now{padding-left:15px;font-size:17px}.room-glances{grid-template-columns:repeat(3,minmax(0,1fr))}.rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.olie-device{padding:22px}.olie-grid{gap:17px}.energy-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.more-grid{gap:16px}.cameras{grid-template-columns:1fr 1fr;gap:16px}.camera-view{height:195px}.energy-bottom{grid-template-columns:1fr}.chart-header{flex-wrap:wrap}.ring{width:195px;height:195px}.add-task{grid-template-columns:1fr 75px 44px;gap:7px}.switch-row>span{font-size:11px}.network-stats{gap:24px}.settings-row{flex-wrap:wrap}.room-only .room-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:701px) and (max-width:900px){.main{padding:28px 22px}.topbar{padding:0 22px}.card{padding:20px}.page-heading .date-chip{display:none}.weather-now{gap:0}.weather-art{width:83px}.temperature{font-size:48px}.power-main{flex-wrap:wrap;gap:12px}.power-main .number{font-size:44px}.cost-now{font-size:15px;padding-left:12px}.power-main .unit{font-size:13px}.price-line{font-size:11px}.forecast{gap:5px}.shortcuts .device-tile{padding:13px}.preview-ring .ring{width:134px;height:134px}.more-grid{grid-template-columns:1fr}.camera-view{height:185px}.ring{width:180px;height:180px}.ring-center strong{font-size:38px}.add-task{grid-template-columns:1fr 74px}.add-task .field:first-child{grid-column:1/-1}.add-task .button{justify-self:stretch}.screen-metrics b{font-size:16px}.screen-metrics{gap:10px}.time-actions{gap:6px}.time-button{font-size:12px}.room-card{padding:18px}.room-tiles .device-tile{padding:12px}.sensor-body .number{font-size:30px}.sparkline{max-width:100px}}
@media(max-width:700px){:root{--sidebar-width:0px}.sidebar{inset:auto 0 0;width:100%;height:calc(73px + env(safe-area-inset-bottom));padding:4px 8px env(safe-area-inset-bottom);border:0;border-top:1px solid var(--line);background:var(--sidebar)}.sidebar>.brand{display:none}.navigation{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin:0}.nav-link{padding:9px 1px 7px;gap:4px;font-size:10px;min-height:63px;border-radius:12px}.nav-link.active{background:transparent;color:var(--accent)}.nav-link.active .icon{filter:drop-shadow(0 0 9px #edbd8020)}.workspace{margin:0}.topbar{height:70px;padding:0 22px;border:0}.breadcrumbs{font-size:11px;gap:8px}.breadcrumbs .icon{width:18px;height:18px;color:var(--accent)}.breadcrumbs span.separator,.breadcrumbs span:last-child{display:none}.breadcrumbs:after{content:"Domek";font-size:19px;font-weight:650;letter-spacing:-.6px;color:var(--text)}.top-actions{gap:10px}.connection{font-size:10px;gap:6px}.avatar{width:30px;height:30px;font-size:11px}.icon-button{width:44px;height:44px;background:transparent;border:0}.icon-button .icon{width:20px;height:20px}.main{padding:17px 20px 100px}.page-heading{margin-bottom:23px;gap:12px;align-items:flex-start}.page-heading h1{font-size:31px;letter-spacing:-1.1px}.page-heading .eyebrow{font-size:9px;letter-spacing:1.6px;margin-bottom:9px}.page-heading p{font-size:12px;margin-top:8px}.date-chip{display:none}.dashboard{display:flex;flex-direction:column;gap:16px}.card{border-radius:20px;padding:21px}.card-top{margin-bottom:19px}.weather-card{min-height:auto}.weather-now{margin:0 0 22px}.weather-art{width:120px;height:96px}.temperature{font-size:57px}.forecast{padding-top:16px}.forecast-day{gap:7px}.energy-now .card-top{margin-bottom:17px}.power-main .number{font-size:54px}.power-main{gap:23px;margin-bottom:20px}.cost-now{font-size:20px;padding-left:23px}.price-line{margin-bottom:17px}.mini-chart{height:65px}.home-alerts{gap:7px;margin-bottom:18px}.alert-chip{padding:7px 10px;font-size:10px}.shortcuts .device-tile{min-height:139px;padding:17px}.olie-preview .preview-ring{justify-content:flex-start;gap:24px}.olie-preview .preview-ring .ring{width:135px;height:135px;margin:0}.olie-preview .preview-summary{display:block;color:var(--muted);font-size:12px;line-height:1.9}.olie-preview>p{display:none}.agenda-items{display:block}.agenda-item{padding:14px 0;border:0;border-bottom:1px solid var(--line)}.agenda-item:first-child{padding-top:0}.agenda-item:last-child{padding-bottom:0}.agenda-item strong{font-size:13px}.agenda-item small{font-size:11px}.agenda-date b{font-size:25px}.room-glances{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-glance{padding:15px;min-height:104px}.room-filters{gap:7px;margin-bottom:20px}.filter-button{font-size:11px;padding:9px 13px}.rooms-grid{grid-template-columns:1fr;gap:16px}.room-only .room-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.room-only .sensor-tile{grid-column:1/-1}.room-card{padding:20px}.room-card:first-child{grid-row:auto}.room-tiles .device-tile{min-height:141px;padding:16px}.sensor-body .number{font-size:35px}.olie-grid{grid-template-columns:1fr;gap:20px}.olie-device{padding:22px}.ring{width:218px;height:218px}.ring-center strong{font-size:45px}.screen-metrics{margin-top:20px}.switch-row>span{font-size:12px}.tasks-section{padding-top:21px}.task-name{font-size:12px}.add-task{grid-template-columns:1fr 77px 44px}.child-shell .main{padding-top:16px;padding-bottom:28px}.child-shell .topbar{padding:0 20px}.child-shell .topbar .brand{font-size:20px;gap:5px}.child-banner{font-size:12px;padding:16px}.energy-stats{gap:11px;margin-bottom:18px}.stat-card{padding:17px}.stat-card .number{font-size:28px;letter-spacing:-1px}.stat-card>.row{font-size:11px;gap:7px}.stat-card .unit{font-size:12px}.stat-card p{font-size:10px}.price-card{padding:20px 17px}.chart-header{gap:14px;margin-bottom:17px}.legend{gap:12px;font-size:9px}.chart-readout{font-size:10px;gap:7px;flex-wrap:wrap}.chart-readout strong{font-size:18px}.price-chart{min-height:210px}.price-chart svg{height:210px}.chart-navigation{gap:8px;margin-top:7px}.chart-navigation label{font-size:9px}.best-window{padding:16px;gap:12px;flex-wrap:wrap}.best-window h3{font-size:12px}.best-window>.icon{width:21px;height:21px}.best-window p{font-size:10px}.best-price{font-size:18px;display:flex;align-items:baseline;gap:8px;margin-left:33px}.best-price small{font-size:10px}.energy-bottom{gap:16px;margin-top:18px}.cost-row{font-size:12px}.usage-bars{height:150px}.cameras{grid-template-columns:1fr;gap:17px}.camera-view{height:auto;aspect-ratio:16/9}.camera-header{padding:14px 20px}.more-grid{grid-template-columns:1fr;gap:17px}.settings-card{margin-top:17px}.network-stats{gap:40px}.system-item strong{font-size:12px}.system-item small{font-size:11px}.footer{font-size:9px;flex-wrap:wrap;margin-top:24px}.toasts{bottom:calc(88px + env(safe-area-inset-bottom));left:50%;width:max-content;max-width:calc(100% - 32px)}.toast{font-size:12px}.modal-backdrop{padding:14px}.modal{padding:16px}.modal-confirm{padding:24px}.login-card{padding:38px 24px}.preview-summary{display:block!important}}
@media(min-width:701px){.preview-summary{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
[data-camera]{width:100%;height:100%;position:relative}.modal:fullscreen{width:100%;height:100%;max-height:none;border:0;border-radius:0;display:flex;flex-direction:column;justify-content:center}.modal:fullscreen .camera-view{max-height:calc(100dvh - 110px);flex:1}.modal:fullscreen .camera-view img{object-fit:contain}
.ring-center strong.long-time{font-size:31px;letter-spacing:-1px}.preview-ring .ring strong.long-time{font-size:21px}.device-tile.on{border-color:var(--line);box-shadow:inset 0 0 0 1px #edbd8024}
@media(min-width:701px) and (max-width:900px){.ring-center strong.long-time{font-size:27px}}
#page-title:focus{outline:none}.automation small.danger{color:var(--red)}
.device-tile.unavailable,.sensor-tile.unavailable{opacity:1;color:var(--muted)}
.usage-bars text{font-size:12px}.time-button{padding:0 3px}.time-button small{font-size:10px}
@media(max-width:700px){.best-window{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:12px;row-gap:9px}.best-window>.icon{grid-row:1/span 2}.best-price{grid-column:2;margin:0;text-align:left;justify-content:flex-start}.best-window h3{font-size:13px}}
/* Independent room heights avoid large empty grid rows beside the garage. */
.rooms-grid{display:block;columns:3;column-gap:20px}.room-card{display:inline-block;width:100%;break-inside:avoid;margin:0 0 20px;vertical-align:top}.room-only{columns:1}.room-only .room-card{max-width:900px}
@media(max-width:1199px){.rooms-grid{columns:2;column-gap:16px}.room-card{margin-bottom:16px}.room-only{columns:1}}
@media(max-width:700px){.rooms-grid{columns:1}}

/* Round two: overview details and long-page navigation. */
@media(min-width:701px){
  .parent-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);background:linear-gradient(to right,var(--sidebar) 0,var(--sidebar) var(--sidebar-width),var(--bg) var(--sidebar-width))}
  .parent-shell>.sidebar{position:sticky;top:0;inset-inline-start:0;height:100vh;height:100dvh;align-self:start}
  .parent-shell>.workspace{margin-left:0;min-width:0}
}
.forecast{grid-template-columns:repeat(4,minmax(0,1fr))}
.forecast-day{min-width:0;grid-template-rows:auto 25px auto 16px;align-content:start}
.forecast-day b{display:flex;align-items:baseline;gap:5px;white-space:nowrap;font-weight:700}
.forecast-day b span{font-weight:400}
.agenda-date{display:flex;flex-direction:column;gap:3px;font-family:inherit;font-size:10px;font-weight:600;line-height:1.2}
.agenda-date b{font-family:inherit;font-size:25px;font-weight:700;letter-spacing:-.6px}
.waste-bin{width:21px;height:24px;vertical-align:middle;margin-right:7px;flex-shrink:0}
.waste-bin.bio{color:var(--green)}.waste-bin.plastic{color:#ef9d42}.waste-bin.paper{color:var(--blue)}.waste-bin.other{color:var(--muted)}
:root[data-theme=light] .waste-bin.plastic{color:#b96513}
.footer{gap:12px 30px;flex-wrap:wrap}.footer>span{display:block}
.offline-alert{max-width:100%;align-self:flex-start}
.offline-alert summary{cursor:pointer;list-style:none}.offline-alert summary::-webkit-details-marker{display:none}
.offline-alert summary>.icon:last-child{margin-left:auto}.offline-alert[open] summary>.icon:last-child{transform:rotate(180deg)}
.offline-alert ul{list-style:none;margin:8px 0 0;padding:8px 14px;background:var(--card);border:1px solid var(--line);border-radius:12px}
.offline-alert li+li{border-top:1px solid var(--line)}
.offline-alert li a{display:flex;align-items:center;min-height:44px;padding:8px 0;font-size:12px;overflow-wrap:anywhere}
.room-glance{align-content:start;min-width:0;gap:10px}
.glance-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--room-color)}
.glance-top>.icon{width:21px;height:21px}.glance-states{display:flex;gap:6px;color:var(--accent)}.glance-states .icon{width:17px;height:17px}
.room-glance .glance-summary{font-size:16px;letter-spacing:0;line-height:1.4}
.glance-meta{display:flex;flex-wrap:wrap;gap:5px 10px;font-size:10px;color:var(--muted)}
.glance-meta>span{display:inline-flex;align-items:center;gap:4px}.glance-meta .icon{width:13px;height:13px}
.ring-green .ring-progress{stroke:var(--green)}.ring-amber .ring-progress{stroke:var(--accent)}.ring-red .ring-progress{stroke:var(--red)}.ring-unknown .ring-progress{stroke:var(--subtle)}
.olie-status{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;min-width:0}
.olie-device>.card-top{flex-wrap:wrap}.olie-status .pill{white-space:normal}
@media(min-width:1200px) and (max-width:1599px){.room-glances{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:701px) and (max-width:900px){
  .rooms-grid{columns:1}.agenda-items{display:block}.agenda-item{border-right:0;border-bottom:1px solid var(--line);padding:14px 0}
}
@media(max-width:700px){
  html{scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
  .parent-shell .main{padding-bottom:calc(101px + env(safe-area-inset-bottom,0px))}
}

/* Tesla: one dark, touch-first screen at 1280 × 800. */
html[data-layout=tesla],html[data-layout=tesla] body{height:100%;overflow:hidden;overscroll-behavior:none}
.tesla-screen{height:100vh;height:100dvh;padding:20px 24px 24px;display:flex;flex-direction:column;gap:20px}
.tesla-header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none;height:64px}
.tesla-header h1{font-size:30px;letter-spacing:-.8px}.tesla-header h1 span{color:var(--muted);font-weight:400}
.tesla-header .row{gap:24px}.tesla-header .connection{font-size:14px}.tesla-header time{font-size:26px;font-weight:600}
.tesla-screen .button,.tesla-screen input{min-height:64px;font-size:18px}
.tesla-header .button{padding:12px 24px}
.tesla-content{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1.05fr;grid-template-rows:minmax(0,1fr) 168px;gap:20px}
.tesla-content .card{padding:24px;min-height:0}
.tesla-energy{grid-row:1 / -1;display:flex;flex-direction:column}
.tesla-energy .card-label{font-size:18px}.tesla-energy .card-top{margin-bottom:24px}
.tesla-screen .pill{font-size:13px;padding:6px 12px}
.tesla-price{font-size:clamp(54px,6.3vw,84px);font-weight:600;line-height:1.1;letter-spacing:-3px;white-space:nowrap}
.tesla-price.cheap{color:var(--green)}.tesla-price.normal{color:var(--accent)}.tesla-price.expensive{color:var(--red)}
.tesla-price small{display:block;color:var(--muted);font-size:18px;font-weight:400;letter-spacing:0;margin-top:12px}
.tesla-price-stats{display:flex;gap:30px;margin:25px 0;font-size:14px;color:var(--muted)}.tesla-price-stats b{display:block;font-size:21px;color:var(--text);margin-top:4px}
.tesla-chart-block{margin-top:auto;min-height:0}.tesla-chart-block>p{font-size:12px;margin-top:10px}
.tesla-chart{width:100%;max-height:31vh;display:block;margin-top:12px}
.tesla-chart text{font:16px system-ui;fill:var(--muted)}.tesla-chart .now-label{fill:var(--text);font-size:14px;font-weight:700}
.tesla-chart .grid-line{stroke:var(--line);stroke-dasharray:3 5}.tesla-chart .now-line{stroke:var(--text);stroke-width:2;stroke-dasharray:4 4}
.tesla-olie{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0}
.tesla-content .tesla-device{display:flex;flex-direction:column;align-items:stretch;padding:20px}
.tesla-device h2{display:flex;align-items:center;gap:10px;font-size:20px}.tesla-device h2>.icon{color:var(--accent)}
.tesla-device .olie-status{justify-content:flex-start;margin:12px 0;min-height:32px}
.tesla-device .ring{width:clamp(150px,16vw,206px);height:clamp(150px,16vw,206px);flex-shrink:1;min-height:0}
.tesla-device .ring-center strong{font-size:40px}.tesla-device .ring-center strong.long-time{font-size:29px}
.tesla-limit{color:var(--muted);font-size:12px;text-align:center;margin:12px -8px 16px}
.tesla-time-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}
.tesla-time-actions .time-button{min-height:64px;background:var(--accent-wash);color:var(--accent);font-size:24px}
.tesla-time-actions small{font-size:13px}
.tesla-task h2{display:flex;align-items:center;gap:8px;font-size:17px}.tesla-task h2>.icon{color:var(--accent);width:19px}.tesla-task h2 small{color:var(--muted);font-size:13px;font-weight:400}
.tesla-task .add-task{grid-template-columns:minmax(0,1fr) 86px 114px;margin-top:12px;gap:10px}
.tesla-task .field label{font-size:12px;margin-bottom:5px}.tesla-task input{padding:10px 12px}
html[data-layout=tesla] .toasts{left:50%;bottom:24px}html[data-layout=tesla] .toast{font-size:16px}
@media(max-height:720px){
  .tesla-screen{padding:12px 20px;gap:12px}.tesla-content{gap:12px;grid-template-rows:minmax(0,1fr) 156px}
  .tesla-content .card{padding:16px}.tesla-device .ring{width:160px;height:160px}.tesla-device .ring-center strong{font-size:32px}
  .tesla-device .olie-status{margin:6px 0}.tesla-limit{margin:6px 0}.tesla-price{font-size:60px}.tesla-price-stats{margin:16px 0}
}

/* Lists and the home summary share the same live todo data. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.more-link{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 11px;border:1px solid var(--line);border-radius:12px;font-size:12px;color:var(--muted)}
.more-link:hover,.more-link.active{color:var(--accent);background:var(--accent-wash)}.more-link .icon{width:19px;height:19px}
.today-card{grid-column:1/-1;display:block}.today-card:hover{border-color:var(--accent)}
.today-card .card-top{margin-bottom:12px}.today-card .card-top>.icon{color:var(--muted);width:19px}
.today-task{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;overflow-wrap:anywhere}.today-task .icon{width:17px;height:17px;color:var(--muted)}
.today-shopping{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);margin-top:14px;padding-top:14px;font-size:12px}.today-shopping>.icon{color:var(--accent);width:19px}.today-shopping .pill{margin-left:auto}
.lists-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.list-card{min-width:0}.list-card .card-top{gap:12px;flex-wrap:wrap}.list-card .card-label{min-width:0;overflow-wrap:anywhere}
.add-list-item{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:9px;margin-bottom:16px}.add-list-item input{min-height:48px;font-size:16px}.add-list-item .button{padding:0;min-height:48px}
.list-row{position:relative;gap:4px;min-height:58px}.list-row .task-check{width:48px;min-height:48px;margin-left:-8px;align-self:flex-start}.list-row .checkbox{border-radius:50%;width:23px;height:23px}
.list-row .task-name{font-size:14px;padding:6px 0}.list-row.completed .task-name{text-decoration:none}.list-row.completed .task-name>span{text-decoration:line-through}
.task-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.task-chips .pill{font-size:10px;padding:3px 7px}
.item-menu{position:relative;flex-shrink:0;align-self:flex-start}.item-menu summary{display:grid;place-items:center;width:44px;min-height:48px;cursor:pointer;list-style:none;color:var(--muted)}.item-menu summary::-webkit-details-marker{display:none}
.item-menu[open]{z-index:2}.item-menu>.button{position:absolute;right:0;top:44px;min-height:48px;white-space:nowrap;background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);z-index:2}
.completed-items{margin-top:16px}.completed-items summary{min-height:48px}.clear-completed{margin-top:12px;min-height:48px;color:var(--muted)}
.list-error{font-size:12px;color:var(--red);margin-bottom:12px}.list-error .text-button{min-height:44px}.list-card .empty,.today-card .empty{text-align:left;padding:10px 0}
/* Keep the desktop column painted for the full document and fixed while scrolling. */
@media(min-width:701px){
  .parent-shell{min-height:100vh;min-height:100dvh;background:linear-gradient(to right,var(--sidebar) 0,var(--sidebar) calc(var(--sidebar-width) - 1px),var(--line) calc(var(--sidebar-width) - 1px),var(--line) var(--sidebar-width),var(--bg) var(--sidebar-width))}
  .parent-shell>.sidebar{position:fixed;inset:0 auto auto 0;height:100vh;height:100dvh;overflow-y:auto}
  .parent-shell>.workspace{grid-column:2}
}
@media(max-width:900px){.lists-grid{grid-template-columns:1fr;gap:17px}}
@media(max-width:700px){
  .navigation{grid-template-columns:repeat(var(--nav-items,5),minmax(0,1fr))}
  .topbar{padding-inline:16px}.top-actions{gap:6px}.more-link{padding:8px;font-size:11px;gap:5px}
  .parent-shell .main{padding-bottom:calc(109px + env(safe-area-inset-bottom,0px))}
  .child-shell .main{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
  .login-screen{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
  .list-card{padding:20px}.list-card .card-label{font-size:14px}
}
@media(max-width:360px){.topbar{padding-inline:12px}.top-actions{gap:3px}.top-actions .connection{font-size:9px}.breadcrumbs{gap:4px}.breadcrumbs:after{font-size:17px}.more-link{padding-inline:6px}}
/* Claude 16.10: "4 h 53 min" wychodził poza mały pierścień na Domu (PC) */
.preview-ring .ring strong.long-time{font-size:18px;letter-spacing:-.4px;white-space:nowrap}

/* Claude 16.10: karta Tesli na Domu */
.car-card{grid-column:span 4;display:flex;flex-direction:column;gap:12px}.car-main{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.car-main .number{font-size:52px;font-weight:550;letter-spacing:-1.5px;line-height:1}.car-main .unit{font-size:20px;color:var(--muted);margin-left:3px}.car-side{text-align:right}.car-side b{font-size:20px;font-weight:550;display:block}.car-side small{color:var(--muted);font-size:11px}.car-bar{position:relative;height:12px;border-radius:8px;background:var(--line);overflow:visible}.car-bar span{display:block;height:100%;border-radius:8px}.car-bar i{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--text);opacity:.5}
@media(max-width:1199px){.car-card{grid-column:span 6}}

/* Claude 16.10: wirtualny akumulator w Energii */
.battery-card{margin-top:20px}.battery-card>p{font-size:12px;margin-bottom:14px}.battery-table{overflow-x:auto}.battery-table table{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}.battery-table th,.battery-table td{text-align:right;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.battery-table thead th{font-size:10px;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.6px}.battery-table tbody th{text-align:left;font-weight:550}.battery-table td small{display:block;font-size:10px;color:var(--muted)}.battery-table td.warning{color:var(--accent)}.battery-table td.danger{color:var(--red)}
.battery-table thead th:first-child{text-align:left}

/* Claude 16.10: Auto + Akumulator w menu */
@media(max-width:700px){.nav-extra{display:none!important}}
.more-pages{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:20px}.more-page{display:flex;align-items:center;gap:14px;padding:20px}.more-page>.icon:first-child{width:28px;height:28px;color:var(--accent)}.more-page div{flex:1}.more-page strong{display:block;font-size:15px;font-weight:600}.more-page small{color:var(--muted);font-size:12px}.more-page:hover{border-color:var(--accent)}
.auto-month{grid-column:span 8}.auto-month .energy-stats{margin-bottom:10px}.auto-table{margin-top:20px}
@media(max-width:1199px){.auto-month{grid-column:span 6}}
.battery-card+.card{margin-top:20px}

/* Claude 16.10: plan ładowania (Auto) */
.plan-card{margin-top:20px}.plan-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end}.plan-form select{border:1px solid var(--line);background:var(--raised);color:var(--text);border-radius:10px;padding:10px 12px;width:100%;font-size:12px}.plan-przyciski{display:flex;gap:8px;flex-wrap:wrap}.plan-wynik{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.plan-godziny{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;font-size:14px}.plan-godziny .icon{width:18px;height:18px;color:var(--accent)}.plan-wynik .energy-stats{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:10px}
@media(max-width:1199px){.plan-form{grid-template-columns:1fr 1fr}.plan-przyciski{grid-column:1/-1}.plan-wynik .energy-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.plan-wynik .energy-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Claude 17.10: Battery charts */
.aku-sizes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.aku-sizes .filter-button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.aku-chart{margin-bottom:20px}.aku-svg{width:100%;height:auto;display:block;margin:8px 0}.aku-svg text{font-size:12px;fill:var(--muted)}
.aku-svg .l-soc{stroke:var(--accent);stroke-width:2.5}.aku-svg .l-use{stroke:var(--blue);stroke-width:1.6;stroke-dasharray:4 3}
.aku-svg .now-line{stroke:var(--text);stroke-width:1;stroke-dasharray:3 3;opacity:.6}.aku-svg .now-label{font-size:11px;fill:var(--text);text-anchor:middle}
.aku-chart .legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.aku-chart .legend i{display:inline-block;width:12px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.aku-chart .legend i.l-soc{height:3px;background:var(--accent)}.aku-chart .legend i.l-use{height:0;border-top:2px dashed var(--blue)}

/* Kto to? – nieznane tablice i twarze */
.kto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.kto-card{padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.kto-img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:var(--raised)}
.kto-info{display:flex;flex-direction:column;gap:3px;min-width:0}.kto-info small{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.kto-plate{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px;letter-spacing:.06em}
.kto-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.kto-form .text-button{grid-column:1/-1}
.kto-form input{border:1px solid var(--line);background:var(--raised);color:var(--text);border-radius:12px;padding:0 12px;min-height:46px;min-width:0;font-size:16px}
.kto-form input::placeholder{color:var(--muted)}
.kto-more{margin-top:16px}.kto-known ul{list-style:none;display:grid;gap:8px;margin-top:12px}.kto-known li{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.kto-known details+details{margin-top:14px}.kto-known summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.kto-filtry{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.kto-filtry .room-filters{margin:0}
.kto-filtry .filter-button{min-height:44px}
.kto-szukaj{border:1px solid var(--line);background:var(--raised);color:var(--text);border-radius:12px;padding:0 12px;min-height:44px;min-width:0;width:220px;max-width:100%;font-size:16px}
.dzieci-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:20px}.dziecko-card .card-label{gap:10px}.dziecko-kropka{width:14px;height:14px;border-radius:50%;background:var(--kolor);display:inline-block}.dziecko-gdzie{font-size:26px;font-weight:560;letter-spacing:-.8px;margin:6px 0 4px}.dziecko-gdzie.pusto{font-size:17px;letter-spacing:0;color:var(--muted)}.dziecko-akcje{margin-top:14px;gap:8px}.dzieci-qr-box{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.dzieci-qr{background:#fff;border-radius:12px;padding:8px;aspect-ratio:1}.dzieci-qr svg{display:block;width:100%;height:100%}.dzieci-qr-box p{margin-top:6px;font-size:12px}.dzieci-zakres{margin-bottom:12px}.dzieci-mapa-karta{padding:0;overflow:hidden;margin-bottom:20px}.dzieci-mapa{height:min(62vh,560px);width:100%;background:var(--raised)}.dziecko-pin span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:#fff;font-weight:700;font-size:15px;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35)}.dzieci-form{display:grid;grid-template-columns:1fr 100px auto auto;gap:8px;margin:12px 0}.dzieci-form input,.dzieci-form select{border:1px solid var(--line);background:var(--raised);color:var(--text);border-radius:10px;padding:10px 12px;min-width:0}.dzieci-miejsca{list-style:none;padding:0;margin:10px 0 0}.dzieci-miejsca li{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;border-bottom:1px solid var(--line)}.dzieci-miejsca li:last-child{border:0}
@media (max-width:640px){.dzieci-qr-box{grid-template-columns:1fr}.dzieci-qr{max-width:240px}.dzieci-form{grid-template-columns:1fr 1fr}.dzieci-form input{grid-column:1/-1}.dzieci-mapa{height:55vh}}
.kto-wskazowka{font-size:12px;color:var(--muted);margin:-4px 0 14px;line-height:1.6}
.aku-sub{font-size:13px;font-weight:600;margin:20px 0 8px}.aku-sub small{font-weight:400;font-size:11px;margin-left:6px}.battery-table tr.aku-model th,.battery-table tr.aku-model td{background:var(--raised)}.battery-table tbody th small{display:inline;font-size:10px;color:var(--muted);font-weight:400}.aku-eff-stats{margin:4px 0 6px}
.battery-table thead th small{display:block;text-transform:none;letter-spacing:0;font-weight:400}.aku-pv-note{font-size:12px;margin-bottom:10px;line-height:1.6}
.odb-card{margin-bottom:20px}.odb-pasek{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--raised);margin:4px 0 14px}.odb-pasek span{display:block;height:100%;min-width:2px}.odb-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2px 24px}.odb-wiersz{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.odb-wiersz>i{width:10px;height:10px;border-radius:3px;flex:none}.odb-wiersz .icon{width:16px;height:16px;color:var(--muted)}.odb-wiersz b{font-weight:600}.odb-wiersz small{color:var(--muted);font-size:11px;width:38px;text-align:right}.odb-uwaga{font-size:12px;margin-top:10px}.odb-card>small{display:block;margin-top:12px;font-size:11px}

.tasks-card{grid-column:1/-1}.add-zadanie{display:grid;grid-template-columns:minmax(0,1fr) 120px 76px 48px;gap:9px;margin-bottom:16px;align-items:end}.add-zadanie input,.add-zadanie select{min-height:48px;font-size:16px}.add-zadanie .button{padding:0;min-height:48px}
.task-group{margin-bottom:14px}.task-group h3{display:flex;align-items:center;gap:8px;font-size:13px;margin:6px 0 2px;color:var(--accent)}.task-group h3 .icon{width:16px;height:16px}.task-group h3 small{color:var(--muted);font-weight:500}.tasks-hint{font-size:11px;margin:4px 0 8px}
@media(max-width:600px){.add-zadanie{grid-template-columns:minmax(0,1fr) 92px 64px 48px;gap:6px}}
.historia-row{gap:9px}.historia-row>.icon{width:15px;height:15px;color:var(--muted);flex-shrink:0}.historia-czas{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;width:40px;flex-shrink:0}.reward.minus{color:var(--red);background:var(--red-wash,transparent)}
.login-kod input.login-nazwa{font:500 20px/1 system-ui;letter-spacing:0;height:54px;padding:0 14px;text-align:left}

/* Oskar 22.10: progi 15 ct / 40 ct - pasy w tle, linie progów, lista godzin */
:root{--very-red:#ff5442;--very-green:#4fd977}:root[data-theme=light]{--very-red:#c62a1a;--very-green:#1f8f45}
.band.very-expensive{fill:var(--very-red);opacity:.3}.band.very-cheap{fill:var(--very-green);opacity:.3}
rect.very-expensive:not(.band){fill:var(--very-red)}rect.very-cheap:not(.band){fill:var(--very-green)}
.tesla-price.very-expensive{color:var(--very-red)}.tesla-price.very-cheap{color:var(--very-green)}
.threshold{stroke-width:1.2;stroke-dasharray:6 4}.threshold.very-expensive{stroke:var(--very-red)}.threshold.very-cheap{stroke:var(--very-green)}
svg .threshold-label{font-size:10px;font-weight:700;paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round}svg .threshold-label.very-expensive{fill:var(--very-red)}svg .threshold-label.very-cheap{fill:var(--very-green)}
.tesla-chart .threshold-label{font-size:14px}
.legend i.legend-band{width:12px;height:9px;border-radius:2px}.legend-band.very-expensive{background:var(--very-red)}.legend-band.very-cheap{background:var(--very-green)}
.extremes{display:grid;gap:8px;margin-top:14px}.extreme-row{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;font-size:12px;padding:10px 14px;border-radius:12px}
.extreme-row b{font-weight:650;white-space:nowrap}.extreme-row.very-expensive{background:var(--red-wash)}.extreme-row.very-expensive b{color:var(--very-red)}
.extreme-row.very-cheap{background:var(--green-wash)}.extreme-row.very-cheap b{color:var(--very-green)}.extreme-row span{color:var(--text)}

/* Oskar 22.10: koszt prania / suszenia wg godziny startu */
.agd-card{margin-top:20px}.agd-row{padding:16px 0;border-bottom:1px solid var(--line)}.agd-row:last-of-type{border:0}
.agd-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.agd-head strong{font-size:14px;font-weight:600}.agd-head .icon{width:18px;height:18px;color:var(--accent)}
.agd-now{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:13px;margin:10px 0 12px}.agd-now b{font-size:17px;font-weight:600}
.agd-best{display:inline-flex;gap:6px;align-items:center;color:var(--green);font-weight:550}.agd-best .icon{width:16px;height:16px}.agd-best small{color:var(--muted);font-weight:400}.agd-best.muted{color:var(--muted);font-weight:400}
.agd-hours{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}.agd-hour{border-radius:10px;padding:7px 4px;text-align:center;background:var(--accent-wash)}
.agd-hour small{display:block;font-size:10px;color:var(--muted)}.agd-hour b{font-size:12px;font-weight:600}.agd-hour.cheap{background:var(--green-wash)}.agd-hour.cheap b{color:var(--green)}.agd-hour.expensive{background:var(--red-wash)}.agd-hour.expensive b{color:var(--red)}
@media(max-width:900px){.agd-hours{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:420px){.agd-hours{grid-template-columns:repeat(4,minmax(0,1fr))}}
.chart-readout .agd-readout{color:var(--muted);white-space:nowrap}.chart-readout .agd-readout b{color:var(--text);font-weight:600}
.mini-chart-wrap{cursor:pointer;touch-action:pan-y}.mini-chart .selected-bar{stroke:var(--text);stroke-width:1.5}.mini-readout{min-height:28px;margin:8px 0 0;font-size:12px;flex-wrap:wrap;gap:8px}.mini-readout strong{font-size:15px}
/* Oskar 22.10: sesje przy komputerze Olie z ostatnich 24 h */
.sesje-os{position:relative;height:30px;margin:4px 0 22px;border-radius:8px;background:var(--raised)}.sesje-blok{position:absolute;top:0;bottom:0;border-radius:6px;background:var(--accent)}.sesje-blok.teraz{background:var(--green,#3fb950)}.sesje-tick{position:absolute;top:100%;transform:translateX(-50%);margin-top:4px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.sesje-tick::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);height:30px;border-left:1px dashed var(--line)}.sesje-czas{font-variant-numeric:tabular-nums;white-space:nowrap}
.agd-dzien{grid-column:1/-1;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:4px 0 -2px}

/* Oskar 23.10: oś sesji - wczoraj | dziś, północ, teraz */
.sesje-dni{position:relative;height:16px;margin-top:2px;font-size:11px;font-weight:600;color:var(--muted)}.sesje-dni span{position:absolute;top:0;text-align:center;white-space:nowrap;overflow:hidden}.sesje-dni .dzis{color:var(--text,inherit)}
.sesje-os{margin-bottom:24px;overflow:visible}.sesje-tick.drobny::before{opacity:.5}
.sesje-polnoc,.sesje-teraz{position:absolute;top:-3px;bottom:-3px;width:0;border-left:2px solid var(--muted);z-index:1}.sesje-teraz{right:0;border-left-color:var(--green,#3fb950)}
.sesje-polnoc b,.sesje-teraz b{position:absolute;top:calc(100% + 5px);font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.sesje-polnoc b{transform:translateX(-50%);color:var(--muted)}.sesje-teraz b{right:0;color:var(--green,#3fb950)}
/* 03.11 Zużycie wg urządzeń (okres, jak panel energii HA) */
.en-card{margin-bottom:20px}.en-zakresy{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 12px}.en-zakres{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;cursor:pointer;min-height:36px}.en-zakres.aktywny{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.en-wykres{width:100%;height:auto;display:block}.en-wykres text{font-size:11px;fill:var(--muted)}.en-wykres .grid-line{stroke:var(--line);stroke-dasharray:3 5}.en-wykres .now-line{stroke:var(--text);stroke-width:1.5;stroke-dasharray:4 4;opacity:.6}
.en-slot{cursor:pointer}.en-slot .en-hit{fill:transparent}.en-slot:hover .en-hit,.en-slot.wybrany .en-hit{fill:var(--hover)}.en-slot.wybrany rect:not(.en-hit){stroke:var(--text);stroke-width:.6}
.en-okres{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0 10px}.en-okres b{font-size:14px}.en-okres small{font-size:11px}
.en-sumy{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:12px}.en-sumy>div{background:var(--raised);border-radius:12px;padding:10px 12px}.en-sumy small{display:block;font-size:11px;color:var(--muted)}.en-sumy b{font-size:20px;font-weight:600}.en-sumy b span{font-size:12px;color:var(--muted);font-weight:400}.en-sumy p{margin:2px 0 0;font-size:12px;color:var(--muted)}
.en-card .odb-wiersz em{font-style:normal;font-size:12px;color:var(--muted);width:56px;text-align:right}
/* Olie → „Gdzie idzie ruch” (03.11) */
.st-kategorie{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.st-wiersz{border-top:1px solid var(--line)}
.st-wiersz>summary{display:flex;align-items:center;gap:10px;padding:9px 2px;cursor:pointer;list-style:none}
.st-wiersz>summary::-webkit-details-marker{display:none}
.st-wiersz>summary svg{flex:none;width:18px;height:18px;color:var(--muted)}
.st-nazwa{flex:1;min-width:0;display:flex;flex-direction:column}
.st-nazwa small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-szczegoly{padding:0 2px 10px 30px;font-size:13px}
.st-szczegoly p{margin:4px 0}
.st-sesja{display:flex;justify-content:space-between;padding:2px 0;color:var(--text)}
.st-sesja span{color:var(--muted)}
.st-card .text-button{margin:8px 0 2px}
.st-blokady{border:1px solid var(--line);border-radius:14px;padding:4px 14px;margin:0 0 14px}
.st-blokady>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;cursor:pointer;list-style:none}
.st-blokady>summary::-webkit-details-marker{display:none}
.st-blokady>summary b{display:flex;align-items:center;gap:8px;font-size:13px}
.st-blokady>summary .icon{width:16px;height:16px;color:var(--accent)}
.st-blokada .icon{width:16px;height:16px;color:var(--red);flex:none}
.st-szczegoly .text-button{display:inline-flex;align-items:center;gap:6px}
.st-szczegoly .text-button .icon{width:14px;height:14px}
.st-blokady h4{font-size:12px;font-weight:600;margin:12px 0 4px}
.st-dodaj{border-top:1px solid var(--line);margin-top:12px;padding-top:4px}
.st-dodaj>small{display:block;margin:10px 0 2px}
.st-szukaj{margin:6px 0 4px}
.st-grupa{margin:10px 0 2px}.st-grupa>small{display:block;color:var(--muted);font-size:11px;margin-bottom:6px}
.st-chipy{display:flex;flex-wrap:wrap;gap:6px}
.st-chip{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:999px;padding:7px 12px;font:inherit;font-size:13px;min-height:36px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.st-chip small{font-size:10px;color:var(--accent)}
.st-chip.wybrany{background:var(--red-wash);border-color:var(--red);color:var(--red)}
.st-chip.zablokowany{opacity:.45;text-decoration:line-through;cursor:default}
.st-inna{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin:14px 0 4px}
.st-akcja{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 6px}

/* 04.11: karta Urządzenia Zigbee - przycisk potwierdzenia usunięcia */
.button.danger{color:var(--red);border-color:var(--red);}

/* 07.11: ekran tabletu na stronie „Dom” (szeroki ekran) */
.tablet-osadzony{border-radius:22px;overflow:hidden;background:#111816;margin-bottom:22px;box-shadow:var(--shadow)}
.tablet-osadzony iframe{display:block;width:100%;border:0;background:#111816}
.dashboard-pod-tabletem{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr)}
.dashboard-pod-tabletem>*{grid-column:auto!important}
