:root{--primary: #2563eb;--primary-hover: #1d4ed8;--bg: #f8fafc;--card: #ffffff;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--success: #16a34a;--danger: #dc2626;--warning: #d97706}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:#0f172a;color:#f8fafc;padding:24px 0 0;flex-shrink:0;display:flex;flex-direction:column;min-height:100vh}.sidebar nav{flex:1}.sidebar h1{font-size:18px;margin:0 24px 24px;letter-spacing:.5px}.sidebar nav a{display:block;padding:12px 24px;color:#cbd5e1;text-decoration:none;font-size:14px;border-left:3px solid transparent}.sidebar nav a:hover{background:#ffffff0d;color:#fff}.sidebar nav a.active{background:#2563eb26;color:#fff;border-left-color:var(--primary)}.content{flex:1;padding:32px;overflow-x:auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h2{margin:0;font-size:24px}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:20px;margin-bottom:16px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:20px}.stat-card .label{font-size:13px;color:var(--muted);margin-bottom:8px}.stat-card .value{font-size:28px;font-weight:600}button{cursor:pointer;padding:8px 16px;border-radius:6px;border:1px solid var(--border);background:#fff;font-size:14px;transition:all .15s}button:hover{background:#f1f5f9}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.primary:hover{background:var(--primary-hover)}button.danger{color:var(--danger);border-color:#fecaca}button.success{color:var(--success);border-color:#bbf7d0}button.small{padding:4px 10px;font-size:12px}table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden}table th,table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border);font-size:14px}table th{background:#f8fafc;font-weight:600;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}table tr:last-child td{border-bottom:none}table tr:hover{background:#f8fafc}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:13px;font-weight:500;color:var(--muted)}input,select,textarea{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.badge.success{background:#dcfce7;color:#166534}.badge.danger{background:#fee2e2;color:#991b1b}.badge.warning{background:#fef3c7;color:#92400e}.badge.info{background:#dbeafe;color:#1e40af}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;padding:24px;width:90%;max-width:560px;max-height:90vh;overflow-y:auto}.modal h3{margin:0 0 16px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.empty{text-align:center;padding:48px;color:var(--muted)}.toolbar{display:flex;gap:8px;margin-bottom:16px;align-items:center}.toolbar input{flex:1;max-width:320px}
