@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Nunito:wght@400;600;700;800&display=swap";:root{--hera-blue: #1B6EA8;--hera-blue-d: #14527E;--hera-orange: #E8621A;--hera-green: #72B83E;--bg: #F2F6FA;--bg-elevated: #FFFFFF;--bg-card: #EAF0F7;--border: #C8D9EA;--text: #0E2438;--text-sub: #3B6080;--text-muted: #7090AA;--accent: var(--hera-blue);--accent-h: var(--hera-blue-d);--accent-warm: var(--hera-orange);--accent-surf: rgba(27,110,168,.1);--accent-warm-surf: rgba(232,98,26,.1);--green: var(--hera-green);--green-surf: rgba(114,184,62,.12);--red: #D04030;--red-surf: rgba(208,64,48,.1);--sidebar-w: 226px;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.07), 0 4px 12px rgba(14,36,56,.06);--shadow-md: 0 4px 16px rgba(14,36,56,.12), 0 1px 4px rgba(0,0,0,.06)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0A1520;--bg-elevated: #102030;--bg-card: #18293A;--border: #203348;--text: #D8E8F5;--text-sub: #7AAAC8;--text-muted: #4A7090;--accent: #4D9ED4;--accent-h: #5AAEE0;--accent-warm: #F07840;--accent-surf: rgba(77,158,212,.12);--accent-warm-surf: rgba(240,120,64,.12);--green: #8FD45A;--green-surf: rgba(143,212,90,.12);--red: #E06050;--red-surf: rgba(224,96,80,.12);--shadow: 0 1px 3px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);--shadow-md: 0 4px 16px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.4)}}:root[data-theme=dark]{--bg: #0A1520;--bg-elevated: #102030;--bg-card: #18293A;--border: #203348;--text: #D8E8F5;--text-sub: #7AAAC8;--text-muted: #4A7090;--accent: #4D9ED4;--accent-h: #5AAEE0;--accent-warm: #F07840;--accent-surf: rgba(77,158,212,.12);--accent-warm-surf: rgba(240,120,64,.12);--green: #8FD45A;--green-surf: rgba(143,212,90,.12);--red: #E06050;--red-surf: rgba(224,96,80,.12);--shadow: 0 1px 3px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);--shadow-md: 0 4px 16px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased;height:100%}#root{height:100%}h1{font-size:1.5rem;font-weight:600;letter-spacing:-.02em}h2{font-size:1.2rem;font-weight:600;letter-spacing:-.01em}h3{font-size:1rem;font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13.5px;font-weight:500;font-family:inherit;border:none;cursor:pointer;transition:opacity .15s,background .15s;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-h)}.btn-secondary{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-card)}.btn-ghost{background:transparent;color:var(--text-sub)}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){opacity:.85}.btn-sm{padding:5px 11px;font-size:12.5px}.btn-lg{padding:11px 22px;font-size:15px}.btn-icon{padding:7px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-sub);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}.btn-icon:hover{background:var(--bg-elevated);color:var(--text)}.input,.select,.textarea{width:100%;padding:8px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:14px;outline:none;transition:border-color .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.textarea{resize:vertical;min-height:80px}.form-group{display:flex;flex-direction:column;gap:5px}.form-label{font-size:12.5px;font-weight:500;color:var(--text-sub)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.02em}.badge-green{background:var(--green-surf);color:var(--green)}.badge-blue{background:var(--accent-surf);color:var(--accent)}.badge-yellow{background:var(--accent-warm-surf);color:var(--accent-warm)}.badge-red{background:var(--red-surf);color:var(--red)}.badge-gray{background:var(--bg-card);color:var(--text-muted)}.badge-purple{background:#7c3aed1a;color:#8b5cf6}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:500px}thead th{text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}tbody td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--bg-card)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-md)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px 0;flex-shrink:0}.modal-body{display:flex;flex-direction:column;gap:14px;overflow-y:auto;flex:1;padding:20px 28px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px 24px;border-top:1px solid var(--border);flex-shrink:0}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted);text-align:center;gap:10px}.empty-icon{font-size:32px;opacity:.5}.empty p{font-size:13.5px;max-width:280px;line-height:1.6}.divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin:20px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.progress-bar{height:6px;background:var(--bg-card);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .3s}.progress-fill.over{background:var(--red)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.text-muted{color:var(--text-muted);font-size:13px}.text-sub{color:var(--text-sub)}.font-mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mt-4{margin-top:4px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.w-full{width:100%}.login-layout{min-height:100vh;display:flex;background:var(--bg)}.login-panel-left{width:40%;min-width:280px;background:var(--hera-blue);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 40px;gap:20px}.login-panel-right{flex:1;display:flex;align-items:center;justify-content:center;padding:48px}.login-mobile-logo{display:none}@media (max-width: 640px){.login-layout{flex-direction:column}.login-panel-left{display:none}.login-panel-right{padding:40px 24px;align-items:flex-start}.login-mobile-logo{display:flex;align-items:center;gap:10px;margin-bottom:28px}.form-row{grid-template-columns:1fr}}.mobile-topbar{display:none;position:fixed;top:0;left:0;right:0;height:52px;background:var(--bg-elevated);border-bottom:1px solid var(--border);align-items:center;justify-content:space-between;padding:0 14px;z-index:50;box-shadow:var(--shadow)}@media (max-width: 768px){:root{--sidebar-w: 0px}.sidebar-desktop{display:none!important}.mobile-topbar{display:flex}.app-main{padding-top:52px}.main-content{padding:16px!important}}
