:root{--bg: #0a0e14;--bg-2: #0d1117;--panel: #121821;--panel-2: #161d28;--border: #232c3a;--text: #e6edf3;--muted: #8b97a7;--accent: #3ddc97;--accent-2: #5b9bff}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 80% -10%,#15324a 0%,transparent 55%),radial-gradient(900px 500px at -10% 10%,#1b2a22 0%,transparent 50%),var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app-shell{height:100vh;display:flex;flex-direction:column;overflow:hidden}.workarea{flex:1;position:relative;display:flex;min-height:0}.view-scroll{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0}.pane{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}.workarea.split .pane+.pane,.workarea.split .pane~.pane{border-left:1px solid var(--border)}.pane .canvas-wrap{flex:1}.pane.primary .pane-head{background:var(--panel-2)}.workarea.split .pane.primary{box-shadow:inset 0 2px 0 var(--accent)}.pane-head{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--border);font-size:12px}.pane-name{color:var(--text);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-head button{background:transparent;border:1px solid var(--border);color:var(--muted);width:26px;height:24px;border-radius:6px;cursor:pointer;font-size:12px}.pane-head button:hover{color:var(--text)}.split-hint{position:absolute;top:0;right:0;bottom:0;width:40%;display:flex;align-items:center;justify-content:center;background:#3ddc9714;border-left:2px dashed var(--accent);color:var(--accent);font-size:14px;font-weight:600;pointer-events:none}.session-tabs{display:flex;align-items:stretch;gap:4px;padding:6px 10px;background:var(--bg-2);border-bottom:1px solid var(--border);overflow-x:auto}.stab{display:flex;align-items:center;gap:8px;cursor:pointer;background:var(--panel);border:1px solid var(--border);color:var(--muted);padding:7px 10px 7px 12px;border-radius:9px;font-size:13px;white-space:nowrap}.stab:hover{color:var(--text)}.stab.on{background:var(--panel-2);border-color:#34415a;color:var(--text)}.stab.home{padding:7px 12px;font-size:16px}.stab-dot{width:8px;height:8px;border-radius:50%;flex:none}.stab-proto{font-weight:700;font-size:11px}.stab-name{max-width:160px;overflow:hidden;text-overflow:ellipsis}.stab-close{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px;border-radius:5px;line-height:1}.stab-close:hover{background:#3a1d2a;color:#ff9aac}.dashboard{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:14px}.brand-link{cursor:pointer;border-radius:10px;padding:4px 8px;margin:-4px -8px;transition:background .15s}.brand-link:hover{background:var(--panel)}.brand-logo{width:42px;height:42px;border-radius:11px;display:block;background:#fff;padding:2px;box-shadow:0 0 0 1px var(--border)}.brand h1{margin:0;font-size:20px;letter-spacing:.5px}.brand p{margin:0;font-size:12px;color:var(--muted)}.user-chip{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);padding:8px 14px;border-radius:999px;font-size:13px;color:var(--muted)}.refresh-btn{background:var(--panel);border:1px solid var(--border);color:var(--muted);width:38px;height:38px;border-radius:10px;cursor:pointer;font-size:18px;margin-right:12px;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s}.refresh-btn:hover{color:var(--accent);border-color:#34415a}.refresh-btn.spin{animation:spin .6s linear;color:var(--accent)}.user-chip .dot,.status-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}.content{flex:1;padding:22px 32px;max-width:1200px;width:100%;margin:0 auto}.grow{flex:1}.home-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;flex-wrap:wrap}.seg{display:inline-flex;align-items:center;gap:3px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:4px}.seg-label{font-size:12px;color:var(--muted);padding:0 6px 0 8px}.seg button{background:transparent;border:none;color:var(--muted);padding:6px 13px;border-radius:7px;cursor:pointer;font-size:13px;font-weight:600}.seg button:hover{color:var(--text)}.seg button.on{background:var(--panel-2);color:var(--accent)}.srv-list{display:flex;flex-direction:column;gap:8px}.srv-row{display:flex;align-items:center;gap:14px;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--border);border-radius:11px;padding:11px 16px;transition:border-color .15s}.srv-row:hover{border-color:#34415a}.srv-row.locked{opacity:.9}.srv-name{font-weight:600;font-size:14px}.srv-host{color:var(--muted);font-size:12px}.srv-cat{font-size:11px;color:var(--accent-2);background:var(--panel-2);border:1px solid var(--border);padding:2px 8px;border-radius:6px}.srv-row .connect-btn,.srv-row .files-btn{height:32px;padding:0 14px}.srv-row .temp-note{font-size:11px}.env-block{margin-bottom:40px}.env-title{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted);font-weight:500;margin-bottom:18px;text-transform:uppercase;letter-spacing:1px}.env-tag{background:var(--panel-2);border:1px solid var(--border);color:var(--accent-2);padding:3px 10px;border-radius:6px;font-size:12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.card{background:linear-gradient(180deg,var(--panel) 0%,var(--panel-2) 100%);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:10px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.card:hover{transform:translateY(-3px);border-color:#34415a;box-shadow:0 12px 30px #00000059}.card-top{display:flex;align-items:center;justify-content:space-between}.proto-badge{display:inline-flex;align-items:center;gap:6px;color:var(--c);border:1px solid color-mix(in srgb,var(--c) 40%,transparent);background:color-mix(in srgb,var(--c) 12%,transparent);padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600}.proto-badge.sm{padding:2px 8px;font-size:11px}.proto-icon{font-size:13px}.host{font-size:12px;color:var(--muted);font-family:ui-monospace,monospace}.host.dim{opacity:.7}.card h3{margin:4px 0 0;font-size:17px}.desc{margin:0;font-size:13px;color:var(--muted);min-height:18px}.card-actions{display:flex;gap:8px;margin-top:8px;align-items:stretch}.connect-btn,.files-btn{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 18px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;line-height:1;border:1px solid transparent;transition:filter .15s,border-color .15s,color .15s}.connect-btn{background:linear-gradient(90deg,var(--accent) 0%,#2fb37a 100%);color:#06251a;font-weight:700}.connect-btn:hover{filter:brightness(1.1)}.files-btn{background:var(--panel-2);border-color:var(--border);color:var(--muted)}.files-btn:hover{color:#ffb454;border-color:#5a4424}.request-btn{display:inline-flex;align-items:center;height:38px;padding:0 16px;border-radius:9px;background:var(--panel-2);border:1px solid #4a3a1a;color:#ffb454;font-weight:600;font-size:13px;cursor:pointer}.request-btn:hover{filter:brightness(1.15)}.pending-badge{color:#ffb454;font-size:13px;font-weight:600}.temp-note{font-size:12px;color:var(--accent);margin-top:-2px}.card.locked{opacity:.85}.card.locked h3{color:var(--muted)}.req-card{width:min(440px,100%);display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:24px;box-shadow:0 20px 60px #00000080}.req-card h3{margin:0}.req-card label{font-size:12px;color:var(--muted);margin-top:6px}.req-card textarea,.req-card select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:8px;font-size:13px;outline:none;font-family:inherit}.req-card textarea:focus,.req-card select:focus{border-color:var(--accent-2)}.req-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.st-badge{font-size:11px;padding:3px 9px;border-radius:6px;font-weight:600}.st-badge.pend{background:#3a2e16;color:#ffb454}.st-badge.ok{background:#14321f;color:var(--accent)}.st-badge.deny{background:#3a1620;color:#ff8095}.st-badge.exp{background:var(--panel-2);color:var(--muted)}.kpi.alert{border-color:#5a4424}.kpi.alert span{color:#ffb454}.empty{color:var(--muted);text-align:center;padding:60px}.foot{text-align:center;color:var(--muted);font-size:12px;padding:18px;border-top:1px solid var(--border)}.banner.err{background:#3a1620;color:#ff8095;padding:12px 24px;font-size:13px}.session{height:100vh;display:flex;flex-direction:column;background:#05070a}.session-bar{display:flex;align-items:center;gap:16px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--border)}.back-btn,.disconnect-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px}.disconnect-btn{margin-left:auto;background:#2a1620;border-color:#5a2a38;color:#ff9aac}.disconnect-btn:hover{background:#3a1d2a}.session-id{display:flex;align-items:center;gap:10px}.session-id strong{font-size:14px}.status-pill{display:flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:12px;border:1px solid var(--border)}.status-pill.ok{color:var(--accent)}.status-pill.ok .dot{background:var(--accent);box-shadow:0 0 8px var(--accent)}.status-pill.pending{color:#ffb454}.status-pill.pending .dot{background:#ffb454;box-shadow:0 0 8px #ffb454;animation:pulse 1s infinite}.status-pill.err{color:#ff8095}.status-pill.err .dot{background:#ff8095}@keyframes pulse{50%{opacity:.3}}.canvas-wrap{flex:1;position:relative;overflow:hidden;display:flex;align-items:flex-start;justify-content:flex-start}.guac-display{position:relative;line-height:0}.guac-display canvas{display:block}.term-zoom{position:absolute;top:10px;right:10px;z-index:5;display:flex;align-items:center;gap:6px;background:#121821d9;border:1px solid var(--border);border-radius:9px;padding:4px 6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:.45;transition:opacity .15s}.canvas-wrap:hover .term-zoom{opacity:1}.term-zoom button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);width:30px;height:26px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:700}.term-zoom button:hover{border-color:var(--accent);color:var(--accent)}.term-zoom span{font-size:12px;color:var(--muted);min-width:40px;text-align:center;font-variant-numeric:tabular-nums}.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted);background:#05070ad9}.spinner{width:38px;height:38px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--border);border-radius:18px;padding:44px 48px;box-shadow:0 20px 60px #00000073;max-width:380px}.login-card h1{margin:8px 0 0;font-size:22px}.login-card p{margin:0;color:var(--muted);font-size:13px}.brand-logo.lg{width:64px;height:64px;border-radius:16px}.google-btn{display:inline-flex;align-items:center;gap:10px;margin-top:18px;background:#fff;color:#1f2937;text-decoration:none;font-weight:600;font-size:14px;padding:12px 22px;border-radius:10px;transition:filter .15s}.google-btn:hover{filter:brightness(.95)}.google-btn .g{font-weight:800;color:#4285f4;font-size:17px;font-family:Arial,sans-serif}.login-foot{margin-top:14px;font-size:11px;color:var(--muted)}.login-error{margin-top:14px;background:#3a1620;color:#ff8095;border:1px solid #5a2a38;padding:9px 14px;border-radius:9px;font-size:12px}.role-badge{background:color-mix(in srgb,var(--accent) 18%,transparent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent);font-size:10px;padding:1px 7px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px;margin-left:2px}.user-chip .logout{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:15px;padding:0 2px 0 6px;line-height:1}.user-chip .logout:hover{color:#ff8095}.nav{display:flex;gap:6px;margin-left:auto;margin-right:18px}.nav button{background:transparent;border:1px solid transparent;color:var(--muted);padding:8px 16px;border-radius:9px;cursor:pointer;font-size:14px;font-weight:600}.nav button:hover{color:var(--text)}.nav button.on{background:var(--panel);border-color:var(--border);color:var(--accent)}.kpis{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.kpi{display:inline-flex;align-items:baseline;gap:7px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:7px 15px;color:var(--muted);font-size:12.5px;white-space:nowrap}.kpi span{font-size:17px;font-weight:700;color:var(--text);line-height:1}.kpi.clickable{cursor:pointer;transition:border-color .12s,background .12s}.kpi.clickable:hover{border-color:#34415a;background:var(--panel-2)}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:10px 18px;cursor:pointer;font-size:14px;font-weight:600}.tab:hover{color:var(--text)}.tab.on{color:var(--accent);border-bottom-color:var(--accent)}.tab-rec{border:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:9px;padding:7px 14px;margin-bottom:5px;color:var(--accent-2)}.tab-rec:hover{color:var(--accent-2);background:var(--panel)}.tab-rec.on{background:color-mix(in srgb,var(--accent-2) 16%,transparent);border-color:color-mix(in srgb,var(--accent-2) 45%,transparent);border-bottom-color:color-mix(in srgb,var(--accent-2) 45%,transparent);color:var(--accent-2)}.adm-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--border);padding:16px;border-radius:12px;margin-bottom:20px}.adm-bar{display:flex;align-items:center;gap:10px;margin-bottom:18px}.adm-bar .search{flex:1;max-width:420px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:10px 13px;border-radius:9px;font-size:13px;outline:none}.adm-bar .search:focus{border-color:var(--accent-2)}.adm-bar select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:9px;font-size:13px}.adm-bar .connect-btn{padding:0 16px}.chip.plain{background:var(--panel-2);border-color:var(--border);color:var(--muted);padding:3px 9px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#030508b3;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{width:min(520px,100%);max-height:88vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 70px #0000008c}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:17px}.modal-x{background:transparent;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:7px}.modal-x:hover{color:var(--text);background:var(--panel-2)}.modal-body{padding:20px 22px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--border)}.modal-form{display:flex;flex-direction:column;gap:6px}.modal-form label{font-size:12px;color:var(--muted);margin-top:8px}.modal-form input,.modal-form select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:9px 11px;border-radius:8px;font-size:13px;outline:none;font-family:inherit;width:100%}.modal-form input:focus,.modal-form select:focus{border-color:var(--accent-2)}.modal-form input:disabled{opacity:.6}.modal-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-form .row3{display:grid;grid-template-columns:1fr .7fr 1fr;gap:12px}.modal-form .row2>div,.modal-form .row3>div{display:flex;flex-direction:column;gap:6px}.modal-form .chips{margin-top:4px}.adm-form input,.adm-form select,.adm-table select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px 11px;border-radius:8px;font-size:13px;outline:none}.adm-form input:focus,.adm-form select:focus{border-color:var(--accent-2)}.adm-table{width:100%;border-collapse:collapse;font-size:13px}.adm-table th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:1px solid var(--border)}.adm-table td{padding:12px;border-bottom:1px solid var(--border);vertical-align:middle}.adm-table tr:hover td{background:#ffffff05}.adm-table .dim{color:var(--muted);font-size:12px}.adm-table .mono{font-family:ui-monospace,monospace;color:var(--accent-2)}.adm-table td.actions{text-align:right;white-space:nowrap}.adm-table td.actions button{display:inline-block;margin-left:8px;vertical-align:middle}.adm-table .actions button,.chip button{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);padding:5px 10px;border-radius:7px;cursor:pointer;font-size:12px}.adm-table .actions button:hover{color:var(--text)}.adm-table .actions button.danger:hover{color:#ff8095;border-color:#5a2a38}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{display:inline-flex;align-items:center;gap:4px;background:color-mix(in srgb,var(--accent-2) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent-2) 35%,transparent);color:var(--accent-2);padding:3px 4px 3px 9px;border-radius:7px;font-size:12px}.chip button{padding:0 5px;border:none;background:transparent;color:var(--accent-2);font-size:14px}.rec-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.rec-pagesize{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}.rec-pagesize select{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:6px 9px;border-radius:7px;font-size:13px}.rec-toolbar button{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px}.rec-toolbar button:hover:not(:disabled){color:var(--text)}.rec-toolbar .files-btn{color:#ffb454}.danger-btn{background:#2a1620!important;border:1px solid #5a2a38!important;color:#ff9aac!important}.danger-btn:hover:not(:disabled){background:#3a1d2a!important}.danger-btn:disabled{opacity:.4;cursor:default}.adm-table .row-checked td{background:color-mix(in srgb,var(--accent-2) 8%,transparent)}.adm-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-2);cursor:pointer}.rec-pager{display:flex;align-items:center;gap:12px;margin-top:16px;font-size:13px;color:var(--muted)}.rec-pager button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:13px}.rec-pager button:disabled{opacity:.4;cursor:default}.rec-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.rec-filters select,.rec-filters input[type=date]{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px 11px;border-radius:8px;font-size:13px;outline:none;font-family:inherit;color-scheme:dark}.rec-filters select:focus,.rec-filters input:focus{border-color:var(--accent-2)}.rec-date{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.rec-filters .back-btn{padding:7px 12px}.player-overlay{display:flex;flex-direction:column;height:70vh;background:#05070a;border:1px solid var(--border);border-radius:12px;overflow:hidden}.player-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--border)}.player-bar strong{font-size:14px}.player-spacer{flex:1}.rec-tag{color:#ff5a6a;font-size:12px;font-weight:700;letter-spacing:.5px}.player-stage{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:8px}.player-stage canvas{display:block}.player-controls{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--panel);border-top:1px solid var(--border)}.play-btn{background:var(--accent);color:#06251a;border:none;width:38px;height:38px;border-radius:9px;cursor:pointer;font-size:14px;font-weight:700}.time{font-family:ui-monospace,monospace;font-size:12px;color:var(--muted);min-width:44px;text-align:center}.seekbar{flex:1;accent-color:var(--accent);cursor:pointer}.files-view{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.pane>.files-view{flex:1;min-height:0}.fmsg{font-size:12px;color:var(--muted);margin-left:auto}.fmsg.busy{color:#ffb454}.fcols{flex:1;display:flex;min-height:0}.fdivider{width:1px;background:var(--border)}.fpane{flex:1;display:flex;flex-direction:column;min-width:0}.fpane-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.fpane-title{font-weight:700;font-size:14px}.fpath{font-family:ui-monospace,monospace;font-size:12px;color:var(--accent-2);background:var(--bg);padding:4px 8px;border-radius:6px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fpath-edit{flex:1;min-width:80px;max-width:none;outline:none}.fpath-edit:focus{border:1px solid var(--accent-2)}.fpath-edit{border:1px solid transparent}.fp-spacer{flex:0 1 auto}.fpane-head button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:6px 11px;border-radius:7px;cursor:pointer;font-size:12px}.fpane-head button:hover:not(:disabled){border-color:#34415a}.fpane-head button:disabled{opacity:.4;cursor:default}.fp-err{background:#3a1620;color:#ff8095;padding:8px 16px;font-size:12px}.fp-dim{color:var(--muted);font-size:13px;padding:16px}.flist{flex:1;overflow-y:auto;padding:6px 0}.frow{display:flex;align-items:center;gap:10px;padding:7px 16px;font-size:13px;border-bottom:1px solid rgba(35,44,58,.5)}.frow:hover{background:#ffffff08}.fname{flex:1;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fsize{color:var(--muted);font-size:12px;font-family:ui-monospace,monospace;min-width:60px;text-align:right}.frow-actions{display:flex;gap:6px}.frow-actions button{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);padding:4px 9px;border-radius:6px;cursor:pointer;font-size:12px}.frow-actions button:hover:not(:disabled){color:var(--text)}.frow-actions button.danger:hover{color:#ff8095;border-color:#5a2a38}.flocal-fallback{padding:24px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}.fpane.drop-on{outline:2px dashed var(--accent);outline-offset:-4px;background:#3ddc970a}.frow.drop-on{background:color-mix(in srgb,var(--accent) 14%,transparent);outline:1px dashed var(--accent)}.frow[draggable=true]{cursor:grab}.frow[draggable=true]:active{cursor:grabbing}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#030508bf;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.editor-card{width:min(900px,100%);height:min(80vh,700px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 20px 60px #00000080}.editor-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px;font-weight:600}.editor-head .connect-btn,.editor-head .back-btn{height:34px}.editor-area{flex:1;width:100%;border:none;outline:none;resize:none;background:#05070a;color:var(--text);font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px;line-height:1.55;padding:16px;-moz-tab-size:2;tab-size:2}.log-area{flex:1;margin:0;overflow:auto;background:#05070a;color:#cfe3d8;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12.5px;line-height:1.5;padding:16px;white-space:pre-wrap;word-break:break-word}.editor-head .dl-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--accent);text-decoration:none;padding:0 12px;height:34px;display:inline-flex;align-items:center;border-radius:8px;font-size:13px}.editor-head .dl-btn:hover{border-color:#34415a}@media (max-width: 760px){.topbar{flex-wrap:wrap;gap:10px;padding:12px 16px}.brand h1{font-size:17px}.brand p{display:none}.nav{margin:0;order:3}.refresh-btn{margin-right:8px}.uc-email{display:none}.user-chip{padding:8px 10px}.content{padding:16px}.home-bar{gap:8px}.content{min-width:0}.tabs{overflow-x:auto;flex-wrap:nowrap}.tabs .grow{display:none}.tab,.tab-rec{flex:0 0 auto;white-space:nowrap}.tab-panel{overflow-x:hidden}.adm-table{min-width:520px}.adm-bar{flex-wrap:wrap}.adm-bar .search{max-width:none;flex:1 1 100%}.modal-form .row2,.modal-form .row3{grid-template-columns:1fr}.fcols,.workarea.split{flex-direction:column}.fdivider{width:auto;height:1px}.workarea.split .pane+.pane{border-left:none;border-top:1px solid var(--border)}.stab-name{max-width:110px}.login-card{padding:32px 26px}}
