:root{--navy: #0b0430;--navy-mid: #150747;--ink: #08091f;--muted: #5b6280;--line: #e6e8f2;--line-strong: #d8dbe8;--panel: #ffffff;--canvas: #f6f7fb;--pink: #ff1b6b;--purple: #8b3dff;--cyan: #28d8ff;--lime: #7cff00;--orange: #ff8a2a;--success: #168a45;--success-bg: #eaf9ef;--warn: #9a6700;--warn-bg: #fff6e0;--danger: #c81e3a;--danger-bg: #fff0f2;--shadow: 0 16px 40px rgba(24, 11, 70, .07);--shadow-lg: 0 24px 60px rgba(24, 11, 70, .12);--grad: linear-gradient(110deg, #ff1b6b 0%, #8b3dff 55%, #28d8ff 100%);--radius: 16px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(circle at 12% -8%,rgba(255,27,107,.07),transparent 26rem),radial-gradient(circle at 92% 0%,rgba(40,216,255,.08),transparent 28rem),var(--canvas);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer;border:none;background:none}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{outline:none}a{color:inherit}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-screen,.loading-block{display:grid;min-height:320px;place-items:center;color:var(--muted)}.loading-screen{min-height:100vh}.spinner{width:36px;height:36px;border:3px solid #dedff0;border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}.layout-root{display:flex;min-height:100vh}.sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;color:#fff;background:radial-gradient(circle at 10% 4%,rgba(255,39,155,.28),transparent 15rem),radial-gradient(circle at 95% 22%,rgba(38,205,255,.18),transparent 13rem),linear-gradient(180deg,#090329,#150747 56%,#0b0430);box-shadow:24px 0 70px #0b04302e}.sidebar-brand{display:block;padding:22px 22px 10px}.sidebar-brand img{height:36px;width:auto;object-fit:contain;object-position:left}.sidebar-kicker{margin:0 22px 18px;color:#ffffff7a;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:6px;padding:0 14px}.sidebar-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;color:#ffffffad;text-decoration:none;font-size:14px;font-weight:600;transition:.18s ease}.sidebar-item:hover{background:#ffffff0f;color:#fff}.sidebar-item.active{background:#ffffff1f;color:#fff;box-shadow:inset 0 0 0 1px #ffffff14}.sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.08)}.user-chip{display:flex;align-items:center;gap:10px;padding:10px 8px 14px}.user-avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--grad);font-size:13px;font-weight:800}.user-name{display:block;font-size:13px;font-weight:700}.user-role{display:block;font-size:11px;color:#ffffff80}.logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:10px;color:#ff9ab4;font-size:13px;font-weight:700}.logout-btn:hover{background:#ff1b6b1f}.main-shell{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 32px;background:#ffffffe6;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar-title{font-size:15px;font-weight:800;letter-spacing:-.02em}.topbar-sub{color:var(--muted);font-size:12px;font-weight:600}.workspace-pill{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 8px 24px #180b460d;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.main-content{flex:1;overflow:auto;padding:28px 32px 48px}.content-container{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:22px}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.page-header h1,.page-title{font-size:28px;font-weight:800;letter-spacing:-.03em;line-height:1.15}.page-header p,.page-subtitle{margin-top:6px;color:var(--muted);font-size:14px}.title-row{display:flex;align-items:center;gap:10px}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#f3f0ff;color:#6b3cff;font-size:12px;font-weight:800}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.pill.ok{background:var(--success-bg);color:var(--success)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.danger{background:var(--danger-bg);color:var(--danger)}.pill.muted{background:#eef0f7;color:var(--muted)}.pill.purple{background:#f3f0ff;color:#6b3cff}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-pad{padding:22px}.panel h2,.panel-title{font-size:16px;font-weight:800;letter-spacing:-.02em}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 16px;box-shadow:var(--shadow)}.stat-card .label{color:var(--muted);font-size:12px;font-weight:700}.stat-card .value{margin-top:8px;font-size:28px;font-weight:800;letter-spacing:-.03em}.stat-card .hint{margin-top:6px;color:var(--muted);font-size:12px}.stat-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;margin-bottom:14px;background:#f4f0ff;color:#743cff}.search-box,.field{position:relative;display:flex;align-items:center}.search-box svg,.field-icon{position:absolute;left:12px;color:#8b90a8}.input,.search-box input,.field input,select,textarea{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--ink)}.search-box input{padding-left:38px;min-width:260px}.field input{padding-left:40px}.input:focus,.search-box input:focus,.field input:focus,select:focus,textarea:focus{border-color:#cfc8ff;box-shadow:0 0 0 4px #8b3dff1f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:12px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);font-size:13px;font-weight:700;transition:.16s ease}.btn:hover{border-color:#cfc8ff;background:#f7f4ff}.btn-primary{border:none;background:var(--grad);color:#fff;box-shadow:0 12px 24px #8b3dff3d}.btn-primary:hover{transform:translateY(-1px);background:var(--grad)}.btn-danger{color:var(--danger);border-color:#ffd0d7}.btn-danger:hover{background:var(--danger-bg)}.segmented{display:flex;padding:4px;border:1px solid var(--line);border-radius:12px;background:#fff}.segmented button{min-height:34px;padding:0 14px;border-radius:9px;color:var(--muted);font-size:13px;font-weight:700}.segmented button.active{background:#f3f0ff;color:#6b3cff}.alert{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:12px;background:var(--danger-bg);color:var(--danger);font-size:13px;font-weight:600}.alert.ok{background:var(--success-bg);color:var(--success)}.table-wrap{overflow:hidden}.table-wrap .table-loading,.empty{padding:64px 24px;text-align:center;color:var(--muted)}.data-table{width:100%;border-collapse:collapse;text-align:left}.data-table th{padding:12px 18px;background:#f8f8fd;border-bottom:1px solid var(--line);color:#6b7190;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.data-table td{padding:14px 18px;border-bottom:1px solid #eef0f6;font-size:14px;vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#fbfaff}.entity{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#f3f0ff;color:#6b3cff;font-size:12px;font-weight:800;flex-shrink:0}.entity strong{display:block;font-size:14px}.mono{color:var(--muted);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.activity-list{display:flex;flex-direction:column}.activity-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid #eef0f6}.activity-item:last-child{border-bottom:none}.dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:14px}.quick-links{display:flex;flex-direction:column;gap:8px}.quick-link{display:flex;align-items:center;justify-content:space-between;padding:14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;font-size:14px;font-weight:700;transition:.16s ease}.quick-link:hover{border-color:#cfc8ff;background:#f7f4ff}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 18% 12%,rgba(255,27,107,.1),transparent 22rem),radial-gradient(circle at 82% 80%,rgba(40,216,255,.12),transparent 24rem),linear-gradient(180deg,#fff,#fbfcff 56%,#f4f4f7)}.auth-card{width:420px;max-width:100%;padding:36px 32px;border:1px solid var(--line);border-radius:24px;background:#ffffffeb;box-shadow:var(--shadow-lg)}.auth-card img{height:36px;margin-bottom:18px}.auth-card h1{font-size:26px;font-weight:800;letter-spacing:-.03em}.auth-card p{margin:8px 0 24px;color:var(--muted);font-size:14px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form .btn-primary{margin-top:8px;min-height:48px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#08091f73}.modal{width:440px;max-width:100%;padding:22px;border-radius:18px;background:#fff;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:12px}.modal h2{font-size:18px;font-weight:800}.modal label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.seed-cmd{margin-top:10px;padding:12px 14px;border-radius:12px;background:#0b0430;color:#e8e4ff;font-size:12px;overflow-x:auto}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 1100px){.stats-grid,.dash-grid,.two-col{grid-template-columns:1fr}}@media (max-width: 860px){.sidebar{display:none}.main-content,.topbar{padding-left:16px;padding-right:16px}}
