*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5;color:#1a1a1a}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:12px}.app-loading .error{color:#d32f2f;font-size:14px;max-width:500px;text-align:center}.app{display:flex;min-height:100vh}.sidebar{width:220px;background:#1a1a2e;color:#eee;padding:24px 0;display:flex;flex-direction:column}.sidebar h2{padding:0 20px 24px;font-size:18px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar button{background:none;border:none;color:#ccc;padding:12px 20px;text-align:left;cursor:pointer;font-size:15px;transition:.15s}.sidebar button:hover{background:#16213e;color:#fff}.sidebar button.active{background:#0f3460;color:#fff;font-weight:600;border-right:3px solid #e94560}.main{flex:1;padding:24px 32px;overflow-y:auto}.main h1{font-size:22px;margin-bottom:20px}.card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #00000014;margin-bottom:16px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}.stat-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #00000014;text-align:center}.stat-card .value{font-size:28px;font-weight:700;color:#0f3460}.stat-card .label{font-size:13px;color:#666;margin-top:4px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid #eee}th{font-weight:600;color:#555;font-size:12px;text-transform:uppercase}tr:hover td{background:#fafafa}.bar-chart{display:flex;flex-direction:column;gap:8px}.bar-row{display:flex;align-items:center;gap:10px}.bar-label{width:140px;font-size:13px;text-align:right;color:#444}.bar-track{flex:1;height:24px;background:#e8e8e8;border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;display:flex;align-items:center;padding:0 8px;color:#fff;font-size:12px;font-weight:600;min-width:fit-content;transition:width .4s}.form-row{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}.form-row input,.form-row select{padding:8px 12px;border:1px solid #ccc;border-radius:6px;font-size:14px;flex:1;min-width:140px}.form-row input:focus,.form-row select:focus{outline:none;border-color:#0f3460}.btn{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:.15s}.btn-primary{background:#0f3460;color:#fff}.btn-primary:hover{background:#1a4a7a}.btn-danger{background:#d32f2f;color:#fff}.btn-danger:hover{background:#b71c1c}.btn-sm{padding:4px 10px;font-size:12px}.btn-outline{background:none;border:1px solid #ccc;color:#444}.btn-outline:hover{background:#f0f0f0}.toast{position:fixed;bottom:24px;right:24px;background:#1a1a2e;color:#fff;padding:12px 20px;border-radius:8px;font-size:14px;z-index:1000;animation:fadeInUp .3s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:999}.modal{background:#fff;border-radius:12px;padding:24px;min-width:400px;max-width:500px;box-shadow:0 8px 30px #0003}.modal h3{margin-bottom:16px}.modal .form-row input,.modal .form-row select{width:100%}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.empty{color:#888;text-align:center;padding:40px;font-size:14px}
