:root{--primary:#000;--primary-light:#111;--accent:#8b5cf6;--accent-dark:#7c3aed;--warning:#d69e2e;--danger:#e53e3e;--bg:#000;--card:#111;--text:#fff;--text-muted:#a0a0a0;--border:#222;--sidebar-w:240px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;line-height:1.5}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);color:#fff;z-index:100;border-right:1px solid var(--border);background:#0a0a0a;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid var(--border);text-align:center;letter-spacing:.5px;padding:18px 20px;font-size:1.1rem;font-weight:700}.sidebar-nav{flex:1;padding:12px 0}.sidebar-nav a{color:var(--text-muted);border-left:2px solid #0000;align-items:center;gap:10px;padding:10px 20px;font-size:.85rem;text-decoration:none;transition:all .15s;display:flex}.sidebar-nav a:hover{color:#fff;background:#8b5cf614;border-left-color:#8b5cf666}.sidebar-nav a.active{color:#a78bfa;border-left-color:var(--accent);background:#8b5cf61f}.sidebar-footer{border-top:1px solid var(--border);padding:16px 20px;font-size:.8rem}.main-content{margin-left:var(--sidebar-w);flex:1;min-width:0;padding:24px 32px}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-header h2{color:var(--text);font-size:1.1rem;font-weight:600}.card-body{padding:20px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:20px}.kpi-card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem}.kpi-card .value{color:var(--text);margin-top:4px;font-size:1.8rem;font-weight:700}.kpi-card .value.money{color:var(--accent)}.kpi-card .value.danger{color:var(--danger)}.kpi-card .value.primary{color:var(--accent)}table{border-collapse:collapse;width:100%}thead{background:#0a0a0a}th,td{text-align:left;border-bottom:1px solid var(--border);color:var(--text);padding:10px 16px;font-size:.9rem}th{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;font-size:.8rem;font-weight:600}tr:hover{background:#8b5cf60d}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;transition:opacity .15s;display:inline-flex}.btn:hover{opacity:.85}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-success{color:#fff;background:#38a169}.btn-danger{background:var(--danger);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-outline{color:var(--text-muted);background:0 0;border:1px solid #333}.btn-sm{padding:4px 10px;font-size:.8rem}.badge{border-radius:12px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.badge-success{color:#68d391;background:#38a16926}.badge-warning{color:#f6e05e;background:#d69e2e26}.badge-danger{color:#fc8181;background:#e53e3e26}.badge-info{color:#a78bfa;background:#8b5cf626}.form-group{margin-bottom:16px}.form-group label{margin-bottom:4px;font-size:.85rem;font-weight:500;display:block}input,select,textarea{width:100%;color:var(--text);background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:.9rem}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #8b5cf626}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{width:90%;max-width:500px;color:var(--text);background:#111;border:1px solid #333;border-radius:12px;box-shadow:0 20px 60px #000c}.modal-header{border-bottom:1px solid var(--border);padding:16px 20px;font-size:1.1rem;font-weight:600}.modal-body{padding:20px}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.login-container{background:#000;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:#111;border:1px solid #222;border-radius:12px;width:380px;padding:40px;box-shadow:0 20px 60px #0009}.login-box h1{text-align:center;color:var(--text);letter-spacing:.5px;margin-bottom:8px;font-size:1.4rem}.login-box .subtitle{text-align:center;color:var(--text-muted);margin-bottom:24px;font-size:.9rem}.error-msg{color:#fc8181;background:#e53e3e26;border:1px solid #e53e3e4d;border-radius:6px;margin-bottom:16px;padding:8px 12px;font-size:.85rem}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.flex{display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-8{gap:8px}.gap-16{gap:16px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.page-title{color:var(--text);margin-bottom:24px;font-size:1.5rem;font-weight:700}.chart-container{width:100%;height:300px}.spinner{justify-content:center;padding:60px;display:flex}.spinner:after{content:"";border:3px solid #222;border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}[data-theme=light]{--bg:#f4f5f7;--card:#fff;--text:#1a1a2e;--text-muted:#557;--border:#dde1ea}[data-theme=light] thead{background:#f0f1f5}[data-theme=light] th{color:var(--text-muted)}[data-theme=light] tr:hover{background:#8b5cf60a}[data-theme=light] input,[data-theme=light] select,[data-theme=light] textarea{color:var(--text);background:#fff;border-color:#d0d5dd}[data-theme=light] input:focus,[data-theme=light] select:focus,[data-theme=light] textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8b5cf61f}[data-theme=light] .modal{color:var(--text);background:#fff;border-color:#dde1ea}[data-theme=light] .login-container{background:#f0f1f5}[data-theme=light] .login-box{background:#fff;border-color:#dde1ea}[data-theme=light] .login-box h1{color:var(--text)}[data-theme=light] .btn-outline{color:var(--text-muted);border-color:#d0d5dd}[data-theme=light] .spinner:after{border-color:#dde1ea;border-top-color:var(--accent)}@media (width<=768px){.sidebar{display:none}.main-content{margin-left:0;padding:16px}.kpi-grid{grid-template-columns:1fr 1fr}}
