:root{--color-bg-primary: #0d1117;--color-bg-secondary: #161b22;--color-bg-tertiary: #21262d;--color-bg-elevated: #2d333b;--color-bg-hover: #30363d;--color-accent-primary: #049fd9;--color-accent-secondary: #00bceb;--color-accent-tertiary: #6cc04a;--color-accent-warning: #fbab18;--color-accent-danger: #e2231a;--color-text-primary: #f0f6fc;--color-text-secondary: #8b949e;--color-text-tertiary: #6e7681;--color-text-disabled: #484f58;--color-border-primary: #30363d;--color-border-secondary: #21262d;--color-border-accent: #049fd9;--color-status-up: #6cc04a;--color-status-down: #e2231a;--color-status-warning: #fbab18;--color-status-info: #049fd9;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-xxl: 32px;--font-family-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-xxl: 24px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 8px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(4, 159, 217, .3);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--toolbar-height: 48px;--sidebar-width: 240px;--properties-width: 320px;--statusbar-height: 28px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-family-ui);font-size:var(--font-size-md);font-weight:var(--font-weight-normal);line-height:1.5;color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}#root{height:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-bg-hover);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}::selection{background:var(--color-accent-primary);color:var(--color-text-primary)}:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}button,a,input,textarea,select,[role=button]{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md)}input:focus,textarea:focus,select:focus{border-color:var(--color-accent-primary);outline:none}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-md{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-lg)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-accent{color:var(--color-accent-primary)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all var(--transition-fast)}.icon-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.icon-btn.active{background:var(--color-accent-primary);color:var(--color-text-primary)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-accent-primary);color:var(--color-text-primary);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.btn-primary:hover{background:var(--color-accent-secondary);box-shadow:var(--shadow-glow)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.btn-secondary:hover{background:var(--color-bg-hover);border-color:var(--color-border-accent)}.panel{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border-primary);font-weight:var(--font-weight-semibold)}.panel-content{padding:var(--spacing-lg)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:var(--font-size-xs);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:1000}.tooltip:hover:after{opacity:1}.status-indicator{display:inline-block;width:8px;height:8px;border-radius:50%}.status-up{background:var(--color-status-up)}.status-down{background:var(--color-status-down)}.status-warning{background:var(--color-status-warning)}.divider{height:1px;background:var(--color-border-primary);margin:var(--spacing-md) 0}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge-success{background:#6cc04a33;color:var(--color-status-up)}.badge-warning{background:#fbab1833;color:var(--color-status-warning)}.badge-danger{background:#e2231a33;color:var(--color-status-down)}.badge-info{background:#049fd933;color:var(--color-status-info)}.changelog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}.changelog-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;width:90%;max-width:700px;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease-out;position:relative}.changelog-close{position:absolute;top:16px;right:16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:24px;width:32px;height:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:0;padding:0;z-index:10;font-family:Arial,sans-serif}.changelog-close:hover{background:#fff3;border-color:#ffffff4d;transform:scale(1.05)}.changelog-header{padding:32px 32px 24px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,transparent 100%)}.changelog-header h2{margin:0;font-size:28px;font-weight:700;color:#fff;display:flex;align-items:center;gap:12px}.changelog-subtitle{margin:8px 0 0;font-size:14px;color:#fff9}.changelog-content{padding:24px 32px;overflow-y:auto;max-height:calc(80vh - 120px)}.changelog-content::-webkit-scrollbar{width:8px}.changelog-content::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.changelog-content::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.changelog-content::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.changelog-release{margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.1)}.changelog-release:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.release-header{display:flex;align-items:center;gap:16px;margin-bottom:12px}.release-header h3{margin:0;font-size:24px;font-weight:700;color:#4a9eff}.release-date{font-size:14px;color:#ffffff80;font-weight:500}.release-title{font-size:16px;font-weight:600;color:#ffffffe6;margin-bottom:16px;padding:8px 12px;background:#4a9eff1a;border-left:3px solid #4a9eff;border-radius:4px}.changelog-section{margin-top:20px}.changelog-section h4{margin:0 0 12px;font-size:16px;font-weight:600;color:#fff;display:flex;align-items:center;gap:8px}.changelog-section ul{margin:0;padding-left:20px;list-style:none}.changelog-section ul li{position:relative;margin-bottom:8px;padding-left:16px;color:#fffc;font-size:14px;line-height:1.6}.changelog-section ul li:before{content:"•";position:absolute;left:0;color:#4a9eff;font-weight:700}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.lab-library-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:360;display:flex;align-items:center;justify-content:center;padding:24px;background:#03080eb8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.lab-library-modal{width:min(900px,100%);max-height:min(760px,calc(100vh - 48px));display:flex;flex-direction:column;border-radius:28px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:radial-gradient(circle at top,#17283ce0,#070c13fa),#080c12fa;box-shadow:0 28px 80px #00000061}.lab-library-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 20px;border-bottom:1px solid rgba(255,255,255,.06)}.lab-library-kicker{margin:0 0 8px;color:#49c5ff;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.lab-library-header h2{margin:0;font-size:30px;line-height:1.05}.lab-library-close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;border:1px solid rgba(255,255,255,.06);background:#ffffff08;color:#f0f6fcd6;font-size:28px;line-height:1}.lab-library-body{display:flex;flex-direction:column;gap:28px;padding:24px;overflow-y:auto}.lab-library-section{display:flex;flex-direction:column;gap:16px}.lab-library-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.lab-library-section-header h3{margin:0 0 6px;font-size:20px}.lab-library-section-header p{margin:0;color:#f0f6fca3}.lab-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.lab-library-card,.lab-library-list-item{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:20px;border:1px solid rgba(255,255,255,.06);background:#ffffff09}.lab-library-card strong,.lab-library-list-item strong{font-size:18px}.lab-library-card p,.lab-library-list-item p{margin:0;color:#f0f6fca3;line-height:1.55}.lab-library-list{display:flex;flex-direction:column;gap:12px}.lab-library-snapshot-form{display:grid;grid-template-columns:1fr auto;gap:12px}.lab-library-snapshot-form input{width:100%;min-height:42px;padding:0 14px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:var(--color-text-primary);font-size:13px}.lab-library-inline-note{padding:10px 12px;border-radius:14px;border:1px solid rgba(73,197,255,.18);background:#49c5ff0f;color:#f0f6fcd1;font-size:12px}.lab-library-list-item{flex-direction:row;align-items:center;justify-content:space-between}.lab-library-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.lab-library-primary,.lab-library-secondary{min-height:42px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;border:1px solid rgba(255,255,255,.06);font-family:var(--font-family-mono);font-size:13px;font-weight:600}.lab-library-primary{background:linear-gradient(135deg,#2f9ffff0,#1270def2);color:#f7fbff;box-shadow:0 12px 24px #185bbb3d}.lab-library-secondary{background:#ffffff0a;color:#f0f6fcd6}.lab-library-secondary.danger{color:#ff9a90;border-color:#ff76662e;background:#48110f59}.lab-library-empty{padding:18px;border-radius:18px;border:1px dashed rgba(255,255,255,.12);color:#f0f6fc94;text-align:center}@media (max-width: 768px){.lab-library-backdrop{padding:0;align-items:stretch}.lab-library-modal{width:100%;max-height:100vh;border-radius:0;border-left:0;border-right:0}.lab-library-header{padding:calc(env(safe-area-inset-top,0px) + 18px) 18px 18px}.lab-library-header h2{font-size:24px}.lab-library-body{padding:18px;gap:22px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 24px)}.lab-library-section-header,.lab-library-list-item{flex-direction:column;align-items:stretch}.lab-library-snapshot-form{grid-template-columns:1fr}.lab-library-actions{justify-content:stretch}.lab-library-primary,.lab-library-secondary{width:100%}}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;color:var(--color-text-secondary);background:#ffffff08;border:1px solid transparent;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.icon-button:hover{color:var(--color-text-primary);background:#ffffff12}.icon-button.active{color:var(--color-text-primary);background:#49c5ff24;border-color:#49c5ff33}.icon-button.accent{color:#cfe4ff;background:#3a87ff2e}.icon-button.danger{color:#ff9b92}.icon-button.small{width:32px;height:32px;border-radius:10px}.icon-button:active{transform:translateY(1px)}@media (max-width: 768px){.icon-button{width:40px;height:40px;border-radius:14px}.icon-button.small{width:36px;height:36px;border-radius:12px}}.workspace-header.compact{position:relative;z-index:220;padding:8px 10px;background:linear-gradient(180deg,#0d131bf5,#0a0f16eb);border-bottom:1px solid rgba(255,255,255,.05)}.toolbar-notice{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.06);background:#ffffff08;color:var(--color-text-primary);font-size:12px}.toolbar-notice.warning{border-color:#fbab1833;background:#fbab1814}.toolbar-notice-close{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:inherit;background:#ffffff0d;font-size:20px;line-height:1}.toolbar-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:340;display:flex;align-items:center;justify-content:center;padding:18px;background:#03080ea3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toolbar-dialog{width:min(420px,100%);padding:22px;border-radius:24px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#0d131bfa,#090e16fa);box-shadow:0 28px 60px #00000057}.toolbar-dialog h3{margin:0 0 8px;font-size:22px}.toolbar-dialog p{margin:0;color:var(--color-text-secondary);line-height:1.55}.toolbar-dialog-actions{margin-top:18px;display:flex;justify-content:flex-end;gap:10px}.toolbar-dialog-secondary,.toolbar-dialog-primary{min-height:40px;padding:0 14px;border-radius:14px;font-family:var(--font-family-mono);font-size:12px;font-weight:var(--font-weight-semibold)}.toolbar-dialog-secondary{background:#ffffff0d;color:var(--color-text-primary)}.toolbar-dialog-primary{background:linear-gradient(135deg,#13a7ebfa,#0889cafa);color:#fff}.toolbar-dialog-primary.danger{background:linear-gradient(135deg,#b02a23fa,#841711fa)}.workspace-bar,.toolbar-brand.compact,.brand-copy.compact,.workspace-summary,.workspace-actions.compact,.icon-group,.header-popovers,.popover-card,.popover-row,.segmented-toggle{display:flex;align-items:center}.workspace-bar{gap:10px;min-height:48px}.toolbar-brand.compact{gap:10px;flex-shrink:0}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:url(/favicon.svg) center/cover no-repeat;overflow:hidden}.brand-copy.compact{gap:6px;min-width:0}.brand-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.brand-name{font-family:var(--font-family-mono);font-size:18px;line-height:1}.version-badge{padding:3px 8px;border-radius:999px;background:#fbab1829;color:#ffd676;font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.08em}.donate-toolbar-btn{padding:4px 10px;border-radius:999px;text-decoration:none;font-size:11px;color:#1b1c20;background:linear-gradient(135deg,#ffdd63,#ffbb3e);font-weight:var(--font-weight-semibold);white-space:nowrap}.workspace-summary{gap:6px;flex:1;min-width:0}.summary-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.05);background:#ffffff06;color:var(--color-text-secondary);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.summary-chip strong{color:var(--color-text-primary);font-family:var(--font-family-mono);letter-spacing:0}.summary-chip.warn{border-color:#fbab1838}.summary-chip.good{border-color:#6cc04a38}.summary-chip.danger{border-color:#e2231a3d}.workspace-actions.compact{gap:8px;margin-left:auto;flex-shrink:0}.toolbar-feedback-button{height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;margin-left:8px;border-radius:14px;border:1px solid rgba(73,197,255,.24);background:linear-gradient(135deg,#112230eb,#0a151ff0);color:#d9f2ff;font-family:var(--font-family-mono);font-size:12px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;white-space:nowrap;box-shadow:0 10px 24px #00000029}.toolbar-feedback-button:hover{border-color:#49c5ff66;background:linear-gradient(135deg,#152c3ff5,#0b1925fa);transform:translateY(-1px)}.toolbar-feedback-button svg{color:#49c5ff}.toolbar-blog-button{border-color:#ffd6763d;color:#fff0ca}.toolbar-blog-button svg{color:#ffd676}.toolbar-inline-link{display:block;width:100%;color:inherit;text-decoration:none}.simulation-toggle-btn{height:42px;display:inline-flex;align-items:center;gap:9px;padding:0 16px;border-radius:14px;border:1px solid rgba(73,197,255,.18);background:linear-gradient(135deg,#142130f2,#0c131ef0);color:var(--color-text-primary);font-family:var(--font-family-mono);font-size:12px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;white-space:nowrap;box-shadow:0 10px 24px #0000002e}.simulation-toggle-btn:hover{border-color:#49c5ff5c;transform:translateY(-1px)}.simulation-toggle-btn.stopped{background:linear-gradient(135deg,#305590f5,#1d3d76f5);border-color:#7bb5ff6b;box-shadow:0 12px 30px #3682ff33}.simulation-toggle-btn.running{border-color:#ffb86647;background:linear-gradient(135deg,#291d0ff5,#1a140cf5)}.icon-group,.segmented-toggle{gap:6px;padding:4px;border-radius:14px;border:1px solid rgba(255,255,255,.05);background:#ffffff06}.icon-group.secondary{gap:4px}.segmented-toggle .segment{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:var(--color-text-secondary)}.segmented-toggle .segment:hover,.segmented-toggle .segment.active{color:var(--color-text-primary);background:#49c5ff24}.header-popovers{gap:6px}.popover-anchor{position:relative}.toolbar-feedback-anchor{display:none}.popover-card{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;flex-direction:column;align-items:stretch;gap:6px;padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.07);background:#0a0f16fa;box-shadow:0 18px 40px #00000047;z-index:230}.popover-row{justify-content:space-between;gap:16px;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.popover-row strong{color:var(--color-text-primary);font-family:var(--font-family-mono)}.links-stat{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:8px;flex-wrap:nowrap;white-space:nowrap}.links-stat strong{min-width:1ch}.links-stat span{font-size:12px;color:var(--color-text-secondary)}.overflow-card button{text-align:left;padding:8px 10px;border-radius:10px;color:var(--color-text-secondary)}.overflow-card button:hover{background:#ffffff0f;color:var(--color-text-primary)}.overflow-card button.danger{color:#ff9b92}.overflow-only{display:none}.hide-on-mobile{display:flex}@media (max-width: 1380px){.hide-on-tablet{display:none}.overflow-only{display:block}}@media (max-width: 1180px){.hide-on-small-desktop{display:none}}@media (max-width: 860px){.workspace-summary{display:none}}@media (max-width: 720px){.brand-name{font-size:15px}.workspace-bar{flex-wrap:wrap;align-items:flex-start}.workspace-actions.compact{width:100%;justify-content:space-between}.toolbar-feedback-button{margin-left:auto}.simulation-toggle-btn span{display:none}.simulation-toggle-btn{padding:0 12px}}@media (max-width: 768px){.workspace-header.compact{padding:10px 12px 8px}.workspace-bar{min-height:auto}.brand-copy.compact{flex-direction:column;align-items:flex-start;gap:4px}.brand-meta{gap:6px}.donate-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;font-size:10px;line-height:1}.workspace-actions.compact{gap:6px;margin-left:0}.hide-on-mobile{display:none}.header-popovers{margin-left:auto}.toolbar-feedback-anchor{display:block;order:-1}.popover-card{position:fixed;top:calc(env(safe-area-inset-top) + 64px);right:12px;left:auto;min-width:220px;width:min(300px,calc(100vw - 24px));max-height:calc(100vh - 84px);overflow-y:auto}.toolbar-dialog{padding:18px;border-radius:20px}.toolbar-dialog-actions{flex-direction:column-reverse}.toolbar-dialog-secondary,.toolbar-dialog-primary{width:100%}}@media (max-width: 540px){.workspace-header.compact{padding:10px 10px 6px}.toolbar-brand.compact{gap:8px}.brand-mark{width:30px;height:30px;border-radius:10px;font-size:12px}.brand-name{font-size:16px}.version-badge{padding:2px 7px;font-size:9px}.donate-toolbar-btn{padding:4px 7px;font-size:9px}.workspace-actions.compact{width:auto;margin-left:auto}.popover-card{top:calc(env(safe-area-inset-top) + 60px);right:10px;width:min(280px,calc(100vw - 20px));max-height:calc(100vh - 76px)}}.device-palette{width:var(--sidebar-width);min-width:220px;height:100%;min-height:0;background:radial-gradient(circle at top,rgba(73,197,255,.08),transparent 28%),#0a0f16eb;border:1px solid rgba(255,255,255,.06);border-radius:22px;display:flex;flex-direction:column;overflow:hidden}.palette-header{padding:12px;border-bottom:1px solid var(--color-border-primary);background:#ffffff05}.palette-header-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.palette-header-copy{min-width:0}.palette-header h2{font-size:var(--font-size-md);font-family:var(--font-family-mono);color:var(--color-text-primary);margin:0}.palette-kicker{color:var(--color-accent-primary);font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.palette-tabs{margin-top:10px;display:flex;gap:8px}.palette-tabs.compact{margin-top:0;gap:6px}.palette-search{padding:0 0 10px;position:relative}.palette-search input{width:100%;padding:var(--spacing-sm) var(--spacing-md);padding-right:28px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm)}.palette-search input:focus{border-color:var(--color-accent-primary);outline:none}.palette-search input::placeholder{color:var(--color-text-tertiary)}.search-clear{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-bg-hover);color:var(--color-text-tertiary);font-size:14px;line-height:1}.search-clear:hover{background:var(--color-border-primary);color:var(--color-text-primary)}.palette-content{flex:1;overflow-y:auto;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:10px;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.device-category{margin-bottom:var(--spacing-xs)}.category-header{width:100%;display:flex;align-items:center;gap:var(--spacing-sm);padding:8px 12px;background:var(--color-bg-tertiary);border-radius:14px;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:left;transition:all var(--transition-fast)}.category-header:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.category-arrow{font-size:10px;transition:transform var(--transition-fast)}.category-arrow.expanded{transform:rotate(90deg)}.category-content{padding:var(--spacing-xs) 0}.subcategory{margin-left:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.subcategory-header{width:100%;display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:transparent;color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:left}.subcategory-header:hover{color:var(--color-text-secondary)}.subcategory-header .category-arrow{font-size:8px}.device-count{margin-left:auto;padding:1px 6px;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);font-size:10px}.subcategory-devices,.category-devices.direct{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xs);padding:4px}.category-devices.cables{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.device-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px;background:var(--color-bg-tertiary);border:1px solid var(--color-border-secondary);border-radius:14px;cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;position:relative}.device-item:hover{background:var(--color-bg-hover);border-color:var(--color-border-accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.device-item:active{transform:scale(.98)}.device-item.modular:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;background:var(--color-accent-primary);border-radius:50%}.cable-item{flex-direction:row;justify-content:flex-start;cursor:pointer;padding:var(--spacing-sm) var(--spacing-md)}.cable-item:hover{border-color:var(--cable-color, var(--color-border-accent))}.cable-item.active{background:#049fd926;border-color:var(--cable-color, var(--color-accent-primary));box-shadow:0 0 10px #049fd933}.findings-list{display:flex;flex-direction:column;gap:8px}.findings-empty{padding:12px;border-radius:16px;border:1px dashed var(--color-border-primary);color:var(--color-text-secondary);background:#ffffff05}.findings-empty strong{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.finding-card{padding:10px;border-radius:16px;border:1px solid var(--color-border-primary);background:#ffffff05;text-align:left;transition:transform var(--transition-fast),border-color var(--transition-fast)}.finding-card:hover{transform:translateY(-1px)}.finding-card.active{border-color:#49c5ff66;background:#49c5ff14}.finding-card.high,.finding-card.critical{border-color:#e2231a40}.finding-card.medium{border-color:#fbab1840}.finding-card-top{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.severity-badge{padding:2px 8px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:var(--font-weight-bold)}.severity-badge.high,.severity-badge.critical{background:#e2231a29;color:#ff978f}.severity-badge.medium{background:#fbab1829;color:#ffd273}.severity-badge.low{background:#49c5ff24;color:#8ae0ff}.finding-kind,.finding-card p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.device-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px}.cable-item .device-icon{width:32px;height:32px}.device-info{display:flex;align-items:center;gap:var(--spacing-xs);min-width:0}.device-name{font-size:10px;color:var(--color-text-secondary);text-align:center;line-height:1.2;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cable-item .device-name{font-size:var(--font-size-sm);max-width:none}.modular-badge{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:var(--color-accent-primary);color:#fff;font-size:8px;font-weight:var(--font-weight-bold);border-radius:2px}.cable-item .modular-badge{display:none}.connection-mode-indicator{padding:var(--spacing-sm) var(--spacing-md);background:#049fd91a;border-top:1px solid var(--color-border-accent);display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-xs)}.connection-mode-indicator span{color:var(--color-accent-primary);font-weight:var(--font-weight-medium)}.connection-mode-indicator button{padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.connection-mode-indicator button:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}@media (max-width: 768px){.device-palette{border-radius:0 0 22px 22px;box-shadow:0 24px 42px #00000057}.palette-header{padding:10px 12px}.palette-content{padding:8px}.palette-search input{min-height:44px;padding:10px 36px 10px 14px;border-radius:14px;font-size:14px}.subcategory-devices,.category-devices.direct{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.device-item{min-height:84px;padding:8px 6px}}@media (max-width: 540px){.palette-header{padding:12px}.palette-header h2{font-size:14px}.palette-kicker{font-size:10px}.palette-content{padding:10px}.category-header,.subcategory-header{min-height:40px}.device-icon{width:30px;height:30px}.device-name{max-width:88px;font-size:10px;white-space:normal;overflow:visible;text-overflow:initial}.subcategory-devices,.category-devices.direct{grid-template-columns:repeat(2,minmax(0,1fr))}}.canvas-container{flex:1;position:relative;overflow:hidden;background:radial-gradient(circle at top,rgba(73,197,255,.06),transparent 28%),#06090f;border:1px solid rgba(255,255,255,.06);border-radius:18px;cursor:default;touch-action:none;--canvas-toolbar-bottom: 14px;--canvas-subtool-bottom: 78px;--canvas-notice-bottom: 138px;--canvas-error-bottom: 192px;--canvas-selection-bottom: 246px;--canvas-traffic-bottom: 356px}.canvas-container.focus-mode{box-shadow:inset 0 0 0 1px #49c5ff33}.canvas-grid{position:absolute;top:0;left:0;width:10000px;height:10000px;background-image:linear-gradient(rgba(48,54,61,.3) 1px,transparent 1px),linear-gradient(90deg,rgba(48,54,61,.3) 1px,transparent 1px);background-size:20px 20px;transform-origin:0 0;pointer-events:none}.canvas-svg{position:absolute;top:0;left:0;width:10000px;height:10000px;transform-origin:0 0}.connections-layer .connection-line{cursor:pointer;transition:stroke-width var(--transition-fast)}.connections-layer .connection-line:hover{stroke-width:5;filter:drop-shadow(0 0 4px currentColor)}.pending-connection{pointer-events:none;animation:dash .5s linear infinite}.pending-connection-group{pointer-events:none}@keyframes dash{to{stroke-dashoffset:-12}}.device-node{cursor:move;transition:filter var(--transition-fast),opacity var(--transition-fast);touch-action:none}.device-node:hover{filter:drop-shadow(0 0 8px rgba(4,159,217,.4))}.device-node.selected{filter:drop-shadow(0 0 12px rgba(4,159,217,.6))}.device-node.pending{filter:drop-shadow(0 0 12px rgba(251,171,24,.6))}.device-node.connection-mode{cursor:crosshair}.device-node.incompatible{opacity:.5;cursor:not-allowed}.device-node.incompatible:hover{filter:none}.device-label{pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.8)}.selection-ring{animation:pulse 1.5s ease-in-out infinite}.pending-ring{animation:pendingPulse .8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pendingPulse{0%,to{opacity:1;stroke-width:2}50%{opacity:.7;stroke-width:3}}.power-indicator{filter:drop-shadow(0 0 4px currentColor)}.finding-chip.active rect{filter:drop-shadow(0 0 10px rgba(138,224,255,.3))}.port-count text{pointer-events:none}.packet{filter:drop-shadow(0 0 6px currentColor);animation:packetPulse .5s ease-in-out infinite}@keyframes packetPulse{0%,to{r:6;opacity:1}50%{r:8;opacity:.8}}.canvas-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;opacity:.6}.canvas-empty .empty-icon{display:inline-flex;align-items:center;justify-content:center;color:#49c5ffb8;margin-bottom:var(--spacing-lg);filter:drop-shadow(0 10px 24px rgba(73,197,255,.12))}.canvas-empty .empty-icon svg{width:60px;height:60px}.canvas-empty h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.canvas-empty p{font-size:var(--font-size-md);color:var(--color-text-secondary)}.connection-overlay{position:absolute;top:var(--spacing-lg);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);background:#049fd926;border:1px solid var(--color-accent-primary);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:slideDown .2s ease;z-index:100}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.connection-overlay .cable-type{font-weight:var(--font-weight-semibold);color:var(--color-accent-primary)}.connection-overlay .hint{color:var(--color-text-tertiary);padding-left:var(--spacing-md);border-left:1px solid var(--color-border-primary);font-size:var(--font-size-xs)}.connection-overlay-cancel{min-height:30px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0d;color:var(--color-text-primary);font-size:11px;font-weight:var(--font-weight-semibold);white-space:nowrap}.connection-overlay .pending-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(251,171,24,.28);background:#fbab181f;font-size:11px;font-weight:var(--font-weight-semibold);animation:bounce .6s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.connection-error{position:absolute;bottom:var(--canvas-error-bottom);left:0;right:0;margin:0 auto;width:max-content;max-width:90%;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:#e2231a26;border:1px solid var(--color-accent-danger);border-radius:var(--radius-lg);color:var(--color-accent-danger);font-size:var(--font-size-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:slideUp .2s ease,fadeOut .3s ease 3.5s forwards;z-index:100}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{to{opacity:0}}.connection-error .error-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(226,35,26,.3);font-size:11px;font-weight:var(--font-weight-bold)}.connection-error button{margin-left:var(--spacing-sm);padding:2px 8px;background:transparent;border:1px solid var(--color-accent-danger);border-radius:var(--radius-sm);color:var(--color-accent-danger);font-size:var(--font-size-xs);opacity:.7}.connection-error button:hover{opacity:1;background:#e2231a33}.canvas-delete-button{position:absolute;z-index:13;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(226,35,26,.32);background:#581212eb;color:#ffb4af;box-shadow:0 14px 26px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.canvas-delete-button:hover{background:#6c1616fa;color:#ffd0cc}.canvas-tool-rail{position:absolute;top:auto;bottom:var(--canvas-toolbar-bottom);left:16px;right:16px;transform:none;z-index:12;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;padding:6px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#060b12d6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.canvas-tool{border-radius:999px}.canvas-subtool-rail{position:absolute;top:auto;bottom:var(--canvas-subtool-bottom);left:16px;right:16px;transform:none;z-index:11;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#060b12eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 14px 28px #00000047}.canvas-subtool{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid color-mix(in srgb,var(--cable-accent) 28%,rgba(255,255,255,.04));background:color-mix(in srgb,var(--cable-accent) 10%,rgba(255,255,255,.02));color:var(--color-text-primary);transition:transform var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.canvas-subtool:hover,.canvas-subtool.active{transform:translateY(-1px);border-color:color-mix(in srgb,var(--cable-accent) 55%,rgba(255,255,255,.08));background:color-mix(in srgb,var(--cable-accent) 18%,rgba(255,255,255,.03))}.canvas-zoom-subtool-rail{gap:10px}.canvas-zoom-level{min-width:58px;padding:0 10px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid rgba(108,141,255,.2);background:#6c8dff14;color:var(--color-text-primary);font-family:var(--font-family-mono);font-size:12px;font-weight:var(--font-weight-semibold);white-space:nowrap}.canvas-zoom-subtool{--cable-accent: #6c8dff}.traceroute-playback-layer{pointer-events:none}.traceroute-line{stroke:#8adfff42;stroke-width:5;stroke-linecap:round;stroke-dasharray:10 8}.traceroute-line.active{stroke:#49c5ffeb;filter:drop-shadow(0 0 8px rgba(73,197,255,.45))}.traceroute-hop{fill:#0c121cf0;stroke:#8adfff42;stroke-width:1.5}.traceroute-hop.visited{fill:#49c5ff33;stroke:#49c5ffbf}.traceroute-hop.current{filter:drop-shadow(0 0 10px rgba(73,197,255,.5))}.traceroute-hop-label{fill:#f0f6fc;font-size:11px;font-weight:700;pointer-events:none}.traceroute-overlay{position:absolute;top:12px;left:12px;right:12px;z-index:12;width:auto;padding:12px;border-radius:18px;border:1px solid rgba(73,197,255,.16);background:#060b12e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 16px 30px #0000004d}.traffic-overlay{position:absolute;top:auto;bottom:var(--canvas-traffic-bottom);left:12px;right:12px;z-index:13;width:auto;padding:12px;border-radius:18px;border:1px solid rgba(108,192,74,.18);background:#060b12e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 16px 30px #0000004d}.traffic-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.traffic-overlay-list{display:flex;flex-direction:column;gap:8px}.traffic-overlay-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:14px;border:1px solid rgba(108,192,74,.16);background:#6cc04a14;color:var(--color-text-primary);text-align:left}.traffic-overlay-card span{color:var(--color-text-secondary);font-size:12px}.traceroute-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.traceroute-overlay-header strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.traceroute-overlay-header button{width:28px;height:28px;border-radius:10px;background:#ffffff0a;color:var(--color-text-secondary)}.traceroute-hop-strip{display:flex;flex-direction:column;gap:8px}.traceroute-hop-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.06);background:#ffffff08;color:var(--color-text-secondary)}.traceroute-hop-card.active{border-color:#49c5ff47;background:#49c5ff1a;color:var(--color-text-primary)}.traceroute-hop-number{font-size:10px;text-transform:uppercase;letter-spacing:.08em}@media (max-width: 540px){.canvas-empty{width:min(280px,calc(100% - 32px))}.canvas-empty .empty-icon{margin-bottom:14px}.canvas-empty .empty-icon svg{width:52px;height:52px}.canvas-empty h3{font-size:18px;line-height:1.25}.canvas-empty p{font-size:13px;line-height:1.45}.canvas-container{--canvas-toolbar-bottom: 14px;--canvas-subtool-bottom: 78px;--canvas-notice-bottom: 140px;--canvas-error-bottom: 194px;--canvas-selection-bottom: 248px;--canvas-traffic-bottom: 362px}.canvas-delete-button{width:42px;height:42px}}@media (min-width: 901px){.connection-error{bottom:60px}.canvas-tool-rail{top:14px;bottom:auto;left:50%;right:auto;transform:translate(-50%);justify-content:initial;flex-wrap:nowrap;border-radius:999px}.canvas-subtool-rail{top:64px;bottom:auto;left:50%;right:auto;transform:translate(-50%);justify-content:initial;flex-wrap:nowrap;border-radius:999px}.traffic-overlay{top:84px;bottom:auto;left:14px;right:auto;width:min(320px,calc(100% - 28px))}.traceroute-overlay{top:84px;left:auto;right:14px;width:min(360px,calc(100% - 28px))}}.physical-view-container{flex:1;background:#0d1117;display:flex;flex-direction:column;padding:20px;overflow:hidden}.physical-breadcrumbs{padding:10px;background:#161b22;border-radius:6px;margin-bottom:20px;display:flex;gap:8px;font-size:14px}.breadcrumb-item{color:#4da6ff;cursor:pointer}.breadcrumb-item:hover{text-decoration:underline}.separator{color:#444}.physical-workspace{flex:1;display:flex;justify-content:center;align-items:center}.physical-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px;width:100%;max-width:800px}.physical-item{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;transition:all .2s}.physical-item:hover{border-color:#4da6ff;background:#1c2128;transform:translateY(-2px)}.physical-item .icon{font-size:40px}.physical-item .label{font-size:14px;font-weight:500}.closet-view{width:100%;height:100%;display:flex;justify-content:center}.rack{width:500px;background:#252525;border:4px solid #444;border-radius:4px;display:flex;flex-direction:column}.rack-header{background:#444;color:#eee;padding:8px;text-align:center;font-size:12px;font-weight:700;text-transform:uppercase}.rack-content{padding:10px;display:flex;flex-direction:column;gap:4px}.rack-device{background:#333;border:1px solid #555;padding:8px 12px;display:flex;align-items:center;gap:10px;font-size:12px;color:#ddd}.empty-rack{padding:40px;text-align:center;color:#666;font-style:italic}.terminal{display:flex;flex-direction:column;height:100%;background:radial-gradient(circle at top,rgba(73,197,255,.06),transparent 28%),#0b1017;font-family:var(--font-family-mono);font-size:12px;line-height:1.4;min-height:0}.terminal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08)}.terminal-shortcuts{display:flex;gap:8px;overflow-x:auto;padding:10px 12px 8px;border-bottom:1px solid rgba(255,255,255,.06);background:#ffffff05;-webkit-overflow-scrolling:touch;scrollbar-width:none}.terminal-shortcuts::-webkit-scrollbar{display:none}.terminal-shortcut{flex:0 0 auto;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(73,197,255,.16);background:#49c5ff14;color:#d7f0ff;font-family:var(--font-family-ui);font-size:11px;font-weight:var(--font-weight-medium);white-space:nowrap}.terminal-shortcut:hover{background:#49c5ff24;border-color:#49c5ff3d}.terminal-title{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-family:var(--font-family-ui)}.terminal-clear{padding:4px 10px;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:var(--color-text-tertiary);font-size:10px;font-family:var(--font-family-ui)}.terminal-clear:hover{background:#ffffff0f;border-color:#ffffff2e;color:var(--color-text-secondary)}.terminal-content{flex:1;padding:var(--spacing-md);overflow-y:auto;color:#ccc;min-height:0}.terminal-line{display:flex;flex-wrap:wrap;margin-bottom:2px}.terminal-line.system{color:#6cc04a}.terminal-line.output{white-space:pre-wrap;color:#ccc}.terminal-line.error{color:#e2231a}.prompt{color:#fc0;margin-right:4px;white-space:nowrap}.content{white-space:pre-wrap;word-break:break-all}.terminal-input-line{display:flex;align-items:center;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#080c12f2;border-top:1px solid rgba(255,255,255,.08);position:sticky;bottom:0;z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.terminal-input{flex:1;min-width:0;background:#ffffff08;border:1px solid rgba(255,255,255,.08);outline:none;color:#fff;font-family:inherit;font-size:inherit;padding:10px 12px;border-radius:14px;caret-color:#fff}.terminal-input::placeholder{color:#555}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.terminal-input:focus{animation:none;border-color:#49c5ff8f;box-shadow:0 0 0 1px #49c5ff2e}.terminal-content::-webkit-scrollbar{width:8px}.terminal-content::-webkit-scrollbar-track{background:#1a1a1a}.terminal-content::-webkit-scrollbar-thumb{background:#444;border-radius:4px}.terminal-content::-webkit-scrollbar-thumb:hover{background:#555}.terminal-content::selection,.terminal-content *::selection{background:#049fd966;color:#fff}@media (max-width: 768px){.terminal{font-size:13px;line-height:1.5}.terminal-header{padding:10px 12px}.terminal-title{font-size:12px}.terminal-content{padding:12px}.terminal-shortcuts{padding:10px 12px 8px}.terminal-line{margin-bottom:4px}.prompt{font-size:12px}.terminal-input-line{align-items:flex-start;padding:12px 12px calc(14px + env(safe-area-inset-bottom))}.terminal-input{min-height:44px;font-size:14px}.terminal-shortcut{min-height:38px;font-size:12px;padding:0 14px}}@media (max-width: 540px){.terminal{font-size:14px}.terminal-content{padding:12px 12px 18px}.terminal-input-line{flex-wrap:wrap;gap:6px}.prompt{width:100%;margin-right:0;color:#ffd55f}.terminal-input{width:100%}}.properties-panel{width:100%;min-width:0;height:100%;min-height:0;background:radial-gradient(circle at top,rgba(73,197,255,.07),transparent 24%),#0b1018f5;border-left:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;overflow:hidden}.panel-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;text-align:center}.panel-empty .empty-icon{display:inline-flex;align-items:center;justify-content:center;color:#49c5ffb8;margin-bottom:10px;opacity:.72}.panel-empty .empty-icon svg{width:40px;height:40px}.panel-empty p{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.device-header-info{display:flex;align-items:center;gap:var(--spacing-sm)}.power-dot{width:10px;height:10px;border-radius:50%}.power-dot.on{background:var(--color-status-up);box-shadow:0 0 6px var(--color-status-up)}.power-dot.off{background:var(--color-status-down)}.device-hostname{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}.device-model{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.btn-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:14px}.btn-icon:hover{background:var(--color-bg-hover)}.btn-icon.danger:hover{background:#e2231a33}.panel-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff05}.tab-btn{flex:1;padding:12px 14px;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-bottom:2px solid transparent}.tab-btn:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.tab-btn.active{color:var(--color-accent-primary);border-bottom-color:var(--color-accent-primary)}.panel-body{flex:1;overflow:hidden;min-height:0;display:flex;flex-direction:column}.panel-notice{margin:12px 14px 0;padding:10px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--color-text-primary);font-size:12px;line-height:1.45}.panel-notice.success{border-color:#6cc04a38;background:#6cc04a1a}.panel-notice.warning{border-color:#fbab1838;background:#fbab1814}.tab-content{padding:var(--spacing-md);min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.tab-content.cli-tab{padding:0;height:100%;overflow:hidden}.config-tab{display:flex;padding:0;height:100%;min-height:0}.config-sidebar{width:112px;background:#ffffff08;border-right:1px solid rgba(255,255,255,.06);padding:8px;overflow-y:auto}.config-nav-item{width:100%;padding:9px 10px;margin-bottom:4px;background:transparent;color:var(--color-text-secondary);font-size:12px;text-align:left;border-radius:12px}.config-nav-item:hover{background:var(--color-bg-hover)}.config-nav-item.active{background:#49c5ff2e;color:var(--color-text-primary);box-shadow:inset 0 0 0 1px #49c5ff42}.config-content{flex:1;padding:14px;overflow-y:auto;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.section{margin-bottom:var(--spacing-lg)}.section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border-secondary)}.config-section h5{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:var(--spacing-md) 0 var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border-secondary)}.config-section h5:first-child{margin-top:0}.alert{margin:0 0 14px;padding:12px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.07);background:#ffffff08;color:var(--color-text-secondary);font-size:13px;line-height:1.5}.alert strong{display:block;margin-bottom:4px;color:var(--color-text-primary);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.alert.info{border-color:#49c5ff2e;background:#49c5ff0f}.alert.warning{border-color:#fbab182e;background:#fbab180f}.alert-list{margin:8px 0 0;padding-left:18px}.alert-list li+li{margin-top:4px}.info-grid{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) 0}.info-row label{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.model-value{color:var(--color-accent-primary);font-weight:var(--font-weight-semibold)}.form-group{margin-bottom:var(--spacing-sm)}.form-group label{display:block;font-size:12px;color:var(--color-text-tertiary);margin-bottom:6px}.form-group.inline{display:flex;align-items:center;justify-content:space-between}.form-group.inline label{margin-bottom:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.form-group input[type=text],.form-group input[type=password],.form-group input[type=number],.form-group textarea,.form-group select{width:100%;padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.09);border-radius:14px;color:var(--color-text-primary);font-size:13px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--color-accent-primary);outline:none}.form-group textarea{resize:vertical;font-family:var(--font-family-mono)}.input-sm,.select-sm{padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-xs)}.radio-group{display:flex;gap:var(--spacing-md)}.radio-group.vertical{flex-direction:column;gap:var(--spacing-xs)}.radio-group label{display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;font-size:12px;color:var(--color-text-secondary)}.switch-label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:12px;color:var(--color-text-secondary);cursor:pointer}.btn{padding:9px 12px;border-radius:12px;font-size:12px;font-weight:var(--font-weight-medium);cursor:pointer}.btn.primary{background:var(--color-accent-primary);color:#fff}.btn.primary:hover{background:#0090d9}.action-button{min-height:40px;padding:0 14px;border-radius:14px;font-size:12px;font-weight:var(--font-weight-semibold);letter-spacing:.01em}.action-button.primary{background:linear-gradient(135deg,#13a7ebfa,#0889cafa);color:#fff;box-shadow:0 12px 22px #049fd92e}.action-button.primary:hover{filter:brightness(1.04)}.action-button.secondary{background:#ffffff0a;color:var(--color-text-primary);border:1px solid rgba(255,255,255,.08)}.action-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.telemetry-card-list{display:grid;gap:10px;margin-top:12px}.telemetry-card-list.compact{margin:10px 0 14px}.telemetry-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.07);background:#ffffff08;color:var(--color-text-secondary);font-size:12px}.telemetry-card strong{color:var(--color-text-primary);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.service-telemetry{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;color:var(--color-text-secondary);font-size:12px}.power-btn{min-height:34px;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:var(--font-weight-semibold);letter-spacing:.01em}.power-btn.on{background:#6cc04a33;color:var(--color-status-up);border:1px solid var(--color-status-up)}.power-btn.off{background:#e2231a33;color:var(--color-status-down);border:1px solid var(--color-status-down)}.badge{display:inline-flex;padding:2px 6px;font-size:10px;font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);background:var(--color-bg-hover);color:var(--color-text-secondary)}.badge.success{background:#6cc04a33;color:var(--color-status-up)}.badge.warning{background:#fbab1833;color:var(--color-accent-warning)}.badge.danger{background:#e2231a33;color:var(--color-accent-danger)}.slots-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-sm)}.slot-card{padding:var(--spacing-sm);background:var(--color-bg-tertiary);border:1px dashed var(--color-border-primary);border-radius:var(--radius-md)}.slot-card.filled{border-style:solid;border-color:var(--color-accent-primary);background:#049fd90d}.slot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.slot-name{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.module-info{display:flex;justify-content:space-between;align-items:center}.module-name{font-size:var(--font-size-xs);color:var(--color-accent-primary);font-weight:var(--font-weight-medium)}.module-ports{font-size:10px;color:var(--color-text-tertiary)}.interfaces-table{font-size:var(--font-size-xs)}.interfaces-table .table-header{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xs);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.interfaces-table .table-row{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-bottom:1px solid var(--color-border-secondary);align-items:center}.interfaces-table .table-row.up{background:#6cc04a0d}.interfaces-table.compact .table-row{grid-template-columns:2fr 1fr 1fr}.interfaces-table.cloud-table .table-header,.interfaces-table.cloud-table .table-row{grid-template-columns:2fr 1fr 2fr}.port-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.port-type{color:var(--color-text-tertiary)}.port-mac{font-family:var(--font-family-mono);font-size:9px;color:var(--color-text-tertiary)}.status-dot{font-size:10px}.status-dot.up{color:var(--color-status-up)}.status-dot.down{color:var(--color-text-tertiary)}.status-indicator{width:8px;height:8px;border-radius:50%;display:inline-block}.status-indicator.up{background:var(--color-status-up)}.status-indicator.down{background:var(--color-text-tertiary)}.table-more,.table-empty{text-align:center;padding:var(--spacing-sm);color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.interface-card{background:var(--color-bg-tertiary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);overflow:hidden}.interface-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-bg-hover);border-bottom:1px solid var(--color-border-secondary)}.interface-name{flex:1;font-weight:var(--font-weight-medium);font-size:var(--font-size-xs)}.interface-body{padding:var(--spacing-sm)}.routes-table{font-size:var(--font-size-xs);margin-bottom:var(--spacing-md)}.routes-table .table-header{display:grid;grid-template-columns:2fr 2fr 2fr 1fr;gap:var(--spacing-xs);padding:var(--spacing-xs);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.routes-table .table-row{display:grid;grid-template-columns:2fr 2fr 2fr 1fr;gap:var(--spacing-xs);padding:var(--spacing-xs);border-bottom:1px solid var(--color-border-secondary);font-family:var(--font-family-mono)}.vlan-list{margin-bottom:var(--spacing-md)}.vlan-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm);border-bottom:1px solid var(--color-border-secondary)}.vlan-id{width:40px;font-weight:var(--font-weight-semibold);color:var(--color-accent-primary)}.vlan-name{flex:1}.service-item{background:var(--color-bg-tertiary);border:1px solid var(--color-border-secondary);border-radius:16px;margin-bottom:var(--spacing-sm);overflow:hidden;box-shadow:inset 0 1px #ffffff08}.service-header{display:flex;align-items:center;justify-content:space-between;padding:14px;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);gap:10px}.service-header span{color:var(--color-text-primary)}.service-config{padding:14px;border-top:1px solid var(--color-border-secondary);background:var(--color-bg-primary)}.port-security-item{background:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);overflow:hidden}.port-security-item .port-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm);font-weight:var(--font-weight-medium)}.port-security-config{padding:var(--spacing-sm);border-top:1px solid var(--color-border-secondary)}.form-group input:disabled,.form-group input.disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--color-bg-primary);color:var(--color-text-tertiary);cursor:not-allowed;opacity:.7}.form-group input:disabled::placeholder,.form-group input.disabled::placeholder{color:var(--color-text-tertiary);opacity:.5}.dhcp-status{margin-top:var(--spacing-xs);padding:var(--spacing-xs);background:#6cc04a1a;border-radius:var(--radius-sm)}.dns-records{background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-sm);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);max-height:120px;overflow-y:auto}.dns-record{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border-secondary);font-size:var(--font-size-xs)}.dns-record:last-child{border-bottom:none}.dns-hostname{color:var(--color-accent-primary);font-weight:var(--font-weight-medium);flex:1}.dns-arrow{color:var(--color-text-tertiary);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.dns-ip{color:var(--color-text-secondary);font-family:monospace}.service-info{background:#49c5ff14;border:1px solid rgba(73,197,255,.18);border-radius:12px;padding:var(--spacing-sm);margin-top:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.55}.dns-record-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin-top:12px}.dns-record-form input{width:100%;padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.09);border-radius:12px;color:var(--color-text-primary);font-size:13px}.file-list{background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-sm);padding:var(--spacing-sm);max-height:100px;overflow-y:auto}.file-item{padding:var(--spacing-xs) 0;font-size:var(--font-size-xs);color:var(--color-text-secondary);border-bottom:1px solid rgba(255,255,255,.05)}.file-item:last-child{border-bottom:none}.btn-small{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast)}.btn-small.primary{background:var(--color-accent-primary);color:#fff}.btn-small.primary:hover{background:var(--color-accent-hover)}.btn-small.danger{background:#e2231a1a;color:#ff928b;padding:6px 10px;border-radius:10px}.btn-small.danger:hover{background:#e74c3c2e}.empty-state{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-style:italic;text-align:center;padding:var(--spacing-sm)}.wireless-connected,.wireless-disconnected{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.wireless-connected{background:#6cc04a26;border:1px solid rgba(108,192,74,.3);justify-content:space-between}.wireless-disconnected{background:var(--color-bg-tertiary);border:1px solid var(--color-border-secondary)}.connected-info{display:flex;align-items:center;gap:var(--spacing-sm)}.connection-details{display:flex;flex-direction:column;gap:2px}.connection-details strong{color:var(--color-status-up);font-size:var(--font-size-sm)}.ap-info{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.available-networks{margin-top:var(--spacing-sm)}.available-networks>label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.network-list{background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);overflow:hidden}.network-item{border-bottom:1px solid var(--color-border-secondary);transition:all var(--transition-fast)}.network-item:last-child{border-bottom:none}.network-item:hover{background:var(--color-bg-hover)}.network-item.connected{background:#6cc04a1a}.network-item.connecting{background:var(--color-bg-tertiary)}.network-main{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm)}.upload-row{display:flex;align-items:center;justify-content:space-between;width:100%}.password-prompt{padding:var(--spacing-sm);padding-top:0;border-top:1px solid var(--color-border-secondary);background:var(--color-bg-tertiary);animation:slideDown .2s ease-out}.password-prompt input{width:100%;margin-bottom:var(--spacing-sm)}.prompt-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.network-info{display:flex;align-items:center;gap:var(--spacing-sm)}.network-icon{display:inline-flex;align-items:center;justify-content:center;min-width:58px;min-height:28px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.03em;text-transform:uppercase;background:#ffffff0f;color:var(--color-text-secondary)}.network-icon.secure{background:#49c5ff24;color:var(--color-accent-primary)}.network-icon.open{background:#6cc04a1f;color:var(--color-status-up)}.network-details{display:flex;flex-direction:column;gap:2px}.network-details .ssid{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text-primary)}.network-details .security{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.interface-config-block{background:var(--color-bg-tertiary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);padding:var(--spacing-sm);margin-bottom:var(--spacing-md)}.interface-config-block h5{margin:0 0 var(--spacing-sm) 0;padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border-secondary)}.desktop-app-launcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}.desktop-app-tab{min-height:42px;padding:0 14px;border-radius:14px;border:1px solid var(--color-border-secondary);background:#ffffff08;color:var(--color-text-secondary);font-weight:var(--font-weight-medium);transition:border-color .16s ease,background .16s ease,color .16s ease}.desktop-app-tab.active{background:#49c5ff24;border-color:#49c5ff52;color:var(--color-text-primary)}.desktop-app-shell{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:var(--radius-md);border:1px solid var(--color-border-secondary);background:linear-gradient(180deg,#ffffff08,#ffffff04);margin-bottom:18px}.desktop-app-toolbar,.desktop-app-actions,.desktop-app-shortcuts{display:flex;flex-wrap:wrap;gap:10px}.desktop-app-toolbar input{flex:1 1 220px}.desktop-chip{min-height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(73,197,255,.2);background:#49c5ff14;color:var(--color-text-primary);font-size:12px;font-weight:var(--font-weight-medium)}.desktop-app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.desktop-app-empty,.desktop-app-result{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:14px;border:1px solid var(--color-border-secondary);background:#ffffff08;color:var(--color-text-secondary)}.desktop-app-result.success{border-color:#6cc04a3d;background:#6cc04a14}.desktop-app-result.error{border-color:#ffb3473d;background:#ffb34714}.desktop-browser-frame{display:flex;flex-direction:column;gap:10px}.desktop-browser-status{display:flex;flex-wrap:wrap;gap:10px;color:var(--color-text-secondary);font-size:12px}.desktop-browser-preview{width:100%;min-height:280px;border:1px solid var(--color-border-secondary);border-radius:14px;background:#fff}.command-prompt-shell{padding:0;overflow:hidden}.command-prompt-shell .terminal{min-height:340px}.dhcp-obtained{color:var(--color-status-up);display:flex;flex-direction:column;gap:6px;font-size:13px}.dhcp-info{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.dhcp-waiting{color:var(--color-text-tertiary);font-size:13px}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-medium)}.status-pill.success{background:#6cc04a1f;border-color:#6cc04a3d;color:var(--color-status-up)}.status-pill.inactive{background:#ffffff0a;border-color:#ffffff14;color:var(--color-text-tertiary)}.firewall-rules{margin-top:14px;display:flex;flex-direction:column;gap:12px}.rule-card{padding:14px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:#ffffff08}.rule-card.disabled{opacity:.72}.rule-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.rule-number{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.rule-actions{display:flex;align-items:center;gap:8px}.rule-toggle{min-height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-medium)}.rule-toggle.enabled{border-color:#6cc04a3d;background:#6cc04a1f;color:var(--color-status-up)}.rule-summary{margin-top:8px;color:var(--color-text-secondary);font-size:13px;line-height:1.5}.rule-summary strong{color:var(--color-text-primary)}@media (max-width: 768px){.properties-panel{background:radial-gradient(circle at top,rgba(73,197,255,.08),transparent 30%),#080d14fa}.panel-header{position:sticky;top:0;z-index:3;padding:12px 14px}.panel-tabs{position:sticky;top:57px;z-index:2;background:#080d14fa}.tab-btn{padding:12px 10px;font-size:13px}.tab-content{padding:14px}.tab-content.config-tab{padding:0;overflow:hidden}.config-content{padding:14px}.panel-body{overscroll-behavior:contain}.config-tab{flex-direction:column;overflow:hidden}.config-sidebar{width:100%;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);padding:10px 14px 8px;background:#ffffff05;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x}.config-sidebar::-webkit-scrollbar{display:none}.config-nav-item{width:auto;margin-bottom:0;white-space:nowrap;flex-shrink:0;padding:10px 14px;border-radius:999px;background:#ffffff0a}.form-row{grid-template-columns:1fr}.rule-header,.service-header,.wireless-connected{flex-direction:column;align-items:flex-start}.rule-actions{width:100%;justify-content:space-between}.service-item{border-radius:14px}.service-header,.service-config{padding:12px}.network-main,.upload-row{align-items:flex-start;gap:10px}.network-main{flex-direction:column}.network-info{width:100%;align-items:flex-start;flex-direction:column}.network-icon{min-width:0}.service-info{font-size:12px}.form-group input[type=text],.form-group input[type=password],.form-group input[type=number],.form-group textarea,.form-group select,.input-sm,.select-sm{min-height:44px;font-size:14px;border-radius:14px}.info-row{gap:10px;padding:8px 0}.section{margin-bottom:20px}.interfaces-table .table-header{display:none}.interfaces-table .table-row{grid-template-columns:1fr;gap:4px;padding:10px 12px;margin-bottom:8px;border:1px solid rgba(255,255,255,.06);border-radius:14px;background:#ffffff05}.tab-content.cli-tab{min-height:0}.desktop-app-launcher{grid-template-columns:1fr 1fr}.desktop-app-toolbar,.desktop-app-actions,.desktop-app-shortcuts{flex-direction:column}.desktop-chip,.desktop-app-actions .btn-primary,.desktop-app-actions .btn-secondary,.desktop-app-toolbar .btn-secondary{width:100%}}@media (max-width: 540px){.panel-header{padding:12px}.device-hostname{font-size:16px}.device-model{font-size:11px}.info-row{flex-direction:column;align-items:flex-start;gap:6px}.tab-content,.config-content{padding:12px}.config-sidebar{padding:8px 12px 6px}.alert{padding:12px;font-size:13px}.section-title{font-size:12px}.config-section h5{font-size:15px}.radio-group,.radio-group.vertical{gap:10px}.btn,.btn-small,.power-btn,.action-button{min-height:42px}.btn-small.danger{padding:8px 10px}.status-pill{min-height:38px;padding:0 14px}.dns-record-form{grid-template-columns:1fr}}.insights-panel{width:100%;height:100%;display:flex;flex-direction:column;background:radial-gradient(circle at top,rgba(73,197,255,.08),transparent 28%),var(--color-bg-secondary);border-left:1px solid var(--color-border-primary);overflow:hidden}.insights-filter-bar{display:flex;gap:8px;padding:12px 16px 0;overflow-x:auto;scrollbar-width:none}.insight-score-card{margin:12px 16px 0;padding:14px;border-radius:18px;border:1px solid rgba(73,197,255,.18);background:#49c5ff14}.insight-score-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.insight-score-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-primary)}.insight-score-card p{color:var(--color-text-secondary);font-size:12px}.insight-score-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.insight-score-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:#ffffff0d;color:var(--color-text-primary);font-size:11px}.insights-filter-bar::-webkit-scrollbar{display:none}.insights-filter-chip{flex:0 0 auto;min-height:32px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:var(--color-text-secondary);font-size:11px;font-weight:var(--font-weight-semibold);text-transform:uppercase}.insights-filter-chip.active{border-color:#49c5ff42;background:#49c5ff1f;color:var(--color-text-primary)}.insights-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xl);text-align:center}.insights-empty-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;border:1px solid rgba(73,197,255,.25);color:var(--color-accent-primary);background:#49c5ff14}.insights-empty h3{font-family:var(--font-family-mono);font-size:var(--font-size-lg)}.insights-empty p{color:var(--color-text-secondary)}.insights-list{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);border-bottom:1px solid var(--color-border-primary);overflow-y:auto;max-height:45%}.insight-card{text-align:left;padding:var(--spacing-md);border-radius:16px;border:1px solid var(--color-border-primary);background:#ffffff05;transition:border-color var(--transition-fast),transform var(--transition-fast),background var(--transition-fast)}.insight-card:hover{transform:translateY(-1px);border-color:#49c5ff59}.insight-card.active{background:#49c5ff14;border-color:#49c5ff73}.insight-card strong,.insight-detail h3{font-family:var(--font-family-mono);font-size:15px}.insight-card p,.insight-summary,.insight-section p,.insight-section li{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.insight-card-top,.insight-detail-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.severity-pill{padding:2px 8px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:var(--font-weight-bold)}.severity-pill.critical,.severity-pill.high{background:#e2231a29;color:#ff8f86}.severity-pill.medium{background:#fbab1829;color:#ffd170}.severity-pill.low{background:#49c5ff29;color:#8adfff}.insight-kind{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.insight-detail{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.insight-section{margin-top:var(--spacing-lg)}.insight-section h4{margin-bottom:var(--spacing-sm);color:var(--color-text-primary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em}.insight-section ul{padding-left:16px}.insight-fix-preview{margin-top:10px;padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:#9fd7ff;font-size:12px;white-space:pre-wrap;overflow-x:auto}.insight-entity-list{display:flex;flex-wrap:wrap;gap:8px}.insight-entity-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:var(--color-text-secondary);font-size:12px}.insights-filter-empty{padding-top:24px}.status-bar.compact{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;min-height:58px;padding:8px 10px 10px;background:linear-gradient(180deg,#080c13f5,#090d14);border-top:1px solid rgba(255,255,255,.06)}.status-main{display:flex;align-items:center;gap:12px;min-width:0}.control-dock.compact,.dock-group.compact,.dock-mode,.status-links.compact{display:flex;align-items:center}.control-dock.compact{gap:10px;padding:6px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.06);background:#ffffff08}.mobile-sim-button{display:none}.dock-group.compact{gap:6px}.dock-mode{gap:6px;color:var(--color-text-secondary);font-size:var(--font-size-sm);padding-inline:6px}.dock-stat{color:var(--color-text-secondary);font-size:var(--font-size-sm);padding-inline:4px}.dock-notice{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 6px 0 4px;border:none;border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-family:inherit;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.dock-notice:hover{background:#ffffff0a;color:var(--color-text-primary)}.dock-notice.has-issues{color:#f5c36a}.dock-notice-count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff14;color:var(--color-text-primary);font-size:11px;font-family:var(--font-family-mono);line-height:1}.dock-notice.has-issues .dock-notice-count{background:#fbab182e;color:#ffd897;box-shadow:inset 0 0 0 1px #fbab182e}.dock-stat strong,.dock-zoom{color:var(--color-text-primary);font-family:var(--font-family-mono)}.status-links.compact{gap:12px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}.status-link{display:inline-flex;align-items:center;color:var(--color-text-tertiary);text-decoration:none;font-size:var(--font-size-sm);white-space:nowrap}.status-link-btn{background:none;border:none;padding:0;font-family:inherit;cursor:pointer}.status-link:hover,.status-link-btn:hover{color:var(--color-accent-primary)}@media (max-width: 900px){.status-bar.compact{flex-direction:column;align-items:stretch;gap:6px}.status-main{flex-direction:column;align-items:stretch}.mobile-sim-button{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 16px;border-radius:16px;font-family:var(--font-family-mono);font-size:13px;font-weight:var(--font-weight-semibold);color:#fff;background:linear-gradient(135deg,#3f82ff,#5ea0ff);box-shadow:0 16px 30px #2c64c83d}.mobile-sim-button.running{background:linear-gradient(135deg,#c78638,#a85d23);box-shadow:0 16px 30px #8a52163d}.control-dock.compact{width:100%;justify-content:space-between;border-radius:16px;padding:5px 8px}.dock-mode,.dock-stat,.dock-notice{font-size:12px}.dock-notice{min-height:30px;gap:6px;padding-right:4px}.status-links.compact{margin-left:0;justify-content:flex-start;row-gap:0}}@media (max-width: 540px){.status-bar.compact{gap:6px;padding:6px 10px calc(6px + env(safe-area-inset-bottom))}.control-dock.compact{gap:8px;padding:4px 8px}.mobile-sim-button{padding:10px 14px;border-radius:15px;font-size:12.5px}.dock-mode{padding-inline:0}.dock-notice span{display:none}.dock-notice{padding-left:2px}.status-links.compact{width:100%;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:14px;padding:2px 2px 0;scrollbar-width:none}.status-links.compact::-webkit-scrollbar{display:none}.status-link{justify-content:flex-start;min-height:24px;font-size:12px;flex:0 0 auto;white-space:nowrap}}.welcome-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .3s ease}.nav-arrow{position:fixed;top:50%;transform:translateY(-50%);width:50px;height:80px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#f0f6fc;font-size:32px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;z-index:1001}.nav-arrow:hover{background:#fff3;border-color:#049fd9;color:#049fd9;transform:translateY(-50%) scale(1.1)}.nav-arrow-left{left:20px}.nav-arrow-right{right:20px}.get-started-btn{margin-top:12px}.welcome-modal{background:linear-gradient(145deg,#161b22,#0d1117);border:1px solid #30363d;border-radius:16px;width:90%;max-width:560px;max-height:85vh;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease;position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:#8b949e;font-size:24px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close:hover{background:#21262d;color:#f0f6fc}.modal-header{padding:32px 32px 16px;text-align:center}.modal-header h2{margin:0;font-size:24px;color:#f0f6fc;font-weight:600}.modal-body{padding:16px 32px 24px;min-height:200px}.step-content{color:#c9d1d9;font-size:15px;line-height:1.6}.step-content p{margin:0 0 16px;text-align:center}.step-content ol{margin:0;padding-left:24px}.step-content ol li{margin-bottom:12px}.features-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.alpha-notice{background:linear-gradient(145deg,#3d2800,#261a00);border:1px solid #f59e0b;border-radius:8px;padding:12px 16px;margin-bottom:16px;text-align:center}.alpha-notice p{margin:8px 0 0!important;font-size:13px;color:#fbbf24}.alpha-tag{background:linear-gradient(135deg,#f59e0b,#d97706);color:#000;font-size:11px;font-weight:700;padding:4px 10px;border-radius:4px;letter-spacing:.5px;cursor:pointer;transition:all .2s ease}.alpha-tag:hover{transform:scale(1.05);box-shadow:0 2px 8px #f59e0b66}.feedback-box{background:#21262d;border:1px solid #30363d;border-radius:8px;padding:12px 16px;margin-top:16px;text-align:center;font-size:13px}.feedback-box a{color:#58a6ff;text-decoration:none;margin-left:8px}.feedback-box a:hover{text-decoration:underline}.donate-section{background:linear-gradient(145deg,#2d1f00,#1a1200);border:1px solid #fbb034;border-radius:12px;padding:16px;margin-top:16px;text-align:center}.donate-section p{margin:0 0 12px!important;font-size:14px;color:gold}.donate-modal-btn{display:inline-block;background:linear-gradient(135deg,#fd0,#fbb034);color:#1a1a1a;font-size:14px;font-weight:700;padding:10px 24px;border-radius:25px;text-decoration:none;transition:all .3s ease;box-shadow:0 4px 12px #fbb0344d}.donate-modal-btn:hover{transform:scale(1.05);box-shadow:0 6px 20px #fbb03480;background:linear-gradient(135deg,#ffe433,#ffc107)}.donate-section-hero{background:linear-gradient(145deg,#1a0a00,#2d1500,#1a0a00);border:2px solid #fbb034;border-radius:16px;padding:20px;margin-top:20px;text-align:center;position:relative;overflow:hidden}.donate-section-hero:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(251,176,52,.1) 0%,transparent 70%);animation:shimmer 3s infinite}@keyframes shimmer{0%,to{transform:rotate(0)}50%{transform:rotate(180deg)}}.donate-heart{font-size:32px;margin-bottom:8px;animation:heartbeat 1.5s infinite}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.donate-section-hero p{margin:0 0 16px!important;font-size:15px;color:gold;position:relative}.donate-modal-btn-hero{display:inline-block;background:linear-gradient(135deg,#fd0,#fbb034);color:#1a1a1a;font-size:16px;font-weight:800;padding:14px 32px;border-radius:30px;text-decoration:none;transition:all .3s ease;box-shadow:0 4px 20px #fbb03466;position:relative;animation:glow-pulse 2s infinite}.donate-modal-btn-hero:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 8px 30px #fbb03499;background:linear-gradient(135deg,#ffe433,#ffc107)}@keyframes glow-pulse{0%,to{box-shadow:0 4px 20px #fbb03466}50%{box-shadow:0 4px 30px #fbb03499,0 0 40px #ffd7004d}}.feature{background:#21262d;border:1px solid #30363d;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px}.feature-icon{width:40px;height:40px;flex:0 0 40px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#49c5ff1a;color:#49c5ff}.feature-icon svg{width:20px;height:20px}.tip-box{background:linear-gradient(145deg,#1a3a1a,#0d1f0d);border:1px solid #238636;border-radius:8px;padding:12px 16px;margin-top:16px;font-size:14px}.cable-guide{background:#21262d;border-radius:8px;padding:16px;margin-top:16px}.cable-item{margin-bottom:8px;display:flex;align-items:center;gap:8px}.cable-item:last-child{margin-bottom:0}.commands-box{background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:16px;margin:12px 0}.cmd-group{margin-bottom:12px}.cmd-group:last-child{margin-bottom:0}.cmd-group strong{display:block;color:#8b949e;font-size:12px;margin-bottom:6px}.cmd-group code{background:#21262d;padding:4px 8px;border-radius:4px;font-family:Monaco,Consolas,monospace;font-size:12px;color:#79c0ff;margin-right:8px}.modal-footer{padding:16px 32px 24px;display:flex;flex-direction:column;align-items:center;gap:16px;border-top:1px solid #21262d}.step-indicators{display:flex;gap:8px}.step-dot{width:10px;height:10px;border-radius:50%;background:#30363d;border:none;cursor:pointer;transition:all .2s}.step-dot.active{background:#049fd9;transform:scale(1.2)}.step-dot:hover{background:#58a6ff}.modal-actions{display:flex;gap:12px}.modal-actions .btn{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.modal-actions .btn.primary{background:linear-gradient(145deg,#049fd9,#0380b3);border:none;color:#fff}.modal-actions .btn.primary:hover{background:linear-gradient(145deg,#0ab3f0,#049fd9);transform:translateY(-1px)}.modal-actions .btn.secondary{background:transparent;border:1px solid #30363d;color:#8b949e}.modal-actions .btn.secondary:hover{border-color:#8b949e;color:#f0f6fc}.dont-show{background:transparent;border:none;color:#484f58;font-size:12px;cursor:pointer;padding:4px 8px}.dont-show:hover{color:#8b949e;text-decoration:underline}.feedback-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}.feedback-modal{background:#161b22;border:1px solid #30363d;border-radius:12px;width:100%;max-width:480px;padding:32px;position:relative;box-shadow:0 20px 40px #0006;animation:slideUp .3s ease-out;color:#f0f6fc}.feedback-close{position:absolute;top:16px;right:16px;background:none;border:none;color:#8b949e;font-size:24px;cursor:pointer;line-height:1;padding:4px}.feedback-close:hover{color:#f0f6fc}.feedback-header{margin-bottom:24px;text-align:center}.feedback-header h2{margin:0 0 8px;font-size:24px;font-weight:600;color:#f0f6fc}.feedback-header p{margin:0;color:#8b949e;font-size:14px}.feedback-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:#c9d1d9}.form-group input[type=text],.form-group input[type=email],.form-group select,.form-group textarea{width:100%;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:10px 12px;color:#f0f6fc;font-family:inherit;font-size:14px;transition:all .2s;line-height:1.5;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#58a6ff;box-shadow:0 0 0 3px #58a6ff26}.feedback-submit{margin-top:8px;padding:12px;font-weight:600;font-size:16px}.feedback-submit.loading{opacity:.7;cursor:not-allowed}.feedback-success{text-align:center;padding:16px 0}.success-icon{font-size:48px;margin-bottom:16px}.feedback-error{color:#ff7b72;font-size:13px;text-align:center;background:#f851491a;padding:8px;border-radius:6px}.hidden{display:none}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.donation-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#030712b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1900;animation:fadeIn .25s ease-out}.donation-popup{position:relative;width:min(100%,460px);padding:32px;border-radius:20px;border:1px solid rgba(251,176,52,.35);background:radial-gradient(circle at top,rgba(251,176,52,.18),transparent 55%),linear-gradient(160deg,#161b22,#0d1117);box-shadow:0 28px 70px #00000073;color:var(--color-text-primary);text-align:center;animation:slideUp .28s ease-out}.donation-popup-header{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:22px}.donation-popup-icon{display:flex;align-items:center;justify-content:center;width:78px;height:78px;border-radius:22px;background:linear-gradient(135deg,#ffdd002e,#fbb0344d);color:#ffd36b;box-shadow:inset 0 1px #ffffff1f}.donation-popup-icon svg{width:42px;height:42px}.donation-popup-badge{display:inline-flex;align-items:center;justify-content:center;padding:8px 22px;border-radius:999px;background:#fbb03424;border:1px solid rgba(251,176,52,.28);color:#ffd36b;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.donation-popup h2{margin:0 0 12px;font-size:30px;line-height:1.15}.donation-popup p{margin:0;color:var(--color-text-secondary);font-size:16px;line-height:1.6}.donation-popup-actions{display:flex;flex-direction:column;gap:12px;margin-top:28px}.donation-popup-primary,.donation-popup-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:12px;font-size:15px;font-weight:700;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}.donation-popup-primary{background:linear-gradient(135deg,#fd0,#fbb034);color:#171717;box-shadow:0 14px 28px #fbb03447}.donation-popup-primary:hover{transform:translateY(-1px);box-shadow:0 18px 34px #fbb03461}.donation-popup-secondary{background:#ffffff0a;border:1px solid var(--color-border-primary);color:var(--color-text-secondary);cursor:pointer}.donation-popup-secondary:hover{transform:translateY(-1px);border-color:#ffffff38;color:var(--color-text-primary)}.donation-popup-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:none;border-radius:50%;background:#ffffff0f;color:var(--color-text-secondary);font-size:24px;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease}.donation-popup-close:hover{background:#ffffff1f;color:var(--color-text-primary)}@media (max-width: 640px){.donation-popup-overlay{padding:16px}.donation-popup{padding:28px 20px 20px}.donation-popup-icon{width:68px;height:68px;border-radius:18px}.donation-popup-badge{padding:8px 18px;font-size:12px}.donation-popup h2{font-size:24px}.donation-popup p{font-size:15px}}.report-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:240;background:#03060ab8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.report-modal{width:min(1220px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;border-radius:28px;border:1px solid rgba(73,197,255,.16);background:radial-gradient(circle at top left,rgba(73,197,255,.08),transparent 26%),linear-gradient(180deg,#0e131cf5,#0a0e15fa);box-shadow:0 24px 80px #00000080}.report-modal-header,.report-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border-primary)}.report-modal-footer{border-bottom:none;border-top:1px solid var(--color-border-primary)}.report-modal-header h2{font-family:var(--font-family-mono);font-size:30px}.report-kicker{color:var(--color-accent-primary);text-transform:uppercase;letter-spacing:.1em;font-size:10px;margin-bottom:4px}.report-modal-header span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.report-close,.report-secondary,.report-primary{border-radius:999px;padding:10px 16px;font-weight:var(--font-weight-semibold)}.report-close{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;font-size:28px;line-height:1;color:var(--color-text-secondary);background:#ffffff0a}.report-primary{background:linear-gradient(135deg,#3a87ff,#6ea7ff);color:#fff}.report-secondary{background:#ffffff0a;color:var(--color-text-primary)}.report-modal-body{overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:24px}.report-filter-bar{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.report-filter-bar::-webkit-scrollbar{display:none}.report-filter-chip{flex:0 0 auto;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:var(--color-text-secondary);font-size:11px;font-weight:var(--font-weight-semibold);text-transform:uppercase}.report-filter-chip.active{border-color:#49c5ff42;background:#49c5ff1f;color:var(--color-text-primary)}.report-section h3{font-family:var(--font-family-mono);font-size:28px;margin-bottom:12px}.report-section ul{padding-left:18px;color:var(--color-text-secondary)}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.report-grid-card,.report-finding{border:1px solid var(--color-border-primary);background:#ffffff08;border-radius:18px;padding:14px 16px}.report-score-card{border-color:#49c5ff33;background:#49c5ff14}.report-score-value{font-family:var(--font-family-mono);font-size:26px;color:var(--color-text-primary)}.report-grid-card{display:flex;flex-direction:column;gap:4px;color:var(--color-text-secondary)}.report-findings{display:grid;gap:12px}.report-finding-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.report-finding p,.report-finding li{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.report-finding.high,.report-finding.critical{border-color:#e2231a59}.report-finding.medium{border-color:#fbab1859}.report-recommendation{margin-top:10px;color:var(--color-text-primary)!important}.report-fix-preview{margin-top:10px;padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:#9fd7ff;font-size:12px;white-space:pre-wrap;overflow-x:auto}.report-empty-copy{color:var(--color-text-secondary)}@media (max-width: 768px){.report-modal-backdrop{padding:0}.report-modal{width:100%;height:100dvh;max-height:100dvh;border-radius:0}.report-modal-header,.report-modal-footer{padding:16px}.report-modal-header h2,.report-section h3{font-size:22px}.report-modal-footer{gap:12px;flex-wrap:wrap}.report-modal-body{padding:16px;gap:18px}.report-secondary,.report-primary{flex:1;justify-content:center}}@media (max-width: 540px){.report-modal-header,.report-modal-footer{padding:14px 12px}.report-modal-body{padding:12px}.report-grid{grid-template-columns:1fr}}.legal-container{max-width:800px;margin:0 auto;padding:40px 20px;line-height:1.6;color:#e6edf3;font-family:Inter,sans-serif;flex:1;overflow-y:auto;width:100%}.legal-header{border-bottom:1px solid #30363d;padding-bottom:20px;margin-bottom:30px;display:flex;justify-content:space-between;align-items:center}.legal-header h1{margin:0;font-size:2rem;color:#58a6ff}.back-link{color:#8b949e;text-decoration:none;font-size:.9rem;display:flex;align-items:center;gap:5px;transition:color .2s}.back-link:hover{color:#58a6ff}.legal-content h2{color:#f0f6fc;margin-top:30px;font-size:1.5rem}.legal-content p{margin-bottom:15px}.legal-content ul{margin-bottom:15px;padding-left:20px}.legal-content li{margin-bottom:8px}.legal-content .last-updated{font-style:italic;color:#8b949e;margin-bottom:20px;display:block}@media (max-width: 600px){.legal-container{padding:20px 15px}.legal-header h1{font-size:1.5rem}}.blog-shell{width:100%;flex:1;overflow-y:auto;background:radial-gradient(circle at top left,rgba(73,197,255,.08),transparent 24%),radial-gradient(circle at bottom right,rgba(251,171,24,.08),transparent 18%),#070b11}.blog-index,.blog-article-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.blog-hero{position:relative;padding:36px;border-radius:28px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#101823fa,#080d14f5),#ffffff05;box-shadow:0 26px 50px #0000003d}.blog-hero-mark{width:54px;height:54px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;border-radius:18px;color:#d7f1ff;background:linear-gradient(135deg,#203a54f5,#0e1f2efa);border:1px solid rgba(73,197,255,.22)}.blog-eyebrow{display:inline-block;margin-bottom:10px;color:#8cdfff;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.blog-hero h1,.blog-article-header h1{margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:1.08}.blog-hero p,.blog-article-description,.blog-article-body p,.blog-card p,.blog-section-header p,.blog-trust-strip span,.blog-faq-item p{color:#adbac7}.blog-hero p{max-width:760px;margin-top:16px;font-size:1.04rem;line-height:1.72}.blog-hero-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.blog-primary-link,.blog-secondary-link,.blog-card-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:14px;text-decoration:none;font-weight:600}.blog-primary-link{color:#061019;background:linear-gradient(135deg,#75d8ff,#49c5ff)}.blog-secondary-link,.blog-card-link{color:#dce7ef;border:1px solid rgba(255,255,255,.1);background:#ffffff08}.blog-trust-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.blog-trust-strip>div,.blog-card,.blog-article,.blog-callout,.blog-faq-item{border-radius:22px;border:1px solid rgba(255,255,255,.07);background:#0a0f16e0}.blog-trust-strip>div{display:flex;flex-direction:column;gap:6px;padding:18px}.blog-trust-strip strong{font-size:.98rem}.blog-grid-section{margin-top:28px}.blog-section-header{margin-bottom:18px}.blog-section-header h2{margin:0 0 8px;font-size:clamp(1.5rem,2.4vw,2rem)}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.blog-card{display:flex;flex-direction:column;gap:14px;min-height:100%;padding:22px}.blog-card-meta,.blog-article-meta,.blog-breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;color:#93a4b5;font-size:.9rem}.blog-card-meta span,.blog-article-meta span{padding:4px 10px;border-radius:999px;background:#ffffff0a}.blog-card h3{margin:0;font-size:1.28rem;line-height:1.28}.blog-card h3 a{color:#f0f6fc;text-decoration:none}.blog-card-footer{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;color:#93a4b5}.blog-card-footer>span{max-width:120px}.blog-card-link{min-width:138px;padding:0 18px;white-space:nowrap}.blog-breadcrumbs{margin-bottom:18px}.blog-breadcrumbs a{color:#8cdfff;text-decoration:none}.blog-article{padding:28px}.blog-article-header{padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,.08)}.blog-article-description{max-width:820px;margin-top:16px;font-size:1.08rem;line-height:1.74}.blog-article-meta{margin-top:18px}.blog-article-body{max-width:760px}.blog-article-body p,.blog-article-body li{font-size:1.03rem;line-height:1.78}.blog-article-section{margin-top:30px}.blog-article-body h2{margin-bottom:14px;font-size:clamp(1.4rem,2.1vw,1.9rem)}.blog-article-body h3{margin:0 0 8px;font-size:1.08rem}.blog-article-body ul{margin:14px 0 0;padding-left:22px}.blog-callout,.blog-faq{margin-top:34px}.blog-callout{padding:20px 22px;background:linear-gradient(180deg,#0d1b27fa,#091018f5)}.blog-faq-item{padding:18px 20px;margin-top:14px}@media (max-width: 900px){.blog-trust-strip{grid-template-columns:1fr}.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.blog-index,.blog-article-shell{width:min(100%,calc(100% - 24px));padding:18px 0 32px}.blog-hero,.blog-article{padding:22px 18px;border-radius:22px}.blog-card{padding:18px}.blog-grid{grid-template-columns:1fr}.blog-card-footer{flex-direction:column;align-items:flex-start}.blog-card-link{min-width:0;white-space:normal}}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{display:flex;flex:1;overflow:hidden;position:relative;gap:8px;padding:8px;background:radial-gradient(circle at top left,rgba(73,197,255,.08),transparent 22%),radial-gradient(circle at bottom right,rgba(251,171,24,.08),transparent 18%),#070b11}.desktop-side-panel{height:100%;display:flex;flex-shrink:0;min-height:0}.properties-panel-wrapper{width:var(--properties-width);min-width:320px;max-width:920px;height:100%;display:flex;flex-shrink:0;min-height:0}.workspace-panel-shell{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;min-height:0;border-radius:18px;border:1px solid rgba(255,255,255,.06);background:#060a10b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.workspace-panel-tabs{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px;border-bottom:1px solid var(--color-border-primary);background:#ffffff05}.workspace-panel-tab-group{display:flex;gap:6px}.workspace-panel-actions{display:flex;align-items:center;gap:6px}.workspace-panel-tab{width:34px;height:34px;border-radius:10px}.workspace-panel-reset,.desktop-panel-control{flex-shrink:0}.workspace-panel-tab.active{background:#49c5ff29;color:var(--color-text-primary)}.mobile-drawer-backdrop,.mobile-workspace-fab,.mobile-drawer-header,.mobile-drawer{display:none}.desktop-panel-reveal{width:42px;height:72px;display:inline-flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:30;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:#0a0f16eb;color:var(--color-text-primary);box-shadow:0 16px 32px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.desktop-panel-reveal-left{left:10px}.desktop-panel-reveal-right{right:10px}@media (min-width: 769px){.properties-panel-wrapper.desktop-panel-hidden,.panel-resizer.desktop-panel-hidden{display:none}}.mobile-palette-drawer{display:none;height:100%;flex-shrink:0;flex-direction:column}.panel-resizer{width:8px;flex-shrink:0;cursor:col-resize;position:relative;background:transparent}.panel-resizer:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translate(-50%);background:var(--color-border-primary);opacity:.45;transition:opacity var(--transition-fast),background-color var(--transition-fast)}.panel-resizer:hover:before{opacity:1;background:var(--color-accent-primary)}body.resizing-panel{cursor:col-resize;-webkit-user-select:none;user-select:none}.app-body.focus-mode .device-palette,.app-body.focus-mode .properties-panel-wrapper,.app-body.focus-mode .panel-resizer{opacity:.2;pointer-events:none}.app-body.focus-mode .canvas-container{border-color:#49c5ff59}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@media (max-width: 1200px){:root{--sidebar-width: 200px;--properties-width: 280px}}@media (max-width: 992px){:root{--sidebar-width: 180px;--properties-width: 260px}.toolbar-btn span,.brand-name{display:none}}@media (max-width: 768px){.desktop-side-panel,.desktop-panel-reveal{display:none}.app-body{padding:0;gap:0}.canvas-container{border-radius:0;border-left:none;border-right:none}.mobile-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:240;background:#03080e94;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.mobile-workspace-fab{width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;position:absolute;top:16px;bottom:auto;z-index:100;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:#0e131ceb;color:var(--color-text-primary);box-shadow:0 16px 32px #00000057;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-body.mobile-drawer-open .mobile-workspace-fab{display:none}.mobile-workspace-fab-left{left:14px}.mobile-workspace-fab-right{right:14px}.mobile-drawer{position:fixed;top:0;bottom:0;left:0;right:0;width:auto!important;max-width:none;z-index:260;display:flex;flex-direction:column;min-height:0;overflow:hidden;overscroll-behavior:contain;border-radius:0;opacity:0;pointer-events:none;transform:translateY(-18px);transition:transform var(--transition-normal),opacity var(--transition-normal)}.mobile-palette-drawer{display:flex;transform:translateY(-18px)}.mobile-properties-drawer{min-width:0;transform:translateY(-18px)}.mobile-drawer.open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;font-family:var(--font-family-mono);font-size:13px;color:var(--color-text-primary);background:#080c13f0;border:1px solid rgba(255,255,255,.06);border-bottom:none;border-radius:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:2}.mobile-drawer-close{flex-shrink:0}.mobile-palette-drawer .device-palette,.mobile-properties-drawer .workspace-panel-shell{flex:1;height:100%;min-height:0;border-radius:0;box-shadow:0 24px 48px #00000057}.mobile-palette-drawer .device-palette{width:100%;min-width:0;border-top:none;border-radius:0}.panel-resizer{display:none}.properties-panel-wrapper{overflow:visible}.workspace-panel-tabs{padding:8px 10px}.workspace-panel-shell{border-top:none}}@media (max-width: 540px){.mobile-workspace-fab{top:12px}.mobile-workspace-fab-left{left:12px}.mobile-workspace-fab-right{right:12px}.mobile-drawer-header{padding:calc(12px + env(safe-area-inset-top)) 14px 12px}}@media print{.toolbar,.device-palette,.properties-panel,.status-bar{display:none!important}.canvas-container{position:absolute;top:0;left:0;width:100%;height:100%}}.pdu-inspector-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.pdu-inspector{background:#1e1e1e;width:800px;height:600px;border-radius:12px;border:1px solid #444;display:flex;flex-direction:column;overflow:hidden}.pdu-header{padding:16px 24px;background:#252525;border-bottom:1px solid #444;display:flex;justify-content:space-between;align-items:center}.pdu-header h2{margin:0;font-size:18px;color:#4da6ff}.pdu-header button{background:transparent;border:none;color:#999;font-size:24px;cursor:pointer}.osi-container{flex:1;display:flex;gap:20px;padding:20px}.osi-column{flex:1;display:flex;flex-direction:column;gap:8px}.osi-column h3{font-size:14px;color:#888;margin-bottom:12px}.osi-layer{padding:10px;background:#2a2a2a;border:1px solid #3d3d3d;border-radius:4px;display:flex;flex-direction:column;opacity:.5}.osi-layer.active{opacity:1;border-color:#4da6ff;background:#1a2a3a}.layer-num{font-size:10px;color:#888;text-transform:uppercase}.layer-name{font-weight:700;font-size:13px;margin-bottom:4px}.layer-details{font-size:11px;color:#aaa;white-space:pre-wrap;background:#151515;padding:6px;border-radius:2px}
