/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-outline-style:solid}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius-sm:.25rem;--radius-lg:.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.grid{display:grid}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}:root{--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--surface-3:#e9eef4;--border:#e2e8f0;--border-strong:#cbd5e1;--divider:#eef2f6;--text:#1e293b;--text-dim:#64748b;--text-faint:#94a3b8;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-soft:#2563eb1a;--accent-line:#2563eb47;--color-accent:var(--accent);--cta:#f97316;--cta-strong:#ea6a0c;--cta-soft:#f973161f;--ok:#16a34a;--ok-soft:#16a34a1a;--ok-line:#16a34a4d;--ok-ink:#15803d;--busy:#d97706;--busy-soft:#d977061f;--busy-line:#d9770652;--busy-ink:#b45309;--danger:#dc2626;--danger-soft:#dc26261a;--danger-line:#dc26264d;--danger-ink:#b91c1c;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--shadow-1:0 1px 2px #0f172a0f;--shadow-2:0 1px 2px #0f172a0f,0 6px 20px #0f172a14;--shadow-3:0 2px 4px #0f172a0f,0 14px 34px -8px #0f172a29;--shadow-4:0 4px 8px #0f172a14,0 28px 64px -18px #0f172a3d;--ring:0 0 0 2px var(--surface),0 0 0 4px var(--accent);--font-ui:"Fira Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"Fira Code",ui-monospace,"SF Mono",Menlo,monospace;--dur-fast:.15s;--dur:.19s;--dur-slow:.22s;--ease:cubic-bezier(.16,1,.3,1);--ws-bar-h:64px;--ws-console-w:600px}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;font-size:15px;line-height:1.5}body{background-color:var(--bg);background-image:radial-gradient(1100px 560px at 82% -12%,#2563eb0f,#0000 62%),radial-gradient(820px 460px at 4% -4%,#2563eb0a,#0000 58%),linear-gradient(#0f172a06 1px,#0000 0),linear-gradient(90deg,#0f172a06 1px,#0000 0);background-position:0 0,0 0,-1px -1px,-1px -1px;background-size:auto,auto,64px 64px,64px 64px;min-height:100vh}::selection{background:var(--accent-soft);color:var(--text)}a{color:inherit}.brand-sub,.chip,.conn-pill,.control-state .k,.dc-model,.role-tag,.stat .num,.tool-output,.ws-id .sub{font-feature-settings:"tnum" 1}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);min-height:40px;color:var(--text);font:inherit;letter-spacing:.005em;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-1);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur-fast) var(--ease),color var(--dur) var(--ease);padding:0 16px;font-size:14px;font-weight:500;line-height:1;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--border-strong);box-shadow:var(--shadow-2)}.btn:active{background:var(--surface-3);box-shadow:var(--shadow-1);transform:translateY(1px)}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn:disabled:hover{background:var(--surface);border-color:var(--border-strong);box-shadow:none}.btn-accent{background:linear-gradient(180deg,var(--accent) 0,var(--accent-strong) 100%);color:#fff;box-shadow:var(--shadow-2),inset 0 1px 0 #ffffff38;border-color:#0000;font-weight:600}.btn-accent:hover{box-shadow:var(--shadow-3),inset 0 1px 0 #ffffff38;background:linear-gradient(#3b82f6,#2563eb);border-color:#0000}.btn-accent:active{background:linear-gradient(180deg,var(--accent-strong) 0,#1e40af 100%)}.btn-accent:disabled:hover{background:linear-gradient(180deg,var(--accent) 0,var(--accent-strong) 100%);box-shadow:none}.btn-danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger-ink);font-weight:600}.btn-danger:hover{border-color:var(--danger);color:var(--danger-ink);box-shadow:var(--shadow-2);background:#dc262629}.btn-danger:active{background:#dc262633}.btn-danger:disabled:hover{background:var(--danger-soft);border-color:var(--danger-line);box-shadow:none}.btn-ghost{color:var(--text-dim);box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);border-color:var(--border);color:var(--text);box-shadow:none}.btn-ghost:active{background:var(--surface-3)}.btn-ghost:disabled:hover{background:0 0;border-color:#0000}.btn-sm{min-height:34px;padding:0 11px;font-size:13px}.btn-sm,.icon-btn{border-radius:var(--radius-sm)}.icon-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text-dim);cursor:pointer;box-shadow:var(--shadow-1);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur-fast) var(--ease);flex:none;place-items:center;font-size:17px;line-height:1;display:grid}.icon-btn:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text);box-shadow:var(--shadow-2)}.icon-btn:active{transform:translateY(1px)}.icon-btn:focus-visible{box-shadow:var(--ring);outline:none}.app-shell{max-width:1360px;margin:0 auto;padding:22px 24px 96px}.topbar{justify-content:space-between;gap:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);-webkit-backdrop-filter:saturate(120%)blur(14px);backdrop-filter:saturate(120%)blur(14px);z-index:20;background:#ffffffd1;padding:12px 14px 12px 18px;position:sticky;top:14px}.brand,.topbar{align-items:center;display:flex}.brand{gap:var(--sp-3)}.brand-mark{border-radius:var(--radius);background:linear-gradient(150deg,var(--accent) 0,var(--accent-strong) 100%);color:#fff;width:38px;height:38px;font-family:var(--font-mono);box-shadow:var(--shadow-2),inset 0 1px 0 #ffffff4d;place-items:center;font-size:18px;font-weight:600;display:grid}.brand-name{letter-spacing:-.015em;color:var(--text);font-size:16px;font-weight:700;line-height:1.1}.brand-sub{color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;margin-top:3px;font-size:10px;font-weight:500}.status-row{align-items:center;gap:var(--sp-3);display:flex}.conn-pill{font-family:var(--font-mono);color:var(--text-dim);gap:7px;padding:7px 13px;font-size:12px;font-weight:500;display:inline-flex}.conn-pill,.user-chip{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1);align-items:center}.user-chip{gap:10px;padding:5px 6px 5px 12px;display:flex}.user-chip .avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--accent-line);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.role-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:10px;font-weight:500}.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 26px;display:grid}.stat{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);padding:16px 18px;position:relative;overflow:hidden}.stat:before{content:"";background:var(--border-strong);border-radius:3px;width:3px;position:absolute;top:14px;bottom:14px;left:0}.stat .num{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--text);font-size:30px;font-weight:600;line-height:1}.stat .lbl{color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;margin-top:8px;font-size:11px;font-weight:500}.stat.accent{border-color:var(--ok-line);background:linear-gradient(180deg,var(--ok-soft),var(--surface) 70%)}.stat.accent:before{background:var(--ok)}.stat.accent .num{color:var(--ok-ink)}.section-title{align-items:baseline;gap:10px;margin:6px 2px 16px;display:flex}.section-title h2{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:0;font-size:13px;font-weight:600}.section-title span{color:var(--text-faint);font-family:var(--font-mono);font-size:12px}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.device-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;font:inherit;color:inherit;box-shadow:var(--shadow-1);transition:transform var(--dur-slow) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur-slow) var(--ease),background var(--dur) var(--ease);padding:16px 16px 18px;display:block;position:relative;overflow:hidden}.device-card:before{content:"";background:var(--border-strong);height:3px;position:absolute;top:0;left:0;right:0}.device-card:after{content:"";background:radial-gradient(440px 150px at 50% -40%,var(--accent-soft),transparent 70%);opacity:0;transition:opacity var(--dur-slow) var(--ease);pointer-events:none;position:absolute;inset:0}.device-card.online:before{background:var(--ok)}.device-card.busy:before{background:var(--busy)}.device-card.offline:before{background:var(--text-faint)}.device-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-3);transform:translateY(-3px)}.device-card:hover:after{opacity:1}.device-card:focus-visible{box-shadow:var(--ring),var(--shadow-3);outline:none}.device-card.busy{border-color:var(--busy-line)}.device-card.offline{opacity:.6;cursor:not-allowed;background:var(--surface-2);box-shadow:none}.device-card.offline:hover{border-color:var(--border);box-shadow:none;transform:none}.device-card.offline:hover:after{opacity:0}.dc-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.dc-name{letter-spacing:-.01em;color:var(--text);font-size:15px;font-weight:600}.dc-model{color:var(--text-dim);font-family:var(--font-mono);margin-top:3px;font-size:12px}.dc-meta{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.chip{font-family:var(--font-mono);color:var(--text-dim);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);letter-spacing:.01em;padding:3px 8px;font-size:11px}.dc-lock{border-top:1px solid var(--divider);color:var(--busy-ink);align-items:center;gap:7px;margin-top:14px;padding-top:12px;font-size:12px;font-weight:600;display:flex}.status-dot{border-radius:50%;flex:none;width:9px;height:9px}.status-dot.online{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.status-dot.offline{background:var(--text-faint);box-shadow:0 0 0 4px #94a3b829}.status-dot.busy{background:var(--busy);box-shadow:0 0 0 4px var(--busy-soft)}.workspace{z-index:60;background:var(--bg);animation:fade var(--dur) var(--ease);background-image:radial-gradient(1000px 520px at 78% -10%,#2563eb0d,#0000 60%),linear-gradient(#0f172a06 1px,#0000 0),linear-gradient(90deg,#0f172a06 1px,#0000 0);background-position:0 0,-1px -1px,-1px -1px;background-size:auto,64px 64px,64px 64px;flex-direction:column;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.ws-bar{height:var(--ws-bar-h);align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--border);-webkit-backdrop-filter:saturate(120%)blur(14px);backdrop-filter:saturate(120%)blur(14px);box-shadow:var(--shadow-1);z-index:2;background:#ffffffdb;flex:none;padding:0 18px;display:flex}.ws-id{flex-direction:column;justify-content:center;min-width:0;margin-right:auto;display:flex}.ws-id h3{letter-spacing:-.01em;color:var(--text);margin:0;font-size:16px;font-weight:600;line-height:1.15}.ws-id .sub,.ws-id h3{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ws-id .sub{color:var(--text-faint);font-family:var(--font-mono);margin-top:2px;font-size:11.5px}.ws-body{grid-template-columns:minmax(0,1fr) var(--ws-console-w);flex:1;height:100%;min-height:0;display:grid}.ws-stage{justify-content:center;align-items:center;min-width:0;padding:28px;display:flex;position:relative;overflow:hidden}.ws-stage:before{content:"";pointer-events:none;background:radial-gradient(680px 520px at 50% 42%,#2563eb0d,#0000 70%);position:absolute;inset:0}.phone{background:linear-gradient(155deg,#fff,#eef2f7 52%,#e2e8f0);border-radius:42px;padding:10px;position:relative;box-shadow:0 2px 6px #0f172a14,0 30px 70px -24px #0f172a52,inset 0 0 0 1px #ffffffe6,inset 0 0 0 2px #cbd5e18c}.phone:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(150deg,#ffffff8c,#0000 26%);border-radius:42px;position:absolute;inset:0}.phone-screen{z-index:1;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;outline-offset:2px;transition:box-shadow var(--dur) var(--ease),filter var(--dur) var(--ease);background:#0b0f14;border-radius:32px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0f172a1f}.phone-screen.locked{cursor:not-allowed}.phone-screen.locked:after{content:"";pointer-events:none;z-index:2;background:#f8fafc52;position:absolute;inset:0}.phone-screen:focus-visible{outline:2px solid var(--accent)}.phone-screen img,.screen-canvas{object-fit:cover;-webkit-user-drag:none;width:100%;height:100%;image-rendering:-webkit-optimize-contrast;background:#0b0f14;display:block}.tap-ripple{pointer-events:none;z-index:3;width:46px;height:46px;animation:tap-ripple .45s var(--ease) forwards;background:#2563eb2e;border:2px solid #2563ebf2;border-radius:50%;margin:-23px 0 0 -23px;position:absolute}@keyframes tap-ripple{0%{opacity:.95;transform:scale(.25)}to{opacity:0;transform:scale(1.5)}}.screen-empty{color:#9aa6b6;font-family:var(--font-mono);letter-spacing:.02em;z-index:1;background:#0b0f14;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:12.5px;display:flex;position:absolute;inset:0}.spinner{border:2px solid #94a3b84d;border-top:2px solid var(--accent);border-radius:50%;width:26px;height:26px;margin-bottom:12px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.ws-console{border-left:1px solid var(--border);background:var(--surface);box-shadow:-1px 0 0 var(--divider),var(--shadow-2);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;gap:14px;padding:18px;display:flex;overflow-y:auto}.ws-console::-webkit-scrollbar{width:10px}.ws-console::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);border:3px solid var(--surface)}.ws-console::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.control-state{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);flex:none;padding:8px 14px 8px 16px;font-size:13px;font-weight:600;position:relative;overflow:hidden}.control-state:before{content:"";background:var(--text-faint);width:3px;position:absolute;top:0;bottom:0;left:0}.control-state .k{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);margin-bottom:2px;font-size:9.5px;font-weight:500;display:block}.control-state.you{border-color:var(--ok-line);background:var(--ok-soft);color:var(--ok-ink)}.control-state.you:before{background:var(--ok)}.control-state.you .k{color:var(--ok-ink)}.control-state.busy{border-color:var(--busy-line);background:var(--busy-soft);color:var(--busy-ink)}.control-state.busy:before{background:var(--busy)}.control-state.busy .k{color:var(--busy-ink)}.field{flex-direction:column;gap:6px;display:flex}.field label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:500}.input,.text-row input,.tool-body input:not([type]),.tool-body input[type=text]{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:40px;color:var(--text);font:inherit;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease);padding:9px 12px;font-size:14px;box-shadow:inset 0 1px 2px #0f172a0a}.input::placeholder,.text-row input::placeholder,.tool-body input::placeholder{color:var(--text-faint)}.input:hover,.text-row input:hover,.tool-body input:hover{border-color:var(--text-faint)}.input:focus,.input:focus-visible,.text-row input:focus,.text-row input:focus-visible,.tool-body input:focus,.tool-body input:focus-visible{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.text-row{gap:8px;display:flex}.text-row input{flex:1;min-width:0}.key-row{grid-template-columns:repeat(3,1fr)}.key-row,.tools{gap:8px;display:grid}.tools{border-top:1px solid var(--divider);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));align-items:start;margin-top:6px;padding-top:14px}.tool-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);overflow:hidden}.tool-section[open]{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.tool-section>summary{cursor:pointer;color:var(--text-dim);-webkit-user-select:none;user-select:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease);align-items:center;gap:8px;padding:11px 13px;font-size:13px;font-weight:600;list-style:none;display:flex}.tool-section>summary::-webkit-details-marker{display:none}.tool-section>summary:after{content:"›";color:var(--text-faint);transition:transform var(--dur) var(--ease),color var(--dur) var(--ease);margin-left:auto;font-size:16px;font-weight:700;transform:rotate(90deg)}.tool-section:not([open])>summary:after{transform:rotate(0)}.tool-section>summary:hover{background:var(--surface-2);color:var(--text)}.tool-section>summary:hover:after{color:var(--text-dim)}.tool-section>summary:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.tool-section[open]>summary{border-bottom:1px solid var(--divider);background:var(--surface-2);color:var(--text)}.tool-section>summary .tool-title{flex:1}.tool-section>summary .drag-handle{cursor:grab;color:var(--text-faint);transition:color var(--dur) var(--ease),background var(--dur) var(--ease);border-radius:5px;padding:2px 3px;font-size:13px;line-height:1}.tool-section>summary .drag-handle:hover{color:var(--text-dim);background:var(--surface-3)}.tool-section>summary .drag-handle:active{cursor:grabbing}.tool-section.drag-over{border-color:var(--accent);box-shadow:0 -3px 0 -1px var(--accent),var(--shadow-2)}.reset-order{opacity:.65;grid-column:1/-1;margin-top:2px}.reset-order:hover{opacity:1}.tool-body{background:var(--surface);flex-direction:column;gap:11px;padding:13px;display:flex}.tool-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:10.5px;font-weight:500}.seg{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);grid-template-columns:repeat(3,1fr);gap:0;padding:3px;display:grid}.seg-btn{color:var(--text-dim);font:inherit;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);background:0 0;border:none;border-radius:4px;padding:8px 6px;font-size:12.5px;font-weight:500}.seg-btn:hover{color:var(--text)}.seg-btn:focus-visible{box-shadow:var(--ring);outline:none}.seg-btn.on{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-1),inset 0 0 0 1px var(--accent-line);font-weight:600}.slider-row{flex-direction:column;gap:7px;display:flex}.slider-row input[type=range]{appearance:none;border-radius:var(--radius-pill);background:var(--surface-3);cursor:pointer;outline-offset:4px;width:100%;height:6px}.slider-row input[type=range]:focus-visible{outline:2px solid var(--accent)}.slider-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:3px solid var(--surface);width:18px;height:18px;box-shadow:0 0 0 1px var(--accent-line),var(--shadow-1);cursor:pointer;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease);border-radius:50%}.slider-row input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 0 0 4px var(--accent-soft),var(--shadow-1);transform:scale(1.12)}.slider-row input[type=range]::-moz-range-thumb{background:var(--accent);border:3px solid var(--surface);width:18px;height:18px;box-shadow:0 0 0 1px var(--accent-line),var(--shadow-1);cursor:pointer;border-radius:50%}.slider-row input[type=range]::-moz-range-track{border-radius:var(--radius-pill);background:var(--surface-3);height:6px}.switch-row{color:var(--text);justify-content:space-between;align-items:center;gap:10px;padding:3px 0;font-size:13px;font-weight:500;display:flex}.switch-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none}.switch-row input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.onoff{flex:none;gap:6px;display:flex}.tool-output{font-family:var(--font-mono);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);word-break:break-word;grid-column:1/-1;max-height:150px;padding:10px 12px 10px 14px;font-size:12px;line-height:1.55;overflow-y:auto;box-shadow:inset 0 1px 2px #0f172a0d}.tool-output:before{content:"› ";color:var(--accent);font-weight:600}.hint{color:var(--text-dim);font-size:12px;line-height:1.55}.login{place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.login:before{content:"";filter:blur(22px);pointer-events:none;background:radial-gradient(circle,#2563eb1f,#0000 62%);border-radius:50%;width:760px;height:760px;position:absolute}.login-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(420px,100%);box-shadow:var(--shadow-4);padding:32px 30px;position:relative}.login-card .brand{margin-bottom:26px}.login-card h1{letter-spacing:-.02em;color:var(--text);margin:0 0 6px;font-size:24px;font-weight:700}.login-card p.lead{color:var(--text-dim);margin:0 0 24px;font-size:14px}.login-form{flex-direction:column;gap:16px;display:flex}.role-tabs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.role-tab{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);min-height:40px;color:var(--text-dim);cursor:pointer;font:inherit;text-align:center;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);padding:10px 8px;font-size:13px;font-weight:500}.role-tab:hover{border-color:var(--text-faint);color:var(--text);background:var(--surface)}.role-tab:focus-visible{box-shadow:var(--ring);outline:none}.role-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--accent-line);font-weight:600}.mode-note{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-faint);text-align:center;margin-top:20px;font-size:11px}.toast{z-index:90;border-radius:var(--radius);background:var(--surface);border:1px solid var(--danger-line);border-left:3px solid var(--danger);color:var(--danger-ink);box-shadow:var(--shadow-3);animation:toast-in var(--dur-slow) var(--ease);align-items:center;gap:8px;padding:12px 18px;font-size:13.5px;font-weight:600;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.center-splash{min-height:100vh;color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.04em;place-items:center;font-size:13px;display:grid}@media (max-width:1440px){:root{--ws-console-w:560px}}@media (max-width:1024px){:root{--ws-console-w:440px}.stats{grid-template-columns:repeat(2,1fr)}.ws-stage{padding:20px}}@media (max-width:820px){.ws-body{grid-template-rows:minmax(0,1fr) minmax(0,auto);grid-template-columns:1fr}.ws-stage{min-height:0;padding:18px 16px}.ws-console{border-left:none;border-top:1px solid var(--border);box-shadow:0 -1px 0 var(--divider);max-height:46vh}}@media (max-width:560px){.app-shell{padding:16px 14px 80px}.topbar{flex-wrap:wrap;gap:12px}.status-row{justify-content:space-between;width:100%}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.grid{grid-template-columns:1fr}.ws-bar{gap:var(--sp-2);padding:0 12px}.control-state{padding:6px 10px 6px 12px;font-size:12px}.ws-console{max-height:52vh;padding:14px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.device-card:hover{transform:none}}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}