a[data-v-9b9f5a2a]{color:#38bdf8}:root{color-scheme:dark;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#0b1220;color:#e2e8f0;--bg: #0b1220;--surface: rgba(15, 23, 42, .95);--surface-2: #111827;--border: #1e293b;--muted: #94a3b8;--accent: #2563eb;--accent-hover: #1d4ed8;--danger: #dc2626;--success: #86efac;--warn: #fbbf24;--radius: 14px;--nav-h: 62px;--header-h: 56px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100vh;min-height:100dvh;background:linear-gradient(180deg,#0b1220,#111827);overscroll-behavior-y:none}button,input,select{font:inherit}button{cursor:pointer;border:none;border-radius:10px;padding:5px 10px;min-height:30px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:500;touch-action:manipulation}button.secondary{background:#334155}button.secondary:active:not(:disabled){background:#475569}button.invite-copy--done,button.secondary.invite-copy--done{background:#166534;color:#ecfdf5}button.danger{background:var(--danger)}button.ghost{background:transparent;border:1px solid var(--border);color:#e2e8f0}button:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:0 4px 20px #0003}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom))}.boot-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));background:var(--bg)}.boot-wrap--silent{padding:0}.login-wrap .card{width:100%;max-width:400px}.pin-dots{display:flex;justify-content:center;align-items:center;gap:.85rem;min-height:1.5rem;margin:.5rem 0 1.25rem}.pin-input{text-align:center;letter-spacing:.3em;font-size:1.2rem}.pin-wrap .pin-card{max-width:380px;padding:1.5rem 1.25rem 1.25rem;text-align:center}.pin-title{font-size:1.15rem;font-weight:600;margin:0 0 1rem}.pin-dot{width:.72rem;height:.72rem;border-radius:50%;background:#c5c8ce;transition:background .12s ease,transform .12s ease}.pin-dot--filled{background:var(--accent, #3b82f6);transform:scale(1.08)}.pin-error{margin:-.5rem 0 .85rem;text-align:center}.auth-lockout{padding:1.25rem .5rem .75rem;text-align:center}.auth-lockout-title{margin:0 0 1rem;font-size:1.1rem;font-weight:600;line-height:1.35;color:var(--danger, #dc2626);white-space:pre-line}.auth-lockout-remain{margin:0;font-size:1.05rem;font-weight:500;color:var(--text, inherit)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:0 auto;max-width:320px}.pin-pad--busy{opacity:.7;pointer-events:none}.pin-pad-btn{min-height:4.1rem;font-size:1.55rem;font-weight:600;border-radius:1rem;border:none;background:var(--accent);color:#fff;box-shadow:none}.pin-pad-btn:active:not(:disabled){background:var(--accent-hover)}.pin-pad-spacer{display:block;min-height:4.1rem}.pin-pad-btn--back{background:transparent!important;color:#f3f4f6!important;font-size:1.75rem;font-weight:600;box-shadow:none!important;border:none!important;opacity:1;text-shadow:0 0 1px rgba(0,0,0,.35)}.pin-pad-btn--back:active:not(:disabled){background:transparent!important;color:#fff!important;opacity:.85}.pin-offer-text{text-align:center;margin:0 0 .75rem;font-size:.88rem;line-height:1.35}.pin-logout{margin-top:1rem;width:100%}.app-shell{min-height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-bottom:calc(var(--nav-h) + var(--safe-bottom))}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;min-height:var(--header-h);padding:8px 12px;background:#0b1220eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.app-header--refreshing{border-bottom-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.update-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-bottom:1px solid var(--border);font-size:.88rem}.update-banner-go{margin-left:auto}.update-banner-hide{padding:4px 8px}.header-refresh-indicator{display:inline-flex;align-items:center;gap:6px;color:var(--accent)}.spinner{display:inline-block;box-sizing:border-box;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 22%,transparent);border-top-color:currentColor;flex-shrink:0;vertical-align:middle}.spinner--active{animation:spinnerRotate .65s linear infinite}.spinner-xs{width:11px;height:11px;border-width:1.5px}.spinner-sm{width:13px;height:13px}.spinner-md{width:16px;height:16px}.header-btn-spinner{margin-right:4px}@keyframes spinnerRotate{to{transform:rotate(360deg)}}.header-progress{position:absolute;left:0;right:0;bottom:0;height:2px;overflow:hidden;pointer-events:none}.header-progress:after{content:"";display:block;height:100%;width:35%;background:var(--accent);animation:headerProgress 1.1s ease-in-out infinite}@keyframes headerProgress{0%{transform:translate(-100%)}to{transform:translate(380%)}}.header-btn--active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.app-header-title{flex:1;min-width:0}.app-header-title h1{margin:0;font-size:1.05rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header-title .sub{color:var(--muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;gap:6px;flex-shrink:0}.header-actions button{font-size:.72rem}.header-scan-btn{font-size:.72rem;white-space:nowrap}.pull-refresh{display:flex;align-items:flex-end;justify-content:center;gap:8px;overflow:hidden;height:0;color:var(--muted);font-size:.78rem;transition:height .2s ease;pointer-events:none;-webkit-user-select:none;user-select:none}.pull-refresh.visible{border-bottom:1px solid transparent}.pull-refresh.visible:not(.refreshing){transition:none}.pull-refresh.refreshing{border-bottom-color:var(--border)}.pull-refresh-icon{display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px}.pull-refresh-text{margin-bottom:12px}.app-main{flex:1;padding:12px;max-width:1100px;width:100%;margin:0 auto}.desktop-nav{display:none}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:stretch;min-height:var(--nav-h);padding-bottom:var(--safe-bottom);background:#0f172af5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border)}.bottom-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px;min-height:var(--nav-h);background:transparent;color:var(--muted);border-radius:0;font-size:.65rem;font-weight:500;line-height:1.1}.bottom-nav-btn .icon{font-size:1.25rem;line-height:1}.bottom-nav-btn.active{color:#60a5fa;background:#2563eb1f}.more-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0000008c}.more-sheet{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:12px 12px calc(12px + var(--safe-bottom));background:#0f172a;border-top:1px solid var(--border);border-radius:16px 16px 0 0;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.more-sheet h3{margin:0 0 12px;font-size:.95rem;color:var(--muted)}.more-sheet button{width:100%;margin-bottom:8px;text-align:left}.confirm-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:#0000008c}.confirm-sheet{z-index:131}.confirm-sheet-msg{margin:0 0 12px;font-size:.9rem;line-height:1.4}.group-manage-sheet-controls{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.group-manage-sheet .device-card-controls-row{display:flex;gap:8px}.group-manage-sheet .device-card-controls-row button{width:auto;flex:1;margin-bottom:0;text-align:center}.group-manage-sheet .group-manage-sheet-controls>button{text-align:center}h1,h2,h3{margin:0 0 10px}h3{font-size:1rem}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:0}.device-toolbar-sticky{position:sticky;top:calc(var(--header-h) + var(--safe-top));z-index:15;margin:-12px -12px 12px;padding:12px 12px 10px;background:#0b1220f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.device-toolbar-sticky .stats{margin-bottom:10px}.stat-value-hash{font-size:1.35rem;font-weight:700;line-height:1.2;color:var(--success);text-align:right;white-space:nowrap}.stat-online-grid{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:8px;row-gap:0;align-items:end}.stat-online-grid .label{grid-area:1 / 1}.stat-online-grid .stat-hash-meta{grid-area:1 / 2}.stat-online-grid .value{grid-area:2 / 1}.stat-online-grid .stat-value-hash{grid-area:2 / 2;max-width:100%;overflow:hidden;text-overflow:ellipsis}.stat-hash-meta{font-size:.65rem;line-height:1.2;text-align:right;white-space:nowrap}.device-toolbar-sticky .device-search-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin-bottom:0}.device-toolbar-sticky .device-search-toolbar .device-search-field{flex:1 1 0;min-width:0}.device-toolbar-sticky .device-search-toolbar .device-search-input{margin-bottom:0}.device-toolbar-sticky .device-sort-select{flex:0 0 auto;width:auto;max-width:none;min-width:6.75rem;min-height:42px;height:42px;padding:0 10px;margin:0;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:inherit;font-size:.85rem;line-height:1}.device-toolbar-sticky .device-sort-dir{flex:0 0 42px;display:inline-flex;align-items:center;justify-content:center;width:42px;min-width:42px;height:42px;min-height:42px;padding:0;margin:0;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:inherit;font-size:1rem;line-height:1}.device-toolbar-sticky .device-search-meta{margin:8px 0 0}.stat{background:var(--surface-2);border-radius:12px;padding:10px 12px}.stat-tab{border:1px solid transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.stat-tab:hover{background:var(--surface)}.stat-tab.active{border-color:var(--accent);background:var(--surface)}.stat-tab.warn .value{color:var(--warn, #f59e0b)}.device-search{display:flex;align-items:center;gap:8px;margin-bottom:10px}.device-search-field{position:relative;flex:1;min-width:0}.device-search-icon{position:absolute;left:11px;top:calc(50% - 1px);width:18px;height:18px;margin-top:-11px;color:#64748b;pointer-events:none;z-index:1;line-height:0}.device-search-icon svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.device-search-input{display:block;width:100%;box-sizing:border-box;min-height:42px;padding:10px 40px 10px 38px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:inherit;font-size:.9rem;line-height:1.25}.device-search-input::-webkit-search-decoration,.device-search-input::-webkit-search-cancel-button,.device-search-input::-webkit-search-results-button,.device-search-input::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.device-search-input::placeholder{color:#64748b;opacity:1;font-weight:400;letter-spacing:.01em}.device-search-input:focus{outline:none;border-color:#2563eb}.device-search-input:focus::placeholder{color:#475569}.device-search-field:focus-within .device-search-icon{color:#94a3b8}.device-search-clear{position:absolute;right:6px;top:calc(50% - 1px);margin-top:-17px;flex-shrink:0;min-width:30px;min-height:30px;padding:0;z-index:1;border:none;background:transparent;box-shadow:none}.device-search-clear:hover,.device-search-clear:focus,.device-search-clear:active{border:none;background:transparent;box-shadow:none;outline:none}.device-search-meta{margin:-4px 0 10px;font-size:.78rem}.stat .label{color:var(--muted);font-size:.75rem}.stat .value{font-size:1.35rem;font-weight:700;line-height:1.2}.stat .value.small{font-size:.8rem;font-weight:500}.sub-tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:12px;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.sub-tabs::-webkit-scrollbar{display:none}.sub-tab{flex-shrink:0;padding:5px 10px;min-height:30px;background:#1e293b;color:#cbd5e1;font-size:.72rem;border-radius:999px}.sub-tab.active{background:var(--accent);color:#fff}.msg{color:var(--success);margin-bottom:10px;font-size:.9rem}.device-error-detail{color:#f87171;font-size:.78rem;line-height:1.4;margin:6px 0 0}.warn{color:var(--warn)}.muted{color:var(--muted)}.error{color:#fca5a5;margin-top:8px;font-size:.9rem}.device-list{display:flex;flex-direction:column;gap:6px}.device-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:0}.device-card--expanded{border-color:#2563eb;background:var(--surface-2)}.device-card-head-wrap{position:relative;overflow:hidden;border-radius:inherit}.device-card-swipe-actions{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:stretch;gap:5px;width:210px;max-width:100%;padding:5px 5px 5px 0;z-index:0;opacity:1;pointer-events:none;box-sizing:border-box}.device-swipe-btn{flex:1 1 0;min-width:0;max-width:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;border-radius:12px;margin:0;padding:6px 4px;color:#fff;font:inherit;font-size:.66rem;font-weight:700;line-height:1.1;cursor:pointer;touch-action:none;box-shadow:0 1px 3px #00000047}.device-swipe-btn:disabled{opacity:.55;cursor:default}.device-swipe-btn:active:not(:disabled){filter:brightness(.92);transform:scale(.97)}.device-swipe-btn-icon{display:flex;width:17px;height:17px}.device-swipe-btn-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.device-swipe-btn--pools{background:linear-gradient(180deg,#3b82f6,#2563eb)}.device-swipe-btn--log{background:linear-gradient(180deg,#0d9488,#0f766e)}.device-swipe-btn--blink{background:linear-gradient(180deg,#64748b,#475569);color:#e2e8f0}.device-swipe-btn--blink-on{background:linear-gradient(180deg,#4ade80,#16a34a);color:#052e16;box-shadow:0 0 0 1px #86efacb3,0 0 12px #22c55e8c}.device-swipe-btn--blink-on .device-swipe-btn-icon{color:#fecaca}.device-swipe-btn--blink-on .device-swipe-blink-bulb{fill:#ef4444;stroke:#fecaca}.device-swipe-btn-icon--blink-pulse{animation:deviceBlinkPulse .85s ease-in-out infinite}@keyframes deviceBlinkPulse{0%,to{color:#fecaca;filter:drop-shadow(0 0 4px rgba(239,68,68,.9));opacity:1;transform:scale(1)}50%{color:#ef4444;filter:drop-shadow(0 0 8px rgba(239,68,68,1));opacity:.45;transform:scale(.9)}}.device-card-swipe-front{position:relative;z-index:1;background:var(--surface);touch-action:pan-y;will-change:transform;min-height:100%;isolation:isolate;border-radius:var(--radius);overflow:hidden;padding:7px 10px;box-sizing:border-box}.device-card--expanded>.device-card-head-wrap>.device-card-swipe-front{background:var(--surface-2);padding:12px 12px 8px;border-radius:var(--radius) var(--radius) 0 0}.device-card--expanded>.device-card-expanded{margin-top:0;padding:0 12px 12px}.device-card>.device-card-body{padding:7px 10px;box-sizing:border-box}.device-card--expanded>.device-card-body{padding:12px}.pools-modal-ip{margin:0 0 8px;font-size:.78rem;flex-shrink:0}.pools-modal-notice{margin:0 0 10px;padding:8px 10px;border-radius:8px;font-size:.82rem;line-height:1.35;flex-shrink:0}.pools-modal-notice--ok{background:#22c55e24;color:var(--success);border:1px solid rgba(34,197,94,.35)}.pools-modal-notice--err{background:#dc262624;color:#fca5a5;border:1px solid rgba(220,38,38,.35)}.pools-modal-slot{display:flex;flex-direction:column;gap:5px;margin-bottom:8px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);flex-shrink:0}.pools-modal-slot:last-of-type{margin-bottom:0}.pools-modal-slot-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px}.pools-modal-slot-title{font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;line-height:1.2}.pools-modal-same-as{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:.72rem;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0;cursor:pointer;-webkit-user-select:none;user-select:none}.pools-modal-same-as input{width:15px;height:15px;min-height:0;margin:0;accent-color:var(--accent);cursor:pointer}.pools-modal-field input:disabled{opacity:.72;cursor:default}.pools-modal-field{display:flex;flex-direction:column;gap:2px;font-size:.72rem;color:var(--muted);min-width:0}.pools-modal-suggest-wrap{position:relative;display:flex;align-items:stretch;gap:0}.pools-modal-suggest-wrap input{flex:1;min-width:0;padding-right:28px}.pools-modal-suggest-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:22px;min-width:22px;height:22px;min-height:0!important;padding:0!important;margin:0;font-size:.7rem;line-height:1;font-weight:600;color:var(--muted)!important;border:none!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:none!important;cursor:pointer}.pools-modal-suggest-toggle:hover,.pools-modal-suggest-toggle:focus,.pools-modal-suggest-toggle:focus-visible,.pools-modal-suggest-toggle:active{color:var(--text);border:none!important;background:transparent!important;box-shadow:none!important;outline:none!important}.pools-modal-suggest{list-style:none;margin:0;padding:4px;max-height:calc(8px + 5 * (14px + .78rem * 1.25));overflow-x:hidden;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 8px 24px #00000047}.pools-modal-suggest--float{margin:0}.pools-modal-suggest li{margin:0;padding:0;border-radius:6px;font-size:.78rem;line-height:1.25;color:var(--text)}.pools-modal-suggest-row{display:flex;align-items:stretch;gap:2px}.pools-modal-suggest-row:hover,.pools-modal-suggest-item--active{background:var(--surface-2)}.pools-modal-suggest-pick{flex:1;min-width:0;margin:0;padding:7px 9px;border:none!important;border-radius:6px;background:transparent!important;box-shadow:none!important;color:inherit!important;font:inherit;font-weight:500;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pools-modal-suggest-remove{flex-shrink:0;width:28px;min-width:28px;min-height:0!important;margin:0;padding:0!important;border:none!important;border-radius:6px;background:transparent!important;box-shadow:none!important;color:var(--muted)!important;font-size:1rem;line-height:1;cursor:pointer}.pools-modal-suggest-remove:hover{color:var(--danger)!important;background:#dc26261f!important}.pools-modal-suggest-remember .pools-modal-suggest-pick{color:var(--accent)!important;font-weight:600}.pools-modal-field input{width:100%;min-height:36px;padding:7px 10px;font-size:.88rem}.pools-modal-user-row{display:flex;align-items:flex-end;gap:6px}.pools-modal-user-row .pools-modal-field{flex:1 1 0}.pools-modal-user-dot{flex-shrink:0;padding-bottom:8px;font-size:1.1rem;font-weight:700;color:var(--muted);line-height:1}.pools-modal .actions{flex-shrink:0;margin-top:4px;padding-top:8px;border-top:1px solid var(--border)}.pools-modal-pass-btn{align-self:flex-start;margin-bottom:4px}.device-card-body{cursor:pointer}.device-card-hint{margin-left:auto;color:var(--muted);font-size:.75rem}.device-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:.85rem;color:var(--muted);margin-bottom:8px}.device-card-meta--expanded{margin-bottom:6px}.device-card-compact-top{display:flex;align-items:center;gap:6px;margin-bottom:2px}.device-card-compact-title{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;line-height:1.2;color:#e2e8f0}.device-card-compact-title .device-card-compact-model{color:#a8a29e}.device-card-compact-title .device-card-compact-sep{color:#64748b;font-weight:500}.device-card-compact-title .device-card-compact-worker{color:#fff;font-weight:600}.device-card-compact-top .device-badge{font-size:.62rem;padding:1px 6px}.device-card-compact-top .device-card-hint{margin-left:0;flex-shrink:0;font-size:.68rem}.device-card-compact-main{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0}.device-card-compact-main .device-ip--sub{flex-shrink:0;display:inline-block;width:82px;min-width:82px;max-width:82px;font-size:.74rem;line-height:1.25;color:#38bdf8;font-weight:600;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-card-compact-main .device-ip--sub.device-ip--plain{color:#94a3b8;font-weight:500}.device-card-compact-main .device-identity{flex-shrink:1;min-width:0;font-size:.62rem;line-height:1.25;color:#94a3b8;white-space:nowrap}.device-card-compact-main .device-identity-lbl{color:#64748b;font-weight:500}.device-card-compact-main--expanded{flex-wrap:wrap;row-gap:2px;align-items:flex-end;column-gap:14px}.device-identity-line{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 8px}.device-card-compact-groups{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:3px;min-width:0;flex:0 1 auto;overflow:hidden}.device-group-tag{flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;font-weight:600;color:#d6d3d1;background:#78716c47;padding:1px 6px;border-radius:999px;line-height:1.25;min-height:0;min-width:0;border:none;cursor:pointer;font-family:inherit;touch-action:manipulation}.device-group-tag:hover{background:#a8a29e61;color:#e7e5e4}.device-group-tag:active{background:#a8a29e7a}.device-card-compact-id{min-width:0;flex:1 1 8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;color:var(--muted);line-height:1.25}.device-card-compact-metrics{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:4px;font-size:.76rem;font-weight:600;line-height:1.2;white-space:nowrap}.device-card-compact-metrics--inline{margin-left:auto;flex-shrink:0}.device-metric-hash{color:#059669;font-weight:700}.device-metric-hash.stale{color:var(--muted);font-weight:600;font-style:italic}.device-metric-sep{opacity:.65}.device-metric-temp{color:#cbd5e1;font-weight:600}.device-metric-temp-sep{opacity:.65}.device-card-compact-metrics .warn,.device-metric-temp .warn,.device-stat .val.warn{color:var(--warn)}.device-card-compact-metrics .cold,.device-metric-temp .cold,.device-stat .val.cold{color:#38bdf8}.device-card-stats--compact{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;font-weight:600}.device-card-stats--hardware{grid-template-columns:repeat(2,1fr);margin-top:6px;margin-bottom:0}.device-card-stats--inline{max-width:520px;margin-bottom:10px}.device-stat .val.warn,.device-card-stats--compact .warn{color:var(--warn)}@media(max-width:480px){.device-card-stats--hardware{grid-template-columns:repeat(2,1fr)}}.device-card-expanded{padding-top:8px;margin-top:6px;border-top:1px solid var(--border)}.device-card-stats--expanded{grid-template-columns:repeat(3,1fr);margin-bottom:8px}.device-card-stats--expanded .device-metric-hash{font-size:inherit}@media(max-width:380px){.device-card-stats--expanded{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.device-card-stats--expanded .device-stat .lbl{font-size:.62rem}.device-card-stats--expanded .device-stat .val{font-size:.78rem}}.device-card-groups-expanded{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;margin-bottom:8px}.device-group-tag--expanded{font-size:.8rem;padding:3px 10px;line-height:1.35}.device-card-stats--boards{grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));margin-bottom:8px}.device-board-temp-val{display:inline-flex;align-items:center;gap:0;font-size:.82rem;font-weight:600}.device-card-expanded--table{padding-top:0;border-top:none;margin-top:0}.device-card-controls{display:flex;flex-direction:column;gap:6px;margin-top:10px}.device-card-controls-row{display:flex;gap:6px}.device-card-controls-row button{flex:1}.device-card-controls-row button.power-mode-active{background:#1e40af;color:#eff6ff;box-shadow:inset 0 0 0 1px #3b82f6}.device-ip{color:#38bdf8;font-weight:600;font-size:1rem;text-decoration:none}.device-ip:active{opacity:.8}.device-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;cursor:pointer}.device-card-head a{color:#38bdf8;font-weight:600;font-size:1rem;text-decoration:none}.device-card-head a:active{opacity:.8}.device-badge{font-size:.7rem;padding:3px 8px;border-radius:999px;background:#14532d;color:#86efac}.device-badge--inline{display:inline-block}.device-badge--mining{background:#14532d;color:#86efac}.device-badge--error{background:#422006;color:var(--warn)}.device-badge--low{background:#422006;color:#fbbf24}.device-badge--idle{background:#64748b59;color:#cbd5e1}.device-badge--sleep{background:#1e3a5f;color:#93c5fd}.device-card--static,.device-card--static .device-card-body{cursor:default}.device-ip--plain{color:#e2e8f0;text-decoration:none;cursor:default}.device-badge--offline{background:#64748b59;color:#cbd5e1}.device-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.device-stat{background:var(--surface-2);border-radius:10px;padding:8px;text-align:center}.device-stat .lbl{display:block;font-size:.65rem;color:var(--muted);margin-bottom:2px}.device-stat .val{font-size:.85rem;font-weight:600}.device-stat .val.stale,.stale{color:var(--muted);font-style:italic}.device-row-clickable{cursor:pointer}.device-row-clickable:hover td{background:#2563eb14}.device-row-detail td{background:var(--surface-2);padding-top:0}.actions{display:flex;flex-wrap:wrap;gap:6px}.actions button{flex:1 1 auto;min-width:0}.actions.compact button{flex:1 1 calc(33% - 6px)}.events-toolbar{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px}.journal-toolbar{margin-top:0;display:flex;align-items:center;gap:8px}.journal-filter{position:relative;flex:1;min-width:0}.journal-filter-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:34px;padding:6px 12px;background:#1e293b;border:1px solid var(--border);border-radius:10px;color:#e2e8f0;font-size:.82rem;cursor:pointer}.journal-filter.open .journal-filter-toggle{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.journal-filter-toggle-label{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-filter-toggle-icon{flex-shrink:0}.journal-filter-caret{flex-shrink:0;opacity:.7;font-size:.75rem;transition:transform .15s ease}.journal-filter.open .journal-filter-caret{transform:rotate(180deg)}.journal-filter-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.journal-filter-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;max-height:min(60vh,320px);overflow-y:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 8px 24px #00000059}.journal-filter-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;color:#cbd5e1;font-size:.82rem;text-align:left;cursor:pointer}.journal-filter-option:hover{background:#ffffff0d}.journal-filter-option.active{background:color-mix(in srgb,var(--accent) 20%,transparent);color:#e2e8f0}.journal-filter-option-label{display:inline-flex;align-items:center;gap:6px;min-width:0}.journal-filter-option-count{flex-shrink:0;opacity:.75;font-size:.78rem}.events-filters{flex:1;min-width:0}.events-clear-btn{flex-shrink:0;min-width:30px;min-height:30px;padding:0;font-size:.9rem;line-height:1}.event-filter-count{margin-left:4px;opacity:.75;font-size:.85em}.events{display:flex;flex-direction:column;gap:10px;max-height:none}.event{background:var(--surface-2);border-radius:12px;padding:12px 14px;border-left:3px solid var(--border)}.event--success{border-left-color:#22c55e}.event--danger{border-left-color:var(--danger)}.event--warn{border-left-color:var(--warn)}.event--accent{border-left-color:var(--accent)}.event--muted{border-left-color:#64748b}.event-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#64748b;font-size:.75rem;margin-bottom:6px}.event-kind{display:inline-flex;align-items:center;gap:4px;min-width:0}.event-kind-icon{flex-shrink:0}.event-time{flex-shrink:0;color:#94a3b8}.journal-reboot{display:flex;flex-direction:column;gap:10px}.journal-reboot-status{display:inline-flex;align-items:center;align-self:flex-start;gap:4px;padding:4px 10px;border-radius:999px;font-size:.76rem;font-weight:500;line-height:1.3}.journal-reboot-status--check{background:#64748b33;color:#cbd5e1}.journal-reboot-status--active{background:#f59e0b26;color:#fbbf24}.journal-reboot-status--failed{background:#ef444426;color:#f87171}.journal-reboot-status-count{opacity:.85}.journal-reboot-section{padding-top:2px}.journal-reboot-section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:6px;font-size:.82rem;font-weight:600;color:#e2e8f0}.journal-reboot-section-icon{flex-shrink:0}.journal-reboot-section-model{font-weight:500;color:#94a3b8}.journal-reboot-section-count{margin-left:auto;min-width:1.2em;text-align:right;font-size:.76rem;font-weight:600;color:#64748b}.journal-reboot-devices{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.journal-reboot-device{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:.84rem;line-height:1.4}.journal-reboot-worker{font-weight:500;color:#e2e8f0}.journal-reboot-detail{flex-basis:100%;font-size:.78rem;line-height:1.35}.journal-reboot-note{margin:0;font-size:.76rem}.event-body{word-break:break-word;font-size:.9rem;line-height:1.45;color:#cbd5e1}.event-body-line{white-space:pre-wrap}.event-body .device-error-detail{margin:0}.journal-line--device{color:#e2e8f0;font-weight:500}.journal-line--status-check{color:#94a3b8}.journal-line--status-active{color:#fbbf24;font-weight:500}.journal-line--status-note{color:#94a3b8;font-size:.82rem}.journal-line--status-failed{color:#f87171;font-weight:500}.journal-line--status-success{color:#86efac;font-weight:500}.journal-line--mode-change{color:#93c5fd;font-size:.82rem}.journal-line--power-detail{color:var(--accent);font-weight:500}.journal-line--pools-slot{color:#64748b;font-weight:400;font-size:.82rem}.journal-line--pools-detail{color:#e2e8f0;font-size:.82rem}.journal-pools-label{color:#64748b;font-weight:400}.journal-pools-old{color:#94a3b8;font-weight:400}.journal-pools-arrow{color:#64748b}.journal-pools-new{color:var(--accent);font-weight:500}.journal-line--group-header{color:#e2e8f0;font-weight:600;font-size:.84rem}.journal-line--hashrate-detail{color:var(--warn, #fbbf24);font-size:.78rem;font-weight:600;line-height:1.4}.event-body--collapsed{display:-webkit-box;-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.event-expand{margin-top:8px;padding:0;border:none;background:none;color:var(--accent);font-size:.85rem;cursor:pointer}.events-footnote{margin-top:10px;font-size:.75rem;text-align:center}.form-grid{display:grid;gap:10px;margin-top:12px}.form-block{margin-bottom:12px}.invite-link-row{display:grid;gap:8px;margin-top:10px}.invite-active-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border, rgba(0, 0, 0, .08))}.settings-card{padding-top:10px;padding-bottom:10px}.settings-card--expanded{padding-bottom:14px}.settings-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0;padding:4px 0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}.settings-card-head--static{cursor:default}.pin-title--profile{margin:.85rem 0 .35rem;font-size:1.05rem}.settings-card-head h3{margin:0;font-size:1rem;font-weight:600;flex:1;min-width:0}.users-card-role{font-weight:400;font-size:.92em}.login-forgot{display:block;width:100%;margin-top:12px;padding:8px 10px;border:none;background:transparent;color:var(--muted);text-align:center;font:inherit;font-size:.92rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer;touch-action:manipulation}.login-forgot:hover{color:#e2e8f0}.user-row{border-top:1px solid var(--border, rgba(148, 163, 184, .2));padding-top:8px;margin-top:8px}.user-row:first-child{border-top:none;padding-top:0;margin-top:0}.user-row-head{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0;padding:6px 0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}.user-row-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;min-width:0;flex:1}.user-row-body{display:grid;gap:8px;padding:4px 0 8px}.user-reset-badge{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;background:#f59e0b33;color:#fbbf24;font-size:.75rem;font-weight:500}.user-reset-badge--ok{background:#16653459;color:#86efac}.user-reset-panel{display:grid;gap:8px;padding:8px 10px;border:1px solid rgba(245,158,11,.35);border-radius:8px;background:#f59e0b14}.settings-card-head .device-card-hint{flex-shrink:0;font-size:.85rem;color:var(--muted)}.settings-card-body{padding-top:10px}.settings-section-intro{margin:0 0 12px;font-size:.82rem;line-height:1.45}.settings-push-off{display:block;width:100%;margin-top:12px}button.push-toast{position:fixed;top:calc(8px + var(--safe-top));left:10px;right:10px;z-index:110;display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:auto;min-height:0;padding:12px 14px;border:none;border-radius:14px;background:#1e293b;color:#f8fafc;text-align:left;font-size:.88rem;font-weight:500;box-shadow:0 10px 30px #00000073;border-left:4px solid var(--accent)}.push-toast strong{font-size:.88rem}.push-toast span{font-size:.8rem;color:#cbd5e1;white-space:pre-wrap;line-height:1.35}.push-toast--alarm{border-left-color:var(--danger)}.push-toast--devices{border-left-color:#22c55e}.push-toast--ops{border-left-color:var(--accent)}.push-toast--system{border-left-color:#94a3b8}.settings-toggles{display:flex;flex-direction:column;gap:10px}.settings-toggle-row{margin:0}.settings-field-hint{margin:2px 0 0 28px;font-size:.76rem;line-height:1.4}.settings-field-hint--field{margin-left:0;margin-top:2px;margin-bottom:0}.settings-fields{display:grid;gap:12px;margin-top:4px}.settings-field-label{font-size:.88rem;font-weight:500;color:#e2e8f0}.settings-field-input{display:flex;align-items:center;gap:8px;margin-top:6px}.settings-field-input input{flex:0 1 auto;width:auto;min-width:88px;max-width:160px;margin-bottom:0}.settings-field-input--wide input{flex:1;max-width:none;width:100%}.settings-field-unit{font-size:.82rem;color:var(--muted);white-space:nowrap}.settings-network-list{margin-bottom:10px}.settings-subsection--flat{margin-top:0;padding-top:0;border-top:none}.settings-card:not(.settings-card--expanded) .settings-subsection{border-top:none;margin-top:0;padding-top:0}.settings-subsection{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.settings-subsection--last{margin-bottom:0}.settings-subtitle{margin:0 0 6px;font-size:.88rem;font-weight:600;color:#e2e8f0}.settings-hint{margin:0 0 10px;font-size:.78rem;line-height:1.45}.settings-inline-add{display:flex;gap:8px;align-items:stretch;margin-bottom:8px}.settings-inline-add input{flex:1;margin-bottom:0;min-width:0}.settings-inline-add button{flex-shrink:0;margin-bottom:0;align-self:stretch}.settings-suggest-label{margin:0 0 6px;font-size:.72rem}.settings-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.settings-suggestion{font-size:.72rem;padding:6px 10px;min-height:30px}.settings-tag-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.settings-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:.78rem}.settings-tag-remove{width:24px;min-width:24px;height:24px;min-height:24px;padding:0;line-height:1;border-radius:999px}.settings-empty{margin:0;font-size:.78rem}.settings-subsection label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:8px}.settings-subsection label input{margin-top:4px}input,select{width:100%;padding:12px 14px;min-height:44px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#e2e8f0;margin-bottom:8px}.check-row{display:flex;gap:10px;align-items:center;margin-bottom:8px;min-height:44px}.check-row input{width:20px;height:20px;min-height:20px;margin:0;flex-shrink:0}.worker-pick{max-height:240px;overflow:auto;margin:8px 0;border:1px solid var(--border);border-radius:12px;padding:8px;-webkit-overflow-scrolling:touch}.group-list{display:flex;flex-direction:column;gap:6px}.groups-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.groups-toolbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.groups-sort-btn{margin:0;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:.78rem;font-weight:600;padding:7px 12px;min-height:34px}.groups-sort-btn.active{background:#2563eb2e;color:#e2e8f0;border-color:#2563eb59}.groups-sort-panel{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.groups-sort-hint{font-size:.8rem;line-height:1.35;margin:0}.groups-sort-bucket{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:8px;min-height:52px}.groups-sort-bucket--unqueued{border-style:dashed}.groups-sort-bucket-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:.85rem}.groups-sort-empty{color:var(--muted);font-size:.78rem;padding:8px 4px}.groups-sort-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-top:4px;border-radius:10px;background:var(--surface);border:1px solid var(--border);cursor:grab;touch-action:none}.groups-sort-card:active{cursor:grabbing}.groups-sort-card-name{font-weight:600;font-size:.9rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.groups-sort-card-actions{display:inline-flex;gap:4px;flex-shrink:0}.groups-sort-mini-btn{margin:0;min-width:32px;min-height:32px;padding:0 6px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:.85rem}.groups-sort-add-queue{align-self:flex-start;margin:0;border:1px dashed var(--border);border-radius:10px;background:transparent;color:var(--muted);font-size:.8rem;font-weight:600;padding:8px 12px}.groups-sort-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.groups-view-toggle{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface-2)}.groups-view-btn{margin:0;border:none;border-radius:0;background:transparent;color:var(--muted);font-size:.78rem;font-weight:600;padding:7px 12px;min-height:34px}.groups-view-btn+.groups-view-btn{border-left:1px solid var(--border)}.groups-view-btn.active{background:#2563eb2e;color:#e2e8f0}.group-card-compact-bottom{display:flex;align-items:center;gap:6px;margin-top:3px;min-width:0;min-height:20px}.group-card-empty-hint{display:inline-flex;align-items:center;min-height:20px;font-size:.66rem;line-height:1.15;color:var(--muted)}.group-card:not(.group-card--expanded) .group-card-head-wrap{min-height:52px}.group-card-compact-bottom .group-mini-tabs{flex:1 1 auto;min-width:0;margin-top:0}.group-card-compact-bottom .group-power-mode-badge{margin-left:auto}.group-mini-tabs{display:flex;flex-wrap:wrap;gap:3px;margin-top:0}.group-mini-tabs--expanded{margin-top:0;margin-bottom:0}.group-mini-tab{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;min-height:20px;border:1px solid var(--border);border-radius:999px;background:#1e293b;color:#94a3b8;font-size:.66rem;line-height:1.15}.group-mini-tab.active{border-color:#2563eb;background:#2563eb29;color:#e2e8f0}.group-mini-tab--warn.active{border-color:#d97706;background:#d9770624}.group-mini-tab-count{font-weight:700;font-size:.66rem;color:inherit}.group-mini-tab--all:not(.active){color:#60a5fa;border-color:#60a5fa73;background:#60a5fa1a}.group-mini-tab--online:not(.active){color:var(--success);border-color:#22c55e66;background:#22c55e14}.group-mini-tab--offline:not(.active){color:#cbd5e1;border-color:#64748b80;background:#64748b1a}.group-mini-tab--warn:not(.active){color:var(--warn);border-color:#f59e0b6b;background:#f59e0b12}.groups-toolbar .msg{margin-bottom:0;flex:1}.groups-add-btn{margin-left:auto;white-space:nowrap;flex-shrink:0}.group-card{position:relative;overflow:hidden;background:#0f172a;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:0;padding:0;touch-action:pan-y}.group-card-head-wrap{position:relative;overflow:hidden;border-radius:inherit}.group-card-swipe-actions{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:stretch;gap:5px;width:auto;min-width:70px;padding:4px 5px 4px 0;z-index:0;opacity:1;pointer-events:none;box-sizing:border-box}.group-swipe-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;border-radius:12px;margin:0;padding:6px 4px;color:#fff;font:inherit;font-size:.66rem;font-weight:700;line-height:1.1;cursor:pointer;touch-action:none;box-shadow:0 1px 3px #00000047}.group-swipe-btn:active{filter:brightness(.92);transform:scale(.97)}.group-swipe-btn-icon{display:flex;width:17px;height:17px}.group-swipe-btn-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.group-swipe-btn--edit{background:linear-gradient(180deg,#3b82f6,#2563eb)}.group-swipe-btn--manage{background:linear-gradient(180deg,#0ea5e9,#0284c7)}.group-swipe-btn--delete{background:linear-gradient(180deg,#ef4444,#dc2626)}.group-card-swipe-front{position:relative;z-index:1;background:#0f172a;touch-action:pan-y;will-change:transform;isolation:isolate;border-radius:var(--radius);overflow:hidden;box-sizing:border-box}.group-card:not(.group-card--expanded) .group-card-swipe-front{padding:6px 10px}.group-card--expanded{border-color:#2563eb;background:#111827}.group-card--expanded>.group-card-head-wrap>.group-card-swipe-front{background:#111827;padding:7px 10px 5px;border-radius:var(--radius) var(--radius) 0 0}.group-card-body-rest{padding:0 10px 8px;background:#111827}.group-card--nested.group-card--expanded>.group-card-head-wrap>.group-card-swipe-front{padding:6px 8px 4px;border-radius:var(--radius) var(--radius) 0 0}.group-card--nested .group-card-body-rest{padding:0 8px 6px}.group-nested-list{margin:6px 0;display:flex;flex-direction:column;gap:5px;padding-left:6px;border-left:2px solid var(--border)}.group-card--nested{margin-bottom:0}.group-card--nested:not(.group-card--expanded) .group-card-swipe-front{padding:5px 8px}.group-card--status-errors:not(.group-card--expanded){border-color:#f59e0b6b;background:#17140f}.group-card--status-errors:not(.group-card--expanded) .group-card-swipe-front,.group-card--status-errors:not(.group-card--expanded) .group-card-head-wrap{background:#17140f}.group-card--status-offline:not(.group-card--expanded){border-color:#64748b80;background:#151a22}.group-card--status-offline:not(.group-card--expanded) .group-card-swipe-front,.group-card--status-offline:not(.group-card--expanded) .group-card-head-wrap{background:#151a22}.group-stat-hash{color:var(--success);font-weight:700}.group-stat-share{color:#60a5fa;font-weight:600}.group-device-card--error{border-color:#f59e0b6b;background:#f59e0b12}.group-device-card--offline{border-color:#64748b80;background:#64748b1a}.group-device-card--orphan{border-color:#ef444473;background:#ef444414}.device-badge--orphan{background:#ef44442e;color:#fca5a5}.group-device-remove-btn{margin-left:auto;padding:2px 8px;line-height:1.2;opacity:.85}.group-card-body{cursor:pointer}.group-card-compact-top{display:flex;align-items:center;gap:5px;margin-bottom:0}.group-card-compact-top .group-card-title{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-card-compact-top .device-card-hint{margin-left:0;flex-shrink:0;font-size:.68rem}.group-power-mode-badge{flex-shrink:0;font-size:.58rem;font-weight:600;padding:1px 6px;border-radius:999px;background:#334155e6;color:#cbd5e1;text-transform:uppercase;letter-spacing:.02em}.group-power-mode-badge--normal{background:#14532d;color:#86efac}.group-power-mode-badge--low{background:#422006;color:#fbbf24}.group-power-mode-badge--high{background:#1e3a5f;color:#93c5fd}.group-power-mode-badge--sleep{background:#64748b8c;color:#e2e8f0}.group-card-compact-metrics--inline{margin-left:auto;flex-shrink:0;font-size:.72rem;font-weight:600}.group-card-compact-sub .warn{color:var(--warn)}.group-card-toolbar{margin-top:6px;margin-bottom:6px;padding-top:6px;padding-bottom:6px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.group-card-toolbar .group-card-controls{margin-top:0;margin-bottom:4px;padding-bottom:0;border-bottom:none}.group-card-title{font-weight:600;font-size:.88rem;line-height:1.2;color:#e2e8f0}.group-card-compact-sub{font-size:.72rem;line-height:1.25;margin-bottom:2px}.group-card-compact-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:.74rem;font-weight:600}.group-card-body-rest .group-device-cards{margin:6px 0;cursor:default}.group-empty-note{font-size:.74rem;line-height:1.25;margin:0 0 6px}.group-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;flex-direction:column;padding:0;background:var(--bg)}.group-modal{width:100%;height:100%;max-height:none;display:flex;flex-direction:column;overflow:hidden;margin:0;border:none;border-radius:0;box-shadow:none;padding:calc(10px + var(--safe-top)) 12px calc(10px + var(--safe-bottom))}.group-modal-body{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}.group-modal-search{margin:8px 0 0}.group-modal-overlay--nested{z-index:95}.group-modal-section{margin:12px 0 4px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);overflow:hidden;flex-shrink:0}.group-modal-section--open{display:flex;flex-direction:column;min-height:0;max-height:42vh}.group-modal-section-toggle{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:10px 12px;border:none;background:transparent;color:inherit;font:inherit;font-size:.9rem;font-weight:600;text-align:left;cursor:pointer;flex-shrink:0}.group-modal-section--open .group-modal-section-toggle{border-bottom:1px solid var(--border)}.group-modal-section-toggle .muted{font-weight:500;font-size:.74rem}.group-modal-section-toggle .device-card-hint{margin-left:auto}.group-modal-section-body{display:flex;flex-direction:column;min-height:0;flex:1;padding:0 10px 10px;overflow:hidden}.group-modal-worker-list--nested{flex:1;min-height:0;margin:0;gap:8px}.group-modal-create-child{display:flex;align-items:center;justify-content:center;width:100%;margin:4px 0 0;padding:12px 14px;border:1px dashed var(--border);border-radius:10px;background:transparent;color:var(--accent, #2563eb);font:inherit;font-weight:600;cursor:pointer}.group-modal-create-child:hover:not(:disabled){border-color:var(--accent, #2563eb);background:#2563eb14}.group-modal-create-child:disabled{opacity:.55;cursor:default}.group-modal-pick-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;flex-shrink:0}.group-modal-pick-count{margin-left:auto;font-size:.74rem}.group-modal-worker-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;max-height:none;overflow:auto;margin:0 0 10px;-webkit-overflow-scrolling:touch}.group-modal-worker-list>.device-card{flex-shrink:0;padding:10px 12px}.group-modal-worker-list .device-card-compact-metrics{display:none}.group-modal-worker-list .device-card-compact-title{flex:1 1 auto;min-width:3.5rem}.group-modal-worker-list .device-badge{flex-shrink:0}.group-modal .automation-section-title{margin-top:14px;margin-bottom:4px;flex-shrink:0}.group-modal>.actions{flex-shrink:0;margin-top:auto;padding-top:8px;border-top:1px solid var(--border)}.group-modal.pools-modal{height:auto;max-height:100dvh;flex:0 1 auto;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.group-modal.pools-modal .group-modal-body{flex:0 0 auto;min-height:0;overflow:visible;gap:0}.group-modal.pools-modal>.actions{margin-top:8px}.group-modal.log-modal{height:auto;max-height:min(92dvh,920px);flex:0 1 auto;width:min(720px,100%);overflow:hidden}.group-modal.log-modal .group-modal-body{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:8px}.miner-log-pre{flex:1 1 auto;min-height:200px;max-height:min(68dvh,640px);margin:0;padding:10px 12px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;border-radius:10px;border:1px solid var(--border);background:var(--surface-2, #0f172a);color:var(--text, #e2e8f0);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;line-height:1.35;white-space:pre;word-break:normal;-webkit-overflow-scrolling:touch}.group-modal.log-modal>.actions{margin-top:8px}.log-modal-tabs{display:flex;gap:6px;margin:0 0 4px}.log-modal-tab{flex:1;border:1px solid var(--border);background:var(--surface-2, transparent);color:var(--muted, #94a3b8);border-radius:10px;padding:7px 10px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.log-modal-tab.active{border-color:#0f766e;background:#0d948829;color:var(--text, #e2e8f0)}.log-modal-tab:disabled,.log-modal-tab.disabled{opacity:.45;cursor:not-allowed}.log-modal-tab-dot{display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;background:#14b8a6;vertical-align:middle}.log-modal-tab-count{display:inline-block;margin-left:6px;min-width:1.1em;padding:0 5px;border-radius:999px;background:#14b8a638;color:#5eead4;font-size:.72rem;font-weight:700;line-height:1.35;vertical-align:middle}.log-modal-archive-pick{display:flex;flex-direction:column;gap:4px;margin:0 0 8px;font-size:.78rem}.log-modal-archive-pick select{width:100%;border-radius:10px;border:1px solid var(--border);background:var(--surface-2, #0f172a);color:var(--text, #e2e8f0);padding:8px 10px;font:inherit;font-size:.84rem}.log-modal-hint{margin:0 0 6px;font-size:.78rem}html:has(.group-modal-overlay),body:has(.group-modal-overlay){overflow:hidden}.device-card--pickable,.device-card--pickable .device-card-body{cursor:pointer}.device-card--picked{border-color:#2563eb;background:#2563eb1f}.group-worker-pick-mark{margin-left:auto;flex-shrink:0;width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;font-size:.68rem;color:#60a5fa;line-height:1}.group-worker-pick-mark--on{border-color:#2563eb;background:#2563eb33}.group-modal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;flex-shrink:0}.group-modal-head h3{margin:0}.group-modal-close{min-width:30px;padding:5px 8px}.automation-note{margin:0 0 10px;font-size:.82rem}.automation-list{display:flex;flex-direction:column;gap:10px}.automation-card{padding:12px}.automation-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.automation-card-title{margin:0 0 4px;font-size:1rem}.automation-card-meta{margin:0;font-size:.78rem}.automation-card-actions{display:flex;gap:6px;flex-shrink:0}.automation-card-targets{margin:8px 0 6px;font-size:.82rem}.automation-schedule-list{margin:0;padding-left:18px;font-size:.82rem}.automation-modal .group-modal-body{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;gap:12px}.automation-builder{display:flex;flex-direction:column;gap:12px}.automation-builder-section{padding:12px;flex-shrink:0}.automation-builder-section-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.automation-builder-section-head h4{margin:0 0 2px;font-size:.95rem}.automation-builder-section-head p{margin:0;font-size:.76rem}.automation-builder-step{flex-shrink:0;width:1.6rem;height:1.6rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#2563eb2e;border:1px solid rgba(37,99,235,.35);color:#93c5fd;font-size:.78rem;font-weight:600}.automation-builder-input{width:100%;margin-bottom:8px}.automation-rule-flow{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.automation-rule-block{padding:12px;border:1px solid var(--border)}.automation-rule-block--if{border-left:3px solid #7c3aed}.automation-rule-block--when{border-left:3px solid #2563eb}.automation-rule-block--then{border-left:3px solid #16a34a}.automation-rule-block-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 10px;margin-bottom:10px}.automation-rule-block-head p{margin:0;font-size:.76rem;flex:1 1 100%}.automation-rule-optional{font-size:.72rem;color:#94a3b8;font-weight:400}.automation-rule-keyword{font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#dbeafe}.automation-rule-block--when .automation-rule-keyword{color:#dbeafe}.automation-rule-block--if .automation-rule-keyword{color:#ddd6fe}.automation-rule-block--then .automation-rule-keyword{color:#bbf7d0}.automation-rule-empty{display:flex;justify-content:center;padding:14px 8px}.automation-rule-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.automation-or-divider{text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;margin:6px 0}.automation-rule-or-block{padding:10px;border:1px dashed rgba(148,163,184,.35);margin-bottom:4px}.automation-rule-or-block-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:.76rem}.automation-interval-mode-fields{display:flex;flex-wrap:wrap;gap:10px 14px}.automation-interval-mode-fields label{display:flex;flex-direction:column;gap:4px;min-width:8rem}.automation-interval-mode-fields select{min-width:7rem}.automation-or-divider--inline{margin:-2px 0 6px;text-align:left}.automation-condition-days{display:flex;flex-direction:column;gap:8px}.automation-day-chips{display:flex;flex-wrap:wrap;gap:6px}.automation-day-chip{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:2.2rem;padding:6px 10px;border:1px solid var(--border);border-radius:999px;font-size:.78rem;cursor:pointer;-webkit-user-select:none;user-select:none;background:#0f172a59}.automation-day-chip-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.automation-day-chip--on{border-color:#2563eb;background:#2563eb38;color:#dbeafe}.automation-trigger-card{padding:10px;margin-bottom:8px;border:1px solid var(--border)}.automation-trigger-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.automation-trigger-icon{font-size:1.1rem;line-height:1}.automation-trigger-title-wrap{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.automation-trigger-title-wrap strong{font-size:.86rem}.automation-trigger-title-wrap .muted{font-size:.72rem}.automation-trigger-add-wrap{margin-top:8px}.automation-trigger-picker{margin-top:8px;padding:6px;display:flex;flex-direction:column;gap:6px}.automation-trigger-option{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#0f172a59;cursor:pointer}.automation-trigger-option:hover:not(:disabled){border-color:#2563eb}.automation-trigger-option--disabled{opacity:.45;cursor:not-allowed}.automation-trigger-option-icon{font-size:1.1rem;flex-shrink:0}.automation-trigger-option-text{display:flex;flex-direction:column;gap:2px}.automation-trigger-option-text strong{font-size:.84rem}.automation-trigger-option-text .muted{font-size:.72rem}.automation-modal .automation-section-title{margin:14px 0 8px;font-size:.9rem;flex-shrink:0}.automation-enabled-row{margin-top:8px;flex-shrink:0}.automation-targets-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;flex-shrink:0}.automation-picker-panel{padding:10px;margin-bottom:10px;flex-shrink:0}.automation-picker-hint{margin:0 0 8px;font-size:.78rem}.automation-picker-list{gap:8px}.automation-picker-card{cursor:pointer}.automation-picker-card:hover{border-color:#2563eb}.automation-picker-add{margin-left:auto;flex-shrink:0;width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;font-size:.85rem;color:#60a5fa;line-height:1}.automation-picker-devices{max-height:220px;overflow-y:auto;margin-top:8px}.automation-target-list{margin-bottom:10px}.automation-target-list.group-list,.automation-target-devices{gap:8px}.automation-target-remove{flex-shrink:0;min-width:28px;padding:2px 6px}.automation-target-exclude{flex-shrink:0;font-size:.72rem;padding:2px 8px;white-space:nowrap}.automation-target-device--excluded{opacity:.62}.automation-exclude-badge{font-size:.72rem;flex-shrink:0}.automation-excludes-panel{margin-top:10px;padding:10px 12px}.automation-excludes-title{margin:0 0 8px;font-size:.78rem}.automation-empty-note{margin:0 0 10px;font-size:.82rem}.automation-rule-days{padding:10px;margin-bottom:10px}.automation-rule-days-label{display:block;margin-bottom:8px;font-size:.78rem}.automation-schedule-kind{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.automation-kind-option{display:flex;align-items:center;gap:8px;font-size:.84rem}.automation-interval-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.automation-interval-fields label{display:flex;flex-direction:column;gap:4px;font-size:.78rem}.automation-interval-fields input,.automation-interval-fields select{width:100%}.automation-outside-mode{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:.78rem}.automation-outside-mode select{width:100%;max-width:220px}.automation-card-schedule{margin:0;font-size:.82rem;line-height:1.35}.automation-schedule-row{padding:10px;margin-bottom:8px;flex-shrink:0}.automation-schedule-hint{margin:0 0 10px;font-size:.78rem;line-height:1.35;flex-shrink:0}.automation-schedule-row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.automation-schedule-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.automation-schedule-fields label{display:flex;flex-direction:column;gap:4px;font-size:.78rem}.automation-schedule-fields input,.automation-schedule-fields select{width:100%}.automation-day-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.automation-day-preset-btn{font-size:.72rem;padding:2px 6px;min-height:24px}.automation-day-picks{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:2}.automation-day-btn{min-width:34px;padding:4px 6px;cursor:pointer;pointer-events:auto;touch-action:manipulation}.automation-day-btn--on{border-color:#2563eb;background:#2563eb2e}.group-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}.field-row{display:grid;grid-template-columns:1fr;gap:8px;margin-top:8px}.field-row label{display:block;font-size:.85rem;color:var(--muted)}button.small{padding:4px 8px;min-height:26px;font-size:.68rem}ul{margin:8px 0;padding-left:18px}.empty-state{text-align:center;padding:32px 16px;color:var(--muted)}.empty-state--loading{display:flex;align-items:center;justify-content:center;gap:10px}.miner-frame-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;background:var(--bg);padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);height:100vh;height:100dvh;max-height:100dvh;overflow:hidden}.miner-frame-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);background:#0b1220f5;flex-shrink:0}.miner-frame-modes{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);background:#0f172af5;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.miner-frame-modes::-webkit-scrollbar{display:none}.miner-frame-modes-label{flex-shrink:0;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.miner-frame-modes button{flex-shrink:0}.miner-frame-modes .danger,.miner-frame-reboot{margin-left:auto}.miner-frame-title{flex:1;font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.miner-frame-bar a,.miner-frame-bar button{text-decoration:none;display:inline-flex;align-items:center}.miner-frame-back{min-width:30px!important;padding:5px 8px!important;font-size:1rem}.miner-frame-back:disabled{opacity:.35}.miner-frame-close{min-width:30px!important;padding:5px 8px!important;font-size:1rem;color:#fca5a5}.miner-frame-zoom{display:flex;align-items:center;gap:2px;flex-shrink:0}.miner-zoom-btn{min-width:30px!important;padding:5px 8px!important;font-size:1rem;line-height:1}.miner-zoom-label{min-width:44px;text-align:center;font-size:.8rem;color:var(--muted)}.miner-frame-wrap{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;background:#fff}.miner-frame-outer{width:100%;height:100%}.miner-frame-outer.is-mobile{width:auto;height:auto;min-height:100%}.miner-frame-inner{width:100%;height:100%}.miner-frame{flex:1;width:100%;height:100%;border:none;background:#fff;display:block;overflow:auto;-webkit-overflow-scrolling:touch}.miner-frame--scaled{width:1280px;border:none}.miner-exit-toast{position:absolute;left:50%;bottom:calc(20px + var(--safe-bottom));transform:translate(-50%);margin:0;padding:10px 18px;border-radius:999px;background:#0f172aeb;border:1px solid var(--border);color:#e2e8f0;font-size:.9rem;white-space:nowrap;pointer-events:none;z-index:2;box-shadow:0 8px 24px #00000059}.app-exit-toast{position:fixed;left:50%;bottom:calc(72px + var(--safe-bottom));transform:translate(-50%);margin:0;padding:10px 18px;border-radius:999px;background:#0f172aeb;border:1px solid var(--border);color:#e2e8f0;font-size:.9rem;white-space:nowrap;pointer-events:none;z-index:120;box-shadow:0 8px 24px #00000059}.desktop-table-wrap{display:none}@media(min-width:768px)and (pointer:fine){.app-shell{padding-bottom:16px}.miner-frame-overlay{left:50%;transform:translate(-50%);max-width:1100px}.bottom-nav,.more-sheet-backdrop,.more-sheet{display:none!important}.desktop-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.desktop-nav .tab{background:#1e293b;min-height:30px;padding:5px 12px;font-size:.72rem}.desktop-nav .tab.active{background:var(--accent)}.desktop-nav-logout{margin-left:auto;background:transparent!important;color:#f87171!important;border:1px solid rgba(248,113,113,.45)}.desktop-nav-logout:hover{background:#f871711f!important}.app-main{padding:16px}.device-toolbar-sticky{margin:-16px -16px 16px;padding:16px 16px 12px;top:calc(var(--header-h) + var(--safe-top))}.stats{grid-template-columns:repeat(4,1fr)}.device-list{display:none}.group-modal .device-list,.automation-modal .device-list,.group-card .device-list{display:flex}.desktop-table-wrap{display:block}.field-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.actions button{flex:0 1 auto}}@media(min-width:768px){table{width:100%;border-collapse:collapse}th,td{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{color:var(--muted);font-size:.85rem}}.about-body{padding-top:4px}.about-version{margin:0 0 4px;font-size:1.15rem;font-weight:600}.about-date{margin:0 0 12px}.about-update{margin-top:16px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.about-auto-update{margin:0;width:100%}.about-update-msg{margin:0}.about-update-card{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--card, #1e293b) 88%,#000)}.about-update-title{margin:0 0 4px;font-weight:600}.about-changelog{margin:8px 0 0;padding-left:1.2em}.about-changelog li{margin:.35em 0}.about-update-actions{margin-top:12px}
