@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--neu-bg: #e8edf5;--neu-raise: 6px 6px 14px #c8cfd9, -4px -4px 10px #ffffff;--neu-sm: 3px 3px 8px #c8cfd9, -2px -2px 6px #ffffff;--neu-in: inset 4px 4px 10px #c8cfd9, inset -3px -3px 8px #ffffff;--neu-btn: 4px 4px 10px rgba(74,144,217,.35), -2px -2px 6px rgba(255,255,255,.1);--ink: #0a2259;--ink-dim: #0a2259;--text-primary: #0a2259;--text-secondary: #0a2259;--text-muted: #8a98b8;--bg-base: #e8edf5;--ash-soft: rgba(26,95,168,.05);--soft-border: rgba(26,95,168,.08);--border: rgba(26,95,168,.1);--hair-border: rgba(26,95,168,.06);--success: #1bc277;--success-dim: rgba(27,194,119,.1);--error: #e25050;--error-dim: rgba(226,80,80,.08);--warn: #f0a030;--warn-dim: rgba(240,160,48,.1);--accent-light: rgba(26,95,168,.08);--font-sans: "Inter", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}.layout{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--neu-bg)}.layout-body{display:flex;flex:1;overflow:hidden}.topnav{height:60px;background:var(--neu-bg);border-bottom:1px solid var(--border);box-shadow:0 1px #ffffffe6,0 4px 20px #1a5fa80f;display:flex;align-items:center;padding:0 24px 0 0;gap:0;z-index:40;flex-shrink:0}.topnav-title-wrap{display:flex;flex-direction:column;justify-content:center;padding:0 24px;border-right:1px solid var(--border);height:100%;min-width:220px}.topnav-title-main{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.3px;line-height:1.2}.topnav-title-sub{font-size:10px;color:var(--text-muted);margin-top:1px;font-family:var(--font-mono);letter-spacing:.2px}.topnav-right{display:flex;align-items:center;gap:8px;padding:0 4px}.topnav-date{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;background:var(--neu-bg);box-shadow:var(--neu-in);font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap}.topnav-right-divider{width:1px;height:28px;background:var(--border);border-radius:99px;flex-shrink:0;margin:0 4px}.topnav-profile-btn{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border-radius:10px;background:var(--neu-bg);box-shadow:var(--neu-sm);border:none;cursor:pointer;transition:all .18s}.topnav-profile-btn:hover{box-shadow:var(--neu-raise);transform:translateY(-1px)}.topnav-profile-btn.open{box-shadow:var(--neu-in)}.topnav-avatar{width:30px;height:30px;border-radius:8px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.topnav-profile-info{display:flex;flex-direction:column}.topnav-profile-name{font-size:12px;font-weight:700;color:var(--ink);line-height:1.2}.topnav-profile-role{font-size:10px;color:var(--text-muted);margin-top:1px}.profile-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--neu-bg);border-radius:16px;box-shadow:var(--neu-raise),0 20px 60px #1a5fa826;border:1px solid var(--border);overflow:hidden;z-index:100;padding:8px;animation:fade-in .15s ease}.profile-dropdown-header{padding:12px;background:var(--neu-bg);box-shadow:var(--neu-in);border-radius:10px;display:flex;align-items:center;gap:10px;margin-bottom:6px}.profile-role-badge{display:inline-block;margin-top:4px;font-size:9px;font-weight:700;color:var(--ink);background:var(--accent-light);padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:.6px}.profile-logout-btn{width:100%;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;border:none;background:transparent;color:var(--error);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font-sans);transition:all .15s}.profile-logout-btn:hover{background:var(--error-dim)}.sidebar-pill{display:flex;flex-direction:column;align-items:center;width:68px;flex-shrink:0;padding:14px 0 16px;background:var(--ink);position:relative;z-index:30;overflow:visible;box-shadow:4px 0 24px #1a5fa838}.sidebar-nav-list{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;width:100%;padding:0 10px;overflow-y:auto;overflow-x:visible;scrollbar-width:none;-ms-overflow-style:none}.sidebar-nav-list::-webkit-scrollbar{display:none}.sidebar-nav-item{position:relative;display:flex;align-items:center;justify-content:center;width:100%;border:none;background:transparent;cursor:pointer;padding:0;text-decoration:none;transition:all .18s}.sidebar-icon-box{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:transparent;transition:all .18s;flex-shrink:0}.sidebar-icon-box.active{background:#ffffff2e;box-shadow:0 0 0 1px #ffffff40,0 4px 12px #0000002e}.sidebar-icon-box.hov{background:#ffffff1a}.sidebar-icon-box.logout.hov{background:#e2505047}.sidebar-sep{width:28px;height:1px;background:#ffffff24;border-radius:99px;margin:6px 0;flex-shrink:0}.sidebar-tip{position:fixed;left:76px;background:var(--ink);color:#fff;font-size:11px;font-weight:600;padding:6px 12px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0;z-index:9999;box-shadow:0 4px 16px #1a5fa840;border:1px solid rgba(255,255,255,.1);transition:opacity .15s ease}.sidebar-tip.visible{opacity:1}.sidebar-tip-arrow{position:absolute;right:100%;top:50%;transform:translateY(-50%);border-width:5px;border-style:solid;border-color:transparent var(--ink) transparent transparent}.main-content{flex:1;overflow-y:auto;padding:28px 32px;background:var(--neu-bg)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.page-title{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.5px;line-height:1.1}.page-desc{font-size:11px;color:var(--text-muted);margin-top:4px;font-family:var(--font-mono)}.card{background:var(--neu-bg);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--neu-raise);border:1px solid rgba(255,255,255,.75)}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:10px;font-size:13px;font-weight:700;font-family:var(--font-sans);cursor:pointer;transition:all .15s;border:none;letter-spacing:.1px}.btn-primary{background:var(--ink);color:#fff;box-shadow:var(--neu-btn)}.btn-primary:hover{background:var(--ink-dim);box-shadow:5px 5px 16px #1a5fa859,-2px -2px 6px #ffffff1a;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{background:var(--neu-bg);color:var(--ink);box-shadow:var(--neu-sm);border:none}.btn-ghost:hover{box-shadow:var(--neu-raise);transform:translateY(-1px)}.btn-ghost:active{box-shadow:var(--neu-in);transform:translateY(0)}.btn-danger{background:var(--neu-bg);color:var(--error);box-shadow:var(--neu-sm);border:none}.btn-danger:hover{box-shadow:var(--neu-raise);background:var(--error-dim)}.btn-danger:active{box-shadow:var(--neu-in)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none!important}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.3px}.badge-success{color:var(--success);background:var(--success-dim)}.badge-error{color:var(--error);background:var(--error-dim)}.badge-warn{color:var(--warn);background:var(--warn-dim)}.badge-info{color:var(--ink);background:var(--accent-light)}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);box-shadow:var(--neu-raise);border:1px solid var(--border)}table{width:100%;border-collapse:separate;border-spacing:0}th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);padding:12px 18px;background:var(--neu-bg);border-bottom:1px solid var(--border);white-space:nowrap}th:first-child{border-radius:var(--radius-lg) 0 0 0}th:last-child{border-radius:0 var(--radius-lg) 0 0}td{padding:14px 18px;border-bottom:1px solid var(--hair-border);font-size:13px;color:var(--ink);background:var(--neu-bg);transition:background .12s}tr:last-child td{border-bottom:none}tr:last-child td:first-child{border-radius:0 0 0 var(--radius-lg)}tr:last-child td:last-child{border-radius:0 0 var(--radius-lg) 0}tr:hover td{background:#1a5fa808}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);font-family:var(--font-mono)}.form-input,.form-select,.form-textarea{background:var(--neu-bg);border:none;border-radius:10px;color:var(--ink);font-family:var(--font-sans);font-size:13px;padding:10px 14px;outline:none;box-shadow:var(--neu-in);transition:box-shadow .2s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{box-shadow:var(--neu-in),0 0 0 3px #1a5fa81f}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-card{background:var(--neu-bg);border-radius:var(--radius-lg);padding:20px 22px;box-shadow:var(--neu-raise);border:1px solid rgba(255,255,255,.75);display:flex;align-items:center;gap:16px}.stat-icon{width:44px;height:44px;border-radius:12px;background:var(--neu-bg);box-shadow:var(--neu-in);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-value{font-size:26px;font-weight:900;color:var(--ink);letter-spacing:-1px;line-height:1}.stat-label{font-size:11px;color:var(--text-muted);margin-top:3px;font-family:var(--font-mono)}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.section-title{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:-.2px}.section-count{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);font-weight:400}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:10px;font-weight:700;letter-spacing:.3px;font-family:var(--font-mono)}.pill-success{background:var(--success-dim);color:var(--success)}.pill-error{background:var(--error-dim);color:var(--error)}.pill-warn{background:var(--warn-dim);color:var(--warn)}.pill-info{background:var(--accent-light);color:var(--ink)}.pill-muted{background:var(--neu-bg);color:var(--text-muted);box-shadow:var(--neu-sm)}.mono{font-family:var(--font-mono)}.mono-sm{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.divider{height:1px;background:var(--border);margin:16px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 0;gap:12px;text-align:center}.empty-icon{width:56px;height:56px;border-radius:16px;background:var(--neu-bg);box-shadow:var(--neu-sm);display:flex;align-items:center;justify-content:center;margin-bottom:4px}.empty-title{font-size:14px;font-weight:700;color:var(--ink)}.empty-desc{font-size:12px;color:var(--text-muted);max-width:280px;line-height:1.6}.code-block{background:var(--ink);border-radius:10px;padding:14px 16px;font-family:var(--font-mono);font-size:12px;color:#ffffffd9;line-height:1.7;overflow-x:auto}.app-card{transition:transform .18s,box-shadow .18s}.app-card:hover{transform:translateY(-3px);box-shadow:8px 8px 20px #c8cfd9,-6px -6px 16px #fff!important}.app-card .pencil-btn{opacity:0;transition:opacity .18s}.app-card:hover .pencil-btn{opacity:1}@keyframes fade-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes ping{75%,to{transform:scale(2.2);opacity:0}}@keyframes skeleton{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes wave-bar{0%,to{height:8px}50%{height:24px}}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1a5fa824;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#1a5fa842}:root{--ink: #0a2259;--ink-dim: #122d6e;--ink-mid: #2a4a8a;--ink-light: #5a7abf;--primary: #76120e;--primary-dim: rgba(118,18,14,.1);--neu-bg: #eef3fb;--neu-raise: 6px 6px 16px rgba(10,34,89,.1), -4px -4px 12px rgba(244, 241, 248, .88);--neu-sm: 3px 3px 8px rgba(10,34,89,.08), -2px -2px 6px rgba(255,255,255,.9);--neu-in: inset 3px 3px 8px rgba(10,34,89,.08), inset -2px -2px 6px rgba(255,255,255,.9);--neu-btn: 4px 4px 12px rgba(10,34,89,.28), -2px -2px 6px rgba(255,255,255,.08);--bg-base: #eef3fb;--bg-surface: #eef3fb;--bg-elevated: #eef3fb;--bg-overlay: #eef3fb;--ash: #dde8f5;--ash-dim: #cfdaee;--ash-soft: #eef3fb;--ash-base: #f4f7fc;--border: rgba(10,34,89,.08);--border-bright: rgba(10,34,89,.14);--soft-border: rgba(10,34,89,.07);--hair-border: rgba(10,34,89,.04);--accent: #0a2259;--accent-dim: #122d6e;--accent-light: rgba(10,34,89,.07);--accent-glow: rgba(10,34,89,.12);--success: #0a2259;--success-dim: rgba(27,194,119,.1);--error: #76120e;--error-dim: rgba(118,18,14,.1);--warn: #7d5a00;--warn-dim: rgba(125,90,0,.1);--text-primary: #0a2259;--text-secondary: #0a2259;--text-muted: #7a9abf;--sidebar-bg: #0a2259;--font-sans: "Inter", sans-serif;--font-mono: "JetBrains Mono", monospace;--radius: 10px;--radius-lg: 18px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{background:var(--neu-bg);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.6;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,button,select,textarea,optgroup,option{font-family:var(--font-sans);font-size:inherit;line-height:inherit}h1,h2,h3,h4,h5,h6,table,th,td{font-family:var(--font-sans)}code,pre,kbd,samp{font-family:var(--font-mono)}#root{height:100%}a{color:var(--ink);text-decoration:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--neu-bg)}::-webkit-scrollbar-thumb{background:#0a225926;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#0a225940}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}@keyframes slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}
