:root{--primary: #1565c0;--primary-dark: #0d47a1;--primary-light: #e3f0ff;--success: #2e7d32;--success-light: #e8f5e9;--warning: #e65100;--warning-light: #fff3e0;--danger: #c62828;--danger-light: #ffebee;--text: #1a1a2e;--text-secondary: #5f5f6e;--text-muted: #9e9eb0;--bg: #f4f7fb;--surface: #ffffff;--border: #e0e4ef;--radius: 8px;--radius-lg: 14px;--shadow: 0 2px 12px rgba(0, 0, 0, .07);--nav-width: 220px;--font: "Inter", "Segoe UI", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);font-size:15px;line-height:1.6;color:var(--text);background:var(--bg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.75rem;font-weight:700}h2{font-size:1.35rem;font-weight:600}h3{font-size:1.1rem;font-weight:600}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--nav-width);padding:2rem;max-width:1100px}@media(max-width:768px){.main-content{margin-left:0;padding:1rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow)}.card-sm{padding:1rem;border-radius:var(--radius)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.stat-card .label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.stat-card .value{font-size:28px;font-weight:700;color:var(--primary)}.stat-card .sub{font-size:12px;color:var(--text-muted);margin-top:2px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;border:1.5px solid transparent;transition:all .15s;text-decoration:none}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);text-decoration:none}.btn-secondary{background:transparent;color:var(--primary);border-color:var(--primary)}.btn-secondary:hover{background:var(--primary-light);text-decoration:none}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#b71c1c;text-decoration:none}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn-ghost:hover{background:var(--bg);text-decoration:none}.btn-sm{padding:4px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:1.1rem}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:5px;color:var(--text-secondary)}.form-control{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .15s}.form-control:focus{outline:none;border-color:var(--primary)}select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:80px}.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-green{background:var(--success-light);color:var(--success)}.badge-orange{background:var(--warning-light);color:var(--warning)}.badge-red{background:var(--danger-light);color:var(--danger)}.badge-blue{background:var(--primary-light);color:var(--primary)}.badge-gray{background:#f0f0f5;color:var(--text-secondary)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;padding:10px 14px;background:var(--bg);color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}td{padding:11px 14px;border-bottom:1px solid var(--border)}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:12px}.page-header h1{margin:0}.alert{padding:12px 16px;border-radius:var(--radius);font-size:14px;margin-bottom:1rem}.alert-error{background:var(--danger-light);color:var(--danger)}.alert-success{background:var(--success-light);color:var(--success)}.alert-info{background:var(--primary-light);color:var(--primary)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:2rem auto}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;justify-content:center;align-items:center;height:200px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--surface);border-radius:var(--radius-lg);padding:2rem;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px #0000002e}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{margin:0}.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);padding:4px 8px}.modal-close:hover{color:var(--text)}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:1.5rem}.divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:13px;margin:1rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}
