:root{--wylie-white: #ffffff;--wylie-black: #201e1f;--wylie-pink: #dc2565;--wylie-purple: #500778;--wylie-purple-hover: #3d055c;--wylie-purple-text: #b388eb;--wylie-blue: #288bcd;--wylie-cyan: #00ffff;--wylie-green: #1c5f36;--wylie-coral: #f05f57;--bg-page: #1a1a1a;--bg-card: #2a2a2a;--bg-hover: #333333;--border: #444444;--text: #e0e0e0;--text-muted: #999999;--radius-button: 5px;--radius-card: 8px;--radius-pill: 12px;--shadow-soft: 0 2px 4px rgba(0, 0, 0, .3);--login-gradient: linear-gradient(135deg, #500778, #dc2565);--font-stack: "Helvetica Neue", Helvetica, Arial, sans-serif}.theme-parking{--wylie-purple: #dc2565;--wylie-purple-hover: #b51d52;--wylie-purple-text: #f06a9b}.theme-approvals{--wylie-purple: #1c5f36;--wylie-purple-hover: #14492a;--wylie-purple-text: #4fae77}.theme-payroll{--wylie-purple: #288bcd;--wylie-purple-hover: #1f6fa3;--wylie-purple-text: #6bb6e3}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-stack);background:var(--bg-page);color:var(--text);-webkit-font-smoothing:antialiased}.btn{font-family:inherit;font-size:1rem;padding:12px 20px;border:none;border-radius:var(--radius-button);cursor:pointer;transition:background .15s ease,opacity .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--wylie-purple);color:#fff}.btn-primary:hover:not(:disabled){background:var(--wylie-purple-hover)}.btn-success{background:var(--wylie-green);color:#fff}.btn-danger{background:var(--wylie-coral);color:#fff}.btn-block{width:100%}.btn-3q{display:block;width:75%;margin:4px auto 16px;font-size:1.33rem;padding:16px 27px}.btn-sm{font-size:.85rem;padding:8px 14px}.sync-control{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.sync-status{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.btn-ghost{background:transparent;color:var(--wylie-purple-text)}.login-bg{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--login-gradient)}.login-card{width:100%;max-width:380px;background:#fff;color:var(--wylie-black);border-radius:10px;box-shadow:0 12px 40px #00000059;padding:32px 28px}.login-logo{display:block;height:64px;width:auto;margin:0 auto 10px}.login-wordmark{font-size:1.85rem;font-weight:700;color:var(--wylie-purple);text-align:center;margin:0;letter-spacing:-.5px}.login-sub{text-align:center;color:#6b6b6b;margin:4px 0 28px;font-size:.95rem}.login-step-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:#8a8a8a;margin:0 0 12px}.search-input,.pin-input{width:100%;padding:12px 14px;font-size:1rem;font-family:inherit;border:1px solid #d4d4d4;border-radius:var(--radius-button);outline:none}.search-input:focus{border-color:var(--wylie-purple);box-shadow:0 0 0 3px #50077833}.name-list{list-style:none;margin:14px 0 0;padding:0;max-height:280px;overflow-y:auto}.name-item{padding:13px 14px;border-radius:var(--radius-button);cursor:pointer;display:flex;justify-content:space-between;align-items:center}.name-item:hover{background:#f3eef7}.name-team{font-size:.78rem;color:#fff;background:var(--wylie-purple);padding:2px 10px;border-radius:var(--radius-pill);text-transform:capitalize}.pin-name{text-align:center;font-size:1.25rem;font-weight:600;margin:0 0 4px}.pin-dots{display:flex;justify-content:center;gap:16px;margin:22px 0}.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--wylie-purple)}.pin-dot.filled{background:var(--wylie-purple)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pin-key{font-size:1.4rem;padding:16px 0;border:1px solid #e0e0e0;border-radius:var(--radius-button);background:#fff;cursor:pointer;font-family:inherit}.pin-key:hover{background:#f3eef7}.pin-key.blank{border:none;background:transparent;cursor:default}.error-box{background:#fdecea;color:#b3251f;border:1px solid #f5b5b1;border-radius:var(--radius-button);padding:10px 12px;font-size:.9rem;margin-top:16px;text-align:center}.link-back{background:none;border:none;color:var(--wylie-purple-text);cursor:pointer;font-size:.9rem;padding:0;margin-top:18px}.app-shell{min-height:100%;display:flex;flex-direction:column}.navbar{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:12px;background:var(--wylie-purple);padding:15px 30px;box-shadow:var(--shadow-soft)}.navbar-brand{display:flex;align-items:center;gap:18px}.navbar-logo{height:51px;width:auto;background:#fff;padding:7px;border-radius:9px}.navbar-title{font-size:2.4rem;font-weight:700;color:#fff;line-height:1}.navbar-links{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-left:auto}.navbar-link{background:none;border:none;color:#fff;cursor:pointer;font-size:1.4rem;font-family:inherit;padding:12px 18px;border-radius:var(--radius-button);opacity:.85}.navbar-link.tab-home{--tab-fill: #3d055c;--tab-bright: #b388eb}.navbar-link.tab-parking{--tab-fill: #dc2565;--tab-bright: #f06a9b}.navbar-link.tab-approvals{--tab-fill: #1c5f36;--tab-bright: #4fae77}.navbar-link.tab-payroll{--tab-fill: #288bcd;--tab-bright: #6bb6e3}.navbar-link:hover{color:var(--tab-bright, var(--wylie-pink));opacity:1}.navbar-link.active{background:var(--tab-fill, rgba(255, 255, 255, .15));color:#fff;opacity:1}.navbar-logout{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;cursor:pointer;font-size:1.4rem;font-family:inherit;padding:12px 18px;border-radius:var(--radius-button);opacity:.85}.navbar-logout:hover{color:var(--wylie-pink);opacity:1}@media (max-width: 600px){.navbar{padding:12px 18px}.navbar-brand{flex:0 1 auto}.navbar-title{font-size:1.8rem}.navbar-logo{height:42px}.navbar-logout{order:1;margin-left:auto;padding:8px 12px;font-size:1rem;white-space:nowrap}.navbar-links{order:2;flex:1 1 100%;min-width:0;overflow:hidden;margin-left:0;flex-wrap:nowrap;justify-content:space-between;gap:6px}.navbar-link{flex:0 0 auto;padding:8px 10px;font-size:inherit;white-space:nowrap}}.page.page-wide{max-width:none}.payroll-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.payroll-controls label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--text-muted)}.payroll-controls .form-input{width:auto}.review-panel{background:#4a3c0059;border:1px solid #6b5500;color:#ffd966;border-radius:var(--radius-card);padding:14px 16px;margin-bottom:18px;font-size:.9rem}.review-panel ul{margin:8px 0 0;padding-left:18px}.review-panel li{margin-bottom:4px}.add-person{display:flex;gap:10px;align-items:center;margin-bottom:16px}.add-person .form-input{width:auto;min-width:280px;max-width:420px}.add-person .btn{white-space:nowrap}.table-scroll{overflow-x:auto;max-height:75vh;overflow-y:auto;border-radius:var(--radius-card);border:1px solid var(--border)}.payroll-table{width:100%;border-collapse:collapse;font-size:.88rem}.payroll-table thead th{white-space:normal}.payroll-table td{white-space:nowrap}.payroll-table th,.payroll-table td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--border)}.payroll-table th:first-child,.payroll-table td:first-child{text-align:left}.payroll-table thead th{background:#232323;color:var(--text-muted);font-weight:600;position:sticky;top:0;z-index:1}.payroll-table th.col-staff,.payroll-table td.col-staff{background:#ffffff08}.payroll-table thead th.col-staff{background:#2a2a2a}.cell-no{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.cell-name{font-weight:600}.cell-staff{color:var(--text)}.cell-input{width:72px;background:#1e1e1e;color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:.85rem;text-align:right;font-family:inherit}.cell-input:focus{outline:none;border-color:var(--wylie-purple)}.cell-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.cell-input::-webkit-outer-spin-button,.cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cell-flags{text-align:left!important}.flag{display:inline-block;font-size:.68rem;padding:2px 7px;border-radius:var(--radius-pill);margin:0 4px 4px 0}.flag-review{background:#4a3c00;color:#ffd966}.flag-pending{background:#3a3a3a;color:var(--text-muted)}.flag-til{background:#16323f;color:#7fd1e8}.payroll-note{color:var(--text-muted);font-size:.82rem;margin-top:14px}.approval-row{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px;margin-bottom:12px;list-style:none}.approval-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.approval-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.approval-actions .btn{padding:9px 18px}.welcome-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.welcome-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:32px;max-width:460px;text-align:center}.welcome-logo{height:62px;width:auto;margin-bottom:12px;background:#fff;padding:8px;border-radius:8px}.badge{display:inline-block;font-size:.8rem;padding:3px 12px;border-radius:var(--radius-pill);background:var(--wylie-green);color:#fff;margin-top:8px}.muted{color:var(--text-muted)}.muted-oneline{white-space:nowrap}.page{width:100%;max-width:640px;margin:0 auto;padding:24px 20px 64px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.page-title{margin:0;font-size:1.6rem}.section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:28px 0 12px}.permit-panel .form-input{margin-bottom:12px}.permit-toggle{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:.9rem;color:var(--text-muted);cursor:pointer;padding:6px 4px}.permit-toggle input{width:22px;height:22px;cursor:pointer}.permit-list-scroll{max-height:50vh;overflow-y:auto;margin-bottom:12px}.permit-actions{display:flex;gap:10px}.permit-actions .btn{flex:1;padding-top:14px;padding-bottom:14px}.btn-secondary{background:#3a3a3a;color:var(--text)}.btn-secondary:hover:not(:disabled){background:#474747}.flash-success{background:#50077838;border:1px solid var(--wylie-purple);color:var(--wylie-purple-text);border-radius:var(--radius-button);padding:12px 14px;margin-bottom:16px;font-size:.92rem}.save-status{display:inline-flex;align-items:center;font-size:1rem;padding:6.5px 20px;border-radius:var(--radius-button);background:var(--wylie-blue);color:#fff;white-space:nowrap;margin-right:8px}.save-status--error{background:var(--wylie-coral)}.save-status-saved{display:inline-flex;align-items:center;gap:5px}.save-status-error{font-weight:600}.cloud-tick{flex-shrink:0;width:30px;height:auto;display:block}.save-status-error{color:var(--wylie-coral);font-weight:600}.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:22px;margin-bottom:8px}.form-field{margin-bottom:18px}.form-field label{display:block;font-size:.92rem;margin-bottom:7px}.form-input,.form-select,.form-textarea{width:100%;background:#1e1e1e;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-button);padding:11px 12px;font-size:1rem;font-family:inherit;outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--wylie-purple);box-shadow:0 0 0 3px #50077840}.form-textarea{resize:vertical;min-height:64px}input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left}input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit{text-align:left}.form-row{display:flex;gap:12px}.form-row>*{flex:1}.choice-list{display:flex;flex-direction:column;gap:10px}.choice-list .choice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;background:#1e1e1e;border:1px solid var(--border);border-radius:var(--radius-button);padding:13px 12px;font-size:1rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.choice-list .choice span{flex:1 1 auto;min-width:0}.choice-list .choice input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:26px;height:26px;flex:0 0 auto;margin:0 0 0 auto;background:#141414;border:1px solid var(--border);border-radius:4px;position:relative;cursor:pointer}.choice-list .choice input:checked:after{content:"";position:absolute;left:50%;top:46%;width:6px;height:12px;border:solid #fff;border-width:0 3px 3px 0;transform:translate(-50%,-50%) rotate(45deg)}.choice-list .choice.selected{background:var(--wylie-purple);border-color:var(--wylie-purple);color:#fff}.choice-list .choice.selected input{border-color:#ffffff73}.segmented{display:flex;gap:8px}.seg{flex:1;padding:11px;background:#1e1e1e;border:1px solid var(--border);color:var(--text);border-radius:var(--radius-button);cursor:pointer;font-family:inherit;font-size:.95rem}.seg.active{background:var(--wylie-purple);border-color:var(--wylie-purple);color:#fff}.form-actions{display:flex;gap:12px;margin-top:4px}.form-actions .btn{flex:1}.entry-list{list-style:none;margin:0;padding:0}.entry-row{display:flex;flex-direction:column;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:14px 16px;margin-bottom:10px}.entry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.entry-main{flex:1 1 auto;min-width:0}.entry-row.entry-pending{background:#dc256514;border-color:var(--wylie-pink);border-left:4px solid var(--wylie-pink)}.entry-row.entry-approved{background:#1c5f361a;border-color:var(--wylie-green);border-left:4px solid var(--wylie-green)}.entry-row.entry-sent_back{background:#f05f571a;border-color:var(--wylie-coral);border-left:4px solid var(--wylie-coral)}.entry-date{font-weight:600}.entry-sub{color:var(--text-muted);font-size:.85rem;margin-top:3px}.entry-footer{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.entry-footer .entry-actions{margin-right:auto;margin-top:0}.entry-status-row{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.entry-hours{font-size:1.05rem;font-weight:700}.entry-pay{font-size:1.15rem;font-weight:700;white-space:nowrap}.entry-pay.pay-review{color:#ffd966;font-size:.95rem}.entry-review{color:#ffd966;font-size:.78rem;margin-top:6px;line-height:1.35}.entry-actions{display:flex;gap:8px}.entry-actions .btn{padding:6px 12px}.btn-ghost.danger-text{color:var(--wylie-coral)}.btn-ghost.danger-text:hover:not(:disabled){background:#f05f571f}.status-badge{display:inline-block;font-size:.7rem;padding:3px 9px;border-radius:var(--radius-pill);margin-top:5px;white-space:nowrap}.open-pill{font-size:.7rem;padding:3px 9px;border-radius:var(--radius-pill);margin-top:5px;white-space:nowrap;background:#50077838;border:1px solid var(--wylie-purple-text);color:var(--wylie-purple-text);cursor:pointer}.open-pill:hover{background:#50077866}.status-pending{background:#dc25652e;border:1px solid var(--wylie-pink);color:#f3a8c6}.status-approved{background:#1c5f362e;border:1px solid var(--wylie-green);color:#9fe0b4}.status-sent_back{background:var(--wylie-coral);color:#fff}.ticket-thumb{display:inline-block;margin-top:8px;padding:0;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg-card);cursor:pointer;overflow:hidden;line-height:0}.ticket-thumb img{width:88px;height:88px;object-fit:cover;display:block}.ticket-thumb--loading{width:88px;height:88px;margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-card);background:#ffffff0d}.approval-photo{margin-top:10px}.ticket-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}.ticket-lightbox img{max-width:100%;max-height:100%;border-radius:var(--radius-card)}.ticket-preview{display:flex;align-items:center;gap:12px;margin-top:10px}.ticket-preview img{width:88px;height:88px;object-fit:cover;border:1px solid var(--border);border-radius:var(--radius-card);display:block}
