:root{--bg: #F9F9FA;--card: #FFFFFF;--text: #1C1C1C;--text-muted: rgba(28, 28, 28, .4);--border: rgba(28, 28, 28, .1);--accent: #8A8CD9;--soft-blue: #E3F5FF;--soft-violet: #E5ECF6;--hover: rgba(28, 28, 28, .05);--success-bg: rgba(74, 167, 133, .15);--success-text: #1F6D51;--error: #D12F2F;--btn-bg: #1C1C1C;--btn-text: #FFFFFF;--r-card: 24px;--r-input: 16px;--r-item: 12px;--r-pill: 80px;--sp-1: 8px;--sp-2: 16px;--sp-3: 24px;--sp-4: 32px;--sp-5: 40px;--sp-7: 56px;--fs-title: 32px;--fs-h2: 24px;--fs-h3: 18px;--fs-body: 14px;--fs-num: 24px;--font: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100vh}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-body);line-height:20px;font-feature-settings:"ss01" 1,"cv01" 1}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.auth-page{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;padding:var(--sp-2) var(--sp-3)}.logo{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-h3);font-weight:600;letter-spacing:.04em;color:var(--text);text-decoration:none}.logo-mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:14px}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--sp-3)}.auth-card{width:100%;max-width:680px;background:var(--card);border-radius:var(--r-card);padding:var(--sp-7) var(--sp-3);animation:fadeInUp .4s ease both}.auth-inner{width:100%;max-width:384px;margin:0 auto;display:flex;flex-direction:column;gap:var(--sp-2);text-align:center}.auth-title{font-size:var(--fs-title);line-height:40px;font-weight:600}.auth-subtitle{color:var(--text-muted)}.auth-icon{width:56px;height:56px;margin:0 auto;color:var(--text)}.auth-form{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-1)}.field{width:100%;height:48px;padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--r-input);background:var(--card);color:var(--text);font:inherit;transition:border-color .15s ease}.field::placeholder{color:var(--text-muted)}.field:hover{border-color:#1c1c1c33}.field:focus{outline:none;border-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 var(--sp-3);border:none;border-radius:var(--r-pill);background:var(--btn-bg);color:var(--btn-text);font:inherit;font-weight:500;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.btn:hover{opacity:.85}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-block{width:100%}.btn-ghost{background:var(--hover);color:var(--text);height:36px;padding:0 var(--sp-2)}.error{color:var(--error);animation:fadeInUp .25s ease both}.auth-footer{padding:var(--sp-3);text-align:center;color:var(--text-muted)}.shell{display:flex;min-height:100vh}.sidebar{width:212px;flex-shrink:0;border-right:1px solid var(--border);padding:var(--sp-3) var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-3)}.nav{display:flex;flex-direction:column;gap:4px}.nav-group-label{color:var(--text-muted);padding:0 var(--sp-1);margin-bottom:4px}.nav-item{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1);border-radius:var(--r-item);color:var(--text);text-decoration:none;transition:background .15s ease}.nav-item:hover{background:var(--hover)}.nav-item.active{background:var(--hover);font-weight:500}.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted)}.nav-item.active .nav-dot{background:var(--accent)}.content{flex:1;min-width:0;display:flex;flex-direction:column}.content-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border)}.breadcrumb{color:var(--text-muted)}.breadcrumb b{color:var(--text);font-weight:500}.content-body{padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3);animation:fadeInUp .4s ease both}.page-title{font-size:var(--fs-h3);font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-3)}.stat-card{border-radius:var(--r-card);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1)}.stat-card.blue{background:var(--soft-blue)}.stat-card.violet{background:var(--soft-violet)}.stat-label{font-weight:500}.stat-value{font-size:var(--fs-num);line-height:32px;font-weight:600;overflow-wrap:anywhere}.panel-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1)}.ok-badge{display:inline-flex;align-items:center;align-self:flex-start;padding:4px var(--sp-2);border-radius:var(--r-pill);background:var(--success-bg);color:var(--success-text);font-weight:500}.muted{color:var(--text-muted)}@media(max-width:720px){.sidebar{display:none}.auth-card{padding:var(--sp-5) var(--sp-2)}.auth-title{font-size:var(--fs-h2);line-height:32px}}
