@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Inter:wght@400;500&display=swap);:root{--font-heading:"Plus Jakarta Sans",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;--bg:#f8fafc;--bg2:#fff;--bg3:#f1f5f9;--text:#0f172a;--text2:#475569;--text3:#94a3b8;--border:#e2e8f0;--border2:#cbd5e1;--accent:#2563eb;--accent-bg:#eff6ff;--accent-text:#1d4ed8;--green:#10b981;--green-bg:#ecfdf5;--green-text:#065f46;--yellow:#f59e0b;--yellow-bg:#fffbeb;--yellow-text:#92400e;--red:#ef4444;--red-bg:#fef2f2;--red-text:#991b1b;--radius:6px;--radius-lg:12px;--sidebar-w:220px;--shadow-card:0 1px 3px #0f172a0f,0 1px 2px #0f172a0a}[data-theme=dark]{--bg:#0f172a;--bg2:#1e293b;--bg3:#162032;--text:#f1f5f9;--text2:#94a3b8;--text3:#475569;--border:#1e293b;--border2:#334155;--accent:#3b82f6;--accent-bg:#1e3a5f;--accent-text:#93c5fd;--green:#10b981;--green-bg:#064e3b;--green-text:#6ee7b7;--yellow:#f59e0b;--yellow-bg:#451a03;--yellow-text:#fcd34d;--red:#ef4444;--red-bg:#450a0a;--red-text:#fca5a5;--shadow-card:0 1px 3px #0000004d}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{-webkit-font-smoothing:antialiased;background:#f8fafc;background:var(--bg);font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);line-height:1.6}body,h1,h2,h3,h4{color:#0f172a;color:var(--text)}h1,h2,h3,h4{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-heading);font-weight:600;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1rem}h4,p{font-size:.875rem}p{color:#475569;color:var(--text2)}.app-shell{display:grid;grid-template-columns:220px 1fr;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.page-content{overflow-y:auto;padding:2rem 2.25rem}.page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.75rem}.page-header h2{font-size:1.375rem;margin-bottom:.2rem}.page-header p{color:#94a3b8;color:var(--text3);font-size:.8125rem}.sidebar{background:#fff;background:var(--bg2);border-right:1px solid #e2e8f0;border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;overflow-y:auto;position:sticky;top:0}.sidebar-brand{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex;gap:.625rem;padding:1.125rem 1rem}.sidebar-brand-icon{align-items:center;background:#2563eb;background:var(--accent);border-radius:8px;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:700;height:28px;justify-content:center;width:28px}.sidebar-brand-icon,.sidebar-brand-name{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-heading)}.sidebar-brand-name{color:#0f172a;color:var(--text);font-size:.9375rem;font-weight:600}.sidebar-section-label{color:#94a3b8;color:var(--text3);font-size:.6875rem;font-weight:500;letter-spacing:.05em;padding:1rem .875rem .3rem;text-transform:uppercase}.sidebar-section{margin-bottom:.25rem;padding:0 .375rem}.nav-link{align-items:center;border-radius:6px;border-radius:var(--radius);color:#475569;color:var(--text2);display:flex;font-size:.8125rem;gap:.5rem;overflow:hidden;padding:.4375rem .625rem;text-decoration:none;transition:background .1s,color .1s;white-space:nowrap}.nav-link:hover{background:#f1f5f9;background:var(--bg3);color:#0f172a;color:var(--text)}.nav-link.active{background:#eff6ff;background:var(--accent-bg);color:#1d4ed8;color:var(--accent-text);font-weight:500}.nav-icon{flex-shrink:0;font-size:1rem;opacity:.75;text-align:center;width:1.125rem}.nav-link.active .nav-icon{opacity:1}.sidebar-footer{align-items:center;border-top:1px solid #e2e8f0;border-top:1px solid var(--border);display:flex;gap:.625rem;margin-top:auto;padding:.875rem 1rem}.sidebar-footer-avatar{align-items:center;background:#eff6ff;background:var(--accent-bg);border-radius:50%;color:#1d4ed8;color:var(--accent-text);display:flex;flex-shrink:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-heading);font-size:.6875rem;font-weight:600;height:28px;justify-content:center;width:28px}.sidebar-footer-name{color:#0f172a;color:var(--text);flex:1 1;font-size:.8125rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card,.stat-card{background:#fff;background:var(--bg2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-lg);padding:1.125rem 1.25rem}.stat-card{cursor:pointer;transition:border-color .15s}.stat-card:hover{border-color:#cbd5e1;border-color:var(--border2)}.stat-value{color:#0f172a;color:var(--text);font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-heading);font-size:1.75rem;font-weight:600;line-height:1.1;margin-bottom:.25rem}.stat-value.accent{color:#2563eb;color:var(--accent)}.stat-value.warn{color:#f59e0b;color:var(--yellow)}.stat-value.danger{color:#ef4444;color:var(--red)}.stat-value.ok{color:#10b981;color:var(--green)}.stat-label{color:#475569;color:var(--text2);font-size:.75rem;font-weight:500}.stat-sub{margin-top:.2rem}.section-title,.stat-sub{color:#94a3b8;color:var(--text3);font-size:.6875rem}.section-title{font-weight:500;letter-spacing:.05em;margin-bottom:.75rem;text-transform:uppercase}.btn{align-items:center;border:1px solid #0000;border-radius:6px;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);font-size:.8125rem;font-weight:500;gap:.375rem;line-height:1.4;padding:.4375rem .875rem;text-decoration:none;transition:background .1s,border-color .1s,opacity .1s;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#2563eb;background:var(--accent);border-color:#2563eb;border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8;background:var(--accent-text);border-color:#1d4ed8;border-color:var(--accent-text)}.btn-ghost{background:#0000;border-color:#cbd5e1;border-color:var(--border2);color:#475569;color:var(--text2)}.btn-ghost:hover:not(:disabled){background:#f1f5f9;background:var(--bg3);color:#0f172a;color:var(--text)}.btn-danger{background:#fef2f2;background:var(--red-bg);border-color:#ef4444;border-color:var(--red);color:#991b1b;color:var(--red-text)}.btn-danger:hover:not(:disabled){background:#ef4444;background:var(--red);color:#fff}.btn-sm{font-size:.75rem;padding:.3125rem .625rem}.btn-icon{height:32px;justify-content:center;padding:.375rem;width:32px}.form-group{margin-bottom:1rem}.form-group label{color:#0f172a;color:var(--text);display:block;font-size:.8125rem;font-weight:500;margin-bottom:.375rem}.form-hint{color:#94a3b8;color:var(--text3);font-size:.75rem;margin-top:.25rem}.required{color:#ef4444;color:var(--red);margin-left:2px}input,select,textarea{background:#fff;background:var(--bg2);border:1px solid #cbd5e1;border:1px solid var(--border2);border-radius:6px;border-radius:var(--radius);color:#0f172a;color:var(--text);font-family:Inter,system-ui,sans-serif;font-family:var(--font-body);font-size:.8125rem;line-height:1.5;outline:none;padding:.4375rem .75rem;transition:border-color .15s,box-shadow .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:#2563eb;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}input::placeholder,textarea::placeholder{color:#94a3b8;color:var(--text3)}input[type=checkbox]{accent-color:#2563eb;accent-color:var(--accent);cursor:pointer;width:auto}.checkbox-group{align-items:center;color:#0f172a;color:var(--text);cursor:pointer;display:flex;font-size:.8125rem;gap:.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.table-wrap{background:#fff;background:var(--bg2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-lg);overflow:hidden}table{border-collapse:collapse;width:100%}thead th{background:#f1f5f9;background:var(--bg3);color:#94a3b8;color:var(--text3);font-size:.6875rem;font-weight:500;letter-spacing:.04em;padding:.6875rem 1rem;text-align:left;text-transform:uppercase;white-space:nowrap}tbody td,thead th{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border)}tbody td{color:#0f172a;color:var(--text);font-size:.8125rem;padding:.75rem 1rem;vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#f1f5f9;background:var(--bg3)}.actions-col{display:flex;gap:.375rem;justify-content:flex-end}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.6875rem;font-weight:500;gap:.25rem;padding:.15rem .5rem;white-space:nowrap}.badge-green{background:#ecfdf5;background:var(--green-bg);color:#065f46;color:var(--green-text)}.badge-yellow{background:#fffbeb;background:var(--yellow-bg);color:#92400e;color:var(--yellow-text)}.badge-red{background:#fef2f2;background:var(--red-bg);color:#991b1b;color:var(--red-text)}.badge-blue{background:#eff6ff;background:var(--accent-bg);color:#1d4ed8;color:var(--accent-text)}.badge-gray{background:#f1f5f9;background:var(--bg3);border:1px solid #e2e8f0;border:1px solid var(--border);color:#475569;color:var(--text2)}.modal-overlay{align-items:center;background:#0f172a80;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:100}.modal{background:#fff;background:var(--bg2);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 20px 60px #0f172a33;display:flex;flex-direction:column;max-height:90vh;max-width:540px;width:100%}.modal-lg{max-width:760px}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:1.125rem 1.25rem}.modal-header h3{font-size:1rem;font-weight:600}.modal-body{flex:1 1;overflow-y:auto;padding:1.25rem}.modal-footer{background:#f1f5f9;background:var(--bg3);border-top:1px solid #e2e8f0;border-top:1px solid var(--border);display:flex;flex-shrink:0;gap:.5rem;justify-content:flex-end;padding:1rem 1.25rem}.filters{align-items:center;display:flex;flex-wrap:wrap;gap:.625rem;margin-bottom:1rem}.filters input,.filters select{flex:1 1;max-width:280px;min-width:160px;width:auto}.alert{border:1px solid;border-radius:6px;border-radius:var(--radius);font-size:.8125rem;padding:.75rem 1rem}.alert-info{background:#eff6ff;background:var(--accent-bg);border-color:#2563eb;border-color:var(--accent);color:#1d4ed8;color:var(--accent-text)}.alert-success{background:#ecfdf5;background:var(--green-bg);border-color:#10b981;border-color:var(--green);color:#065f46;color:var(--green-text)}.alert-warning{background:#fffbeb;background:var(--yellow-bg);border-color:#f59e0b;border-color:var(--yellow);color:#92400e;color:var(--yellow-text)}.alert-danger{background:#fef2f2;background:var(--red-bg);border-color:#ef4444;border-color:var(--red);color:#991b1b;color:var(--red-text)}.loading{align-items:center;display:flex;justify-content:center;padding:3rem}.empty-state,.loading{color:#94a3b8;color:var(--text3);font-size:.875rem}.empty-state{padding:3rem 1rem;text-align:center}.toast-container{bottom:1.5rem;display:flex;flex-direction:column;gap:.5rem;position:fixed;right:1.5rem;z-index:200}.toast{align-items:center;animation:toast-in .2s ease;background:#0f172a;background:var(--text);border-radius:6px;border-radius:var(--radius);box-shadow:0 4px 12px #00000026;color:#f8fafc;color:var(--bg);display:flex;font-size:.8125rem;font-weight:500;gap:.625rem;max-width:320px;padding:.75rem 1rem}.toast-success{background:#10b981;background:var(--green);color:#fff}.toast-error{background:#ef4444;background:var(--red);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.text-muted{color:#94a3b8;color:var(--text3)}.text-sm{font-size:.75rem}.collapse-btn{background:none;border:none;border-radius:6px;border-radius:var(--radius);color:#94a3b8;color:var(--text3);cursor:pointer;line-height:1;padding:.25rem}.collapse-btn:hover{background:#f1f5f9;background:var(--bg3);color:#475569;color:var(--text2)}.sidebar nav::-webkit-scrollbar{width:4px}.sidebar nav::-webkit-scrollbar-track{background:#0000}.sidebar nav::-webkit-scrollbar-thumb{background:#cbd5e1;background:var(--border2);border-radius:4px}.sidebar nav{scrollbar-color:#cbd5e1 #0000;scrollbar-color:var(--border2) #0000;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar{display:none}
/*# sourceMappingURL=main.175d8d19.css.map*/