:root{--primary: #ff7a00;--primary-dark: #e56a00;--primary-light: #fff3e8;--accent: #5b2a9e;--bg: #f6f7f9;--surface: #ffffff;--text: #1a1a1a;--muted: #8a8f98;--border: #e8eaed;--success: #12b76a;--danger: #f04438;--warning: #f79009;--radius: 12px;--shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:inherit;text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:250px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:18px 20px;font-weight:800;font-size:18px}.sidebar .brand .logo{width:34px;height:34px;border-radius:9px}.sidebar .role-chip{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.role-chip.super{background:#efe6fb;color:var(--accent)}.role-chip.admin{background:var(--primary-light);color:var(--primary-dark)}.nav-section{padding:8px 12px}.nav-section .label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 10px 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:var(--muted);font-weight:600;cursor:pointer}.nav-item:hover{background:var(--bg);color:var(--text)}.nav-item.active{background:var(--primary-light);color:var(--primary-dark)}.nav-item .ic{width:18px;text-align:center}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:62px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:5}.topbar h1{font-size:18px;margin:0}.content{padding:24px;max-width:1200px;width:100%}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 900px){.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card h3{margin:0 0 4px;font-size:15px}.card .sub{color:var(--muted);font-size:12px}.stat .value{font-size:26px;font-weight:800;margin-top:6px}.stat .label{color:var(--muted);font-size:13px}.section-title{font-size:16px;font-weight:800;margin:24px 0 12px}.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:999px;padding:9px 16px;font-weight:700;font-size:13px;cursor:pointer}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.success{background:var(--success);color:#fff}.btn.danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}.btn.sm{padding:6px 12px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;color:var(--muted);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--border)}.table td{padding:12px;border-bottom:1px solid var(--border);font-size:13px}.table tr:hover td{background:#fafbfc}.badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;display:inline-block}.badge.green{background:#e7f7ef;color:var(--success)}.badge.red{background:#fdeceb;color:var(--danger)}.badge.amber{background:#fef3e6;color:var(--warning)}.badge.gray{background:#f0f1f3;color:var(--muted)}.badge.orange{background:var(--primary-light);color:var(--primary-dark)}.field{margin-bottom:14px}.field label{display:block;font-weight:600;font-size:13px;margin-bottom:6px}.input,.select,textarea.input{width:100%;border:1px solid var(--border);border-radius:9px;padding:10px 12px;font-size:14px;background:var(--surface);color:var(--text);font-family:inherit}.input:focus{outline:none;border-color:var(--primary)}.row{display:flex;gap:12px}.row>*{flex:1}.toggle{position:relative;width:44px;height:26px;border-radius:999px;background:var(--border);cursor:pointer;transition:background .15s;flex:none}.toggle.on{background:var(--primary)}.toggle .knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}.toggle.on .knob{left:21px}.flex{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:10px}.muted{color:var(--muted)}.right{text-align:right}.center{text-align:center}.mt{margin-top:16px}.empty{text-align:center;color:var(--muted);padding:40px}.spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff7a00,#e56a00);padding:20px}.auth-card{background:#fff;border-radius:20px;padding:34px;width:100%;max-width:400px;box-shadow:0 20px 60px #0003}.auth-card .logo-badge{width:76px;height:76px;border-radius:20px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.auth-card h2{text-align:center;margin:0 0 4px}.auth-card .sub{text-align:center;color:var(--muted);margin-bottom:20px}.error-text{color:var(--danger);font-size:13px;margin-top:8px}.legal{max-width:820px;margin:0 auto;padding:40px 24px;line-height:1.7}.legal h1{color:var(--primary-dark)}.legal h2{margin-top:28px}.legal a{color:var(--primary-dark);text-decoration:underline}
