@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f5f8;--canvas-bg: #ffffff;--surface: #ffffff;--grey-1: #f5f5f8;--grey-2: #d7d8e0;--grey-3: #9b9daa;--grey-4: #797b8d;--grey-5: #141629;--primary-text: #0f111c;--sidebar-bg: #141629;--app-bar-bg: #ffffff;--input-bg: #ffffff;--accent: #f99e2c;--accent-hover: #e88e1a;--accent-bg: rgba(249, 158, 44, .1);--accent-border: rgba(249, 158, 44, .25);--success: #27ae60;--success-hover: #229954;--success-bg: rgba(39, 174, 96, .1);--danger: #f64747;--danger-hover: #e23c3c;--danger-bg: rgba(246, 71, 71, .1);--blue: #2782e4;--blue-bg: rgba(39, 130, 228, .1);--purple: #9b51e0;--border: #d7d8e0;--border-light: #ebebf0;--shadow: 0px 1px 3px 0px rgba(20,22,41,.1);--shadow-lg: 0px 40px 100px 0px rgba(0,0,0,.15);--hover-bg: #f9f9fb;--muted: #9b9daa;--page-bg: #ffffff;--page-bg-alt: #f0f0f4;--sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--mono: "GeistMono", "Fira Code", "Cascadia Code", monospace;--color-primary: var(--accent);--color-success: var(--success);--color-warning: #f59e0b;--color-danger: var(--danger);--color-border: var(--border);--color-text: var(--primary-text);--font-body: var(--sans);--rad: 10px;--rads: 8px;--radxs: 6px}html,body,#root{height:100%;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--primary-text);background:var(--canvas-bg);-webkit-font-smoothing:antialiased}.layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;flex-shrink:0;background:var(--sidebar-bg);display:flex;flex-direction:column;overflow:hidden}.sidebar-logo{padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.07)}.sidebar-logo-inner{display:flex;align-items:center;gap:10px}.sidebar-logo-icon{width:30px;height:30px;border-radius:8px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;color:#fff;flex-shrink:0}.sidebar-logo-name{font-size:.88rem;font-weight:700;color:#fff;letter-spacing:-.01em}.sidebar-nav{flex:1;padding:10px 8px;overflow-y:auto}.nav-section{margin-bottom:18px}.nav-label{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#ffffff4d;padding:0 8px;margin-bottom:3px}.nav-item{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:var(--radxs);color:#ffffff80;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .14s;text-decoration:none;border:1px solid transparent}.nav-item:hover{color:#ffffffd9;background:#ffffff0f}.nav-item.active{color:#fff;background:#f99e2c26;border-color:#f99e2c33}.nav-item svg{width:15px;height:15px;flex-shrink:0}.sidebar-footer{padding:10px 8px 14px;border-top:1px solid rgba(255,255,255,.07)}.sidebar-user{display:flex;align-items:center;gap:9px;padding:8px;border-radius:var(--radxs);cursor:pointer;transition:background .14s}.sidebar-user:hover{background:#ffffff0f}.avatar{width:28px;height:28px;border-radius:7px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#fff;flex-shrink:0}.user-name{font-size:.78rem;font-weight:600;color:#ffffffd9}.user-role{font-size:.62rem;color:#ffffff59;letter-spacing:.02em}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:45px;flex-shrink:0;background:var(--app-bar-bg);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 22px;gap:12px}.content{flex:1;overflow-y:auto;padding:0;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--grey-2) transparent;background:var(--page-bg, #fff);animation:pageIn .2s ease}.page-wrap{display:flex;flex-direction:column;height:100%}.page-hdr{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;min-height:44px;flex-shrink:0}.page-title{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;color:var(--primary-text)}.card{background:var(--surface);animation:cardIn .18s ease}.card-hdr{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;border-bottom:1px solid var(--border-light);background:var(--surface)}.card-body{padding:18px 22px}.tbl-wrap{overflow-x:auto;overflow:hidden;scrollbar-width:thin;scrollbar-color:var(--grey-2) transparent}.tbl-wrap::-webkit-scrollbar{width:4px;height:4px}.tbl-wrap::-webkit-scrollbar-track{background:transparent}.tbl-wrap::-webkit-scrollbar-thumb{background:var(--grey-2);border-radius:99px}.tbl-wrap::-webkit-scrollbar-thumb:hover{background:var(--grey-3)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:.62rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:9px 22px;border-bottom:1px solid var(--border-light);white-space:nowrap;background:var(--surface)}td{padding:10px 22px;border-bottom:1px solid var(--border-light);font-size:.8rem;vertical-align:middle;color:var(--primary-text)}.compact-rows td{padding:6px 22px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--hover-bg)}tr.row-empty:hover td{background:transparent}tbody tr{transition:background .1s}.mono{font-family:var(--mono)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:99px;border:1px solid;transition:background .15s,color .15s}.badge-ok{background:var(--success-bg);color:var(--success);border-color:#27ae6033}.badge-err{background:var(--danger-bg);color:var(--danger);border-color:#f6474733}.badge-warn{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}.badge-blue{background:var(--blue-bg);color:var(--blue);border-color:#2782e433}.badge-dim{background:var(--grey-1);color:var(--grey-4);border-color:var(--border)}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-group:last-child{margin-bottom:0}label{font-size:.62rem;font-weight:600;color:var(--grey-4);text-transform:uppercase;letter-spacing:.08em}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-hint{font-size:.62rem;color:var(--muted)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:52px 20px;gap:8px;color:var(--muted)}.empty svg{width:32px;height:32px;opacity:.3}.empty-title{font-size:.82rem;font-weight:600}.empty-sub{font-size:.7rem}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);background-image:linear-gradient(var(--border-light) 1px,transparent 1px),linear-gradient(90deg,var(--border-light) 1px,transparent 1px);background-size:40px 40px}.login-box{width:380px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px;box-shadow:var(--shadow-lg)}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}.login-brand-icon{width:34px;height:34px;border-radius:9px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;color:#fff}.login-brand-name{font-size:.92rem;font-weight:700;letter-spacing:-.01em}.login-heading{font-size:1.3rem;font-weight:800;letter-spacing:-.03em;margin-bottom:4px}.login-sub{font-size:.78rem;color:var(--muted);margin-bottom:26px}.text-muted{color:var(--muted)}.text-sm{font-size:.72rem}.fw-bold{font-weight:700}@keyframes cardIn{0%{opacity:0}to{opacity:1}}@keyframes pageIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}}
