:root{color:#1f2933;background:#f4f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f4f7f8;margin:0}button,input{font:inherit;max-width:100%}button{align-items:center;background:#fff;border:1px solid #ccd6dd;border-radius:8px;color:#1f2933;cursor:pointer;display:inline-flex;gap:6px;min-height:38px;padding:0 12px}button:hover{border-color:#2f7d78}button.active,button.refresh{background:#2f7d78;border-color:#2f7d78;color:#fff}button.ghost{color:#9b2c2c}button.small-button{font-size:12px;margin-left:8px;min-height:28px;padding:0 8px}button:disabled{cursor:wait;opacity:.55}input{border:1px solid #ccd6dd;border-radius:8px;min-height:38px;padding:0 10px}h1,h2,p{margin:0}.app-shell{margin:0 auto;max-width:1120px;padding:24px}.topbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.topbar h1{font-size:30px}.topbar p,.muted{color:#667784}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.page-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.single-column{display:grid;gap:12px}.panel,.wide,.settings-block,.list-item{background:#fff;border:1px solid #dbe3e7;border-radius:8px}.panel{min-height:190px;padding:18px}.appliance-status{align-items:center;display:grid;gap:14px;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto}.reminder-banner{align-items:center;background:#ecfdf3;border-color:#86efac;display:flex;gap:12px;justify-content:space-between}.reminder-banner strong{color:#166534;display:block;font-size:18px}.reminder-banner p{color:#3b4a54;margin-top:4px}.appliance-status.running{border-left:5px solid #2f7d78}.appliance-status.complete{border-left:5px solid #16a34a}.appliance-status.idle{border-left:5px solid #94a3b8}.appliance-status.unknown{border-left:5px solid #d97706}.device-name{font-size:22px;font-weight:800;margin-top:4px}.device-state,.device-polled{display:grid;gap:4px}.device-state strong{font-size:24px}.appliance-status.running .device-state strong{color:#16a34a}.appliance-status.idle .device-state strong,.appliance-status.complete .device-state strong{color:#667784}.appliance-status.unknown .device-state strong{color:#d97706}.device-state span,.device-polled span{color:#667784}.device-polled{text-align:right}.panel-title{color:#667784;font-weight:700}.total{font-size:46px;font-weight:800;line-height:1.2;margin:12px 0}.share-list,.user-list{display:grid;gap:8px}.share-row{align-items:center;display:grid;gap:8px;grid-template-columns:auto 1fr auto}.dot{border-radius:999px;display:inline-block;height:10px;width:10px}.wide{grid-column:1 / -1;padding:16px}.section-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.section-head h2{align-items:center;display:inline-flex;gap:7px}.section-head h2,.settings-block h2{font-size:18px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.calendar-controls span{font-weight:800;min-width:92px;text-align:center}.calendar-controls button{min-height:32px;padding:0 10px}.calendar-weekdays{color:#667784;font-size:12px;font-weight:800;margin-bottom:6px;text-align:center}.calendar-grid{border-left:1px solid #dbe3e7;border-top:1px solid #dbe3e7}.calendar-day{align-items:stretch;background:#fff;border-bottom:1px solid #dbe3e7;border-left:0;border-radius:0;border-right:1px solid #dbe3e7;border-top:0;color:inherit;cursor:pointer;display:block;min-height:124px;min-width:0;padding:8px;text-align:left;width:100%}.calendar-day.muted-day{background:#f7fafb;color:#9aa8b2}.calendar-day.today{box-shadow:inset 0 0 0 2px #2f7d78}.calendar-day.selected{background:#eaf5f4}.calendar-day:hover{border-color:#dbe3e7;box-shadow:inset 0 0 0 2px #8fc5c0}.day-number{font-size:13px;font-weight:800;margin-bottom:6px}.day-events{display:grid;gap:5px}.day-event,.more-event{align-items:flex-start;background:#f8fbfb;border:1px solid #ccd6dd;border-left-width:3px;border-radius:6px;display:flex;font-size:12px;font-weight:700;gap:5px;line-height:1.35;min-height:26px;min-width:0;overflow:visible;padding:4px 6px;white-space:normal}.event-label{flex:0 0 auto}.event-times{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.time-separator,.time-value{display:inline}.more-event{align-items:center;color:#667784;justify-content:center;min-height:24px}.calendar-selected{border:1px solid #dbe3e7;border-radius:8px;display:grid;gap:10px;margin-top:12px;padding:12px}.calendar-selected>div:first-child{align-items:center;display:flex;gap:8px;justify-content:space-between}.calendar-selected span{color:#667784;font-size:13px;font-weight:700}.selected-events{display:flex;flex-wrap:wrap;gap:6px}.selected-empty{padding:0}.list-item{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) auto;margin-top:10px;padding:14px}.list-item.compact{align-items:start;grid-template-columns:1fr}.active-label,.inactive-label{border-radius:999px;font-size:12px;font-weight:800;padding:4px 8px;width:fit-content}.active-label{background:#dcfce7;color:#166534}.inactive-label{background:#f1f5f9;color:#667784}.item-title{font-weight:800}.status{border-radius:999px;font-size:12px;font-weight:800;padding:5px 9px;text-transform:uppercase}.status.running{background:#fff4c2}.status.pending_assignment{background:#d9f0ee}.status.assigned{background:#dcfce7}.status.ignored{background:#f1f5f9}.assignment{align-items:center;color:#3b4a54;display:flex;flex-wrap:wrap;gap:4px;grid-column:1 / -1}.assignment span{color:#667784}.button-row,.form-row{display:flex;flex-wrap:wrap;gap:8px}.button-row{grid-column:1 / -1}.settings-block{padding:16px}.settings-block h2{margin-bottom:12px}.config-grid{align-items:center;display:grid;gap:8px 12px;grid-template-columns:90px minmax(0,1fr);margin-bottom:12px}.config-grid span{color:#667784;font-size:13px;font-weight:700}.test-result{color:#2f7d78;font-size:13px;font-weight:800;margin-top:10px}.device-result-list{display:grid;gap:8px;margin-top:12px}.device-candidate{align-items:center;border:1px solid #dbe3e7;border-radius:8px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.device-candidate div{display:grid;gap:4px;min-width:0}.device-candidate span,.device-candidate em{color:#667784;font-size:12px;font-style:normal;overflow-wrap:anywhere}.reminder-settings{display:grid;gap:12px}.reminder-settings label{color:#667784;display:grid;font-size:13px;font-weight:800;gap:6px}.toggle-row{align-items:center;color:#1f2933;display:flex!important;font-size:15px!important;gap:8px!important}.toggle-row input{min-height:0}.date-range-row{align-items:end;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(140px,1fr)) auto}.paused-label{align-items:center;background:#fff4c2;border-radius:999px;color:#92400e;display:inline-flex;font-size:12px;font-weight:800;padding:0 10px}.report-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.report-config{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.report-grid div{background:#f8fbfb;border:1px solid #dbe3e7;border-radius:8px;display:grid;gap:6px;min-height:76px;padding:12px}.report-grid span{color:#667784;font-size:13px;font-weight:800}.report-grid strong{font-size:18px}.report-textarea{border:1px solid #ccd6dd;border-radius:8px;min-height:280px;padding:12px;resize:vertical;width:100%}.error-text{color:#9b2c2c}.user-edit-row{align-items:center;display:grid;gap:8px;grid-template-columns:auto minmax(120px,1fr) 46px auto}.user-edit-row input[type=color]{padding:2px}.pill{align-items:center;background:#eef4f4;border-radius:999px;display:inline-flex;gap:6px;padding:7px 10px;width:fit-content}.form-row{margin-top:12px}.log-row{align-items:center;border-top:1px solid #e5ecef;display:grid;gap:10px;grid-template-columns:140px 100px 1fr;min-height:38px;padding:8px 0}code{background:#f4f7f8;border-radius:6px;overflow:hidden;padding:5px 7px;text-overflow:ellipsis;white-space:nowrap}textarea{font:inherit;max-width:100%}.empty,.error{color:#667784;padding:10px 0}.error{background:#fff0f0;border:1px solid #f3c4c4;border-radius:8px;color:#9b2c2c;margin-bottom:14px;padding:12px}@media(max-width:760px){.app-shell{padding:14px 12px calc(88px + env(safe-area-inset-bottom))}button,input{font-size:16px}button{justify-content:center;min-height:44px}input{min-height:44px}.topbar{align-items:stretch;flex-direction:column;gap:10px;margin-bottom:12px}.topbar h1{font-size:24px;line-height:1.15}.topbar p{font-size:13px}.topbar .refresh{width:100%}.tabs{background:#fffffff5;border-top:1px solid #dbe3e7;bottom:0;box-shadow:0 -8px 24px #1f293314;display:grid;gap:4px;grid-template-columns:repeat(4,minmax(0,1fr));left:0;margin:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:20}.tabs button{border:0;border-radius:8px;flex-direction:column;font-size:11px;gap:3px;min-height:54px;padding:4px 2px}.tabs button:not(.active){background:transparent}.section-head{align-items:flex-start;flex-direction:column;gap:10px}.section-head h2,.settings-block h2{font-size:16px}.wide,.settings-block,.panel{min-width:0;padding:12px}.panel{min-height:auto}.panel-title{font-size:12px}.total{font-size:34px;margin:6px 0 8px}.share-row{font-size:13px}.calendar-controls{justify-content:flex-start}.page-grid,.appliance-status{gap:10px;grid-template-columns:1fr}.device-name{font-size:19px}.device-state strong{font-size:22px}.reminder-banner{align-items:stretch;flex-direction:column}.device-polled{text-align:left}.calendar-section{overflow-x:visible;padding:12px}.calendar-controls{display:grid;grid-template-columns:36px minmax(86px,1fr) auto 36px;width:100%}.calendar-controls button{min-height:34px;min-width:0;padding:0 8px}.calendar-controls span{min-width:0}.calendar-weekdays{font-size:11px;margin-bottom:4px}.calendar-day{min-height:58px;padding:5px 3px}.day-number{font-size:12px;margin-bottom:4px;text-align:center}.day-events{align-items:center;display:flex;gap:2px;justify-content:center;min-height:18px}.calendar-day .day-event{border:0;border-radius:999px;display:inline-flex;gap:0;min-height:8px;overflow:hidden;padding:0}.calendar-day .dot{height:7px;width:7px}.calendar-day .event-label,.calendar-day .event-times{display:none}.calendar-day .more-event{background:transparent;border:0;color:#667784;font-size:10px;min-height:0;padding:0}.calendar-selected>div:first-child{align-items:flex-start;flex-direction:column;gap:4px}.selected-events .day-event{max-width:100%}.list-item,.user-edit-row,.date-range-row,.report-grid,.log-row{grid-template-columns:1fr}.list-item{gap:8px;margin-top:8px;padding:12px}.list-item .status{width:fit-content}.assignment{align-items:flex-start;font-size:13px}.button-row,.form-row{display:grid;grid-template-columns:1fr}.button-row button,.form-row button,.form-row input{width:100%}.settings-block{overflow:hidden}.settings-block input,.settings-block button,.settings-block textarea{min-width:0}.settings-block input[type=color]{min-height:44px;padding:3px}.user-edit-row{align-items:center;grid-template-columns:auto minmax(0,1fr)}.user-edit-row .dot{grid-column:1}.user-edit-row input:not([type=color]){grid-column:2;width:100%}.user-edit-row input[type=color]{grid-column:1;width:44px}.user-edit-row button{grid-column:2;width:100%}.toggle-row{align-items:center;min-height:44px}.toggle-row input{flex:0 0 auto;width:20px}.config-grid{grid-template-columns:76px minmax(0,1fr)}.config-grid>*{min-width:0}.config-grid code,.log-row code{overflow-wrap:anywhere;white-space:normal}.report-config{gap:6px}.report-config .active-label,.report-config .inactive-label{max-width:100%;overflow-wrap:anywhere}.device-candidate{align-items:stretch;grid-template-columns:1fr}.device-candidate button{width:100%}.device-candidate strong{min-width:0;overflow-wrap:anywhere}.test-result{overflow-wrap:anywhere}.report-textarea{font-size:16px;min-height:220px}}
