:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--font-display: "Inter", system-ui, sans-serif;--accent-1: #6366F1;--accent-2: #A855F7;--accent-grad: linear-gradient(135deg, var(--accent-1) 0%, var(--accent-2) 100%);--accent-glow: rgba(99,102,241,.35);--accent-soft: rgba(99,102,241,.1);--r-base: 14;--r-xs: calc(var(--r-base) * .35px);--r-sm: calc(var(--r-base) * .65px);--r-md: calc(var(--r-base) * 1px);--r-lg: calc(var(--r-base) * 1.5px);--r-xl: calc(var(--r-base) * 2px);--r-2xl: calc(var(--r-base) * 2.5px);--bg: #0A0A0E;--bg-warm: #11111A;--bg-card: #14141C;--bg-elevated: #1B1B25;--bg-ink: #050507;--ink: #F0EEE9;--ink-2: #A8A6A1;--ink-3: #6B6A6E;--ink-4: #3A3A42;--on-ink: #F0EEE9;--on-ink-dim: #A8A6A1;--line: rgba(255,255,255,.08);--line-2: rgba(255,255,255,.14);--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 8px 24px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.2);--shadow-lg: 0 24px 60px rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.3);--shadow-accent: 0 0 0 3px rgba(99,102,241,.25);--success: #34C97A;--success-bg: rgba(52,201,122,.12);--warning: #F5A524;--warning-bg: rgba(245,165,36,.12);--error: #F14B4B;--error-bg: rgba(241,75,75,.12);--info: #3B9EFF;--info-bg: rgba(59,158,255,.12);--node-bg: #181726;--node-bg-sel: #1e1b4b;--bg-base: var(--bg);--bg-surface: var(--bg-card);--bg-overlay: var(--bg-elevated);--bg-sidebar: var(--bg);--bg-input: var(--bg-elevated);--bg-chip: var(--bg-elevated);--border-subtle: var(--line);--border-default: var(--line-2);--border-strong: rgba(255,255,255,.22);--border: var(--line);--border-md: var(--line-2);--border-lg: rgba(255,255,255,.22);--text-primary: var(--ink);--text-secondary: var(--ink-2);--text-tertiary: var(--ink-3);--text-inverse: var(--bg);--text: var(--ink);--text-dim: var(--ink-2);--text-muted: var(--ink-2);--text-faint: var(--ink-4);--accent-500: var(--accent-1);--accent-400: #818CF8;--accent-600: #4F46E5;--radius-sm: var(--r-sm);--radius-md: var(--r-md);--radius-lg: var(--r-lg);--radius-xl: var(--r-xl);--radius-full: 999px}:root[data-theme=light]{--bg: #FAF8F4;--bg-warm: #F3EFE6;--bg-card: #FFFFFF;--bg-elevated: #F7F5F0;--bg-ink: #14141B;--ink: #15151C;--ink-2: #4A4A56;--ink-3: #8B8B98;--ink-4: #C2C2CC;--on-ink: #F5F3EE;--on-ink-dim: #A8A4A0;--line: rgba(0,0,0,.08);--line-2: rgba(0,0,0,.14);--shadow-sm: 0 1px 3px rgba(20,20,30,.06), 0 1px 2px rgba(20,20,30,.04);--shadow-md: 0 8px 24px rgba(20,20,30,.07), 0 2px 8px rgba(20,20,30,.04);--shadow-lg: 0 24px 60px rgba(20,20,30,.12), 0 8px 24px rgba(20,20,30,.06);--shadow-accent: 0 0 0 3px rgba(99,102,241,.2);--success: #1A9E5C;--success-bg: rgba(26,158,92,.08);--warning: #C47F10;--warning-bg: rgba(196,127,16,.08);--error: #D63B3B;--error-bg: rgba(214,59,59,.08);--info: #2479CC;--info-bg: rgba(36,121,204,.08);--border-strong: rgba(0,0,0,.2);--border-lg: rgba(0,0,0,.2);--node-bg: #f8f7ff;--node-bg-sel: #ede9ff}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);font-size:14px;line-height:1.6;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .2s,color .2s}input,textarea,select{font-family:inherit;color:inherit}button{cursor:pointer;font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:var(--radius-md);border:none;background:var(--accent-grad);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:0 4px 14px var(--accent-glow),inset 0 1px #ffffff2e;transition:box-shadow .2s,transform .15s;white-space:nowrap;text-decoration:none}.btn-primary:hover:not(:disabled){box-shadow:0 8px 24px var(--accent-glow),inset 0 1px #ffffff38}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:focus-visible{outline:none;box-shadow:var(--shadow-accent)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-primary-lg{height:42px;padding:0 22px;font-size:14px;font-weight:700}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:transparent;color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s;white-space:nowrap}.btn-secondary:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-elevated)}.btn-secondary:focus-visible{outline:none;box-shadow:var(--shadow-accent)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.btn-ghost:focus-visible{outline:none;box-shadow:var(--shadow-accent)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid transparent;background:var(--error-bg);color:var(--error);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-danger:hover:not(:disabled){background:#f14b4b33}:root[data-theme=light] .btn-danger:hover:not(:disabled){background:#d63b3b24}.btn-danger:focus-visible{outline:none;box-shadow:0 0 0 3px #f14b4b40}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.input-field{height:36px;padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;width:100%}:root[data-theme=light] .input-field{background:var(--bg-base)}.input-field::placeholder{color:var(--text-tertiary)}.input-field:focus{border-color:var(--accent-500);box-shadow:var(--shadow-accent)}.textarea-field{padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;resize:vertical;transition:border-color .15s,box-shadow .15s;width:100%}:root[data-theme=light] .textarea-field{background:var(--bg-base)}.textarea-field::placeholder{color:var(--text-tertiary)}.textarea-field:focus{border-color:var(--accent-500);box-shadow:var(--shadow-accent)}.select-field{height:36px;padding:0 32px 0 12px;border-radius:var(--radius-md);border:1px solid var(--border-default);background-color:var(--bg-elevated);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23606070' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;width:100%;transition:border-color .15s,box-shadow .15s}:root[data-theme=light] .select-field{background-color:var(--bg-base)}.select-field:focus{border-color:var(--accent-500);box-shadow:var(--shadow-accent)}.card{background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.card-hover{transition:border-color .15s,box-shadow .15s,transform .15s}.card-hover:hover{border-color:var(--border-default)}:root[data-theme=light] .card-hover:hover{box-shadow:var(--shadow-md)}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px 9px 9px;border-radius:var(--radius-md);border:none;border-left:3px solid transparent;margin-bottom:2px;cursor:pointer;text-align:left;background:transparent;color:var(--text-secondary);font-family:inherit;font-weight:500;font-size:14px;transition:background .12s,color .12s,border-color .12s}.nav-item:hover{background:var(--bg-elevated);color:var(--text-primary)}.nav-item.active{background:var(--accent-soft);color:var(--accent-1);border-left-color:var(--accent-1);font-weight:600}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:2px 8px;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-error{background:var(--error-bg);color:var(--error)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-accent{background:var(--accent-glow);color:var(--accent-400)}.badge-neutral{background:var(--bg-elevated);color:var(--text-tertiary)}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:10px 16px;text-align:left;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.data-table td{padding:0 16px;height:48px;border-bottom:1px solid var(--border-subtle);font-size:13px;vertical-align:middle}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover{background:var(--bg-elevated)}.data-table tbody tr:last-child td{border-bottom:none}.section-label{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-tertiary)}.count-chip{font-size:11px;font-family:JetBrains Mono,monospace;background:var(--bg-elevated);border-radius:var(--radius-full);padding:1px 7px;color:var(--text-tertiary)}.mono{font-family:JetBrains Mono,Fira Code,monospace}.form-label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.divider{height:1px;background:var(--border-subtle)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}.status-dot-active{background:var(--success);box-shadow:0 0 6px var(--success)}.status-dot-warning{background:var(--warning)}.status-dot-inactive{background:var(--text-tertiary)}.sidebar{transition:transform .25s cubic-bezier(.4,0,.2,1)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:199;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.hamburger-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated);cursor:pointer;font-size:18px;flex-shrink:0;color:var(--text-primary)}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 640px){.sidebar{position:fixed!important;left:0;top:0;bottom:0;width:280px!important;z-index:200;transform:translate(-100%);height:100%!important}.sidebar.open{transform:translate(0);box-shadow:8px 0 32px #00000073}.sidebar-backdrop{display:block}.hamburger-btn{display:flex}.btn-primary,.btn-secondary,.btn-ghost,.btn-danger{height:44px;min-height:44px;font-size:14px}.input-field,.select-field{height:44px;font-size:16px}.topbar-chips{display:none}.main-content-area{padding:16px!important;gap:16px!important}.topbar-inner{padding-left:12px!important;padding-right:12px!important}}@media (max-width: 500px){.plan-grid{grid-template-columns:1fr}.modal-box{padding:20px!important}.auth-card{padding:24px 20px!important}}@keyframes fadeSlideIn{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@keyframes route-spin{to{transform:rotate(360deg)}}.route-spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--border-subtle);border-top-color:var(--accent-500);animation:route-spin .7s linear infinite}
