:root{font-family:Inter,Arial,'Segoe UI',sans-serif;color:#262d29;background:#f5f6f3;font-synthesis:none;--muted:#7b837d;--line:#e0e4dd;--green:#277348;--red:#b54b3f}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}button,select,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #6a9075;outline-offset:3px}[hidden]{display:none!important}.wrap{width:min(100% - 40px,1000px);margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:28px 0 23px;border-bottom:1px solid var(--line)}.logo{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:-.5px;font-size:22px;text-decoration:none}.logo svg{width:22px;height:26px;fill:#48865b}.header-right{display:flex;align-items:center;gap:22px;color:var(--muted);font-size:12px}.header-right a{text-decoration:none;border-bottom:1px solid #b6c5b7;padding-bottom:2px}.intro{margin:39px 0 22px;display:flex;align-items:end;justify-content:space-between;gap:20px}h1{font-size:28px;letter-spacing:-.7px;font-weight:600;margin:0}.intro p{margin:5px 0 0;color:var(--muted);font-size:13px}.updated{font-size:11px;color:var(--muted);white-space:nowrap}.error{padding:12px 15px;border:1px solid #e0c0b7;background:#fff1eb;color:#9c4f3a;border-radius:7px;margin-bottom:16px;font-size:12px}.status-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:18px}.status{border:1px solid #c6d6c4;border-radius:10px;background:#edf3e9;min-height:190px;padding:26px 29px;position:relative;overflow:hidden}.status.offline{background:#fcf0e9;border-color:#e9c3b4}.status.waiting{background:#f0f1ed;border-color:var(--line)}.status-top{display:flex;gap:11px;align-items:center;font-size:28px;font-weight:550;letter-spacing:-.5px}.dot{width:9px;height:9px;display:inline-block;border-radius:50%;background:#44865c;flex-shrink:0}.status-top .dot{width:11px;height:11px;box-shadow:0 0 0 5px #dbe8d5}.offline .dot{background:var(--red);box-shadow:0 0 0 5px #f1d8cc}.waiting .dot{background:#959e93;box-shadow:0 0 0 5px #e3e6df}.status p{color:#65735e;font-size:12px;max-width:340px;margin:10px 0 21px}.offline p{color:#9a6e60}.status-bottom{display:flex;align-items:center;gap:7px;color:#708069;font-size:11px}.providers{border:1px solid var(--line);background:#fff;border-radius:10px;padding:21px 23px}.providers h2{font-size:14px;font-weight:600;margin:0 0 13px}.provider{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-top:1px solid #edf0ea;font-size:13px}.provider-state{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--green)}.provider-state .dot{width:6px;height:6px}.provider-state.down{color:#a36845}.provider-state.down .dot{background:#c08759}.provider-state.unknown{color:#90988d}.provider-state.unknown .dot{background:#a9b1a3}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.stat{padding:0 25px;border-left:1px solid var(--line)}.stat:first-child{border-left:0;padding-left:0}.stat-label{color:var(--muted);font-size:11px;margin-bottom:7px}.stat-value{font-size:24px;font-weight:500;letter-spacing:-.7px}.stat small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 17px}h2{font-size:17px;font-weight:600;letter-spacing:-.2px;margin:0}.section-head select{background:#fff;border:1px solid #d5dbd0;border-radius:6px;padding:7px 28px 7px 10px;color:#5f6d59;font-size:11px}.chart-box{background:#fff;border:1px solid var(--line);border-radius:9px;padding:17px 20px 11px;margin-bottom:30px}.chart{height:172px}.chart svg{height:100%;width:100%;overflow:visible}.chart text{font:9px Arial,sans-serif;fill:#899080}.chart .grid{stroke:#e9ece6;stroke-dasharray:3 4}.chart .bar{fill:#b7cba9}.chart .bar:hover{fill:#71985d}.chart-note{font-size:10px;color:#939a8d;display:flex;justify-content:space-between;gap:10px;border-top:1px solid #eef0eb;padding-top:10px;margin-top:6px}.chart-note .legend{display:flex;align-items:center;gap:5px}.chart-note i{width:6px;height:6px;background:#b7cba9;border-radius:2px}.count{font-size:11px;font-weight:400;color:var(--muted);margin-left:7px}.table-box{border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:10px;color:#92998a;font-weight:400;background:#fafbf8;border-bottom:1px solid #e9ece6;padding:13px 20px}td{font-size:12px;padding:16px 20px;border-bottom:1px solid #edf0e8;vertical-align:middle}.date-main{font-weight:500}.date-sub{font-size:10px;color:#939b8b;margin-top:3px}.state-badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#718567}.state-badge .dot{width:5px;height:5px;background:#8aa27c}.state-badge.ongoing{color:#a16549}.state-badge.ongoing .dot{background:#c78b5e}.state-badge.pending{color:#8d9285}.tg-link{font-size:10px;color:#7e9270;text-decoration:none;display:inline-block;margin-top:5px}.tg-link:hover{color:#3e6d37;text-decoration:underline}.delete-button{border:0;background:none;color:#a5ae9a;padding:7px;border-radius:5px;display:grid;place-items:center;margin-left:auto}.delete-button:hover{background:#faeee8;color:#a75b43}.delete-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}.delete-error{color:#a16549;font-size:10px;white-space:normal;max-width:150px}.empty{padding:37px 20px;text-align:center;color:var(--muted)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;font-size:10px;color:#929a88}.page-actions{display:flex;gap:7px}.page-actions button{border:1px solid #dfe4d8;background:#fff;color:#7b8e70;border-radius:5px;padding:4px 10px}.history-note{color:#939b8d;font-size:10px;margin:11px 0 25px;line-height:1.7}.sync-line{display:flex;align-items:center;gap:6px;color:#87977c;font-size:10px}.sync-line .dot{width:5px;height:5px}.sync-line.disconnected{color:#ab8a5d}.sync-line.disconnected .dot{background:#ba996d}footer{border-top:1px solid var(--line);padding:19px 0 26px;margin-top:32px;display:flex;justify-content:space-between;align-items:center;color:#9ba28e;font-size:10px}dialog{border:1px solid #d7dece;border-radius:12px;padding:27px;width:min(400px,calc(100% - 32px));color:#303a2b;background:#fff;box-shadow:0 15px 65px #1e2d1a30}dialog::backdrop{background:#19241766;backdrop-filter:blur(3px)}dialog h2{font-size:20px}dialog p{font-size:12px;color:#839075;margin:12px 0 20px;line-height:1.7}.pin-label{font-size:11px;color:#728363;display:block;margin-bottom:7px}#pin{border:1px solid #d3ddc9;background:#fbfcfa;border-radius:6px;width:100%;padding:11px 14px;font-size:20px;letter-spacing:9px;text-align:center;color:#455b37}#pinError{color:#b05c3f;font-size:11px;min-height:18px;margin:9px 0 15px}.dialog-actions{display:flex;gap:9px;justify-content:flex-end}.dialog-actions button{border:1px solid #d8dfce;padding:8px 14px;border-radius:6px;background:#fff;color:#778867;font-size:12px}.dialog-actions .danger-button{border-color:#a95c43;background:#b8674c;color:#fff}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#35492b;color:#fff;padding:12px 20px;font-size:12px;border-radius:8px;box-shadow:0 4px 30px #22301a30;z-index:5;max-width:calc(100% - 32px);width:max-content}@media(max-width:700px){.wrap{width:calc(100% - 32px)}header{padding:20px 0}.logo{font-size:20px}.header-right{gap:10px;font-size:11px}.header-right>span{display:none}.intro{margin-top:27px;align-items:start;flex-direction:column;gap:9px}h1{font-size:25px}.status-row{grid-template-columns:1fr;gap:12px}.status{min-height:171px;padding:22px}.status-top{font-size:27px}.providers{padding:16px 21px}.providers h2{margin-bottom:10px}.provider{padding:10px 0}.stats{margin:20px 0 26px;padding:17px 0}.stat{padding:0 12px}.stat-value{font-size:20px}.stat-label{font-size:10px}.stat small{font-size:8px}.section-head{margin-bottom:13px}h2{font-size:16px}.chart-box{padding:14px 14px 10px}.chart{height:145px}.chart-note{font-size:8px}th,td{padding:12px 14px}td{font-size:11px}.date-sub{font-size:9px}.state-badge{font-size:9px}.pagination{padding:12px 14px}.history-note{font-size:9px}.sync-line{font-size:9px}.section-head .sync-line{max-width:130px;text-align:right;justify-content:flex-end}footer{font-size:9px}.intro p{font-size:12px}}@media(max-width:380px){.stat-value{font-size:17px}.stat-label{font-size:9px}.stat{padding:0 9px}.header-right{font-size:10px}.section-head{gap:8px}.section-head select{font-size:10px}.chart-note{font-size:7px}}
@media(max-width:700px){td:last-child,th:last-child{position:sticky;right:0;background:#fff;box-shadow:-5px 0 9px #ffffffdd}th:last-child{background:#fafbf8}}

.chart{height:185px}.chart .gap-label{font-size:14px;font-weight:600;fill:#757f6b}.chart .gap-sublabel{font-size:10px;fill:#8b9382}.gap-legend i{background:repeating-linear-gradient(135deg,#f0f0e9 0 3px,#cbd0c2 3px 4px);border:1px solid #cdd3c4;width:10px;height:8px}.gap-summary{display:flex;align-items:flex-start;gap:13px;border:1px solid #dce1d3;border-left:3px solid #b3bda3;border-radius:8px;background:#eff1ea;padding:16px 19px;margin:-12px 0 28px;color:#778069}.gap-icon{font-size:23px;color:#8f9b80;line-height:1.3}.gap-summary strong{font-size:12px;font-weight:600;color:#6b765e}.gap-dates{margin-top:3px;color:#68745b;font-size:12px}.gap-dates span{display:inline-block;font-size:10px;color:#929a85;border-left:1px solid #cfd7c3;margin-left:10px;padding-left:10px}.gap-summary p{font-size:11px;color:#88917c;margin:7px 0 0;line-height:1.7}@media(max-width:700px){.chart{height:170px}.chart .gap-label{font-size:18px}.chart .gap-sublabel{display:none}.gap-summary{padding:14px;gap:10px}.gap-dates span{display:block;border:0;margin:3px 0 0;padding:0}.gap-summary p{font-size:10px}.chart-note{flex-wrap:wrap;row-gap:5px}}

/* location label */
@media(max-width:700px){.header-right{flex-direction:column;align-items:flex-end;gap:5px;max-width:48%}.header-right>span{display:block;max-width:100%;text-align:right;font-size:9px;line-height:1.4}}

.house-switch{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 22px}.house{border:1px solid var(--line);background:#fff;border-radius:8px;padding:14px 18px;text-align:left;color:#6f7b67;display:flex;justify-content:space-between;align-items:center;gap:12px}.house span{font-size:13px;font-weight:500}.house small{font-size:10px;color:var(--muted)}.house.active{border-color:#a6bca0;background:#edf3e9;color:#3e6036}.house:hover{border-color:#b4c6aa}.battery-level{font-size:11px;color:#718567}.battery-level.low{color:var(--red)}.tablet-diagnostics{border:1px solid var(--line);border-radius:9px;background:#fff;padding:18px 20px;margin:0 0 30px}.tablet-diagnostics summary{cursor:pointer;font-size:14px;font-weight:500;color:#53634a}.diagnostic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 25px;margin-top:22px}.diagnostic-grid small{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.diagnostic-grid span{font-size:12px;overflow-wrap:anywhere}.tablet-diagnostics .history-note{margin-bottom:0}#tabletHistory td:nth-child(2){white-space:normal;min-width:180px}@media(max-width:700px){.house{flex-direction:column;align-items:flex-start;gap:4px;padding:12px}.house span{font-size:11px}.house small{font-size:9px}.diagnostic-grid{grid-template-columns:1fr 1fr;gap:17px}.tablet-diagnostics{padding:16px}#tabletStatus .status-top{font-size:24px}}

.technical-log{margin:25px 0;color:var(--muted)}.technical-log>summary{font-size:12px;cursor:pointer;padding:12px 0}.technical-log>.section-head{margin-top:15px}.technical-log .table-box{margin-top:12px}#tabletOutages .delete-error{max-width:220px}

.tablet-history-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px}.connection-filter{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;cursor:pointer}.connection-filter input{margin:0;accent-color:#48865b;width:13px;height:13px}.tablet-history-head{gap:12px}

.theme-toggle{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:7px;border:1px solid var(--line);border-radius:8px;background:transparent;color:#718567}.theme-toggle:hover{background:#e9eee5}.theme-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
:root[data-theme="dark"]{color:#e1e7e2;background:#141a18;--muted:#a0ada3;--line:#343e37;--green:#89c69c;--red:#ef9b8d}
[data-theme="dark"] .providers,[data-theme="dark"] .chart-box,[data-theme="dark"] .table-box,[data-theme="dark"] .house,[data-theme="dark"] .tablet-diagnostics,[data-theme="dark"] dialog{background:#1c2420;color:#e1e7e2}
[data-theme="dark"] .house.active,[data-theme="dark"] .status{background:#22352a;border-color:#425d49;color:#d5ecd9}
[data-theme="dark"] .house{color:#b1c1b3}[data-theme="dark"] .house.active{color:#b9dfbf}
[data-theme="dark"] .status.offline,[data-theme="dark"] .error{background:#382821;border-color:#735044;color:#f0b39b}
[data-theme="dark"] .status.waiting{background:#252d29;border-color:var(--line)}[data-theme="dark"] .status-top .dot{box-shadow:0 0 0 5px #344c3c}
[data-theme="dark"] .status p,[data-theme="dark"] .status-bottom,[data-theme="dark"] .tablet-diagnostics summary{color:#b0c2b0}
[data-theme="dark"] th{background:#202a24;color:#aab7a9;border-color:var(--line)}[data-theme="dark"] td,[data-theme="dark"] .provider,[data-theme="dark"] .chart-note{border-color:var(--line)}
[data-theme="dark"] select,[data-theme="dark"] .page-actions button,[data-theme="dark"] .dialog-actions button,[data-theme="dark"] #pin{background:#222c26;border-color:#46533f;color:#c4d5bc}
[data-theme="dark"] .dialog-actions .danger-button{background:#a95540;color:#fff;border-color:#bc6f58}
[data-theme="dark"] .theme-toggle{color:#bdd5ac}[data-theme="dark"] .theme-toggle:hover{background:#2b372e}
[data-theme="dark"] .state-badge,[data-theme="dark"] .battery-level,[data-theme="dark"] .tg-link,[data-theme="dark"] .sync-line{color:#a2c591}[data-theme="dark"] .state-badge.ongoing,[data-theme="dark"] .delete-error{color:#e1aa82}
[data-theme="dark"] .date-sub,[data-theme="dark"] .history-note,[data-theme="dark"] .pagination,[data-theme="dark"] .chart-note,[data-theme="dark"] .updated,[data-theme="dark"] footer,[data-theme="dark"] .intro p{color:#a2afa3}
[data-theme="dark"] .chart text{fill:#a6b3a4}[data-theme="dark"] .chart .grid{stroke:#3a463c}[data-theme="dark"] .chart .bar{fill:#719763}[data-theme="dark"] .chart .bar:hover{fill:#a4c28c}
[data-theme="dark"] .gap-summary{background:#252e24;border-color:#49533d}[data-theme="dark"] .gap-summary strong,[data-theme="dark"] .gap-dates,[data-theme="dark"] .gap-summary p{color:#b2bea3}
[data-theme="dark"] .delete-button:hover{background:#493128;color:#efac91}
@media(max-width:700px){.header-right{display:grid;grid-template-columns:32px auto;align-items:center;column-gap:10px}.header-right>span{grid-column:1/-1;grid-row:1}.header-right>.theme-toggle{grid-column:1;grid-row:2}.header-right>a{grid-column:2;grid-row:2}[data-theme="dark"] td:last-child{background:#1c2420;box-shadow:-5px 0 9px #1c2420dd}[data-theme="dark"] th:last-child{background:#202a24}}
