*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--pri: #16A34A;--pri-l: #DCFCE7;--pri-ll: #F0FDF4;--acc: #F97316;--acc-l: #FFF7ED;--blue: #1D4ED8;--blue-l: #DBEAFE;--pur: #7C3AED;--pur-l: #EDE9FE;--teal: #0F766E;--teal-l: #CCFBF1;--red: #DC2626;--red-l: #FEE2E2;--amb: #B45309;--amb-l: #FEF3C7;--navy: #1E3A5F;--slate: #334155;--ink: #111827;--ink2: #374151;--ink3: #6B7280;--ink4: #9CA3AF;--bg: #F3F4F6;--card: #FFFFFF;--border: #E5E7EB;--sidebar-w: 240px;--header-h: 60px;--r: 10px;--rs: 6px}html{font-size:14px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--ink4)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .2s ease}.spin{animation:spin 1s linear infinite}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}.badge-green{background:var(--pri-l);color:var(--pri)}.badge-orange{background:var(--acc-l);color:var(--acc)}.badge-red{background:var(--red-l);color:var(--red)}.badge-blue{background:var(--blue-l);color:var(--blue)}.badge-gray{background:var(--bg);color:var(--ink3);border:1px solid var(--border)}.badge-amber{background:var(--amb-l);color:var(--amb)}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--rs);font-size:13px;font-weight:600;border:none;transition:opacity .15s,transform .1s}.btn:hover{opacity:.9}.btn:active{transform:scale(.98)}.btn-primary{background:var(--pri);color:#fff}.btn-accent{background:var(--acc);color:#fff}.btn-danger{background:var(--red);color:#fff}.btn-ghost{background:var(--bg);color:var(--ink2);border:1.5px solid var(--border)}.btn-sm{padding:5px 10px;font-size:12px}.btn-lg{padding:10px 20px;font-size:15px}.btn:disabled{opacity:.4;cursor:not-allowed}.input{width:100%;padding:8px 12px;border-radius:var(--rs);border:1.5px solid var(--border);background:var(--bg);color:var(--ink);font-size:13px;transition:border-color .15s}.input:focus{outline:none;border-color:var(--pri);background:#fff}.input-error{border-color:var(--red)}.label{display:block;font-size:11px;font-weight:700;color:var(--ink2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.4px}.card{background:var(--card);border-radius:var(--r);border:1px solid var(--border);padding:20px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:15px;font-weight:700;color:var(--ink)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{background:var(--slate);color:#fff;padding:9px 12px;text-align:left;font-weight:600;font-size:12px}.table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:nth-child(2n) td{background:var(--bg)}.table tr:hover td{background:var(--pri-ll)}.toggle{position:relative;width:40px;height:22px;border-radius:11px;border:none;cursor:pointer;transition:background .2s}.toggle.on{background:var(--pri)}.toggle.off{background:var(--border)}.toggle.always{background:var(--pri);cursor:not-allowed;opacity:.7}.toggle:after{content:"";position:absolute;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .2s}.toggle.on:after,.toggle.always:after{left:21px}.toggle.off:after{left:3px}.stat-card{background:var(--card);border-radius:var(--r);border:1px solid var(--border);padding:16px 20px}.stat-label{font-size:11px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.stat-value{font-size:28px;font-weight:800;color:var(--ink);line-height:1;margin-bottom:4px}.stat-sub{font-size:11px;color:var(--ink3)}
