:root{--bg-primary:#d4a574;--bg-secondary:#b8956a;--bg-dark:#8b6f3f;--border:#e5e7eb;--text-primary:#1f2937;--text-secondary:#6b7280;--accent:#ff8a50;--success:#059669;--error:#ef4444;--warning:#f59e0b;--white:#fff;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb}*{box-sizing:border-box}body{color:var(--text-primary);background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}button:disabled,select:disabled,input:disabled{cursor:not-allowed;opacity:.7}.login-page{background:linear-gradient(135deg,#f8fafc 0%,#e0f2fe 100%);place-items:center;min-height:100vh;padding:2rem;display:grid}.login-card{background:#fff;border-radius:16px;width:min(100%,420px);padding:3rem;box-shadow:0 20px 45px #0f172a1f}.field{gap:.5rem;display:grid}.field label{color:#374151;font-weight:600}.input{color:#111827;background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;width:100%;min-height:44px;padding:.75rem}.input:focus{border-color:var(--accent);background:#fff;outline:none;box-shadow:0 0 0 3px #ff8a5029}.app-shell{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);min-height:100vh}.page-container{flex-direction:column;gap:1.5rem;width:100%;margin:0 auto;padding:2rem 1.5rem 3rem;display:flex}.header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border-radius:12px 12px 0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:2rem;display:flex}.brand{align-items:center;gap:.75rem;display:flex}.brand img{filter:drop-shadow(2px 2px 4px #8b6f3f4d);width:32px;height:32px}.brand h1,.login-card h1{margin:0}.brand p{color:var(--text-secondary);margin:.25rem 0 0;font-size:.875rem}.nav{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.25rem;padding:0 2rem;display:flex}.nav-link{min-width:140px;color:var(--text-secondary);border:1px solid #0000;border-radius:8px 8px 0 0;justify-content:center;align-items:center;gap:.5rem;margin-bottom:-1px;padding:.75rem 1.5rem;transition:all .2s;display:inline-flex}.nav-link.active{color:var(--text-primary);border-color:var(--border);background:linear-gradient(135deg,#fff 0%,#f8fafc 100%)}.content{border-top:1px solid var(--border);background:#fff;border-radius:0 0 12px 12px;animation:.3s fade-in}.module{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);min-height:calc(100vh - 160px);padding:2rem}.module.cool{background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%)}.stack{gap:1.5rem;display:grid}.card{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;padding:1.5rem;transition:all .2s;box-shadow:0 1px 3px #0000001a}.card:hover{box-shadow:0 4px 12px #d4a57426}.filter-box{border:1px solid var(--border);background:linear-gradient(135deg,#fefbff 0%,#f8fafc 100%);border-radius:8px;gap:.5rem;padding:1rem;display:grid}.filter-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;display:grid}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.between{justify-content:space-between}.end{justify-content:flex-end}.select{color:#2f1b14;background:linear-gradient(135deg,#fff8e1 0%,#f5f1e8 100%);border:2px solid #a0845c;border-radius:6px;width:100%;min-height:44px;padding:.75rem;font-weight:700;box-shadow:0 2px 4px #8b6f3f33,inset 0 1px #ffffff4d}.pixel-button{text-shadow:1px 1px 2px #0000001a;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;min-height:42px;padding:.75rem 1.25rem;font-weight:800;transition:all .2s;display:inline-flex;box-shadow:0 3px 6px #8b6f3f33,inset 0 1px #ffffff4d}.pixel-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #8b6f3f4d,inset 0 1px #ffffff4d}.primary{color:#2f1b14;background:linear-gradient(135deg,#d4a574 0%,#b8956a 100%);border:2px solid #8b6f3f}.secondary{color:#2f1b14;background:linear-gradient(135deg,#fff8e1 0%,#f5f1e8 100%);border:2px solid #a0845c}.accent{color:#fff8e1;background:linear-gradient(135deg,#ff8a50 0%,#e67c40 100%);border:2px solid #cc6b36}.plain-button{border:1px solid var(--border);min-height:42px;color:var(--text-secondary);background:0 0;border-radius:8px;padding:.75rem 1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.stat-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #00000014}.stat-card p{color:var(--text-secondary);margin:0;font-size:.8rem}.stat-card strong{color:var(--text-primary);margin-top:.4rem;font-size:1.15rem;display:block}.table-wrap{border:1px solid var(--border);border-radius:12px;width:100%;max-height:600px;overflow:auto;box-shadow:0 1px 3px #0000001a}.chart-panel{border:1px solid var(--border);background:#fff;border-radius:12px;gap:1rem;width:100%;padding:1rem;display:grid;overflow:hidden;box-shadow:0 1px 3px #0000001a}table{border-collapse:collapse;background:#fff;width:100%}th{text-align:left;color:var(--text-primary);background:var(--gray-50);text-transform:uppercase;white-space:nowrap;padding:1rem .75rem;font-size:.75rem;font-weight:800}td{border-top:1px solid var(--gray-100);color:var(--text-primary);white-space:nowrap;padding:.85rem .75rem}tr:hover td{background:var(--gray-50)}.badge{border-radius:6px;align-items:center;min-height:24px;padding:.15rem .55rem;font-size:.8rem;font-weight:800;display:inline-flex}.badge.green{color:#166534;background:linear-gradient(135deg,#dcfce7 0%,#bbf7d0 100%)}.badge.blue{color:#1e40af;background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%)}.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.85rem 1rem}.empty{text-align:center;color:var(--text-secondary);padding:4rem 1rem}.spinner{border:3px solid #ff8a5040;border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}.center{place-items:center;display:grid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:760px){.page-container,.module,.header{padding:1rem}.nav{padding:0 .5rem}.nav-link{flex:130px;min-width:auto}.login-card{padding:2rem}}
