/**
 * 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;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.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;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.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}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "Cascadia Code", "Fira Code", Consolas, monospace;--r: 10px;--r-sm: 6px;--r-xs: 4px;--sidebar-w: 224px;--sidebar-collapsed-w: 56px;--header-h: 58px;--transition: .15s ease}:root[data-theme=dark]{--bg-base: #060912;--bg-surface: #0b1120;--bg-elevated: #0f1828;--bg-card: #101828;--border-faint: rgba(148, 163, 184, .06);--border-subtle: rgba(148, 163, 184, .1);--border-default: rgba(148, 163, 184, .16);--border-accent: rgba(99, 102, 241, .4);--text-1: #e2e8f0;--text-2: #94a3b8;--text-3: #4b5a70;--text-4: #2d3a4f;--accent: #6366f1;--accent-l: #818cf8;--cyan: #06b6d4;--emerald: #10b981;--amber: #f59e0b;--rose: #f43f5e;--purple: #a855f7;--accent-blue-glow: rgba(99, 102, 241, .15);--accent-purple-glow: rgba(168, 85, 247, .15);--accent-green-glow: rgba(16, 185, 129, .15);--accent-amber-glow: rgba(245, 158, 11, .15);--sb-bg: linear-gradient(180deg, #070d1f 0%, #090f24 50%, #0c1030 100%);--sb-border: rgba(148, 163, 184, .06);--sb-logo-color: #ffffff;--sb-logo-secondary: #818cf8;--sb-text: rgba(100, 116, 139, .85);--sb-text-hover: #e2e8f0;--sb-text-active: #a5b4fc;--sb-item-hover: rgba(99, 102, 241, .09);--sb-item-active: rgba(99, 102, 241, .15);--sb-section: rgba(45, 58, 79, .8);--sb-foot-bg: rgba(16, 185, 129, .05);--sb-foot-border: rgba(16, 185, 129, .12);--sb-foot-text: #6ee7b7;--sb-chip-bg: rgba(99, 102, 241, .2);--sb-chip-color: #818cf8;--sb-glow-opacity: 1;--hdr-bg: rgba(6, 9, 18, .82);--hdr-border: rgba(148, 163, 184, .06);--hdr-btn-bg: #0f1828;--hdr-btn-border: rgba(148, 163, 184, .1);--hdr-accent-border:rgba(99, 102, 241, .4);--body-bg: #060912;--dot-grid: rgba(148, 163, 184, .055);--card-bg: #101828;--card-border: rgba(148, 163, 184, .1)}:root[data-theme=light]{--bg-base: #f0f4fa;--bg-surface: #ffffff;--bg-elevated: #f8fafc;--bg-card: #ffffff;--border-faint: rgba(15, 23, 42, .06);--border-subtle: rgba(15, 23, 42, .09);--border-default: rgba(15, 23, 42, .15);--border-accent: rgba(79, 70, 229, .35);--text-1: #0f172a;--text-2: #334155;--text-3: #64748b;--text-4: #94a3b8;--accent: #4f46e5;--accent-l: #6366f1;--cyan: #0891b2;--emerald: #059669;--amber: #d97706;--rose: #e11d48;--purple: #9333ea;--accent-blue-glow: rgba(79, 70, 229, .09);--accent-purple-glow: rgba(147, 51, 234, .09);--accent-green-glow: rgba(5, 150, 105, .09);--accent-amber-glow: rgba(217, 119, 6, .09);--sb-bg: #ffffff;--sb-border: rgba(15, 23, 42, .08);--sb-logo-color: #0f172a;--sb-logo-secondary: #6366f1;--sb-text: #64748b;--sb-text-hover: #0f172a;--sb-text-active: #4f46e5;--sb-item-hover: rgba(79, 70, 229, .07);--sb-item-active: rgba(79, 70, 229, .1);--sb-section: #b0bac6;--sb-foot-bg: rgba(5, 150, 105, .06);--sb-foot-border: rgba(5, 150, 105, .18);--sb-foot-text: #059669;--sb-chip-bg: rgba(79, 70, 229, .1);--sb-chip-color: #4f46e5;--sb-glow-opacity: 0;--hdr-bg: rgba(255, 255, 255, .92);--hdr-border: rgba(15, 23, 42, .08);--hdr-btn-bg: #f8fafc;--hdr-btn-border: rgba(15, 23, 42, .1);--hdr-accent-border:rgba(79, 70, 229, .35);--body-bg: #f0f4fa;--dot-grid: rgba(15, 23, 42, .04);--card-bg: #ffffff;--card-border: rgba(15, 23, 42, .09)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b859}.oc-shell{display:flex;height:100vh;overflow:hidden;background-color:var(--body-bg);background-image:radial-gradient(circle,var(--dot-grid) 1px,transparent 1px);background-size:28px 28px;transition:background-color .25s}.oc-sidebar{width:var(--sidebar-w);flex-shrink:0;display:flex;flex-direction:column;height:100vh;background:var(--sb-bg);border-right:1px solid var(--sb-border);position:relative;overflow:hidden;z-index:20;transition:width .22s ease,background var(--transition),border-color var(--transition)}.oc-sidebar.collapsed{width:var(--sidebar-collapsed-w)}:root[data-theme=light] .oc-sidebar{box-shadow:2px 0 12px #0f172a0f}.oc-sidebar:before{content:"";position:absolute;top:-80px;left:50%;transform:translate(-50%);width:200px;height:200px;background:radial-gradient(circle,rgba(99,102,241,.18) 0%,transparent 70%);pointer-events:none;opacity:var(--sb-glow-opacity, 1)}.oc-sidebar-logo{height:var(--header-h);display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid var(--sb-border);flex-shrink:0}.oc-logo-paw{font-size:22px;line-height:1;filter:drop-shadow(0 0 6px rgba(99,102,241,.6));animation:ocPawGlow 3.5s ease-in-out infinite}@keyframes ocPawGlow{0%,to{filter:drop-shadow(0 0 5px rgba(99,102,241,.55))}50%{filter:drop-shadow(0 0 12px rgba(129,140,248,.9))}}:root[data-theme=light] .oc-logo-paw{animation:ocPawGlowLight 4s ease-in-out infinite}@keyframes ocPawGlowLight{0%,to{filter:drop-shadow(0 0 3px rgba(79,70,229,.35))}50%{filter:drop-shadow(0 0 8px rgba(99,102,241,.55))}}.oc-logo-text{display:flex;flex-direction:column;line-height:1.25}.oc-logo-text .oc-logo-primary{font-size:14px;font-weight:700;letter-spacing:-.02em;color:var(--sb-logo-color)}.oc-logo-text .oc-logo-secondary{font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sb-logo-secondary);opacity:.85}.oc-nav{flex:1;overflow-y:auto;padding:14px 10px;display:flex;flex-direction:column;gap:1px}.oc-nav-section{font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sb-section);padding:10px 12px 4px;margin-top:4px}.oc-nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--r-sm);cursor:pointer;position:relative;color:var(--sb-text);font-size:13.5px;font-weight:450;transition:color var(--transition),background var(--transition);text-decoration:none;-webkit-user-select:none;user-select:none;outline:none;background:transparent;border:none;width:100%;text-align:left;font-family:var(--font-ui)}.oc-nav-item:hover{background:var(--sb-item-hover);color:var(--sb-text-hover)}.oc-nav-item.active{background:var(--sb-item-active);color:var(--sb-text-active);font-weight:550}.oc-nav-item.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:linear-gradient(180deg,#818cf8,#06b6d4);border-radius:0 2px 2px 0;box-shadow:0 0 10px #6366f1bf}.oc-nav-icon{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:.7;font-size:14px}.oc-nav-item.active .oc-nav-icon,.oc-nav-item:hover .oc-nav-icon{opacity:1}.oc-nav-chip{margin-left:auto;font-size:10px;font-weight:700;font-family:var(--font-mono);padding:2px 6px;border-radius:10px;background:var(--sb-chip-bg);color:var(--sb-chip-color);letter-spacing:0}.oc-sidebar-foot{padding:12px;border-top:1px solid var(--sb-border);flex-shrink:0;display:flex;flex-direction:column;gap:6px}.oc-sys-status{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-sm);background:var(--sb-foot-bg);border:1px solid var(--sb-foot-border);font-size:12px;font-weight:500;color:var(--sb-foot-text);overflow:hidden}.oc-collapse-btn{display:flex;align-items:center;justify-content:center;width:100%;height:28px;border-radius:var(--r-sm);border:1px solid var(--sb-border);background:transparent;color:var(--sb-text);font-size:13px;cursor:pointer;transition:background var(--transition),color var(--transition);font-family:var(--font-ui)}.oc-collapse-btn:hover{background:var(--sb-item-hover);color:var(--sb-text-hover)}.oc-pulse{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 #10b98199;animation:ocPulse 2.4s ease infinite;flex-shrink:0}@keyframes ocPulse{0%{box-shadow:0 0 #10b98199}60%{box-shadow:0 0 0 5px #10b98100}to{box-shadow:0 0 #10b98100}}.oc-sidebar.collapsed .oc-logo-text{display:none}.oc-sidebar.collapsed .oc-sidebar-logo{justify-content:center}.oc-sidebar.collapsed .oc-nav-section,.oc-sidebar.collapsed .oc-nav-label,.oc-sidebar.collapsed .oc-nav-chip{display:none}.oc-sidebar.collapsed .oc-nav{padding:10px 6px}.oc-sidebar.collapsed .oc-nav-item{justify-content:center;padding:8px}.oc-sidebar.collapsed .oc-nav-icon{width:20px;height:20px;font-size:16px}.oc-sidebar.collapsed .oc-sys-status-text{display:none}.oc-sidebar.collapsed .oc-sys-status{justify-content:center;padding:8px}.oc-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.oc-header{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 28px;flex-shrink:0;background:var(--hdr-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--hdr-border);position:relative;z-index:10;transition:background var(--transition)}.oc-header:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(99,102,241,.4) 40%,rgba(6,182,212,.3) 70%,transparent)}.oc-breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-3)}.oc-bc-sep{opacity:.5;font-size:11px}.oc-bc-current{color:var(--text-2);font-weight:500}.oc-header-right{display:flex;align-items:center;gap:10px}.oc-hdr-btn{height:32px;min-width:32px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--r-sm);border:1px solid var(--hdr-btn-border);background:var(--hdr-btn-bg);color:var(--text-2);font-size:13px;font-family:var(--font-ui);cursor:pointer;transition:border-color var(--transition),color var(--transition),background var(--transition)}.oc-hdr-btn:hover{border-color:var(--hdr-accent-border);color:var(--text-1)}.oc-user-pill{display:flex;align-items:center;gap:9px;padding:4px 12px 4px 4px;border-radius:20px;border:1px solid var(--hdr-btn-border);background:var(--hdr-btn-bg);cursor:pointer;transition:border-color var(--transition)}.oc-user-pill:hover{border-color:var(--hdr-accent-border)}.oc-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--purple));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}.oc-user-name{font-size:13px;font-weight:550;color:var(--text-2);line-height:1}.oc-role-tag{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--accent-l);background:#6366f126;padding:1px 6px;border-radius:4px}.oc-content{flex:1;overflow-y:auto;padding:24px 28px 40px;background:var(--body-bg);transition:background var(--transition)}.oc-page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.oc-page-title{font-size:19px;font-weight:700;letter-spacing:-.03em;color:var(--text-1);line-height:1.2}.oc-page-sub{font-size:12.5px;color:var(--text-3);margin-top:4px}.oc-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.oc-stat{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r);padding:20px;position:relative;overflow:hidden;cursor:default;transition:transform .2s,border-color .2s,box-shadow .2s;box-shadow:0 1px 4px #00000014}.oc-stat:hover{transform:translateY(-2px)}.oc-stat.blue:hover{border-color:#6366f159;box-shadow:0 8px 32px #6366f11f,0 2px 8px #00000026}.oc-stat.purple:hover{border-color:#a855f759;box-shadow:0 8px 32px #a855f71f,0 2px 8px #00000026}.oc-stat.green:hover{border-color:#10b9814d;box-shadow:0 8px 32px #10b9811f,0 2px 8px #00000026}.oc-stat.amber:hover{border-color:#f59e0b4d;box-shadow:0 8px 32px #f59e0b1f,0 2px 8px #00000026}.oc-stat:after{content:"";position:absolute;top:0;right:0;width:90px;height:90px;border-radius:50%;pointer-events:none;transform:translate(30%,-30%);opacity:.07;transition:opacity .2s}.oc-stat:hover:after{opacity:.14}.oc-stat.blue:after{background:var(--accent)}.oc-stat.purple:after{background:var(--purple)}.oc-stat.green:after{background:var(--emerald)}.oc-stat.amber:after{background:var(--amber)}.oc-stat-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:16px}.oc-stat.blue .oc-stat-icon{background:var(--accent-blue-glow);color:var(--accent-l)}.oc-stat.purple .oc-stat-icon{background:var(--accent-purple-glow);color:#d8b4fe}.oc-stat.green .oc-stat-icon{background:var(--accent-green-glow);color:#6ee7b7}.oc-stat.amber .oc-stat-icon{background:var(--accent-amber-glow);color:#fcd34d}:root[data-theme=light] .oc-stat.green .oc-stat-icon{color:#059669}:root[data-theme=light] .oc-stat.amber .oc-stat-icon{color:#92400e}.oc-stat-label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);margin-bottom:5px}.oc-stat-value{font-size:28px;font-weight:700;letter-spacing:-.04em;color:var(--text-1);line-height:1;font-family:var(--font-mono);margin-bottom:7px;font-variant-numeric:tabular-nums}.oc-stat-sub{font-size:12px;color:var(--text-3)}.oc-stat-sub .hi{font-weight:600}.oc-stat.blue .oc-stat-sub .hi{color:var(--accent-l)}.oc-stat.purple .oc-stat-sub .hi{color:#c4b5fd}.oc-stat.green .oc-stat-sub .hi{color:#6ee7b7}.oc-stat.amber .oc-stat-sub .hi{color:#fcd34d}:root[data-theme=light] .oc-stat.green .oc-stat-sub .hi{color:#059669}:root[data-theme=light] .oc-stat.amber .oc-stat-sub .hi{color:#b45309}.oc-sparkline{width:100%;height:28px;margin-top:10px;display:block;opacity:.45}.oc-charts-row{display:grid;grid-template-columns:1fr 370px;gap:16px;margin-bottom:20px}.oc-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r);overflow:hidden;box-shadow:0 1px 4px #0000000f;transition:border-color var(--transition)}.oc-card:hover{border-color:var(--border-default)}.oc-card-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-faint)}.oc-card-title{font-size:13.5px;font-weight:650;color:var(--text-1);letter-spacing:-.01em}.oc-card-meta{font-size:12px;color:var(--text-3)}.oc-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--body-bg);background-image:radial-gradient(ellipse 70% 50% at 30% 30%,rgba(99,102,241,.12) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 80% 80%,rgba(6,182,212,.08) 0%,transparent 60%),radial-gradient(circle,var(--dot-grid) 1px,transparent 1px);background-size:auto,auto,28px 28px;padding:24px;transition:background-color .25s}.oc-login-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;padding:40px;box-shadow:0 24px 80px #0000004d}:root[data-theme=light] .oc-login-card{box-shadow:0 8px 40px #0f172a1a,0 2px 8px #0f172a0f}.oc-login-logo{text-align:center;margin-bottom:32px}.oc-login-paw{font-size:36px;display:block;margin-bottom:10px;filter:drop-shadow(0 0 12px rgba(99,102,241,.5));animation:ocPawGlow 3.5s ease-in-out infinite}.oc-login-title{font-size:22px;font-weight:700;letter-spacing:-.03em;color:var(--text-1);margin-bottom:5px}.oc-login-sub{font-size:13px;color:var(--text-3)}.oc-login-hint{margin-top:16px;text-align:center;font-size:12px;color:var(--text-4);line-height:1.7;padding:10px;border-radius:var(--r-sm);background:var(--bg-elevated);border:1px solid var(--border-faint)}.oc-theme-toggle-fixed{position:fixed;top:20px;right:24px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);border:1px solid var(--border-subtle);background:var(--bg-elevated);cursor:pointer;color:var(--text-2);font-size:15px;transition:border-color var(--transition),background var(--transition);z-index:100}.oc-theme-toggle-fixed:hover{border-color:var(--border-accent)}.log-viewer{background:#0b1220;color:#cbd5e1;font-family:var(--font-mono);font-size:12.5px;line-height:1.65;padding:14px;border-radius:var(--r-sm);max-height:500px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;border:1px solid rgba(148,163,184,.08)}.log-viewer .log-line{padding:1px 0}.log-viewer .log-time{color:#4ade80}.log-viewer .log-level-info{color:#67e8f9}.log-viewer .log-level-warn{color:#fde047}.log-viewer .log-level-error{color:#f87171}.skill-card{border-radius:var(--r)!important;transition:box-shadow .2s,transform .2s!important;cursor:pointer;height:100%}.skill-card:hover{box-shadow:0 4px 20px #6366f11f!important;transform:translateY(-2px)}@keyframes ocFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.oc-stat:nth-child(1){animation:ocFadeUp .4s ease both .04s}.oc-stat:nth-child(2){animation:ocFadeUp .4s ease both .1s}.oc-stat:nth-child(3){animation:ocFadeUp .4s ease both .16s}.oc-stat:nth-child(4){animation:ocFadeUp .4s ease both .22s}.oc-charts-row{animation:ocFadeUp .4s ease both .28s}
