:root{--bg:#f4f6f2;--surface:#fff;--surface-2:#eef2ec;--border:#d5ddd2;--text:#17231f;--muted:#5a6b64;--primary:#116d5b;--primary-ink:#fff;--accent:#f5b83d;--ok:#1d8a4e;--warn:#b26a00;--err:#c0362c;--info:#2e6fb5;--wire-power:#d14b3c;--wire-gnd:#2c2c2c;--wire-signal:#116d5b;--wire-analog:#8a4fc4;--wire-i2c:#2e6fb5;--board:#1f3d36;--board-ink:#e9f3ef;--radius:10px;--shadow:0 1px 2px #0000000f, 0 4px 16px #0000000d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0f1614;--surface:#17211e;--surface-2:#1d2a26;--border:#2c3b36;--text:#e4ece8;--muted:#98aaa2;--primary:#3cb397;--primary-ink:#06120f;--accent:#f5b83d;--ok:#4cc27f;--warn:#e3a33a;--err:#ef6a5e;--info:#6aa7ea;--wire-gnd:#9aa6a2;--wire-signal:#3cb397;--board:#10241f;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--primary)}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}code,pre{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85rem}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell{grid-template-columns:220px 1fr;min-height:100%;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:.25rem;padding:1rem .75rem;display:flex}.brand{color:var(--text);align-items:center;gap:.5rem;padding:.25rem .5rem 1rem;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}.nav-link{color:var(--text);border-radius:8px;padding:.5rem .75rem;text-decoration:none;display:block}.nav-link:hover{background:var(--surface-2)}.nav-link[aria-current=page]{background:var(--primary);color:var(--primary-ink)}.sidebar-footer{color:var(--muted);gap:.5rem;margin-top:auto;font-size:.85rem;display:grid}.main{min-width:0;padding:1.5rem 2rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-head p{color:var(--muted);margin:0}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;padding:.5rem}.brand{padding:.25rem .5rem}.sidebar-footer{align-items:center;margin:0 0 0 auto;display:flex}.main{padding:1rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.grid{gap:1rem;display:grid}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-value{font-size:1.75rem;font-weight:700}.stat-label{color:var(--muted);font-size:.85rem}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.stack{gap:.75rem;display:grid}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem .85rem;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.btn-primary:hover{filter:brightness(1.08);background:var(--primary)}.btn-danger{color:var(--err);border-color:color-mix(in srgb, var(--err) 40%, var(--border))}.btn-small{padding:.2rem .55rem;font-size:.85rem}label{gap:.3rem;font-size:.9rem;font-weight:600;display:grid}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font-weight:400}textarea{resize:vertical}.badge{border:1px solid #0000;border-radius:999px;align-items:center;gap:.3rem;padding:.1rem .55rem;font-size:.78rem;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:.5rem;height:.5rem}.badge-online{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, transparent)}.badge-offline{color:var(--muted);background:var(--surface-2)}.badge-error{color:var(--err);background:color-mix(in srgb, var(--err) 12%, transparent)}.badge-warning{color:var(--warn);background:color-mix(in srgb, var(--warn) 14%, transparent)}.badge-plain:before{display:none}.alert{border:1px solid;border-radius:8px;padding:.65rem .85rem}.alert-error{color:var(--err);border-color:color-mix(in srgb, var(--err) 40%, transparent);background:color-mix(in srgb, var(--err) 8%, transparent)}.alert-ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 40%, transparent);background:color-mix(in srgb, var(--ok) 8%, transparent)}.alert-warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, transparent);background:color-mix(in srgb, var(--warn) 8%, transparent)}.empty{text-align:center;color:var(--muted);padding:2rem 1rem}.empty h2{color:var(--text)}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1rem;display:flex;overflow-x:auto}.tab{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:.55rem .9rem;text-decoration:none}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.4rem .5rem;font-size:.9rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}.auth-wrap{place-items:center;min-height:100%;padding:1rem;display:grid}.auth-card{width:min(420px,100%)}.auth-card form{gap:.85rem;display:grid}.project-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.project-card h2 a{color:var(--text);text-decoration:none}.project-card h2 a:hover{text-decoration:underline}.kv{color:var(--muted);flex-wrap:wrap;gap:1rem;font-size:.85rem;display:flex}.builder{grid-template-columns:minmax(230px,270px) minmax(0,1fr) minmax(280px,360px);align-items:start;gap:1rem;display:grid}@media (width<=1280px){.builder{grid-template-columns:minmax(220px,250px) minmax(0,1fr)}.builder>.stack{grid-column:1/-1;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start}.builder>.stack>.card:first-child{grid-column:1/-1}}@media (width<=860px){.builder{grid-template-columns:1fr}}.library details{border-top:1px solid var(--border);padding:.4rem 0}.library summary{cursor:pointer;justify-content:space-between;font-weight:600;display:flex}.library-item{justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem 0;font-size:.9rem;display:flex}.library-item small{color:var(--muted);display:block}.canvas-card{padding:.5rem}.canvas-toolbar{flex-wrap:wrap;align-items:center;gap:.4rem;padding:.25rem .25rem .5rem;display:flex}.canvas-scroll{background:var(--surface-2);border-radius:8px;max-height:72vh;position:relative;overflow:auto}.canvas-scroll svg{display:block}.wire{fill:none;stroke-width:2.5px;stroke-linecap:round;opacity:.85;transition:opacity .15s,stroke-width .15s}.dim .wire:not(.hot){opacity:.15}.wire.hot{stroke-width:4px;opacity:1}.component-card{border:1px solid var(--border);border-radius:8px;gap:.5rem;padding:.65rem;display:grid}.component-card[aria-current=true]{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 30%, transparent)}.pin-row{grid-template-columns:90px 1fr;align-items:center;gap:.5rem;font-size:.88rem;display:grid}.pin-row>label{align-items:center;gap:.35rem;display:flex}.pin-row select{width:100%;min-width:0}.pin-note{grid-column:2;font-size:.8rem}.pin-note.error{color:var(--err)}.pin-note.warning{color:var(--warn)}.issue{border-top:1px solid var(--border);grid-template-columns:auto 1fr;gap:.5rem;padding:.45rem 0;font-size:.88rem;display:grid}.issue:first-child{border-top:0}.issue-fix{color:var(--muted);font-size:.82rem}dialog{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;width:min(760px,94vw);max-height:90vh;padding:0}dialog::backdrop{background:#00000073}.dialog-body{gap:1rem;max-height:calc(90vh - 2px);padding:1.25rem;display:grid;overflow:auto}.code-block{background:var(--board);color:var(--board-ink);white-space:pre;border-radius:8px;max-height:50vh;margin:0;padding:1rem;overflow:auto}.secret{background:var(--surface-2);word-break:break-all;border-radius:6px;padding:.4rem .6rem;font-family:ui-monospace,Consolas,monospace}.badge-info{color:var(--info);background:color-mix(in srgb, var(--info) 12%, transparent)}.table-scroll{position:relative;overflow-x:auto}.condition-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:.75rem;display:grid}.condition-grid select,.condition-grid input{width:100%;min-width:0}.toggle{flex-shrink:0;width:max-content}.field-help{color:var(--muted);grid-column:1/-1;margin:0;font-size:.82rem}.field-help.error{color:var(--err)}input[aria-invalid=true]{border-color:var(--err)}.rule-form{border:1px dashed var(--border);background:var(--surface-2);border-radius:8px;padding:.85rem}fieldset{border:1px solid var(--border);border-radius:8px;margin:0;padding:.6rem .85rem .85rem}legend{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;padding:0 .35rem;font-size:.8rem;font-weight:700}.field{gap:.3rem;display:grid}.field-label{font-size:.9rem;font-weight:600}.incident{border-left:4px solid var(--warn);background:var(--surface-2);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .8rem;display:flex}.incident-critical{border-left-color:var(--err)}.incident-info{border-left-color:var(--info)}.automation-card{border:1px solid var(--border);border-radius:8px;gap:.6rem;padding:.75rem;display:grid}.flow{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.flow-step{background:var(--surface-2);border-radius:8px;flex:180px;padding:.45rem .65rem;font-size:.9rem}.flow-label{text-transform:uppercase;letter-spacing:.05em;color:var(--primary);font-size:.72rem;font-weight:700;display:block}.flow-arrow{color:var(--muted);align-self:center;font-size:1.2rem}.alert-banner{align-items:center;gap:.5rem;text-decoration:none;display:flex}.readonly .edit-only{display:none!important}.builder-readonly{grid-template-columns:minmax(0,1fr) minmax(280px,360px)}@media (width<=1280px){.builder-readonly{grid-template-columns:minmax(0,1fr)}}.join-card{padding:.5rem .75rem}.join-code{letter-spacing:.15em;background:var(--surface-2);border-radius:6px;padding:.15rem .5rem;font-size:1.15rem;font-weight:700}.assignment-row{color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none;display:flex}a.assignment-row:hover{border-color:var(--primary)}.stack>a.assignment-row:not(.card){border-top:1px solid var(--border);padding:.5rem 0}.overdue{color:var(--err)}.instructions{white-space:pre-wrap;overflow-wrap:anywhere}.review-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:1rem;display:grid}.review-layout>*,.wire-row>*{min-width:0}.review-aside{position:sticky;top:1rem}@media (width<=1200px){.review-layout{grid-template-columns:1fr}.review-aside{position:static}}.pin-chips{flex-wrap:wrap;gap:.3rem;display:flex}.pin-chip{background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;border-radius:6px;padding:.1rem .45rem;font-size:.8rem}.pin-chip.missing{color:var(--err);border-color:color-mix(in srgb, var(--err) 40%, var(--border))}.check-row{align-items:flex-start;gap:.5rem;font-weight:400;display:flex}.check-row input{flex-shrink:0;margin-top:.3rem}.assistant{border-color:color-mix(in srgb, var(--primary) 45%, var(--border));grid-column:1/-1}.assistant-head{width:100%;font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.6rem;padding:0;display:flex}.assistant-head>span:nth-child(2){flex:1}.assistant-icon{font-size:1.3rem}.example-prompt{text-align:left;border:1px dashed var(--border);background:var(--surface-2);font:inherit;color:var(--text);cursor:pointer;border-radius:8px;padding:.5rem .7rem;font-size:.88rem}.example-prompt:hover{border-color:var(--primary)}.chat{gap:.75rem;max-height:60vh;padding-right:.25rem;display:grid;overflow-y:auto}.chat-msg{gap:.4rem;display:grid}.chat-user{justify-items:end}.chat-bubble{border-radius:12px;max-width:min(720px,92%);padding:.55rem .8rem;font-size:.92rem}.chat-user .chat-bubble{background:var(--primary);color:var(--primary-ink);border-bottom-right-radius:4px}.chat-assistant .chat-bubble{background:var(--surface-2);border-bottom-left-radius:4px}.chat-questions{color:var(--muted);margin:0;padding-left:1.2rem;font-size:.88rem}.chat-input{align-items:flex-end;gap:.5rem;display:flex}.chat-input textarea{flex:1;min-width:0}.plan-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;gap:.75rem;padding:.75rem;display:grid}.plan-card h4{margin:0 0 .35rem;font-size:.9rem}.plan-card.plan-discarded,.plan-card.plan-stale{opacity:.6}.rule-list{gap:.3rem;margin:0;padding-left:1.2rem;font-size:.9rem;display:grid}.board-rule{border-top:1px solid var(--border);justify-content:space-between;align-items:start;gap:.5rem;padding:.4rem 0;font-size:.88rem;display:flex}.board-rule:first-of-type{border-top:0}.board-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;max-height:60vh;padding:.15rem;display:grid;overflow:auto}.board-option{text-align:center;border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:10px;justify-items:center;gap:.35rem;padding:.75rem .6rem;display:grid}.board-option:hover{border-color:color-mix(in srgb, var(--primary) 50%, var(--border))}.board-option.selected{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 7%, var(--surface))}.board-option svg{background:var(--surface-2);border-radius:8px;width:100%;padding:.3rem}.board-option .muted{font-size:.8rem}.board-tags{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.board-tags .badge{font-size:.7rem}.board-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:.2rem .55rem;font-size:.85rem;font-weight:700}dialog:has(.board-grid){width:min(980px,96vw)}.virtual-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.virtual-part{align-content:start;gap:.65rem;display:grid}.virtual-slider{gap:.25rem;font-weight:400;display:grid}.virtual-slider input{width:100%}.traffic-light{background:#1d1d1d;border-radius:14px;justify-content:center;gap:.35rem;width:max-content;margin:0 auto;padding:.5rem .7rem;display:grid}.tl-lamp{opacity:.2;border-radius:50%;width:30px;height:30px}.tl-red{background:#ff2a2a}.tl-yellow{background:#ffb000}.tl-green{background:#20d65a}.tl-lamp.on{opacity:1;box-shadow:0 0 14px}.tl-red.on{color:#ff2a2a}.tl-yellow.on{color:#ffb000}.tl-green.on{color:#20d65a}.virtual-led{border:2px solid var(--border);background:#5a1010;border-radius:50%;width:34px;height:34px;margin:0 auto}.virtual-led.on{background:#ff3b3b;box-shadow:0 0 16px #ff3b3b}.virtual-buzzer{text-align:center;background:var(--surface-2);border-radius:8px;padding:.4rem}.virtual-buzzer.on{background:color-mix(in srgb, var(--accent) 35%, var(--surface-2));font-weight:700}.virtual-button{border:2px solid var(--border);font:inherit;cursor:pointer;background:var(--surface-2);color:var(--text);-webkit-user-select:none;user-select:none;touch-action:none;border-radius:999px;padding:.6rem}.virtual-button.pressed{background:var(--primary);color:var(--primary-ink);transform:translateY(1px)}.rule-active{background:color-mix(in srgb, var(--ok) 10%, transparent)}.virtual-log{gap:.15rem;max-height:220px;font-family:ui-monospace,Consolas,monospace;font-size:.78rem;display:grid;overflow:auto}.log-out{color:var(--primary)}.log-in{color:var(--warn)}@media (prefers-reduced-motion:reduce){.tl-lamp.on,.virtual-led.on{box-shadow:none}}button.pin-chip{font:inherit;color:var(--text);cursor:pointer;align-items:center;gap:.35rem;font-size:.8rem;display:inline-flex}button.pin-chip.missing{color:var(--err)}button.pin-chip:hover,button.pin-chip.active{border-color:var(--primary)}.chip-count{color:var(--primary);font-size:.72rem}.wire-row{border-top:1px solid var(--border);grid-template-columns:minmax(120px,200px) 1fr;gap:.75rem;padding:.5rem 0;display:grid}@media (width<=600px){.wire-row{grid-template-columns:1fr}}.comments{gap:.4rem;display:grid}.comment{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:6px;padding:.4rem .6rem;font-size:.88rem}.link-button{color:var(--err);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.code-lines{background:var(--board);color:var(--board-ink);border-radius:8px;max-height:60vh;padding:.5rem 0;font-family:ui-monospace,Consolas,monospace;font-size:.8rem;overflow:auto}.code-line{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;white-space:pre;background:0 0;border:0;padding:0 .75rem 0 0;display:flex}.code-line:hover,.code-line.active{background:#ffffff14}.code-line.has-comments .line-no{color:var(--accent);font-weight:700}.line-no{text-align:right;opacity:.55;-webkit-user-select:none;user-select:none;flex:0 0 3.2rem;padding-right:.75rem}.line-text{flex:1}.line-comments{background:var(--surface);color:var(--text);white-space:normal;border-radius:6px;margin:.25rem .75rem .5rem 3.2rem;padding:.5rem;font-family:system-ui,sans-serif}.bell{position:relative}.bell-count{background:var(--err);color:#fff;border-radius:999px;margin-left:.3rem;padding:0 .4rem;font-size:.7rem}.notification{border-top:1px solid var(--border);color:var(--text);grid-template-columns:auto 1fr auto;align-items:start;gap:.6rem;padding:.6rem 0;text-decoration:none;display:grid}.notification.unread strong:before{content:"● ";color:var(--primary)}.monitor-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.reading-value{font-size:1.6rem;font-weight:700}.toggle{border:1px solid var(--border);border-radius:999px;display:inline-flex;overflow:hidden}.toggle button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;padding:.35rem .9rem}.toggle button[aria-pressed=true]{background:var(--primary);color:var(--primary-ink)}.lamp{border:2px solid var(--border);border-radius:50%;width:.85rem;height:.85rem;display:inline-block}.lamp.on{background:var(--accent);border-color:var(--accent);box-shadow:0 0 8px var(--accent)}.spark{width:100%;height:40px}.live-dot{background:var(--ok);border-radius:50%;width:.55rem;height:.55rem;animation:1.6s infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}.wire{transition:none}}.phone{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.phone-bar{z-index:5;padding:.7rem 1rem;padding-top:max(.7rem, env(safe-area-inset-top));background:var(--primary);color:var(--primary-ink);align-items:center;gap:.6rem;display:flex;position:sticky;top:0}.phone-bar strong{font-size:1.05rem}.phone-logo{background:var(--accent);color:#1b1b1b;border-radius:8px;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.phone-back{color:inherit;padding:0 .3rem;font-size:1.8rem;line-height:1;text-decoration:none}.phone-tabs{gap:.25rem;margin-left:auto;display:flex}.phone-tabs a{color:inherit;opacity:.85;border-radius:999px;padding:.35rem .7rem;font-size:.9rem;text-decoration:none}.phone-tabs a[aria-current=page]{background:color-mix(in srgb, var(--primary-ink) 20%, transparent);opacity:1;font-weight:700}.phone-main{width:100%;max-width:640px;padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));flex:1;margin:0 auto}.phone-foot{text-align:center;padding:.5rem 1rem 1.2rem;font-size:.85rem}.phone-stack{gap:.8rem;display:grid}.phone-title{margin:0;font-size:1.35rem}.phone-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1rem}.phone-link{color:var(--text);align-items:center;gap:.75rem;text-decoration:none;display:flex}.phone-link>span:first-child{flex:1;gap:.15rem;min-width:0;display:grid}.phone-link>span:last-child{color:var(--muted);font-size:1.5rem}.phone-alerts{border-color:color-mix(in srgb, var(--err) 45%, var(--border));background:color-mix(in srgb, var(--err) 7%, var(--surface));gap:.3rem;display:grid}.phone-tiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;display:grid}.phone-tile{background:var(--surface-2);border-radius:12px;gap:.15rem;padding:.75rem;display:grid}.phone-tile strong{font-variant-numeric:tabular-nums;font-size:1.6rem}.phone-tile small{font-size:.75rem}.phone-switch{border:1px solid var(--border);background:var(--surface-2);width:100%;min-height:56px;color:var(--text);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;border-radius:14px;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;font-weight:600;display:flex}.phone-knob{background:var(--border);border-radius:999px;flex-shrink:0;width:52px;height:30px;transition:background .15s;position:relative}.phone-knob:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.phone-switch.on{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.phone-switch.on .phone-knob{background:var(--primary)}.phone-switch.on .phone-knob:after{transform:translate(22px)}.phone-switch:disabled{opacity:.6;cursor:default}.phone-chips{flex-wrap:wrap;gap:.4rem;display:flex}.phone-chip{border:1px solid var(--border);background:var(--surface-2);min-height:40px;color:var(--text);font:inherit;text-transform:capitalize;cursor:pointer;border-radius:999px;padding:.4rem .8rem}.phone-chip.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);font-weight:700}.phone-big{width:100%;min-height:52px;font-size:1.05rem}.phone-code{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.8rem}.phone-option{border:1px solid var(--border);border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:1rem;padding:.8rem;display:grid}.phone-option svg{border:1px solid var(--border);border-radius:8px}@media (width<=560px){.phone-option{grid-template-columns:1fr;justify-items:center}}.phone-hint{display:none}@media (width<=700px){.phone-hint{background:color-mix(in srgb, var(--primary) 10%, var(--surface));border-radius:10px;margin-bottom:.75rem;padding:.6rem .8rem;font-weight:600;text-decoration:none;display:block}}@media (prefers-reduced-motion:reduce){.phone-knob,.phone-knob:after{transition:none}}.mfa-code{letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums;font-family:ui-monospace,Consolas,monospace;font-size:1.6rem}.mfa-steps{gap:.3rem;margin:0;padding-left:1.2rem;display:grid}.mfa-qr{justify-items:center;gap:.6rem;display:grid}.mfa-qr svg{border:1px solid var(--border);border-radius:10px}.recovery-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;display:grid}.recovery-grid code{text-align:center;background:var(--surface-2);border-radius:6px;padding:.4rem;font-family:ui-monospace,Consolas,monospace;font-size:1rem}@media print{.recovery-grid code{border:1px solid #999}}
