/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}@font-face{font-family:Bricolage Grotesque;src:url(/web/fonts/bricolage-grotesque.woff2) format("woff2-variations"),url(/web/fonts/bricolage-grotesque.woff2) format("woff2");font-weight:300 800;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/web/fonts/jetbrains-mono.woff2) format("woff2-variations"),url(/web/fonts/jetbrains-mono.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{--bg: #050d18;--ink: #e0eef5;--ink-2: #b0c8d8;--ink-3: #7090a4;--ink-faint: #3a5060;--rule: rgba(34, 211, 238, .12);--rule-strong: rgba(34, 211, 238, .3);--glass: rgba(10, 22, 32, .45);--glass-strong: rgba(10, 22, 32, .62);--glass-border: rgba(34, 211, 238, .2);--accent: #22d3ee;--accent-2: #2dd4bf;--accent-3: #60a5fa;--accent-tint: #67e8f9;--accent-tint-2: #93c5fd;--accent-soft: rgba(34, 211, 238, .5);--accent-glow: rgba(34, 211, 238, .22);--surface-1: rgba(5, 16, 25, .65);--surface-2: rgba(15, 35, 50, .55);--surface-3: rgba(25, 50, 70, .7);--surface-hover: rgba(34, 211, 238, .1);--surface-active: linear-gradient(135deg, rgba(34,211,238,.22), rgba(96,165,250,.14));--surface-active-border: rgba(34, 211, 238, .35);--success: #34d399;--warning: #fcd34d;--error: #fb7185;--btn-grad: linear-gradient(135deg, #22d3ee, #60a5fa);--btn-grad-shadow: 0 1px 2px rgba(34,211,238,.3), 0 8px 22px rgba(96,165,250,.28);--btn-grad-shadow-hover: 0 1px 2px rgba(34,211,238,.3), 0 14px 32px rgba(96,165,250,.36);--title-grad-end: #67e8f9;--shadow-soft: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 28px rgba(0, 0, 0, .55);--shadow-lift: 0 1px 2px rgba(0, 0, 0, .5), 0 24px 60px rgba(0, 0, 0, .75)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg);color:var(--ink);font-family:Bricolage Grotesque,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}body{position:relative}body:before{content:"";position:fixed;inset:-10%;z-index:-2;background:radial-gradient(at 18% 22%,hsla(180,90%,50%,.4) 0,transparent 45%),radial-gradient(at 82% 18%,hsla(200,95%,50%,.38) 0,transparent 50%),radial-gradient(at 68% 82%,hsla(160,80%,45%,.25) 0,transparent 50%),radial-gradient(at 28% 78%,hsla(220,90%,50%,.42) 0,transparent 50%);filter:saturate(1.35) brightness(1.05);pointer-events:none}body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.4  0 0 0 0 0.6  0 0 0 0 0.7  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");opacity:.28;mix-blend-mode:screen}@media (prefers-reduced-motion: no-preference){body:before{animation:aurora 24s ease-in-out infinite alternate}}@keyframes aurora{50%{transform:translate(2%,-1%) rotate(2deg) scale(1.04)}}@media (prefers-reduced-transparency: reduce){:root{--glass: var(--surface-2);--glass-strong: rgba(15, 35, 50, .96);--glass-border: var(--rule-strong);--surface-1: rgba(5, 16, 25, .96)}body:before,body:after{display:none}}code,pre,.monospace,kbd{font-family:JetBrains Mono,DejaVu Sans Mono,Menlo,Consolas,monospace}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}::selection{background:var(--accent);color:var(--bg)}.screen{max-width:480px;margin:0 auto;padding:64px 24px;display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}.screen h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-.015em;color:var(--ink)}.dim{color:var(--ink-3)}.placeholder{font-style:italic;opacity:.7}.row{display:flex;gap:8px}.small{font-size:13px}.error{color:var(--error);margin:0}.fingerprint{font-family:JetBrains Mono,monospace;font-size:18px;font-weight:500;letter-spacing:.08em;background:var(--surface-1);border:1px solid var(--rule);border-radius:12px;padding:16px;text-align:center;user-select:all;margin:0;color:var(--ink);box-shadow:inset 0 1px 0 var(--accent-glow)}.btn{appearance:none;background:var(--surface-2);color:var(--ink);border:1px solid var(--rule-strong);border-radius:10px;padding:10px 18px;font-size:14px;font-family:inherit;font-weight:500;letter-spacing:-.005em;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-soft)}.btn:hover:not(:disabled){background:var(--surface-3);transform:translateY(-1px);box-shadow:var(--shadow-lift)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--btn-grad);border:0;color:#fff;font-weight:600;box-shadow:var(--btn-grad-shadow)}.btn.primary:hover:not(:disabled){box-shadow:var(--btn-grad-shadow-hover);transform:translateY(-1px)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:500;font-size:13px;color:var(--ink-2)}.field input{appearance:none;background:var(--surface-1);color:var(--ink);border:1px solid var(--rule);border-radius:10px;padding:11px 14px;font-size:14.5px;font-family:inherit;transition:all .15s ease}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.field .hint{font-size:12.5px;color:var(--ink-3)}.spinner-row{display:flex;justify-content:center;padding:32px 0}.spinner{width:32px;height:32px;border:3px solid var(--rule-strong);border-top-color:var(--accent);border-radius:50%;animation:prism-spin .8s linear infinite}@keyframes prism-spin{to{transform:rotate(360deg)}}.app-frame{height:100%;display:flex;flex-direction:column}.app-topbar{display:flex;align-items:center;gap:14px;padding:14px 22px;flex-shrink:0}.app-topbar .logo{width:32px;height:32px;border-radius:9px;background:conic-gradient(from 220deg,var(--accent),var(--accent-2),var(--accent-3),var(--accent));box-shadow:var(--shadow-soft),inset 0 0 0 1px #ffffff59;position:relative;flex-shrink:0}.app-topbar .logo:after{content:"";position:absolute;inset:7px;background:var(--bg);border-radius:4px}.app-topbar .brand{font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--ink)}.app-topbar .brand-sub{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);letter-spacing:.04em;padding:4px 10px;border-radius:999px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--rule);white-space:nowrap}.app-topbar-spacer{flex:1}.app-topbar-right{display:flex;gap:8px;align-items:center}.pill-status{font-family:JetBrains Mono,monospace;font-size:11px;padding:6px 12px;border-radius:999px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);color:var(--ink-3);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.pill-status .pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px #10b9812e;animation:status-pulse 1.6s infinite}@keyframes status-pulse{50%{box-shadow:0 0 0 7px #10b98100}}.app-shell{display:grid;grid-template-columns:280px 1fr;gap:16px;padding:0 16px 16px;flex:1;min-height:0}.sidebar{background:var(--glass-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:22px;box-shadow:var(--shadow-lift),inset 0 1px #ffffff0f;display:flex;flex-direction:column;min-height:0;overflow:hidden}.sb-head{padding:18px 18px 14px;border-bottom:1px solid var(--rule)}.sb-user{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--btn-grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;box-shadow:0 4px 12px var(--accent-glow);flex-shrink:0;text-transform:uppercase}.sb-user .name{font-weight:600;font-size:14px;color:var(--ink)}.sb-user .role{font-size:11px;color:var(--ink-3);margin-top:1px}.sb-section{padding:14px;border-bottom:1px solid var(--rule);flex:none}.sb-section.scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none}.sb-section.scroll::-webkit-scrollbar{display:none}.sb-title{font-size:11px;letter-spacing:.04em;font-weight:600;color:var(--ink-3);padding:0 4px;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sb-title .count{background:var(--rule);color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:10px;padding:1px 8px;border-radius:99px}.pc-list,.session-list{list-style:none;margin:0;padding:0}.pc-item{padding:10px;border-radius:12px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:10px;margin-bottom:4px;background:transparent;border:0;width:100%;text-align:left;font-family:inherit;color:inherit}.pc-item:hover{background:var(--surface-hover)}.pc-item.active{background:var(--surface-active);box-shadow:inset 0 0 0 1px var(--surface-active-border)}.pc-item .led{width:8px;height:8px;border-radius:50%;background:var(--success);flex-shrink:0;box-shadow:0 0 0 3px #10b9812e}.pc-item .led.off{background:var(--ink-faint);box-shadow:none}.pc-item .info{flex:1;min-width:0}.pc-item .pc-name{font-size:13.5px;color:var(--ink);font-weight:500}.pc-item.active .pc-name{color:var(--accent-tint)}.pc-item .addr{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-item{padding:10px 12px;border-radius:12px;cursor:pointer;transition:all .15s;margin-bottom:4px;position:relative;background:transparent;border:0;width:100%;text-align:left;font-family:inherit;color:inherit}.session-item:hover{background:var(--surface-hover)}.session-item.active{background:var(--surface-active);box-shadow:inset 0 0 0 1px var(--surface-active-border)}.session-item .cmd{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:24px}.session-item .cmd .accent{color:var(--accent-tint)}.session-item.active .cmd .accent{color:var(--accent-tint-2)}.session-item .meta{font-size:11px;color:var(--ink-faint);margin-top:3px}.session-li{position:relative;list-style:none}.session-count{margin-left:6px}.session-close-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--ink-faint);background:transparent;border:0;font-size:16px;padding:2px 6px;border-radius:6px;cursor:pointer;opacity:0;transition:all .15s;line-height:1}.session-handover-btn{position:absolute;top:50%;transform:translateY(-50%);right:34px;color:var(--accent);background:transparent;border:1px solid rgba(129,161,193,.35);font-family:inherit;font-size:10px;font-weight:600;padding:2px 6px;border-radius:6px;cursor:pointer;opacity:0;transition:all .15s;line-height:1}.session-handover-btn.revoke{right:34px;color:var(--ink-faint)}.session-handover-btn.grant{right:58px}.handover-badge{color:var(--accent)}.session-item:hover .session-close-btn,.session-item.active .session-close-btn,.session-li:hover .session-handover-btn{opacity:1}.session-close-btn:hover{color:var(--error);background:#f43f5e2e}.new-btn{background:var(--btn-grad);border:0;color:#fff;font-family:inherit;font-size:11px;font-weight:600;padding:4px 10px;border-radius:99px;cursor:pointer;box-shadow:0 2px 6px var(--accent-glow);transition:all .15s}.new-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px var(--accent-glow)}.new-btn:disabled{opacity:.5;cursor:progress}.new-btn:before{content:"+ "}.sb-foot{padding:14px;display:grid;gap:10px}.sb-foot .toggle-row{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:12.5px;color:var(--ink-2);padding:0}.sb-foot .toggle-row input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.sb-foot .toggle-row .swatch{width:32px;height:18px;background:var(--accent-glow);border-radius:99px;position:relative;transition:all .2s;flex-shrink:0}.sb-foot .toggle-row .swatch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#ffffffd9;border-radius:50%;transition:all .2s;box-shadow:0 1px 2px #00000026}.sb-foot .toggle-row.on .swatch{background:var(--btn-grad)}.sb-foot .toggle-row.on .swatch:after{left:16px}.sb-foot .toggle-row .label-stack{line-height:1.2}.sb-foot .toggle-row .label-stack .small{display:block;font-size:10.5px;color:var(--ink-faint)}.lock-btn{width:100%;font-family:inherit;font-size:13px;font-weight:500;padding:9px 14px;border-radius:10px;background:var(--surface-2);border:1px solid var(--rule-strong);color:var(--ink);cursor:pointer;transition:all .15s;box-shadow:var(--shadow-soft)}.lock-btn:hover{background:var(--error);border-color:var(--error);color:#fff}.footer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.footer-buttons .lock-btn{font-size:12px;padding:8px 10px}.footer-buttons .lock-btn:first-child:hover{background:var(--surface-3);border-color:var(--rule-strong);color:var(--ink)}.app-main{background:var(--glass-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:22px;box-shadow:var(--shadow-lift),inset 0 1px #ffffff0f;display:flex;flex-direction:column;overflow:hidden;min-width:0}.term-tabs{display:flex;gap:4px;padding:10px 14px 0;border-bottom:1px solid var(--rule);background:var(--surface-1);flex-shrink:0;overflow-x:auto;scrollbar-width:none}.term-tabs::-webkit-scrollbar{display:none}.term-tab{padding:8px 14px;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--ink-3);border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;cursor:pointer;margin-bottom:-1px;background:transparent;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.term-tab:hover{color:var(--ink)}.term-tab.active{color:var(--accent-tint);background:#0a1622;border-color:var(--rule-strong);border-bottom-color:#0a1622}.term-tab .num{font-size:10px;color:var(--ink-faint);background:var(--accent-glow);padding:1px 5px;border-radius:4px}.term-tab.active .num{color:var(--accent-tint-2);background:var(--accent-soft)}.term-tab-close{margin-left:4px;color:var(--ink-faint);padding:0 4px;border-radius:4px;cursor:pointer;font-size:14px;background:transparent;border:0;font-family:inherit;line-height:1}.term-tab-close:hover{color:var(--error);background:#f43f5e2e}.term-frame{flex:1;min-height:0;padding:6px;background:var(--surface-1);position:relative}.tab-stack{position:absolute;inset:6px;border-radius:14px;overflow:hidden}.tab-slot{position:absolute;inset:0;visibility:hidden;display:flex}.tab-slot.active{visibility:visible}.term-statusbar{display:flex;gap:16px;align-items:center;padding:8px 14px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);border-top:1px solid var(--rule);background:var(--surface-1);flex-shrink:0;flex-wrap:wrap}.term-statusbar-right{margin-left:auto}.stat-chip{background:var(--accent-glow);padding:2px 8px;border-radius:99px;color:var(--accent-tint)}.stat-chip.ok{background:#34d3992e;color:#6ee7b7}.empty-pane{flex:1;display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:14px;padding:32px;text-align:center}.terminal-host{display:flex;flex-direction:column;flex:1;min-height:0;background:#0a1622;width:100%;position:relative}.terminal-banner{background:#22d3ee0f;border-bottom:1px solid var(--rule);color:var(--ink-3);font-size:11px;padding:6px 14px;font-family:JetBrains Mono,monospace;letter-spacing:.04em;flex-shrink:0}.terminal-container{flex:1;min-height:0;padding:14px 18px;background:#0a1622}.xterm-viewport{scrollbar-width:none}.xterm-viewport::-webkit-scrollbar{display:none}.terminal-new-marker{pointer-events:auto;z-index:10}.terminal-new-marker-line{display:flex;align-items:center;gap:10px;width:100%;height:100%;padding:0 4px;box-sizing:border-box;cursor:pointer;user-select:none}.terminal-new-marker-rule{flex:1;height:1px;background:#22d3ee59}.terminal-new-marker-label{flex-shrink:0;color:#22d3eed9;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.terminal-new-marker-copy{flex-shrink:0;background:#22d3ee14;border:1px solid rgba(34,211,238,.25);border-radius:4px;color:#22d3eee6;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.04em;padding:2px 8px}.terminal-new-marker-copy:hover{background:#22d3ee24}.terminal-new-marker-float{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:12;display:inline-flex;align-items:center;gap:10px;padding:6px 12px;border-radius:999px;background:#0a1622eb;border:1px solid rgba(34,211,238,.35);box-shadow:0 4px 16px #00000059;cursor:pointer;user-select:none}.pane-single,.pane-h-split,.pane-v-split{width:100%;height:100%;display:flex}.pane-h-split{flex-direction:row}.pane-v-split{flex-direction:column}.pane-cell{position:relative;min-width:0;min-height:0;display:flex;border-radius:14px;overflow:hidden;background:#0a1622}.pane-cell.active{box-shadow:inset 0 0 0 1px var(--accent),inset 0 0 0 4px #22d3ee1a}.pane-h-split>.pane-cell:not(.active),.pane-v-split>.pane-cell:not(.active){box-shadow:inset 0 0 0 1px var(--rule)}.pane-splitter{background:#22d3ee0f;transition:background .15s;position:relative;flex-shrink:0}.pane-h-split>.pane-splitter{width:6px;cursor:col-resize}.pane-v-split>.pane-splitter{height:6px;cursor:row-resize}.pane-splitter:before{content:"";position:absolute;inset:0;margin:auto;background:#22d3ee52;border-radius:99px;transition:background .15s}.pane-h-split>.pane-splitter:before{width:2px;height:28px}.pane-v-split>.pane-splitter:before{width:28px;height:2px}.pane-splitter:hover,.pane-splitter:active{background:#22d3ee33}.pane-splitter:hover:before,.pane-splitter:active:before{background:var(--accent)}.pane-close{position:absolute;top:8px;right:8px;z-index:10;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#051019bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--rule);border-radius:6px;color:var(--ink-3);cursor:pointer;font-size:14px;line-height:1;font-family:inherit;opacity:0;transition:all .15s}.pane-cell:hover .pane-close,.pane-cell:focus-within .pane-close{opacity:1}.pane-close:hover{color:var(--error);border-color:#f43f5e66;background:#f43f5e2e}.term-tab-label{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.term-tab-split-glyph{color:var(--accent-tint);font-size:11px;margin-left:2px;opacity:.8}.tab-split-btn{margin-left:4px;padding:0 5px;background:transparent;border:0;color:var(--ink-faint);border-radius:4px;cursor:pointer;font-size:13px;line-height:1;font-family:inherit}.tab-split-btn:hover{color:var(--accent);background:var(--accent-glow)}.split-menu{position:fixed;z-index:200;background:var(--glass-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:14px;padding:6px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-lift);min-width:240px;animation:split-menu-in .18s cubic-bezier(.2,.8,.2,1)}@keyframes split-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.split-menu button{background:transparent;border:0;color:var(--ink);padding:10px 12px;border-radius:10px;font-family:inherit;font-size:13px;cursor:pointer;text-align:left;transition:background .12s;display:flex;align-items:flex-start;gap:12px;width:100%}.split-menu button:hover{background:var(--surface-hover)}.split-menu-icon{width:26px;height:26px;border-radius:7px;background:var(--accent-glow);color:var(--accent-tint);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0;font-family:JetBrains Mono,monospace}.split-menu button:hover .split-menu-icon{background:var(--btn-grad);color:#fff}.split-menu button strong{display:block;font-weight:500;margin-bottom:2px}.split-menu-sub{display:block;color:var(--ink-3);font-size:11.5px;font-weight:400;line-height:1.3}.pane-cell.has-macro{box-shadow:inset 0 0 0 1px var(--warning),inset 0 0 0 4px #fcd34d1a;animation:macro-pending-pulse 2.4s ease-in-out infinite}.pane-cell.has-macro.active{box-shadow:inset 0 0 0 1px var(--warning),inset 0 0 0 4px #fcd34d1a,inset 0 0 0 6px #22d3ee2e}@keyframes macro-pending-pulse{0%,to{box-shadow:inset 0 0 0 1px var(--warning),inset 0 0 0 4px #fcd34d1a}50%{box-shadow:inset 0 0 0 1px #fcd34d,inset 0 0 0 6px #fcd34d38}}.pane-cell.macro-fired{animation:macro-fired-flash 1.4s ease-out}@keyframes macro-fired-flash{0%{box-shadow:inset 0 0 0 1px var(--success),inset 0 0 0 8px #34d39966}to{box-shadow:inset 0 0 0 1px var(--success),inset 0 0 #34d39900}}.pane-cell.has-handover{box-shadow:inset 0 0 0 1px var(--error),inset 0 0 0 4px #fb71851f;animation:handover-pulse 2.4s ease-in-out infinite}.pane-cell.has-handover.active{box-shadow:inset 0 0 0 1px var(--error),inset 0 0 0 4px #fb71851f,inset 0 0 0 6px #22d3ee2e}.pane-cell.has-handover.has-macro{box-shadow:inset 0 0 0 1px var(--error),inset 0 0 0 3px #fb718524,inset 0 0 0 4px var(--warning),inset 0 0 0 7px #fcd34d1a}@keyframes handover-pulse{0%,to{box-shadow:inset 0 0 0 1px var(--error),inset 0 0 0 4px #fb71851f}50%{box-shadow:inset 0 0 0 1px #fb7185,inset 0 0 0 6px #fb718542}}.pane-macro{position:absolute;top:8px;right:38px;z-index:9}.pane-macro-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:99px;border:1px solid rgba(252,211,77,.35);background:#fcd34d1f;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--warning);font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}.pane-macro-chip:hover{background:#fcd34d33;border-color:#fcd34d8c}.pane-macro-chip svg{width:13px;height:13px}.pane-macro-time{font-variant-numeric:tabular-nums}.pane-macro-count{background:#fcd34d40;color:var(--warning);font-size:10px;padding:0 5px;border-radius:99px;font-weight:600}.pane-macro-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:280px;max-width:360px;background:var(--glass-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:14px;padding:10px;box-shadow:var(--shadow-lift);animation:split-menu-in .18s cubic-bezier(.2,.8,.2,1)}.pane-macro-popover-title{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);padding:4px 6px 8px;border-bottom:1px solid var(--rule);margin-bottom:6px}.macro-row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:8px}.macro-row+.macro-row{margin-top:2px}.macro-row:hover{background:var(--surface-hover)}.macro-row-meta{flex:1;min-width:0}.macro-row-time{font-family:JetBrains Mono,monospace;font-size:13px;color:var(--warning);font-variant-numeric:tabular-nums;margin-bottom:2px}.macro-row-payload{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.macro-row-payload code{background:var(--surface-1);border:1px solid var(--rule);border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--ink);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.macro-row-enter{color:var(--accent-tint);font-size:14px;font-family:JetBrains Mono,monospace}.macro-row-cancel{font-family:inherit;font-size:11px;font-weight:500;background:transparent;border:1px solid var(--rule-strong);color:var(--ink-2);padding:4px 10px;border-radius:6px;cursor:pointer;transition:all .15s;flex-shrink:0}.macro-row-cancel:hover{background:#f43f5e2e;border-color:#f43f5e80;color:var(--error)}.schedule-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;border:1px solid var(--rule);background:transparent;color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:11px;cursor:pointer;transition:all .15s}.schedule-btn:hover{border-color:#fcd34d66;color:var(--warning);background:#fcd34d1a}.schedule-btn svg{width:13px;height:13px}.handover-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:99px;border:1px solid rgba(251,113,133,.35);background:#fb718514;color:var(--error);font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}.handover-btn:hover{border-color:#fb71858c;background:#fb718529}.handover-btn.revoke{border-color:var(--rule);background:transparent;color:var(--ink-3);font-weight:500}.handover-btn.revoke:hover{border-color:#fb718573;color:var(--error);background:#fb71851a}.modal-backdrop{position:fixed;inset:0;z-index:500;background:#050d188c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .18s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:460px;background:var(--glass-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:22px;padding:28px;box-shadow:var(--shadow-lift),inset 0 1px #ffffff0f;display:flex;flex-direction:column;gap:18px;animation:modal-in .22s cubic-bezier(.2,.8,.2,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}.modal-head{border-bottom:1px solid var(--rule);padding-bottom:14px}.modal-title{font-size:22px;font-weight:600;letter-spacing:-.015em;margin:0 0 4px;color:var(--ink);background:linear-gradient(135deg,var(--ink) 30%,var(--warning) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.modal-sub{font-size:13px;color:var(--ink-3);margin:0}.modal-sub code{background:var(--surface-1);border:1px solid var(--rule);border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--ink)}.checkbox-row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-2);cursor:pointer}.checkbox-row input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:16px;height:16px}.time-row{display:flex;gap:8px}.time-row input[type=number],.time-row input[type=time]{flex:1;appearance:textfield;-moz-appearance:textfield;background:var(--surface-1);color:var(--ink);border:1px solid var(--rule);border-radius:10px;padding:11px 14px;font-size:14.5px;font-family:inherit}.time-row input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}.time-row input[type=number]::-webkit-outer-spin-button,.time-row input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.time-row input[type=number]:focus,.time-row input[type=time]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.time-row select{appearance:none;-webkit-appearance:none;background:var(--surface-1);color:var(--ink);border:1px solid var(--rule);border-radius:10px;padding:11px 32px 11px 14px;font-size:14px;font-family:inherit;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237090a4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}.time-row select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.modal-actions{margin-top:4px;justify-content:flex-end}@media (max-width: 900px){.app-shell{grid-template-columns:1fr;padding:0 12px 12px}.sidebar{display:none}}.shell{height:100%;display:flex;flex-direction:column;padding:28px 24px 80px;position:relative;z-index:1;overflow-y:auto;scrollbar-width:none}.shell::-webkit-scrollbar{display:none}.topbar{display:flex;align-items:center;gap:14px;max-width:980px;margin:0 auto 28px;width:100%}.topbar .logo{width:36px;height:36px;border-radius:10px;background:conic-gradient(from 220deg,var(--accent),var(--accent-2),var(--accent-3),var(--accent));box-shadow:var(--shadow-soft),inset 0 0 0 1px #ffffff59;position:relative;flex-shrink:0}.topbar .logo:after{content:"";position:absolute;inset:8px;background:var(--bg);border-radius:4px;box-shadow:inset 0 0 0 1px var(--accent-soft)}.topbar .brand{font-weight:700;font-size:18px;letter-spacing:-.01em;color:var(--ink)}.topbar .brand-sub{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);letter-spacing:.04em;padding:4px 10px;border-radius:999px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--rule);white-space:nowrap}.topbar-spacer{flex:1}.card{max-width:540px;margin:0 auto;background:var(--glass-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:28px;box-shadow:var(--shadow-lift),inset 0 1px #ffffff0f;padding:40px;position:relative;overflow:hidden;width:100%}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-soft),transparent)}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.04em;color:var(--accent);margin-bottom:16px}.eyebrow .pulse{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #22d3ee2e;animation:aurora-pulse 1.6s infinite}.eyebrow.danger{color:var(--error)}.eyebrow.danger .pulse{background:var(--error);box-shadow:0 0 0 4px #f43f5e2e}@keyframes aurora-pulse{50%{box-shadow:0 0 0 8px #22d3ee00}}h1.title{font-weight:600;font-size:32px;line-height:1.1;letter-spacing:-.025em;margin-bottom:12px;background:linear-gradient(135deg,var(--ink) 30%,var(--title-grad-end) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}h1.title.danger{background:linear-gradient(135deg,var(--ink) 20%,var(--error) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.lede{color:var(--ink-3);margin-bottom:28px;line-height:1.55;font-size:14.5px}.fp-wrap{background:#ffffff08;border:1px solid var(--rule);border-radius:18px;padding:18px;box-shadow:inset 0 1px 0 var(--accent-glow)}.fp-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.14em}.fp-pills{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.pill{font-family:JetBrains Mono,monospace;font-size:16px;font-weight:600;letter-spacing:.08em;color:var(--ink);background:var(--surface-2);border:1px solid var(--rule);border-radius:12px;padding:14px 0;text-align:center;box-shadow:0 1px 2px #00000040;transition:all .2s;position:relative}.pill:before{content:attr(data-i);position:absolute;top:4px;left:8px;font-size:9px;color:var(--ink-faint);letter-spacing:.1em;font-weight:400}.pill:hover{transform:translateY(-1px);border-color:var(--rule-strong);box-shadow:0 6px 14px var(--accent-glow)}@media (max-width: 600px){.fp-pills{grid-template-columns:repeat(2,1fr)}}.btn-row{margin-top:28px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.warn-card{margin-top:24px;display:flex;gap:14px;padding:14px 16px;background:linear-gradient(135deg,#f43f5e29,#f43f5e14);border:1px solid rgba(244,63,94,.3);border-radius:14px;font-size:13px;color:var(--ink-2);line-height:1.55}.warn-card .icon{width:22px;height:22px;border-radius:50%;flex-shrink:0;background:#f43f5e40;color:var(--error);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;margin-top:1px}.warn-card strong{color:var(--error)}.err-card{background:linear-gradient(135deg,#f43f5e2e,#f43f5e14);border:1px solid rgba(244,63,94,.35);border-radius:16px;padding:22px}.err-title{font-weight:600;color:var(--error);margin:0 0 6px;font-size:14px}.err-code{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--error);opacity:.85;margin-bottom:10px;letter-spacing:.04em}.err-msg{color:var(--ink-2);font-size:13.5px;line-height:1.6;margin:0}.done-card{background:linear-gradient(135deg,#34d3992e,#22d3ee1a);border:1px solid rgba(52,211,153,.35);border-radius:16px;padding:26px;text-align:center}.done-tick{width:48px;height:48px;border-radius:50%;margin:0 auto 14px;background:linear-gradient(135deg,var(--success),var(--accent));color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;box-shadow:0 8px 24px #34d39952}.done-card h1.title{font-size:24px;line-height:1.2;margin-bottom:8px}.done-card p{color:var(--ink-3);font-size:13.5px;margin:0}.working{display:flex;align-items:center;gap:18px;padding:22px;background:var(--surface-1);border:1px solid var(--rule);border-radius:16px;margin-top:8px}.ring{width:28px;height:28px;border-radius:50%;background:conic-gradient(from 0deg,var(--accent),var(--accent-2),var(--accent-3),var(--accent));animation:prism-spin 1s linear infinite;flex-shrink:0;position:relative}.ring:after{content:"";position:absolute;inset:4px;background:var(--bg);border-radius:50%}.working-text .stage{color:var(--accent);font-weight:600;font-size:13px;display:block;margin-bottom:2px}.working-text .sub{color:var(--ink-3);font-size:13px;line-height:1.5}.steps{display:flex;gap:6px;margin-top:20px}.step{flex:1;height:4px;border-radius:99px;background:var(--rule)}.step.done{background:linear-gradient(90deg,var(--accent),var(--accent-3))}.step.active{background:var(--accent);animation:aurora-pulse-bar 1.5s infinite}@keyframes aurora-pulse-bar{50%{opacity:.4}}.lock-icon{width:56px;height:56px;border-radius:18px;background:var(--btn-grad);display:flex;align-items:center;justify-content:center;margin-bottom:18px;box-shadow:0 8px 24px var(--accent-glow);position:relative;color:#fff}.lock-icon:after{content:"";position:absolute;inset:0;border-radius:18px;box-shadow:inset 0 1px #fff6;pointer-events:none}.lock-icon svg{width:28px;height:28px}.lock-icon.warn{background:linear-gradient(135deg,var(--warning),#fb923c);box-shadow:0 8px 24px #fcd34d59}.lock-icon.crit{background:linear-gradient(135deg,var(--error),#fb923c);box-shadow:0 8px 24px #f43f5e73;animation:lock-shake 4s infinite}@keyframes lock-shake{0%,90%,to{transform:rotate(0)}92%{transform:rotate(-3deg)}94%{transform:rotate(3deg)}96%{transform:rotate(-2deg)}98%{transform:rotate(0)}}.greet{color:var(--ink-3);font-size:14px;margin-bottom:4px}.greet .name{color:var(--accent);font-weight:600}.alert{margin-bottom:18px;padding:14px 16px;border-radius:14px;display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.55;color:var(--ink-2)}.alert .alert-icon{width:22px;height:22px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;margin-top:1px}.alert.warn{background:linear-gradient(135deg,#fcd34d24,#fcd34d0f);border:1px solid rgba(252,211,77,.3)}.alert.warn .alert-icon{background:#fcd34d33;color:var(--warning)}.alert.warn strong{color:var(--warning)}.alert.crit{background:linear-gradient(135deg,#f43f5e2e,#f43f5e14);border:1px solid rgba(244,63,94,.35)}.alert.crit .alert-icon{background:#f43f5e40;color:var(--error)}.alert.crit strong{color:var(--error)}.attempts{margin-top:18px;padding:12px 14px;border-radius:12px;background:var(--surface-1);border:1px solid var(--rule);display:flex;align-items:center;gap:12px;font-size:12px;color:var(--ink-3)}.attempts .pips{margin-left:auto;display:flex;gap:6px}.pip{width:10px;height:10px;border-radius:50%;background:var(--rule-strong)}.pip.used{background:var(--error);box-shadow:0 0 0 2px #f43f5e2e}.pip.last{background:var(--warning);animation:pip-last-pulse 1.2s infinite}@keyframes pip-last-pulse{50%{box-shadow:0 0 0 4px #fcd34d4d}}.wiped-card{text-align:left}.wiped-card .lock-icon{background:linear-gradient(135deg,var(--error),#fb923c);box-shadow:0 8px 28px #f43f5e73}.wiped-card h1.title{background:linear-gradient(135deg,var(--ink) 20%,var(--error) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-size:26px;margin-bottom:8px}.wiped-card p{color:var(--ink-3);font-size:14px;line-height:1.55;margin-bottom:12px}.wiped-card p strong{color:var(--ink)}.form .btn.primary,.form .submit{margin-top:6px}@media (max-width: 600px){.card{padding:28px 22px;border-radius:22px}h1.title{font-size:26px}}.session-rename-input{width:100%;padding:10px 12px;margin-bottom:4px;border-radius:12px;border:1px solid var(--accent);background:var(--surface-hover, rgba(255, 255, 255, .04));color:inherit;font-family:inherit;font-size:13px;outline:none;box-shadow:0 0 0 4px var(--accent-glow)}.session-rename-input::placeholder{color:var(--dim, #888)}.term-tab[draggable=true]{cursor:grab}.term-tab.dragging{opacity:.45}.drop-indicator{position:absolute;pointer-events:none;z-index:50;background:var(--accent-glow);border:2px solid var(--accent);border-radius:10px;box-shadow:inset 0 0 0 1px var(--accent-soft),0 0 18px var(--accent-glow);transition:all 90ms ease}.drop-indicator.zone-left{left:0;top:0;bottom:0;width:50%}.drop-indicator.zone-right{right:0;top:0;bottom:0;width:50%}.drop-indicator.zone-top{left:0;right:0;top:0;height:50%}.drop-indicator.zone-bottom{left:0;right:0;bottom:0;height:50%}.update-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px;background:var(--surface-2);border-bottom:1px solid var(--accent-soft);box-shadow:inset 0 1px 0 var(--accent-glow)}.update-banner__text{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;min-width:0}.update-banner__text strong{color:var(--accent-tint);font-weight:600}.update-banner__notes,.update-banner__hint{font-size:.85em;opacity:.75}.update-banner__actions{display:flex;gap:8px;flex-shrink:0}.update-banner__later,.update-banner__reload{padding:6px 14px;border-radius:8px;border:1px solid transparent;cursor:pointer;font:inherit;font-size:.9em}.update-banner__later{background:transparent;border-color:var(--surface-active-border);color:inherit;opacity:.8}.update-banner__later:hover{background:var(--surface-hover);opacity:1}.update-banner__reload{background:var(--accent);color:#04141c;font-weight:600}.update-banner__reload:hover{filter:brightness(1.08)}@media (max-width: 560px){.update-banner{flex-direction:column;align-items:stretch}.update-banner__actions{justify-content:flex-end}}
