:root{--navy:#1b3a4b;--accent:#c4a35a;--text:#1a1a1a;--light-bg:#f8f9fa;--white:#fff;--border:#e5e7eb;--shadow:#0000001a}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--light-bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background-color:var(--navy);color:var(--white);box-shadow:0 2px 4px var(--shadow);padding:1.5rem 2rem}.header-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1600px;margin:0 auto;display:flex}.app-header h1{margin-bottom:.25rem;font-size:1.75rem;font-weight:700}.tagline{opacity:.9;color:var(--accent);font-size:.875rem}.app-content{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:2rem}.filters{flex-wrap:wrap;gap:1rem;margin-bottom:2rem;display:flex}.filter-group{flex-direction:column;gap:.5rem;min-width:200px;display:flex}.filter-group label{color:var(--navy);font-size:.875rem;font-weight:600}.filter-group select{border:1px solid var(--border);background-color:var(--white);color:var(--text);cursor:pointer;border-radius:6px;padding:.625rem;font-size:1rem;transition:border-color .2s}.filter-group select:hover,.filter-group select:focus{border-color:var(--accent);outline:none}.status-columns{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;display:grid}.status-column{background-color:var(--white);box-shadow:0 1px 3px var(--shadow);border-radius:8px;padding:1.5rem}.column-header{color:var(--navy);border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;font-size:1.125rem;font-weight:600;display:flex}.job-count{background-color:var(--accent);color:var(--white);border-radius:12px;padding:.25rem .625rem;font-size:.875rem;font-weight:600}.jobs-list{flex-direction:column;gap:1rem;min-height:200px;display:flex}.empty-state{color:#9ca3af;text-align:center;padding:2rem;font-style:italic}.job-card{background-color:var(--light-bg);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:1rem;transition:all .2s}.job-card:hover{border-color:var(--accent);box-shadow:0 4px 6px var(--shadow);transform:translateY(-2px)}.job-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.job-number{color:var(--navy);font-size:1.125rem;font-weight:700}.bay-cell-badge{background-color:var(--navy);color:var(--white);border-radius:4px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.job-card-body{flex-direction:column;gap:.75rem;display:flex}.part-customer{color:var(--text);font-size:.9375rem;line-height:1.4}.status-chip{color:var(--white);text-align:center;text-transform:uppercase;letter-spacing:.5px;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:600}.hold-reason{color:#92400e;background-color:#fef3c7;border-left:3px solid #f59e0b;border-radius:4px;padding:.75rem;font-size:.875rem;line-height:1.4}.hold-reason strong{color:#b45309;margin-bottom:.25rem;display:block}.job-notes{color:#6b7280;font-size:.875rem;font-style:italic;line-height:1.4}.job-card-footer{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.updated-time{color:#9ca3af;font-size:.75rem}.btn-primary,.btn-secondary{cursor:pointer;border:none;border-radius:6px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s}.btn-primary{background-color:var(--accent);color:var(--white)}.btn-primary:hover{box-shadow:0 4px 6px var(--shadow);background-color:#b08d45;transform:translateY(-1px)}.btn-secondary{background-color:var(--white);color:var(--navy);border:1px solid var(--border)}.btn-secondary:hover{background-color:var(--light-bg);border-color:var(--navy)}.modal-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--white);border-radius:12px;width:100%;max-width:500px;max-height:90vh;padding:2rem;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-content h2{color:var(--navy);margin-bottom:1.5rem;font-size:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--navy);margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;padding:.75rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #c4a35a1a}.form-group textarea{resize:vertical;min-height:80px}.form-actions{justify-content:flex-end;gap:1rem;margin-top:2rem;display:flex}@media (width<=768px){.app-header{padding:1rem}.header-content{flex-direction:column;align-items:flex-start}.app-content{padding:1rem}.status-columns{grid-template-columns:1fr}.filters{flex-direction:column}.filter-group{width:100%}.modal-content{padding:1.5rem}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}@media (width>=769px) and (width<=1024px){.status-columns{grid-template-columns:repeat(2,1fr)}}.csv-import-modal{max-width:600px}.csv-instructions{background-color:var(--light-bg);border-radius:6px;margin-bottom:1.5rem;padding:1rem;font-size:.875rem}.csv-instructions p{margin-bottom:.5rem}.csv-instructions p:last-child{margin-bottom:0}.csv-error{color:#991b1b;background-color:#fee2e2;border-left:3px solid #dc2626;border-radius:4px;margin-bottom:1rem;padding:.75rem;font-size:.875rem}.display-mode-toggle{align-items:center;gap:.5rem;display:flex}.toggle-button{background-color:var(--white);color:var(--navy);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s}.toggle-button:hover{background-color:var(--light-bg);border-color:var(--accent)}.toggle-button.active{background-color:var(--accent);color:var(--white);border-color:var(--accent)}.shop-floor-display{background-color:var(--navy);color:var(--white);min-height:100vh;padding:2rem}.shop-floor-display .app-header{box-shadow:none;background-color:#0000;border-bottom:2px solid #c4a35a4d;padding:1rem 0 2rem}.shop-floor-display .header-content{justify-content:space-between;align-items:center;display:flex}.shop-floor-display h1{color:var(--accent);margin-bottom:0;font-size:2.5rem}.shop-floor-display .tagline{display:none}.shop-floor-display .status-columns{gap:2rem;margin-top:2rem}.shop-floor-display .status-column{background-color:#ffffff0d;border:2px solid #c4a35a33;padding:2rem}.shop-floor-display .column-header{color:var(--accent);border-bottom-color:#c4a35a4d;margin-bottom:1.5rem;padding-bottom:1rem;font-size:2rem}.shop-floor-display .job-count{font-size:1.5rem}.shop-floor-display .job-card{background-color:#ffffff1a;border:2px solid #c4a35a4d;margin-bottom:1.5rem;padding:1.5rem}.shop-floor-display .job-card:hover{border-color:var(--accent);background-color:#ffffff26}.shop-floor-display .job-number{color:var(--accent);font-size:2rem}.shop-floor-display .bay-cell-badge{background-color:var(--accent);padding:.5rem 1rem;font-size:1.125rem}.shop-floor-display .part-customer{color:var(--white);font-size:1.25rem;font-weight:500}.shop-floor-display .status-chip{padding:.75rem 1.25rem;font-size:1.125rem}.shop-floor-display .hold-reason{color:#fde68a;background-color:#f59e0b33;border-left:4px solid #f59e0b;margin-top:1rem;padding:1.25rem;font-size:1.25rem}.shop-floor-display .hold-reason strong{color:#fcd34d;margin-bottom:.5rem;font-size:1.5rem}.shop-floor-display .job-notes{color:#ffffffb3;font-size:1.125rem}.shop-floor-display .updated-time{color:#ffffff80;font-size:1rem}.shop-floor-display .empty-state{color:#fff6;font-size:1.25rem}@media (width<=768px){.app-header{padding:1rem}.header-content{flex-direction:column;align-items:flex-start}.app-content{padding:1rem}.status-columns{grid-template-columns:1fr}.filters{flex-direction:column}.filter-group{width:100%}.modal-content{padding:1.5rem}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}.shop-floor-display h1{font-size:1.75rem}.shop-floor-display .job-number{font-size:1.5rem}}@media (width>=769px) and (width<=1024px){.status-columns{grid-template-columns:repeat(2,1fr)}}@media (width>=1025px){.status-columns{grid-template-columns:repeat(4,1fr)}}.login-container{background-color:var(--light-bg);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--white);box-shadow:0 4px 6px var(--shadow);border-radius:12px;width:100%;max-width:420px;padding:2.5rem}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{color:var(--navy);margin-bottom:.5rem;font-size:1.75rem}.login-header .tagline{color:var(--accent);font-size:.875rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--navy);font-size:.875rem;font-weight:600}.form-group input{border:1px solid var(--border);border-radius:6px;padding:.75rem;font-size:1rem;transition:border-color .2s}.form-group input:focus{border-color:var(--navy);outline:none}.error-message{color:#dc2626;background-color:#fee2e2;border-radius:6px;padding:.75rem;font-size:.875rem}.btn-block{width:100%;padding:.875rem;font-size:1rem}.login-footer{text-align:center;color:#6b7280;margin-top:1.5rem;font-size:.875rem}.user-info{background-color:#ffffff1a;border-radius:6px;align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex}.user-email{color:var(--white);font-size:.875rem}.user-role{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:.25rem .625rem;font-size:.75rem;font-weight:600}.user-role.update{background-color:var(--accent);color:var(--navy)}.user-role.view{color:var(--white);background-color:#fff3}.loading-screen{min-height:100vh;color:var(--navy);justify-content:center;align-items:center;font-size:1.25rem;display:flex}.loading-overlay{color:#fff;z-index:10000;background-color:#0000004d;justify-content:center;align-items:center;font-size:1.25rem;display:flex;position:fixed;inset:0}.error-banner{color:#dc2626;background-color:#fee2e2;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem 1.5rem;display:flex}.error-banner button{color:#dc2626;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:1.5rem;display:flex}.job-card.clickable{cursor:pointer}.job-card:not(.clickable){cursor:default}
