:root{--bg: #0b0f14;--bg2: #11161d;--bg3: #171e27;--bg4: #1e2733;--line: #222c38;--line2: #2c3947;--glass: rgba(11, 15, 20, .86);--scrim: rgba(7, 10, 14, .85);--text: #e9eef4;--muted: #93a1b1;--faint: #5c6b7a;--accent: #4d9fff;--accent-2: #2f7fe0;--accent-soft: rgba(77, 159, 255, .13);--ok: #37d399;--ok-soft: rgba(55, 211, 153, .13);--warn: #f5b73d;--warn-soft: rgba(245, 183, 61, .13);--bad: #f2635b;--bad-soft: rgba(242, 99, 91, .13);--purple: #a98bff;--purple-soft: rgba(169, 139, 255, .13);--radius: 12px;--radius-s: 8px;--shadow: 0 10px 32px rgba(0, 0, 0, .42);--shadow-s: 0 2px 10px rgba(0, 0, 0, .3);--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace;--sidebar-w: 232px}.theme-light{--bg: #f2f5fa;--bg2: #ffffff;--bg3: #f5f8fc;--bg4: #e8eef6;--line: #d7dfeb;--line2: #c6d3e2;--glass: rgba(255, 255, 255, .92);--scrim: rgba(23, 34, 46, .72);--text: #131f2c;--muted: #5a6b7e;--faint: #8b9aa9;--accent: #2f7fe0;--accent-2: #1f66c2;--accent-soft: rgba(47, 127, 224, .12);--ok: #0f9d63;--ok-soft: rgba(15, 157, 99, .13);--warn: #b97e00;--warn-soft: rgba(185, 126, 0, .13);--bad: #d9483f;--bad-soft: rgba(217, 72, 63, .12);--purple: #7c5ce0;--purple-soft: rgba(124, 92, 224, .12);--shadow: 0 14px 40px rgba(23, 34, 46, .14);--shadow-s: 0 3px 14px rgba(23, 34, 46, .09);--grad-brand: linear-gradient(135deg, #2f7fe0 0%, #7c5ce0 100%);--mesh: radial-gradient(520px 340px at 88% -6%, rgba(47, 127, 224, .14), transparent 62%), radial-gradient(460px 320px at -8% 12%, rgba(124, 92, 224, .1), transparent 60%), radial-gradient(560px 420px at 50% 108%, rgba(15, 157, 99, .08), transparent 60%)}.theme-dark{--bg: #0d1219;--bg2: #141b25;--bg3: #1a2330;--bg4: #232f3f;--line: #26313f;--line2: #334152;--glass: rgba(13, 18, 25, .86);--scrim: rgba(4, 7, 11, .82);--text: #e9eef4;--muted: #97a5b5;--faint: #61707f;--accent: #58a6ff;--accent-2: #3d8ef0;--accent-soft: rgba(88, 166, 255, .14);--ok: #37d399;--ok-soft: rgba(55, 211, 153, .13);--warn: #f5b73d;--warn-soft: rgba(245, 183, 61, .13);--bad: #f2635b;--bad-soft: rgba(242, 99, 91, .13);--purple: #a98bff;--purple-soft: rgba(169, 139, 255, .14);--shadow: 0 10px 32px rgba(0, 0, 0, .5);--shadow-s: 0 2px 10px rgba(0, 0, 0, .35);--grad-brand: linear-gradient(135deg, #2f7fe0 0%, #7c5ce0 100%);--mesh: radial-gradient(520px 340px at 88% -6%, rgba(88, 166, 255, .1), transparent 62%), radial-gradient(460px 320px at -8% 12%, rgba(169, 139, 255, .08), transparent 60%), radial-gradient(560px 420px at 50% 108%, rgba(55, 211, 153, .06), transparent 60%)}.theme-vscode{--bg: #1e1e1e;--bg2: #252526;--bg3: #2d2d2d;--bg4: #37373d;--line: #3c3c3c;--line2: #4b4b4b;--glass: rgba(30, 30, 30, .88);--scrim: rgba(0, 0, 0, .7);--text: #d4d4d4;--muted: #9a9a9a;--faint: #6a6a6a;--accent: #0098ff;--accent-2: #007acc;--accent-soft: rgba(0, 152, 255, .14);--ok: #89d185;--ok-soft: rgba(137, 209, 133, .13);--warn: #cca700;--warn-soft: rgba(204, 167, 0, .15);--bad: #f14c4c;--bad-soft: rgba(241, 76, 76, .13);--purple: #c586c0;--purple-soft: rgba(197, 134, 192, .13);--shadow: 0 10px 32px rgba(0, 0, 0, .5);--shadow-s: 0 2px 10px rgba(0, 0, 0, .35)}.theme-midnight{--bg: #000000;--bg2: #0b0b10;--bg3: #12121a;--bg4: #1b1b26;--line: #1e1e2a;--line2: #2b2b3a;--glass: rgba(0, 0, 0, .88);--scrim: rgba(0, 0, 0, .86);--text: #eceef4;--muted: #9aa0b4;--faint: #5d6474;--accent: #6cb0ff;--accent-2: #4a92f0;--accent-soft: rgba(108, 176, 255, .15);--ok: #3ce0a0;--ok-soft: rgba(60, 224, 160, .12);--warn: #ffc75e;--warn-soft: rgba(255, 199, 94, .12);--bad: #ff7a70;--bad-soft: rgba(255, 122, 112, .12);--purple: #b39bff;--purple-soft: rgba(179, 155, 255, .14);--shadow: 0 10px 32px rgba(0, 0, 0, .65);--shadow-s: 0 2px 10px rgba(0, 0, 0, .4);--grad-brand: linear-gradient(135deg, #3d8ef0 0%, #8a68ff 100%);--mesh: radial-gradient(520px 340px at 88% -6%, rgba(108, 176, 255, .09), transparent 62%), radial-gradient(460px 320px at -8% 12%, rgba(179, 155, 255, .07), transparent 60%)}.theme-dark body,.theme-midnight body{background-image:var(--mesh);background-attachment:fixed}*{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:radial-gradient(1100px 500px at 85% -10%,rgba(77,159,255,.07),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(169,139,255,.05),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}.theme-light body{background-image:var(--mesh);background-attachment:fixed}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--mono);font-size:12.5px}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.01em}::selection{background:#4d9fff52}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line2);border-radius:8px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:12px}.grow{flex:1}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.big{font-size:16px}.center{text-align:center}.spacer{flex:1}.mt0{margin-top:0}.nowrap{white-space:nowrap}.card{background:linear-gradient(180deg,rgba(255,255,255,.015),transparent 40%),var(--bg2);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card.click{cursor:pointer;transition:border-color .15s,transform .15s}.card.click:hover{border-color:var(--line2);transform:translateY(-1px)}.card>h3:first-child{margin-top:0}.card h3{margin:0 0 12px;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;display:flex;align-items:center;gap:7px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.card-title h3{margin:0}.stat{display:flex;flex-direction:column;gap:2px}.stat .v{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.15}.stat .l{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.stat .sub{color:var(--faint);font-size:11px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.metric{background:var(--bg2);border:1px solid var(--line);border-radius:var(--radius-s);padding:10px 12px;display:flex;flex-direction:column;gap:1px}.metric .mv{font-size:17px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums}.metric .ml{color:var(--muted);font-size:11px;display:flex;align-items:center;gap:5px}.metric .mt{color:var(--faint);font-size:10.5px}.pbar{height:8px;background:var(--line);border-radius:4px;overflow:hidden;min-width:70px}.pbar>span{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .3s}.pbar.ok>span{background:var(--ok)}.pbar.warn>span{background:var(--warn)}.pbar.bad>span{background:var(--bad)}.pbar-row{display:flex;align-items:center;gap:8px;min-width:140px}.pbar-row .pbar{flex:1}.pbar-row .pv{font-family:var(--mono);font-size:11.5px;color:var(--muted);white-space:nowrap}button,.btn{background:var(--accent);color:#fff;border:0;border-radius:var(--radius-s);padding:8px 14px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:var(--font);line-height:1.3;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,border-color .15s,color .15s,opacity .15s}button:hover,.btn:hover{background:var(--accent-2)}button:active{transform:translateY(.5px)}button.ghost{background:transparent;border:1px solid var(--line2);color:var(--text)}button.ghost:hover{border-color:var(--accent);background:var(--bg3)}button.danger{background:var(--bad)}button.danger:hover{background:#d95048}button.danger.ghost{background:transparent;border-color:#f2635b66;color:var(--bad)}button.danger.ghost:hover{border-color:var(--bad);background:var(--bad-soft)}button.small{padding:4px 10px;font-size:12px;border-radius:7px;gap:5px}button.big{padding:11px 20px;font-size:14.5px;border-radius:10px}button.iconbtn{padding:7px;border-radius:8px}button.send-btn{padding:6px 7px;border-radius:8px;flex:none;color:var(--muted)}button:disabled{opacity:.45;cursor:default;pointer-events:none}button.busy{position:relative;color:transparent}button.busy:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}button.ghost.busy:after{border-color:#93a1b159;border-top-color:var(--muted)}input,select,textarea{background:var(--bg3);color:var(--text);border:1px solid var(--line2);border-radius:var(--radius-s);padding:8px 11px;font-size:13.5px;font-family:var(--font);transition:border-color .15s}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:16px;height:16px;padding:0}input:hover,select:hover,textarea:hover{border-color:#384858}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input::placeholder,textarea::placeholder{color:var(--faint)}textarea{font-family:var(--mono);width:100%;resize:vertical}label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:0 0 5px}.field{display:flex;flex-direction:column}.field .hint{font-size:11px;color:var(--faint);margin-top:4px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.switch{position:relative;display:inline-block;width:38px;height:22px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch .track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg4);border:1px solid var(--line2);border-radius:99px;cursor:pointer;transition:.2s}.switch .track:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:var(--muted);border-radius:50%;transition:.2s}.switch input:checked+.track{background:var(--accent-soft);border-color:var(--accent)}.switch input:checked+.track:before{transform:translate(16px);background:var(--accent)}.switch input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg2)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--bg3);position:sticky;top:0}.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:#ffffff05}.tbl tr.click{cursor:pointer}.tbl tr.tbl-grp td{padding:7px 12px;background:var(--bg4);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.tbl tr.tbl-grp td .normal{font-weight:500;text-transform:none;letter-spacing:0}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:2.5px 10px;font-size:11.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.purple{background:var(--purple-soft);color:var(--purple)}.badge.gray{background:var(--bg4);color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot.pulse{animation:pulse 2s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 #37d39980}70%{box-shadow:0 0 0 7px #37d39900}to{box-shadow:0 0 #37d39900}}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{background:transparent;color:var(--muted);border-radius:9px 9px 0 0;padding:10px 15px;border-bottom:2px solid transparent;font-weight:600;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.tabs button:hover{background:transparent;color:var(--text)}.tabs button.on{color:var(--text);border-bottom-color:var(--accent);background:transparent}.seg{display:inline-flex;background:var(--bg3);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}.seg button{background:transparent;color:var(--muted);border-radius:7px;padding:5px 12px;font-size:12.5px;font-weight:600;border:0}.seg button:hover{background:var(--bg4);color:var(--text)}.seg button.on{background:var(--accent);color:#fff}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#04070bad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:60;padding:16px;animation:fadein .14s ease-out}.modal{background:var(--bg2);border:1px solid var(--line2);border-radius:14px;max-width:600px;width:100%;max-height:88vh;overflow:auto;box-shadow:var(--shadow);animation:pop .16s ease-out}.modal header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg2);z-index:1}.modal header h3{font-size:15px}.modal .modal-body{padding:16px 18px}.modal footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 18px 16px}@keyframes fadein{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.97) translateY(6px)}}.path-cards{display:flex;flex-direction:column;gap:10px}.path-card{display:flex;align-items:center;gap:14px;width:100%;padding:13px 14px;text-align:left;font:inherit;color:var(--text);background:var(--bg3);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,transform .15s}.path-card:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.path-card:disabled{opacity:.45;cursor:not-allowed}.path-card .path-ico{flex:0 0 auto;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}.path-card .pc-main{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.path-card .pc-sub{color:var(--muted);font-size:12.5px}.path-card .pc-note{color:var(--muted);font-size:12px}.path-card .pc-note.warn{color:var(--warn)}.qm{width:16px;height:16px;padding:0;border-radius:50%;border:1px solid var(--line2);background:var(--bg4);color:var(--muted);font-size:10.5px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.qm:hover,.qm.on{color:var(--accent);border-color:var(--accent)}.hint-box{margin-top:8px;padding:8px 10px;border-left:2px solid var(--accent);border-radius:0 8px 8px 0;background:var(--bg4);color:var(--muted);font-size:12.5px}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:var(--bg3);border:1px solid var(--line2);border-left:3px solid var(--accent);border-radius:10px;padding:11px 14px;min-width:240px;max-width:380px;box-shadow:var(--shadow-s);font-size:13px;animation:slidein .18s ease-out;cursor:pointer}.toast.error{border-left-color:var(--bad)}.toast.ok{border-left-color:var(--ok)}.toast.warn{border-left-color:var(--warn)}@keyframes slidein{0%{opacity:0;transform:translate(14px)}}.skeleton{border-radius:8px;background:linear-gradient(100deg,var(--bg3) 40%,var(--bg4) 50%,var(--bg3) 60%);background-size:200% 100%;animation:shimmer 1.4s infinite linear}@keyframes shimmer{to{background-position:-200% 0}}.spinner{display:inline-block;animation:spin .7s linear infinite;border-radius:50%;border:2.5px solid var(--line2);border-top-color:var(--accent)}.empty{color:var(--muted);text-align:center;padding:36px 16px;display:flex;flex-direction:column;align-items:center;gap:10px}.empty .icon{opacity:.5}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.search{position:relative;display:flex;align-items:center}.search .icon{position:absolute;left:10px;color:var(--faint);pointer-events:none}.search input{padding-left:34px;min-width:220px}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:13px}.kv .k{color:var(--muted)}.kv .v{font-family:var(--mono);font-size:12.5px;word-break:break-all;text-align:right}.term{background:#070a0e;border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:12.5px;line-height:1.55;color:#c6d2de}.term .in{color:var(--accent)}.term .out{color:var(--ok)}.term .err{color:var(--bad)}.term .ts{color:var(--faint);margin-right:8px}.shell{display:flex;min-height:100dvh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg2);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:3px;position:sticky;top:0;height:100dvh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 16px}.brand .logo{width:34px;height:34px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,var(--accent),var(--purple));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px}.brand b{font-size:15px}.brand .tag{font-size:10.5px;color:var(--faint);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.navlink{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;font-weight:600;font-size:13.5px;color:var(--muted);text-decoration:none;transition:background .12s,color .12s}.navlink:hover{background:var(--bg3);color:var(--text);text-decoration:none}.navlink.on{background:var(--accent-soft);color:var(--accent)}.navlink .icon{flex-shrink:0}.nav-sep{margin:10px 10px 6px;font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.content{flex:1;min-width:0;padding:22px 26px 60px;width:100%}.page{max-width:1160px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.page-head h2{font-size:19px}.page-head .sub{color:var(--muted);font-size:13px;margin-top:2px}.app-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.app-bar .iconbtn{min-width:38px;min-height:38px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 0 max(8px,env(safe-area-inset-bottom))}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 18px;border-radius:10px;color:var(--faint);font-size:10.5px;font-weight:600;text-decoration:none;min-width:64px}.bottom-nav a.on{color:var(--accent)}.bottom-nav a:hover{text-decoration:none}.mobile-page{flex:1;padding:12px 12px 90px;width:100%;max-width:680px;margin:0 auto}.update-banner{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:10px;background:var(--bg2);border:1px solid var(--accent);border-radius:var(--radius);padding:10px 12px;box-shadow:0 10px 28px #00000059;animation:fadein .2s ease-out}.update-banner .ub-icon{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff}.update-banner .grow{min-width:0}.update-banner .muted.small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.update-banner button{flex-shrink:0}.update-banner .iconbtn{border:none}.install-banner{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:39;display:flex;align-items:center;gap:10px;background:var(--bg2);border:1px solid var(--purple);border-radius:var(--radius);padding:10px 12px;box-shadow:0 10px 28px #00000059;animation:fadein .2s ease-out}.install-banner .ub-icon{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--purple));color:#fff}.install-banner .grow{min-width:0}.install-banner .muted.small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.install-banner button{flex-shrink:0}.install-banner .iconbtn{border:none}.tour-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;animation:fadein .18s ease-out}.tour-spot{position:absolute;border-radius:14px;border:1.5px solid var(--accent);box-shadow:0 0 0 200vmax #04080eb8,0 0 14px var(--accent-soft);transition:top .28s ease,left .28s ease,width .28s ease,height .28s ease;pointer-events:none}.tour-card{position:absolute;width:min(340px,calc(100vw - 24px));background:var(--bg2);border:1px solid var(--line2);border-radius:14px;box-shadow:var(--shadow);padding:14px 16px 12px;transition:left .28s ease,top .28s ease}.tour-card .tour-step{font-size:10.5px;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.tour-card h3{margin:5px 0 6px;font-size:15.5px;display:flex;align-items:center;gap:8px}.tour-card h3 .icon{color:var(--accent);flex-shrink:0}.tour-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.tour-card footer{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}.tour-chk{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer}.tour-chk input{accent-color:var(--accent)}.guide-flash{border-color:var(--accent)!important;animation:guide-pulse .9s ease-in-out 2}@keyframes guide-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 8px var(--accent-soft),0 0 18px var(--accent-soft)}}.help-btn span{font-size:19px;font-weight:800;line-height:1}.map{width:100%;border-radius:var(--radius);overflow:hidden;position:relative;border:1px solid var(--line)}.maplibregl-ctrl-attrib{background:var(--glass)!important}.maplibregl-ctrl-attrib a{color:var(--muted)!important}.maplibregl-popup-content{background:var(--bg2)!important;color:var(--text)!important;font-family:var(--font)!important;border:1px solid var(--line2);border-radius:10px!important;padding:10px 12px!important}.maplibregl-popup-tip{border-top-color:var(--bg2)!important;border-bottom-color:var(--bg2)!important}.map-overlay{position:absolute;z-index:5;display:flex;gap:8px}.map-topleft{top:10px;left:10px;flex-direction:column;align-items:flex-start}.map-topright{top:10px;right:10px;flex-direction:column;align-items:flex-end}.map-chip{display:inline-flex;align-items:center;gap:7px;background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line2);border-radius:9px;padding:6px 11px;font-size:12px;font-weight:600;box-shadow:var(--shadow-s)}.dev-marker{position:relative;width:34px;height:34px;cursor:pointer;color:#4d9fff}.dev-marker .dm-arrow{position:absolute;left:50%;top:50%;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:10px solid currentColor;opacity:.9;transform:translate(-50%,-50%) rotate(var(--h, 0deg)) translateY(-23px);filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.dev-marker .dm-pulse{position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:50%;border:2px solid currentColor;opacity:0;pointer-events:none}.dev-marker .dm-body{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;border:2.5px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 10px #00000073}.dev-marker.moving .dm-pulse{animation:dm-pulse 2s ease-out infinite}@keyframes dm-pulse{0%{transform:scale(.85);opacity:.4}75%,to{transform:scale(1.5);opacity:0}}.fav-marker{width:18px;height:18px;border-radius:50% 50% 50% 4px;background:var(--warn);border:2px solid #fff;box-shadow:0 1px 5px #00000080;transform:rotate(-45deg)}.map-cluster{display:flex;align-items:center;justify-content:center;border-radius:50%;border:2.5px solid #fff;color:#fff;font-size:13px;font-weight:800;cursor:pointer;box-sizing:border-box;box-shadow:0 2px 10px #00000073;transition:filter .15s ease}.map-cluster:hover{filter:brightness(1.15)}.timeline{display:flex;align-items:center;gap:10px;padding:10px 14px;flex-wrap:wrap}.timeline input[type=range]{flex:1;min-width:160px;accent-color:var(--accent)}.legend-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.legend-chip .swatch{width:10px;height:10px;border-radius:3px}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:10px}.tpl-card{text-align:left;padding:14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;color:var(--text)}.tpl-card .tname{font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:8px;color:var(--text)}.tpl-card .tdesc{color:var(--muted);font-size:12px;line-height:1.45}.tpl-card:hover{border-color:var(--accent)}.zone-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--bg2)}.zone-swatch{width:14px;height:14px;border-radius:4px;flex-shrink:0;border:1px solid rgba(255,255,255,.25)}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:380px;padding:30px 28px;display:flex;flex-direction:column;gap:4px}@media (max-width: 900px){:root{--sidebar-w: 64px}.sidebar .navlink span,.sidebar .brand b,.sidebar .brand .tag,.sidebar .nav-sep,.sidebar .side-extra{display:none}.sidebar .navlink{justify-content:center;padding:11px}.sidebar .brand{justify-content:center;padding-bottom:14px}.content{padding:16px 14px 50px}}.theme-pop{bottom:calc(100% + 6px)}@media (max-width: 640px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;flex-direction:row;align-items:center;gap:2px;padding:6px 8px;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{padding:0 4px 0 0}.sidebar .navlink span,.sidebar .nav-sep{display:none}.sidebar .navlink{padding:9px;flex-shrink:0}.sidebar .grow{display:none}.sidebar .side-extra{display:flex;margin:0;flex-shrink:0}.theme-pop{bottom:auto;top:calc(100% + 6px)}.row{flex-wrap:wrap}.tabgroups{flex-direction:column;align-items:stretch;gap:4px}.setup-shell{flex-direction:column}.setup-nav{width:100%;flex-direction:row;overflow-x:auto}.setup-item{white-space:nowrap}.cat-nav{width:100%;flex-direction:row;overflow-x:auto}.cat-item{white-space:nowrap}.content{padding:12px 10px 40px}}@media (max-width: 640px){h1{font-size:19px}.page-head h2{font-size:17px}.stat .v{font-size:20px}.card{padding:13px}.search input{min-width:0;width:100%}.search{flex:1}input,select,textarea{font-size:16px}.seg button{padding:6px 12px;font-size:13px;min-height:34px}.metric .mv{font-size:16px}.metric{padding:9px 10px}button.big{padding:12px 18px}.timeline input[type=range]{min-width:120px}}.car-hero{position:relative;border-radius:22px;overflow:hidden;padding:14px 14px 10px;border:1px solid var(--line);background:radial-gradient(420px 210px at 50% -18%,rgba(255,255,255,.4),transparent 64%),linear-gradient(160deg,#16334f,#1d2a44 52%,#232a3d);color:#eef4fb}.car-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(260px 180px at 12% 8%,rgba(77,159,255,.28),transparent 60%),radial-gradient(300px 200px at 88% 92%,rgba(124,92,224,.26),transparent 62%)}.car-hero>*{position:relative;z-index:1}.car-hero .hero-status{display:flex;align-items:center;justify-content:center;gap:10px;padding:2px 0 8px;font-size:12.5px;font-weight:600;color:#c8d6e8}.car-hero .hero-status .dot{background:currentColor}.car-hero .plate{margin-top:2px}.hero-chips{position:absolute;top:10px;inset-inline:10px;z-index:2;display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.hero-chip{display:inline-flex;align-items:center;gap:6px;background:#0d141e8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);border-radius:99px;padding:5px 11px;font-size:12px;font-weight:700;color:#e8eef7;font-family:var(--mono);font-variant-numeric:tabular-nums;box-shadow:0 2px 8px #0000004d;cursor:pointer;transition:border-color .15s,transform .1s}.hero-chip:hover{border-color:#fff6}.hero-chip:active{transform:scale(.96)}.hero-chip .icon{color:#9fb6cd}.hero-chip.warn{border-color:#ffb8008c}.hero-chip.warn .icon,.hero-chip.warn .hv{color:var(--warn)}.hero-chip.bad{border-color:#f2635b99}.hero-chip.bad .icon,.hero-chip.bad .hv{color:var(--bad)}.hero-chip.ok{border-color:#2ecc7199}.hero-chip.ok .icon,.hero-chip.ok .hv{color:#2ecc71}.car-accent-ring{position:absolute;top:4%;right:2%;bottom:4%;left:2%;border-radius:26px;border:2px solid transparent;pointer-events:none;z-index:1}.hero-setup{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px;font-size:11.5px;font-weight:600;color:#ffd479}.hero-setup .icon{flex-shrink:0}.theme-light .car-hero .badge.gray{background:#ffffff24;color:#c8d6e8}.theme-light .car-hero .badge.accent{background:#4d9fff40;color:#bfe0ff}.car-scene{position:relative;display:flex;align-items:center;justify-content:center;perspective:700px;direction:ltr}.car3d-model{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.car3d-model canvas{max-width:100%}.car-glow{position:absolute;top:8%;right:6%;bottom:8%;left:6%;border-radius:50%;filter:blur(14px);animation:glow-breathe 3.6s ease-in-out infinite;pointer-events:none}@keyframes glow-breathe{0%,to{opacity:.5}50%{opacity:1}}.car-tilt{position:absolute;left:50%;top:50%;transform:rotateX(-18deg) scale(1.32);transform-style:preserve-3d}.car-turn{position:absolute;transform-style:preserve-3d;animation:car-turn 15s linear infinite}@keyframes car-turn{0%{transform:translateY(34px) rotateY(0)}to{transform:translateY(34px) rotateY(360deg)}}.car-box{position:absolute;transform-style:preserve-3d;width:0;height:0}.car-face{position:absolute;border-radius:3px;backface-visibility:hidden}.car-wheel{position:absolute;width:28px;height:28px;margin:-14px;border-radius:50%;background:#10151c;border:4px solid #2c3947;box-shadow:inset 0 0 0 2px #46586c;backface-visibility:hidden}.car-rim{position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:50%;background:#46586c;opacity:.85}.car-shadow{position:absolute;left:50%;top:74%;width:150px;height:40px;margin:-20px -75px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.5),transparent 72%);pointer-events:none}@media (prefers-reduced-motion: reduce){.car-glow{animation:none}}.plate{display:inline-flex;align-items:stretch;border-radius:7px;overflow:hidden;border:2px solid #cfd7de;background:#f6f8fa;color:#16202b;font-family:var(--font);direction:ltr;box-shadow:0 2px 8px #0000002e}.plate .plate-strip{background:#17427c;color:#fff;font-size:9px;display:flex;align-items:center;padding:0 6px;font-weight:700;letter-spacing:.05em}.plate .plate-num{font-size:17px;font-weight:800;letter-spacing:.14em;padding:4px 12px;font-variant-numeric:tabular-nums}.plate.empty{opacity:.7}.plate.empty .plate-num{font-size:11.5px;font-weight:600;color:#4a5a68;letter-spacing:.02em}.batt-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--bg2);min-height:62px}.batt-row .bv{font-size:17px;font-weight:800;font-family:var(--mono);font-variant-numeric:tabular-nums}.batt-icon{position:relative;width:44px;height:20px;border:2px solid var(--muted);border-radius:4px;flex-shrink:0}.batt-icon:after{content:"";position:absolute;right:-5px;top:4px;width:3px;height:8px;background:var(--muted);border-radius:0 2px 2px 0}.batt-icon .fill{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:2px;background:var(--ok);transform-origin:left}.batt-row.warn .batt-icon,.batt-row.warn .batt-icon:after{border-color:var(--warn)}.batt-row.warn .fill{background:var(--warn)}.batt-row.bad .batt-icon,.batt-row.bad .batt-icon:after{border-color:var(--bad)}.batt-row.bad .fill{background:var(--bad)}.lang-row{display:flex;gap:8px;flex-wrap:wrap}.scan-tile{background:var(--bg2);border:1px solid var(--line);border-radius:18px;padding:16px 22px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text);cursor:pointer;transition:border-color .15s,transform .15s}.scan-tile:hover{border-color:var(--accent);transform:translateY(-1px)}.scan-tile .scan-frame{position:relative;width:96px;height:96px;border-radius:14px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;overflow:hidden}.scan-tile .scan-tile-label{font-size:12.5px;font-weight:700;color:var(--accent)}.scan-sweep{position:absolute;left:6%;right:6%;height:2px;top:8%;background:linear-gradient(90deg,transparent,var(--accent),transparent);border-radius:2px;box-shadow:0 0 8px var(--accent);animation:scan-sweep 2.2s ease-in-out infinite}@keyframes scan-sweep{0%{top:10%;opacity:0}12%{opacity:1}88%{opacity:1}to{top:88%;opacity:0}}.scan-corner{position:absolute;width:16px;height:16px;border:2.5px solid var(--accent)}.scan-corner.tl{top:5px;left:5px;border-right:0;border-bottom:0;border-radius:4px 0 0}.scan-corner.tr{top:5px;right:5px;border-left:0;border-bottom:0;border-radius:0 4px 0 0}.scan-corner.bl{bottom:5px;left:5px;border-right:0;border-top:0;border-radius:0 0 0 4px}.scan-corner.br{bottom:5px;right:5px;border-left:0;border-top:0;border-radius:0 0 4px}.cam-view{position:relative;border-radius:14px;overflow:hidden;background:#000}.cam-view video{width:100%;min-height:240px;display:block;object-fit:cover}.cam-frame{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.cam-frame .scan-corner{border-color:#fff}.cam-frame .scan-sweep{left:30%;right:30%}.cam-frame>.scan-corner.tl{top:18%;left:18%}.cam-frame>.scan-corner.tr{top:18%;right:18%}.cam-frame>.scan-corner.bl{bottom:18%;left:18%}.cam-frame>.scan-corner.br{bottom:18%;right:18%}@media (prefers-reduced-motion: reduce){.scan-sweep{animation:none;top:46%;opacity:.8}}.qa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.qa-btn{flex-direction:column;gap:6px;padding:12px 10px;background:var(--bg2);border:1px solid var(--line);color:var(--text);font-size:12.5px;min-height:66px}.qa-btn:hover{border-color:var(--accent);background:var(--bg3)}.qa-btn .icon{color:var(--accent)}.bm-pop{position:absolute;bottom:40px;left:0;min-width:185px;background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line2);border-radius:10px;padding:5px;box-shadow:var(--shadow-s);display:flex;flex-direction:column;gap:2px}.bm-opt{background:transparent;border:0;color:var(--text);border-radius:7px;padding:7px 10px;font-size:12.5px;font-weight:600;text-align:start;justify-content:flex-start}.bm-opt:hover{background:var(--bg4)}.bm-opt.on{background:var(--accent-soft);color:var(--accent)}.bm-local{border-top:1px solid var(--line);margin-top:4px;padding-top:8px;display:flex;flex-direction:column;gap:5px}.bm-local label{margin:0;font-size:10.5px}.bm-local input{font-size:11px;padding:5px 8px}.bm-fb{font-size:10.5px;color:var(--muted);background:var(--glass);border:1px solid var(--line);padding:1px 7px;border-radius:8px;margin-top:-2px}.tiny-map{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);cursor:pointer}.tiny-map .maplibregl-ctrl-group{display:none}.tiny-map .tap-hint{position:absolute;inset:auto 0 0 0;z-index:6;text-align:center;padding:6px;background:linear-gradient(transparent,var(--scrim));color:#fff;font-size:11.5px;font-weight:600}html[dir=rtl] .metric .mv,html[dir=rtl] .stat .v,html[dir=rtl] .plate{direction:ltr}html[dir=rtl] .term{direction:ltr;text-align:left}html[dir=rtl] .map-overlay.map-topleft{left:auto;right:10px;align-items:flex-end}html[dir=rtl] .map-overlay.map-topright{right:auto;left:10px;align-items:flex-start}html[dir=rtl] .map-overlay[style*="bottom: 10px"]{left:auto;right:10px}.theme-light:not(.admin-scope) button:not(.ghost):not(.danger):not(.seg *):not(.bm-opt):not(.tpl-card):not(.qa-btn):not(.devtab):not(.rch):not(.ntag):not(.metric):not(.batt-row):not(.qp-chip):not(.ph-x):not(.scroll-fab):not(.theme-opt):not(.bp-card):not(.svc-pick):not(.mm-chip):not(.hero-chip),.theme-dark:not(.admin-scope) button:not(.ghost):not(.danger):not(.seg *):not(.bm-opt):not(.tpl-card):not(.qa-btn):not(.devtab):not(.rch):not(.ntag):not(.metric):not(.batt-row):not(.qp-chip):not(.ph-x):not(.scroll-fab):not(.theme-opt):not(.bp-card):not(.svc-pick):not(.mm-chip):not(.hero-chip),.theme-midnight:not(.admin-scope) button:not(.ghost):not(.danger):not(.seg *):not(.bm-opt):not(.tpl-card):not(.qa-btn):not(.devtab):not(.rch):not(.ntag):not(.metric):not(.batt-row):not(.qp-chip):not(.ph-x):not(.scroll-fab):not(.theme-opt):not(.bp-card):not(.svc-pick):not(.mm-chip):not(.hero-chip){background:var(--grad-brand, var(--accent));box-shadow:0 6px 18px #2f7fe052}.theme-light:not(.admin-scope) button:not(.ghost):not(.danger):not(.seg *):not(.bm-opt):not(.tpl-card):not(.qa-btn):not(.devtab):not(.rch):not(.ntag):not(.metric):not(.batt-row):not(.qp-chip):not(.ph-x):not(.scroll-fab):not(.theme-opt):not(.bp-card):not(.svc-pick):not(.mm-chip):not(.hero-chip):hover,.theme-dark:not(.admin-scope) button:not(.ghost):not(.danger):not(.seg *):not(.bm-opt):not(.tpl-card):not(.qa-btn):not(.devtab):not(.rch):not(.ntag):not(.metric):not(.batt-row):not(.qp-chip):not(.ph-x):not(.scroll-fab):not(.theme-opt):not(.bp-card):not(.svc-pick):not(.mm-chip):not(.hero-chip):hover,.theme-midnight:not(.admin-scope) button:not(.ghost):not(.danger):not(.seg *):not(.bm-opt):not(.tpl-card):not(.qa-btn):not(.devtab):not(.rch):not(.ntag):not(.metric):not(.batt-row):not(.qp-chip):not(.ph-x):not(.scroll-fab):not(.theme-opt):not(.bp-card):not(.svc-pick):not(.mm-chip):not(.hero-chip):hover{background:var(--grad-brand, var(--accent));filter:brightness(1.07)}.theme-light .card,.theme-dark .card,.theme-midnight .card{border-radius:16px;box-shadow:0 1px 2px #0f19280d}.cat-nav{display:flex;flex-direction:column;gap:2px;width:190px}.cat-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;border:0;color:var(--text);border-radius:8px;padding:7px 10px;font-size:12.5px;font-weight:600;text-align:start}.cat-item:hover{background:var(--bg4)}.cat-item.on{background:var(--accent-soft);color:var(--accent)}.tbl tr.sel td{background:#ffffff08}.setup-shell{gap:14px;flex-wrap:wrap}.setup-nav{display:flex;flex-direction:column;gap:2px;width:178px}.setup-item{display:flex;align-items:center;gap:8px;background:transparent;border:0;color:var(--text);border-radius:8px;padding:8px 10px;font-size:12.5px;font-weight:600;text-align:start}.setup-item:hover{background:var(--bg4)}.setup-item.on{background:var(--accent-soft);color:var(--accent)}.setup-item.hot{color:var(--hot, #ff9f43)}.setup-item.hot .icon,.setup-item.hot svg{color:var(--hot, #ff9f43)}.setup-item.hot:hover{background:#ff9f431f}.setup-item.hot.on{background:#ff9f4329;color:var(--hot, #ff9f43);box-shadow:inset 2px 0 0 var(--hot, #ff9f43)}.mon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.mon-card{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;background:var(--bg2);border-left:3px solid var(--line2)}.mon-card.st-ok{border-left-color:var(--ok)}.mon-card.st-warn{border-left-color:var(--warn)}.mon-card.st-bad{border-left-color:var(--bad);background:var(--bad-soft)}.mon-card.st-info{border-left-color:var(--accent)}.mon-card h3{font-size:12.5px;margin:0 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.mon-kv{gap:5px 14px}.mon-kv .v{display:flex;align-items:center;gap:6px}.src-dot{color:var(--accent);font-weight:700;font-size:14px;line-height:0}.mon-check{display:flex;align-items:center;gap:8px;padding:5px 9px;border-radius:8px;border:1px solid var(--line);font-size:12.5px;background:var(--bg2)}.mon-check.ok span:first-child{color:var(--ok)}.mon-check.warn{border-color:var(--warn)}.mon-check.warn span:first-child{color:var(--warn)}.mon-check.bad{border-color:var(--bad);background:var(--bad-soft)}.mon-check.bad span:first-child{color:var(--bad)}.ota-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg2);font-size:13px}.ota-banner.ok{border-color:var(--ok);background:var(--ok-soft)}.ota-banner.warn{border-color:var(--warn);background:var(--warn-soft)}.ota-banner.bad{border-color:var(--bad);background:var(--bad-soft)}.sigbar{display:inline-block;width:3.5px;border-radius:1px}.ok-text{color:var(--ok)}.bad-text{color:var(--bad)}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg3);border:1px solid var(--line);border-radius:9px;padding:4px 9px;font-size:12px;font-weight:600;color:var(--muted)}.chip-on{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.chip input[type=checkbox]{accent-color:var(--accent);margin:0}.tabgroups{display:flex;gap:4px 30px;flex-wrap:wrap;align-items:flex-end}.tabgroup{min-width:0}.tabgroup-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.9px;color:var(--faint);margin:0 0 2px 2px}.tabgroup .tabs{margin-bottom:14px}.cmdfeed{position:sticky;bottom:10px;margin-top:16px;z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line2);box-shadow:var(--shadow)}.cmdfeed-head{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:0;color:var(--text);font-size:13px;padding:10px 14px;cursor:pointer;text-align:start}.cmdfeed-head:hover{color:var(--accent)}.cmdfeed-queue{padding:6px 14px 10px;gap:10px;flex-wrap:wrap;border-top:1px dashed var(--line)}.cmdfeed-queue select{padding:3px 8px;font-size:12px;width:auto}.cmdfeed-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:0 14px 12px}.cmd-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:6px 9px;border:1px solid var(--line);border-radius:9px;background:var(--bg2);font-size:12.5px}.cmd-row .ts{color:var(--faint);font-family:var(--mono);font-size:11.5px}.cmd-row .cmd-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cmd-row .cmd-resp{grid-column:1 / -1;color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-row .badge,.cmd-row button{justify-self:end}.devtabs{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;padding-bottom:7px;margin-bottom:2px;border-bottom:1px solid var(--line2)}.devtabs::-webkit-scrollbar{display:none}.devtab{flex-direction:column;gap:3px;padding:6px 11px;min-width:56px;background:var(--bg2);border:1px solid var(--line);color:var(--muted);border-radius:12px;font-size:11px;font-weight:700;white-space:nowrap}.devtab:active{transform:none}.devtab.on{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 12px var(--accent-soft)}.devtab.on .icon{color:#fff}html[dir=rtl] .devtab{min-width:56px}.devtab{position:relative}.devtab-dot{position:absolute;top:-6px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--bad);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg);pointer-events:none}html[dir=rtl] .devtab-dot{right:auto;left:0}.svc-banner{display:flex;align-items:center;gap:10px;width:100%;background:var(--bg2);border:1px solid var(--line2);border-inline-start:3px solid var(--warn);border-radius:var(--radius-s);padding:10px 12px;color:var(--text);font-weight:600;font-size:13px;text-align:start}.svc-banner:hover{border-color:var(--accent);background:var(--bg3)}.svc-banner.due{border-inline-start-color:var(--bad)}.odo-big{font-size:30px;font-weight:800;line-height:1.25}.svc-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.svc-row:last-child{border-bottom:0}.svc-ico{width:34px;height:34px;border-radius:50%;flex:none;background:var(--bg3);color:var(--accent);display:flex;align-items:center;justify-content:center}.svc-row.soon .svc-ico{color:var(--warn);background:var(--warn-soft)}.svc-row.due .svc-ico{color:var(--bad);background:var(--bad-soft)}.svc-pick{display:flex;align-items:center;gap:10px;width:100%;background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:var(--radius-s);padding:7px 10px;font-size:13px;font-weight:600;text-align:start}.svc-pick:hover{border-color:var(--accent);background:var(--bg3)}.svc-pick.on{border-color:var(--accent);background:var(--accent-soft)}.svc-pick .svc-ico{width:28px;height:28px}.svc-pick .svc-def{color:var(--muted);font-size:11.5px;font-weight:500;flex:none}.theme-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line2);box-shadow:inset 0 0 0 1.5px var(--bg2)}.theme-opt.on .theme-dot{border-color:var(--accent)}.theme-row{flex-wrap:wrap;gap:8px}.theme-opt{flex-direction:column;gap:5px;padding:10px 12px;min-width:72px;border-radius:12px}.theme-opt.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.bp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.bp-card{flex-direction:column;gap:8px;padding:16px 12px;align-items:center;text-align:center;background:var(--bg2);border:1px solid var(--line);color:var(--text);font-size:12.5px;font-weight:700;border-radius:14px;min-height:108px;justify-content:center}.bp-card:hover{border-color:var(--accent)}.bp-card .bp-ico{width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}.bp-card .bp-sub{font-size:10.5px;font-weight:600;color:var(--faint);line-height:1.35}.qa-add{background:transparent;border:1.5px dashed var(--line2);color:var(--muted);flex-direction:column;gap:6px;padding:12px 10px;min-height:66px;font-size:12.5px}.qa-add:hover{border-color:var(--accent);color:var(--accent);background:transparent}.qa-add .icon{color:currentColor}.range-chips{display:flex;gap:6px;flex-wrap:wrap}.rch{background:var(--bg2);border:1px solid var(--line);color:var(--muted);padding:7px 13px;border-radius:99px;font-size:12.5px;font-weight:700}.rch:hover{border-color:var(--accent);background:var(--bg2)}.rch.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);box-shadow:none}.rch-custom-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.rch-custom-row input[type=datetime-local]{padding:6px 9px;font-size:12.5px;width:auto}.send-offline{display:flex;gap:9px;align-items:flex-start;margin-top:12px;padding:10px 12px;border:1px solid var(--warn);background:var(--warn-soft);border-radius:10px;font-size:12.5px;color:var(--text)}.send-offline .icon{color:var(--warn);flex-shrink:0;margin-top:1px}.send-offline label{display:flex;gap:7px;align-items:center;margin:6px 0 0;font-size:12.5px;color:var(--text);font-weight:600}.section-sep{border:0;border-top:1px solid var(--line2);margin:4px 0}.dm-arrowbody{position:relative;display:block;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}.dm-arrowbody svg{transform-origin:50% 68%}.dm-pin-style{width:26px;height:30px}.dm-pin{display:block;color:inherit;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}.dm-pin-dot{position:absolute;left:9px;top:8px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px #00000040}.dm-dot{position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:50%;background:currentColor;border:2.5px solid #fff;box-shadow:0 1px 6px #00000073}.dm-diamond{position:absolute;top:7px;right:7px;bottom:7px;left:7px;background:currentColor;border:2px solid #fff;transform:rotate(45deg);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #0006}.dm-diamond svg{transform:rotate(-45deg)}.dm-dot-style{width:30px;height:30px}.dm-diamond-style{width:32px;height:32px}.dm-preview{display:inline-block;width:16px;height:16px;flex-shrink:0;position:relative}.dm-preview.dmp-car,.dm-preview.dmp-truck{border-radius:50%;background:var(--accent);border:2px solid #fff}.dm-preview.dmp-arrow{background:var(--accent);clip-path:polygon(50% 0,100% 100%,50% 72%,0 100%)}.dm-preview.dmp-pin{background:var(--accent);border-radius:50% 50% 50% 4px;transform:rotate(-45deg) scale(.85)}.dm-preview.dmp-dot{border-radius:50%;background:var(--accent);border:2px solid #fff}.dm-preview.dmp-diamond{background:var(--accent);transform:rotate(45deg) scale(.8);border:1.5px solid #fff}.mm-modes{display:flex;gap:5px;flex-wrap:wrap}.mm-chip{display:inline-flex;align-items:center;gap:6px;background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line2);border-radius:99px;padding:6px 12px;font-size:12px;font-weight:700;color:var(--text);box-shadow:var(--shadow-s)}.mm-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.mm-chip.on .icon{color:#fff}.mm-chip .icon{color:var(--accent)}.chip-lbl{display:inline-block;max-width:130px;overflow:hidden;white-space:nowrap;transition:opacity .4s ease,max-width .4s ease}.chip-lbl.hide{opacity:0;max-width:0}.mm-player{position:absolute;left:10px;right:10px;bottom:10px;z-index:7;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line2);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.mm-player .row{gap:8px}.mm-player input[type=range]{accent-color:var(--accent)}.mm-sheet{position:absolute;left:10px;right:10px;bottom:10px;z-index:7;max-height:55%;overflow-y:auto;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line2);border-radius:14px;padding:12px;box-shadow:var(--shadow)}.mm-sheet .card{background:var(--bg2)}.mm-star.on{color:var(--warn);border-color:var(--warn)}.plan-hero{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(135deg,var(--accent-soft),var(--purple-soft));border:1px solid var(--line2);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-s)}.plan-hero.is-ended{background:var(--bg3)}.plan-hero-sub{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;color:var(--muted);font-size:13px}.plan-hero-sub span{display:inline-flex;align-items:center;gap:5px}.plan-days-warm{color:var(--warn);font-weight:600}.plan-pending{border-color:var(--purple)}.plan-cards{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.plan-card{background:var(--bg3);border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;transition:border-color .15s,transform .15s}.plan-card:hover{border-color:var(--line2);transform:translateY(-1px)}.plan-card.is-current{border-color:var(--accent)}.plan-card.is-off{opacity:.55}.plan-card.is-off:hover{border-color:var(--line);transform:none}.plan-price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-top:6px;min-height:24px}.plan-amount{font-size:18px;font-weight:800;font-family:var(--mono);font-variant-numeric:tabular-nums}.plan-method{display:flex;flex-direction:column;gap:4px;text-align:start;background:var(--bg3);border:1px solid var(--line);border-radius:var(--radius-s);padding:10px 12px;cursor:pointer;color:var(--text);font:inherit;transition:border-color .15s,background .15s}.plan-method:hover{border-color:var(--line2)}.plan-method.on{border-color:var(--accent);background:var(--accent-soft)}.scroll-fab{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:40;width:42px;height:42px;border-radius:50%;background:var(--text);color:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-s);cursor:pointer;animation:fadein .2s ease-out}.scroll-fab:hover{filter:brightness(1.12)}.scroll-fab:active{transform:translate(-50%) scale(.94)}button.metric{color:var(--text);background:var(--bg2);border:1px solid var(--line);text-align:start;justify-content:flex-start;align-items:stretch;padding:10px 12px;cursor:pointer;transition:border-color .15s,transform .1s}button.metric:hover{border-color:var(--line2);background:var(--bg3)}button.metric:active{transform:scale(.98)}.metric.qp-add{border-style:dashed;border-color:var(--line2);color:var(--muted);align-items:center;justify-content:center;flex-direction:row;gap:6px}.metric.qp-add:hover{border-color:var(--line2);color:var(--text);background:var(--bg3)}.metric.qp-add:disabled{opacity:.45;cursor:not-allowed;border-color:var(--line);color:var(--muted)}button.batt-row{color:var(--text);font:inherit;width:100%}.batt-row.clickable{cursor:pointer;transition:border-color .15s}.batt-row.clickable:hover{border-color:var(--line2);background:var(--bg3)}.batt-row.clickable:disabled{cursor:default}.qp-mode{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--radius-s)}.qp-mode.checking{opacity:.7}.ntag{background:var(--bg2);border:1px solid var(--line);color:var(--muted);padding:7px 13px;border-radius:99px;font-size:12.5px;font-weight:700}.ntag:hover{border-color:var(--line2);color:var(--text)}.ntag.on{background:var(--text);border-color:var(--text);color:var(--bg)}.qp-chip{display:inline-flex;align-items:center;gap:6px;cursor:pointer;background:var(--bg2);border:1px solid var(--line);border-radius:99px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--muted)}.qp-chip:hover{border-color:var(--line2);color:var(--text)}.qp-chip.on{border-color:var(--text);color:var(--text);box-shadow:0 0 0 1px var(--text)}.qp-chip input[type=checkbox]{accent-color:var(--text);margin:0}.qp-chip:has(input:disabled){opacity:.45;cursor:not-allowed}.ph-chip{background:var(--bg2);border:1px solid var(--line2);color:var(--text)}.ph-dot{width:9px;height:9px;border-radius:50%;flex:none}.ph-x{background:transparent;border:0;padding:2px;display:inline-flex;cursor:pointer;color:var(--muted)}.ph-x:hover{color:var(--bad)}.ph-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.ph-seg .seg button.on{background:var(--text);color:var(--bg)}.ph-stats{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}.ph-stat{display:flex;flex-direction:column;gap:1px}.ph-stat .l{color:var(--muted);font-size:10.5px}.ph-stat .v{font-size:14px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
