:root{color-scheme:light;--bg: #f4f5f7;--card: #ffffff;--card-alt: #f8fafc;--text: #111827;--muted: #6b7280;--border: #d1d5db;--accent: #2563eb;--accent-dark: #1d4ed8;--accent-soft: rgba(37, 99, 235, .08);--success-soft: rgba(4, 120, 87, .14);--warning-soft: rgba(180, 83, 9, .12);--success: #047857;--error: #b91c1c;--warning: #b45309;font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:15px;line-height:1.5;color:var(--text);background:var(--bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}#app{min-height:100vh}.page{min-height:100vh;display:flex;flex-direction:column;padding:20px 16px 32px;gap:20px;width:100%;max-width:1100px;margin:0 auto}.header{display:flex;flex-direction:column;gap:12px}.brand h1{margin:0 0 4px;font-size:1.5rem}.brand p{margin:0;color:var(--muted)}.status-group{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.status{padding:6px 10px;border:1px solid var(--border);background:#f9fafb;color:var(--muted)}.status[data-state=online]{color:var(--success);border-color:#0478574d;background:#d1fae599}.status[data-state=refreshing]{color:var(--warning);border-color:#b453094d;background:#fef3c7b3}.status[data-state=offline]{color:var(--error);border-color:#b91c1c4d;background:#fee2e2b3}.main{display:flex;flex-direction:column;gap:16px}.card{background:var(--card);border:1px solid var(--border);padding:20px;display:flex;flex-direction:column;gap:16px}.card h2{margin:0;font-size:1.2rem}.form{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:6px;color:var(--muted)}input{width:100%;padding:10px 12px;border:1px solid var(--border);background:#fff;font-size:1rem;color:var(--text)}input:disabled{background:#f3f4f6;color:var(--muted)}input:focus{outline:2px solid rgba(37,99,235,.2);border-color:var(--accent)}button{border:none;background:var(--accent);color:#fff;font-weight:600;padding:10px 14px;cursor:pointer}button:hover{background:var(--accent-dark)}button:disabled{background:#d1d5db;color:#6b7280;border-color:#d1d5db;opacity:1;cursor:not-allowed}.form-message{margin:0;min-height:1.2rem;color:var(--muted)}.form-message[data-type=error]{color:var(--error)}.app{display:flex;flex-direction:column;gap:16px}.toolbar{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex-wrap:wrap}.title-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.toolbar h2{margin:0;font-size:1.2rem;font-weight:700}.generator-power{color:var(--text);font-size:1.2rem;font-weight:700;margin-left:0;white-space:nowrap}.btn{background:#f3f4f6;color:var(--text);border:1px solid var(--border);padding:8px 12px;font-weight:600}.btn:hover{background:#e5e7eb}.btn[aria-pressed=true]{border-color:#2563eb73;background:#2563eb14}.generator-chart{border:1px solid var(--border);background:var(--card);padding:12px;display:flex;flex-direction:column;gap:8px}.generator-chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.generator-chart-title{font-weight:700}.generator-chart-meta{color:var(--muted);font-size:.85rem}.generator-chart-svg{width:100%;height:260px;display:block;border:1px solid var(--border);background:#fff}.generator-chart-grid{stroke:#e5e7eb;stroke-width:1}.generator-chart-axis{fill:#6b7280;font-size:13px}.generator-chart-line{stroke:#2563eb;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.generator-chart-point{fill:#2563eb;stroke:#fff;stroke-width:2}.generator-chart-threshold{stroke-width:2;stroke-dasharray:6 6;stroke-linecap:round}.generator-chart-threshold-low{stroke:#047857;fill:#047857}.generator-chart-threshold-high{stroke:#b91c1c;fill:#b91c1c}.generator-chart-threshold-label,.generator-chart-legend{font-size:12px}.generator-chart-empty{fill:#6b7280;font-size:15px}.maxkwt-log-panel{border:1px solid var(--border);background:var(--card);padding:12px;display:flex;flex-direction:column;gap:8px}.maxkwt-log-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.maxkwt-log-title{font-weight:700}.maxkwt-log-meta{color:var(--muted);font-size:.85rem}.maxkwt-log-output{width:100%;min-height:220px;max-height:220px;padding:12px;border:1px solid var(--border);background:#fff;color:var(--text);font:.86rem/1.45 IBM Plex Mono,SFMono-Regular,monospace;resize:none;overflow-y:auto;white-space:pre}@media(max-width:767px){.generator-chart{padding:10px}.generator-chart-meta{font-size:.95rem}.generator-chart-svg{height:340px}.generator-chart-axis{font-size:16px}.generator-chart-line{stroke-width:2.5}.maxkwt-log-panel{padding:10px}.maxkwt-log-meta{font-size:.95rem}.maxkwt-log-output{min-height:260px;max-height:260px;font-size:.92rem}}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.tile{border:1px solid var(--border);background:var(--card);padding:14px;text-align:left;color:var(--text);display:flex;flex-direction:column;gap:12px}.tile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tile-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.tile.generator{cursor:pointer;width:100%}.tile.generator:hover{background:#f9fafb}.tile.binding-generator,.tile.binding-location,.bindings-summary{background:var(--card)}.binding-location{gap:16px}.binding-location-head{display:flex;flex-direction:column;align-items:stretch;gap:10px}.binding-location-head>div{min-width:0;flex:1 1 auto}.binding-location-status{display:flex;justify-content:flex-start}.binding-location .tile-title{overflow-wrap:anywhere}.binding-location-id{color:var(--muted);font-size:.88rem;margin-top:4px}.bindings-summary{grid-column:1 / -1}.bindings-group{grid-column:1 / -1;display:flex;flex-direction:column;gap:12px}.bindings-group-head{display:flex;flex-direction:column;gap:2px}.bindings-group-title{font-weight:700}.bindings-group-description{color:var(--muted);font-size:.9rem}.bindings-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.bindings-summary-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.bindings-add{display:flex;align-items:center;gap:8px;flex:1 1 420px}.bindings-add .input{flex:0 1 220px;max-width:220px}.bindings-summary-save{display:flex;align-items:center;gap:12px;justify-content:flex-end;flex:0 0 100%}.tile-title{font-weight:600}.eyebrow{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.metric{display:flex;flex-direction:column;gap:4px}.metric-label{color:var(--muted);font-size:.85rem}.metric-value{font-size:1.1rem;font-weight:600}.automation-tile{grid-column:1 / -1;background:var(--card)}.toggle{display:inline-flex;align-items:center;gap:8px;font-weight:600}.toggle input{width:auto;margin:0}.automation-runtime{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.runtime-pill,.assignment-state{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border:1px solid var(--border);background:var(--card-alt);font-size:.84rem;font-weight:600;max-width:100%;flex-shrink:1;white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.35}.runtime-pill[data-state=online],.assignment-state[data-state=assigned]{color:var(--success);background:var(--success-soft);border-color:#04785738}.runtime-pill[data-state=idle],.assignment-state[data-state=idle]{color:var(--warning);background:var(--warning-soft);border-color:#b453092e}.assignment-state[data-state=busy]{color:var(--error);background:#fee2e2b3;border-color:#b91c1c33}.runtime-text{color:var(--muted);font-size:.9rem;line-height:1}.automation-error{color:var(--error);border:1px solid rgba(185,28,28,.18);background:#fee2e299;padding:10px 12px}.automation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.field.compact span{font-size:.82rem}.automation-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.btn.primary{background:var(--accent);color:#fff}.btn.primary:disabled{background:#d1d5db;color:#6b7280;border-color:#d1d5db}.btn-small{padding:7px 10px;font-size:.88rem}.location.assigned{border-color:#2563eb47;box-shadow:inset 0 0 0 1px #2563eb14}.location.unassigned{background:var(--card)}.automation-location{border:1px solid var(--border);background:var(--card-alt);padding:10px;display:flex;flex-direction:column;gap:10px}.automation-location-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.location-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.value-update{animation:valueChange .6s ease}.maxkwt{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.maxkwt-controls{display:flex;gap:8px;align-items:center}.maxkwt-controls .input{flex:1}.label{font-size:.85rem;color:var(--muted)}.miners{border-top:1px solid var(--border);padding-top:12px}.miners-title{font-weight:600;margin-bottom:8px}.miners-table{max-height:180px;overflow-y:auto;border:1px solid var(--border)}.miners-table table{width:100%;border-collapse:collapse}.miners-table th,.miners-table td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;font-size:.85rem}.miners-table th{background:#f9fafb;position:sticky;top:0}.value-update-input{animation:valueFlash .6s ease}.muted{color:var(--muted);text-align:center}.hidden{display:none}.skeleton{position:relative;overflow:hidden;min-height:100px}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#fff0,#fff9,#fff0);transform:translate(-100%);animation:shimmer 1.2s infinite}.skeleton-line{height:12px;background:#e5e7eb;margin-bottom:10px}.skeleton-line.wide{width:80%}.skeleton-line.short{width:40%}.empty{color:var(--muted)}.toast-container{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:#111827;color:#fff;padding:10px 12px;border:1px solid #000000;opacity:0;transform:translate(10px);transition:opacity .2s ease,transform .2s ease}.toast.show{opacity:1;transform:translate(0)}.toast.error{background:#7f1d1d}.toast.warning{background:#92400e}.toast.success{background:#065f46}@keyframes shimmer{to{transform:translate(100%)}}@keyframes valueChange{0%{color:var(--text)}40%{color:#9ca3af}to{color:var(--text)}}@keyframes valueFlash{0%{background:#2563eb26}to{background:#fff}}@media(min-width:768px){.page{padding:24px 32px 40px}.header{flex-direction:row;justify-content:space-between;align-items:center}}@media(max-width:767px){.tile-head,.automation-location-head,.automation-footer,.binding-location-head,.bindings-summary-actions,.bindings-add,.bindings-summary-save{flex-direction:column;align-items:stretch}.tile-actions{align-items:stretch}.maxkwt-controls{flex-direction:column;align-items:stretch}}
