:root{--primary: #1F3864;--primary-light: #2E4F8A;--secondary: #2E75B6;--accent: #E8A020;--danger: #E63946;--success: #2E7D32;--warning: #F57C00;--bg: #F0F4F8;--bg-card: #FFFFFF;--text: #1A1A2E;--text-light: #555;--border: #CBD5E1;--shadow: 0 2px 8px rgba(0,0,0,.12);--radius: 12px;--radius-sm: 8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:16px;-webkit-tap-highlight-color:transparent;overflow-x:hidden}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--primary);color:#fff;padding:0 16px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #0000004d}.app-header h1{font-size:18px;font-weight:700;letter-spacing:.5px}.app-content{flex:1;padding:16px;max-width:1200px;width:100%;margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:var(--radius-sm);border:none;font-size:16px;font-weight:600;cursor:pointer;transition:all .15s;min-height:48px;text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light)}.btn-secondary{background:var(--secondary);color:#fff}.btn-secondary:hover{background:#2566a0}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#1b5e20}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#c62828}.btn-warning{background:var(--warning);color:#fff}.btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary)}.btn-lg{padding:18px 32px;font-size:20px;min-height:60px}.btn-sm{padding:10px 16px;font-size:14px;min-height:36px}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--bg-card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--bg)}.card-title{font-size:18px;font-weight:700;color:var(--primary)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:14px;font-weight:600;color:var(--text-light);margin-bottom:6px}.form-control{width:100%;padding:12px 14px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:16px;color:var(--text);background:#fff;transition:border-color .15s;min-height:48px}.form-control:focus{outline:none;border-color:var(--secondary);box-shadow:0 0 0 3px #2e75b626}.workstation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:8px 0}.workstation-card{background:var(--bg-card);border-radius:var(--radius);padding:24px 16px;text-align:center;cursor:pointer;border:3px solid transparent;transition:all .15s;box-shadow:var(--shadow)}.workstation-card:hover{border-color:var(--secondary);transform:translateY(-2px)}.workstation-card.active{border-color:var(--success);background:#e8f5e9}.workstation-card.occupied{opacity:.6;cursor:not-allowed}.workstation-number{font-size:48px;font-weight:900;color:var(--primary);line-height:1}.workstation-name{font-size:13px;color:var(--text-light);margin-top:4px}.workstation-operator{font-size:12px;color:var(--success);font-weight:600;margin-top:4px}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:700;text-transform:uppercase}.badge-pirelli{background:#fff8e1;color:#f57f17;border:1px solid #FFD54F}.badge-ph{background:#fce4ec;color:#c62828;border:1px solid #EF9A9A}.badge-success{background:#e8f5e9;color:#2e7d32}.badge-warning{background:#fff3e0;color:#e65100}.badge-danger{background:#ffebee;color:#c62828}.badge-info{background:#e3f2fd;color:#0d47a1}.sync-indicator{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600}.sync-online{background:#2e7d3226;color:#2e7d32}.sync-pending{background:#f57c0026;color:#e65100}.sync-offline{background:#e6394633;color:#c62828}.sync-dot{width:8px;height:8px;border-radius:50%}.sync-online .sync-dot{background:#4caf50;animation:pulse 2s infinite}.sync-pending .sync-dot{background:#ff9800;animation:pulse 1s infinite}.sync-offline .sync-dot{background:#f44336}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.table-wrapper{overflow-x:auto;border-radius:var(--radius-sm)}table{width:100%;border-collapse:collapse}th{background:var(--primary);color:#fff;padding:12px;text-align:left;font-size:13px;font-weight:600}td{padding:12px;border-bottom:1px solid var(--bg);font-size:14px}tr:last-child td{border-bottom:none}tr:nth-child(2n) td{background:#fafafa}tr:hover td{background:#ebf5fb}.alert{padding:14px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:14px;display:flex;align-items:center;gap:10px}.alert-danger{background:#ffebee;color:#c62828;border-left:4px solid #F44336}.alert-success{background:#e8f5e9;color:#2e7d32;border-left:4px solid #4CAF50}.alert-warning{background:#fff3e0;color:#e65100;border-left:4px solid #FF9800}.alert-info{background:#e3f2fd;color:#0d47a1;border-left:4px solid #2196F3}.login-page{min-height:100vh;background:linear-gradient(135deg,#1f3864,#2e4f8a,#1a2b52);display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:#fff;border-radius:20px;padding:40px;width:100%;max-width:420px;box-shadow:0 20px 60px #0000004d}.login-logo{text-align:center;margin-bottom:32px}.login-logo h1{font-size:28px;font-weight:900;color:var(--primary)}.login-logo p{color:var(--text-light);font-size:14px;margin-top:4px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.stat-card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border-left:5px solid var(--secondary)}.stat-value{font-size:36px;font-weight:900;color:var(--primary)}.stat-label{font-size:13px;color:var(--text-light);margin-top:4px}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center}.scanner-frame{width:min(80vw,400px);aspect-ratio:1;border:3px solid #FFD700;border-radius:16px;overflow:hidden;position:relative}.scanner-hint{color:#fff;font-size:16px;margin-top:20px;text-align:center}.scanner-close{margin-top:24px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:2px solid var(--border);display:flex;z-index:100;box-shadow:0 -2px 8px #0000001a}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:10px 4px;cursor:pointer;color:var(--text-light);font-size:11px;text-decoration:none;transition:color .15s;gap:4px}.nav-item.active{color:var(--primary);font-weight:700}.nav-icon{font-size:24px}.spinner{display:inline-block;width:32px;height:32px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:var(--primary);color:#fff}.tyre-result-card{background:#fff;border-radius:var(--radius);padding:20px;border-left:6px solid var(--secondary);box-shadow:var(--shadow)}.tyre-brand-PIRELLI{border-left-color:gold}.tyre-brand-PH{border-left-color:var(--danger)}@media (max-width: 768px){.workstation-grid{grid-template-columns:repeat(2,1fr)}.app-content{padding:12px}.workstation-number{font-size:36px}}@media (max-width: 480px){.workstation-grid{grid-template-columns:repeat(2,1fr)}}.has-bottom-nav{padding-bottom:70px}
