.login-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#1a0505,#3d0d0d,#2d0808);position:relative;overflow:hidden}.login-page:before,.login-page:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(169,18,18,.12);pointer-events:none}.login-page:before{width:600px;height:600px;top:-150px;left:-150px}.login-page:after{width:500px;height:500px;bottom:-100px;right:-100px}.login-content{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{background:var(--bg-card);border-radius:20px;box-shadow:0 25px 60px #0006,0 0 0 1px #ffffff0d;padding:3rem 2.5rem 2.5rem;width:100%;max-width:420px;position:relative;z-index:1}.brand{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:2.25rem}.brand-icon{width:64px;height:64px;background:linear-gradient(135deg,#8a0e0e,#a91212);border-radius:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #a9121259}.brand-icon svg{width:36px;height:36px;color:#fff}.brand-name{font-size:2rem;font-weight:800;color:var(--text-1);letter-spacing:-.5px}.brand-name span{color:#a91212}.brand-tagline{font-size:.875rem;color:var(--text-4);letter-spacing:.01em}.divider{height:1px;background:var(--border);margin-bottom:2rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.8125rem;font-weight:600;color:var(--text-2);letter-spacing:.02em;text-transform:uppercase}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:.875rem;width:18px;height:18px;color:var(--text-5);pointer-events:none;flex-shrink:0}.form-group input{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:1.5px solid var(--border);border-radius:10px;font-size:.9375rem;color:var(--text-1);background:var(--bg-subtle);transition:border-color .15s,box-shadow .15s,background .15s;outline:none}.form-group input:focus{border-color:#a91212;background:var(--bg-card);box-shadow:0 0 0 3px #a912121f}.form-group input::placeholder{color:var(--border)}.input-with-toggle{padding-right:2.75rem!important}.pw-toggle{position:absolute;right:.875rem;background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;color:var(--text-5);transition:color .15s;line-height:0}.pw-toggle svg{width:18px;height:18px}.pw-toggle:hover{color:#a91212}.forgot-link{align-self:flex-end;background:none;border:none;padding:0;font-size:.8rem;color:#a91212;cursor:pointer;margin-top:.2rem;transition:color .15s}.forgot-link:hover{color:#8a0e0e;text-decoration:underline}.back-link{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;font-size:.8125rem;font-weight:500;color:var(--text-4);cursor:pointer;margin-bottom:.5rem;transition:color .15s}.back-link svg{width:15px;height:15px}.back-link:hover{color:var(--text-1)}.forgot-intro{margin-bottom:.25rem}.forgot-title{font-size:1rem;font-weight:700;color:var(--text-1);margin-bottom:.375rem}.forgot-subtitle{font-size:.8375rem;color:var(--text-4);line-height:1.5}.forgot-sent{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center}.forgot-sent-icon{width:52px;height:52px;border-radius:50%;background:#dcfce7;color:#16a34a;font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.forgot-sent .forgot-subtitle{max-width:300px}.forgot-sent .login-button{width:100%;margin-top:.75rem}.login-error{font-size:.8125rem;color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.5rem .875rem;margin-top:-.25rem}.login-button{margin-top:.5rem;padding:.875rem 1rem;background:linear-gradient(135deg,#8a0e0e,#a91212);color:#fff;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;letter-spacing:.02em;transition:opacity .15s,transform .1s,box-shadow .15s;box-shadow:0 4px 14px #a9121259}.login-button:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 6px 20px #a9121273}.login-button:active{transform:translateY(0);opacity:1}.login-footer{text-align:center;padding:1.25rem;font-size:.75rem;color:#94a3b8b3;position:relative;z-index:1}.login-footer-logo{height:18px;width:auto;opacity:.55;filter:brightness(0) invert(1)}.sidebar{width:240px;flex-shrink:0;background:linear-gradient(135deg,#1a0505,#3d0d0d,#2d0808);display:flex;flex-direction:column;overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:.625rem;padding:1.25rem 1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.07)}.sidebar-brand-icon{width:32px;height:32px;background:linear-gradient(135deg,#8a0e0e,#a91212);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-brand-icon svg{width:18px;height:18px;color:#fff}.sidebar-brand-name{font-size:1.125rem;font-weight:800;color:#f8fafc;letter-spacing:-.3px}.sidebar-brand-name span{color:#f99}.sidebar-nav{flex:1;padding:.75rem;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sidebar-section-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#ffffff59;padding:.75rem .5rem .25rem}.nav-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.6rem .75rem;border:none;border-radius:8px;background:transparent;color:#94a3b8;font-size:.875rem;font-weight:500;cursor:pointer;text-align:left;transition:background .12s,color .12s}.nav-item svg{width:18px;height:18px;flex-shrink:0}.nav-item:hover{background:#ffffff0f;color:#e2e8f0}.nav-item.active{background:#ffffff1f;color:#fff}.nav-item.active svg{color:#fff}.nav-subitem{padding-left:2.375rem;font-size:.8125rem}.nav-subitem svg{width:15px;height:15px}.nav-divider{height:1px;background:#ffffff12;margin:.5rem}.sidebar-user{padding:.875rem 1rem;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:.75rem}.user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#8a0e0e,#a91212);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.user-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.user-meta{flex:1;min-width:0}.user-meta-name{font-size:.8125rem;font-weight:600;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta-role{font-size:.7rem;color:#fff6;text-transform:capitalize}.crop-editor{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.25rem 1rem .75rem}.crop-hint{font-size:.75rem;color:var(--text-5);margin:0;text-align:center}.crop-box{position:relative;width:280px;height:280px;border-radius:8px;overflow:hidden;background:#0f172a;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.crop-box:active{cursor:grabbing}.crop-overlay-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.crop-zoom-row{display:flex;align-items:center;gap:.625rem;width:280px}.crop-zoom-icon{font-size:1.125rem;font-weight:700;color:var(--text-4);line-height:1;width:16px;text-align:center;-webkit-user-select:none;user-select:none}.crop-zoom-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--border);outline:none;cursor:pointer}.crop-zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#a91212;cursor:pointer;box-shadow:0 1px 4px #a9121266;transition:box-shadow .12s}.crop-zoom-slider::-webkit-slider-thumb:hover{box-shadow:0 1px 8px #a9121299}.crop-zoom-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#a91212;cursor:pointer;border:none;box-shadow:0 1px 4px #a9121266}.crop-actions{display:flex;gap:.625rem;width:280px;justify-content:flex-end}.pref-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;justify-content:flex-end;align-items:flex-start;padding:58px 1rem 0}.pref-modal{width:340px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;overflow:hidden;animation:pref-slide-in .15s ease-out}@keyframes pref-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.pref-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem .875rem 1.25rem;border-bottom:1px solid var(--border-muted)}.pref-title{font-size:.9375rem;font-weight:700;color:var(--text-1)}.pref-close{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--text-5);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s,color .1s;padding:0}.pref-close svg{width:16px;height:16px}.pref-close:hover{background:var(--bg-subtle);color:var(--text-3)}.pref-body{padding:1.25rem;display:flex;flex-direction:column;gap:1.5rem}.pref-avatar-wrap{display:flex;align-items:center;gap:1rem}.pref-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;box-shadow:0 2px 8px #00000026}.pref-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.pref-avatar-initials{font-size:1.25rem;font-weight:700;color:#fff;line-height:1;-webkit-user-select:none;user-select:none}.pref-user-info{display:flex;flex-direction:column;gap:.2rem}.pref-user-name{font-size:.9375rem;font-weight:700;color:var(--text-1)}.pref-user-sub{font-size:.75rem;color:var(--text-5);font-weight:500}.pref-section{display:flex;flex-direction:column;gap:.625rem}.pref-section-label{font-size:.8125rem;font-weight:600;color:var(--text-2);margin:0}.pref-section-hint{font-weight:400;color:var(--text-5)}.pref-photo-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.pref-file-input{display:none}.pref-swatches{display:flex;gap:.5rem;flex-wrap:wrap}.pref-color-preview{display:flex;align-items:center;gap:.625rem}.pref-color-preview-label{font-size:.75rem;color:var(--text-5);font-weight:500}.pref-color-preview-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #00000026}.booking-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#0f172a73;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.booking-dialog{width:420px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px #0000002e,0 4px 16px #00000014;animation:booking-in .18s ease-out}@keyframes booking-in{0%{opacity:0;transform:scale(.96) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}.booking-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.25rem 1rem;gap:.75rem}.booking-header-left{display:flex;align-items:flex-start;gap:.875rem}.booking-icon{width:38px;height:38px;border-radius:10px;background:#22c55e1a;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#16a34a}.booking-icon svg{width:20px;height:20px}.booking-title{font-size:.9375rem;font-weight:700;color:var(--text-1);line-height:1.3}.booking-subtitle{font-size:.75rem;color:var(--text-5);margin-top:.15rem}.booking-close{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--text-5);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .1s,color .1s;padding:0}.booking-close svg{width:16px;height:16px}.booking-close:hover{background:var(--border-muted);color:var(--text-3)}.booking-body{padding:0 1.25rem 1.25rem;display:flex;flex-direction:column;gap:1rem}.booking-field{display:flex;flex-direction:column;gap:.35rem}.booking-label{font-size:.75rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}.booking-select-wrap{position:relative}.booking-select-dot{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;pointer-events:none;z-index:1}.booking-select{width:100%;padding:.55rem 2.25rem .55rem .75rem;border:1.5px solid var(--border);border-radius:8px;font-size:.875rem;color:var(--text-1);background:var(--bg-card);outline:none;cursor:pointer;transition:border-color .12s,box-shadow .12s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.booking-select.has-dot{padding-left:2rem}.booking-select:focus{border-color:#22c55e;box-shadow:0 0 0 3px #22c55e1f}.booking-select:disabled{background-color:var(--bg-subtle);color:var(--text-5);cursor:not-allowed;border-color:var(--border)}.booking-summary{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px}.booking-summary-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.booking-summary-text{font-size:.75rem;color:#166534;font-weight:500;line-height:1.4}.booking-footer{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;padding:.875rem 1.25rem;border-top:1px solid var(--border-muted)}.booking-start-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.25rem;border:none;border-radius:8px;background:#22c55e;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .12s,box-shadow .12s;box-shadow:0 2px 8px #22c55e4d}.booking-start-btn svg{width:14px;height:14px}.booking-start-btn:hover:not(:disabled){background:#16a34a;box-shadow:0 4px 12px #22c55e66}.booking-start-btn:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed;box-shadow:none}.header-timer{display:flex;align-items:center;gap:.625rem;padding:.3rem .75rem .3rem .375rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-subtle)}.ht-btn{width:30px;height:30px;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .12s,box-shadow .12s}.ht-btn svg{width:13px;height:13px}.ht-btn-play{background:#22c55e;color:#fff;box-shadow:0 2px 6px #22c55e59}.ht-btn-play:hover{transform:scale(1.1);box-shadow:0 3px 10px #22c55e73}.ht-btn-stop{background:#ef4444;color:#fff;box-shadow:0 2px 6px #ef444459}.ht-btn-stop:hover{transform:scale(1.1);box-shadow:0 3px 10px #ef444473}.ht-info{display:flex;align-items:center;gap:.5rem;min-width:0}.ht-idle-label{font-size:.8125rem;color:var(--text-4);font-weight:500;background:none;border:none;padding:0;cursor:pointer;white-space:nowrap}.ht-idle-label:hover{color:var(--text-2)}.ht-pulse{width:7px;height:7px;border-radius:50%;background:#ef4444;flex-shrink:0;animation:ht-pulse 1.2s ease-in-out infinite}@keyframes ht-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.ht-running{display:flex;flex-direction:column;gap:0;min-width:0}.ht-clock{font-size:.9375rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#ef4444;line-height:1.1}.ht-booking-label{font-size:.6875rem;color:var(--text-5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;line-height:1.2}.ht-stopped{display:flex;align-items:center;gap:.5rem}.ht-stopped-text{font-size:.8125rem;color:var(--text-3);white-space:nowrap}.ht-continue{width:26px;height:26px;border:none;border-radius:50%;background:#22c55e;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #22c55e59;transition:transform .12s,box-shadow .12s;padding:0}.ht-continue svg{width:13px;height:13px}.ht-continue:hover{transform:scale(1.12);box-shadow:0 3px 10px #22c55e80}.ht-restart{background:none;border:1.5px solid var(--border);border-radius:6px;padding:2px 8px;font-size:.75rem;color:var(--text-4);cursor:pointer;white-space:nowrap;transition:border-color .12s,color .12s}.ht-restart:hover{border-color:#22c55e;color:#16a34a}.ht-dismiss{width:20px;height:20px;border:none;background:none;color:var(--text-5);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:0;flex-shrink:0;transition:background .1s,color .1s}.ht-dismiss svg{width:12px;height:12px}.ht-dismiss:hover{background:var(--bg-subtle);color:var(--text-3)}.app-header{height:58px;background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;flex-shrink:0;gap:1rem}.header-left{display:flex;align-items:center;gap:.5rem;flex:1}.header-center{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.header-page-title{font-size:1rem;font-weight:600;color:var(--text-1)}.header-right{display:flex;align-items:center;gap:.75rem;flex:1;justify-content:flex-end}.header-user{display:flex;align-items:center;gap:.625rem;padding:.375rem .75rem .375rem .5rem;border-radius:8px;background:var(--bg-subtle);border:1px solid var(--border)}.header-user-btn{cursor:pointer;font:inherit;transition:background .1s,border-color .1s}.header-user-btn:hover{background:var(--bg-subtle);border-color:var(--border)}.header-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#8a0e0e,#a91212);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.header-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.header-user-info{display:flex;flex-direction:column;line-height:1.2}.header-user-name{font-size:.8125rem;font-weight:600;color:var(--text-1)}.header-user-role{font-size:.7rem;color:var(--text-4);text-transform:capitalize}.header-role-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:4px;background:#a912121a;color:#a91212}.header-role-badge.admin{background:#ef44441a;color:#ef4444}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-4);cursor:pointer;transition:border-color .12s,color .12s,background .12s;flex-shrink:0;padding:0}.theme-toggle svg{width:16px;height:16px}.theme-toggle:hover{border-color:var(--text-5);color:var(--text-1);background:var(--bg-subtle)}.logout-button{display:flex;align-items:center;gap:.375rem;padding:.4rem .875rem;border:1.5px solid var(--border);border-radius:8px;background:transparent;color:var(--text-4);font-size:.8125rem;font-weight:500;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.logout-button svg{width:15px;height:15px}.logout-button:hover{border-color:#ef4444;color:#ef4444;background:#fef2f2}:root{color-scheme:light;--bg-base: #f1f5f9;--bg-card: #ffffff;--bg-subtle: #f8fafc;--border: #e2e8f0;--border-muted: #f1f5f9;--text-1: #0f172a;--text-2: #334155;--text-3: #475569;--text-4: #64748b;--text-5: #94a3b8}html[data-theme=dark]{color-scheme:dark;--bg-base: #0f172a;--bg-card: #1e293b;--bg-subtle: #263147;--border: #334155;--border-muted: #263147;--text-1: #f1f5f9;--text-2: #e2e8f0;--text-3: #cbd5e1;--text-4: #94a3b8;--text-5: #64748b}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif}.app-layout{display:flex;height:100vh;overflow:hidden;background:var(--bg-base)}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.app-content{flex:1;overflow-y:auto;padding:2rem}.app-footer{height:38px;background:var(--bg-card);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;font-size:.725rem;color:var(--text-5);flex-shrink:0;gap:1rem}.footer-status{display:flex;align-items:center;gap:.4rem}.status-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;display:inline-block;flex-shrink:0}.dashboard{display:flex;flex-direction:column;gap:1.5rem;max-width:1400px}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.dashboard-title{font-size:1.5rem;font-weight:700;color:var(--text-1)}.dashboard-date{font-size:.875rem;color:var(--text-4);margin-top:.125rem}.range-picker{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.range-preset-select{padding:.45rem 2rem .45rem .75rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-1);font-size:.8125rem;font-weight:500;cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:border-color .12s}.range-preset-select:hover{border-color:var(--text-5)}.range-preset-select:focus{border-color:#a91212;outline:none}.range-dates{display:flex;align-items:center;gap:.375rem;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;padding:.35rem .625rem;transition:border-color .12s}.range-dates:focus-within{border-color:#a91212}.range-date-input{border:none;outline:none;background:transparent;font-size:.8125rem;color:var(--text-1);cursor:pointer;padding:0;font-weight:500}.range-sep{color:var(--text-5);font-size:.875rem;-webkit-user-select:none;user-select:none}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.summary-card{background:var(--bg-card);border-radius:12px;padding:1.25rem 1.5rem;border:1px solid var(--border);display:flex;flex-direction:column;gap:.25rem;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#8a0e0e,#a91212)}.summary-card:nth-child(2):before{background:linear-gradient(90deg,#0f766e,#14b8a6)}.summary-card:nth-child(3):before{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.summary-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-4)}.summary-value{font-size:2rem;font-weight:800;color:var(--text-1);line-height:1;margin:.25rem 0}.summary-sub{font-size:.75rem;color:var(--text-5)}.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.charts-row.charts-single{grid-template-columns:1fr}@media(max-width:900px){.charts-row{grid-template-columns:1fr}}.dashboard-card{background:var(--bg-card);border-radius:12px;border:1px solid var(--border);overflow:hidden}.card-header{display:flex;align-items:center;justify-content:space-between;padding:1.125rem 1.5rem;border-bottom:1px solid var(--border-muted);gap:1rem;flex-wrap:wrap}.card-title{font-size:.9375rem;font-weight:600;color:var(--text-1)}.entry-count{font-size:.8125rem;color:var(--text-4)}.card-header-right{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.chart-expand-btn{width:28px;height:28px;border:1.5px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text-4);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;transition:border-color .12s,color .12s,background .12s}.chart-expand-btn svg{width:13px;height:13px}.chart-expand-btn:hover{border-color:var(--text-5);color:var(--text-1);background:var(--bg-subtle)}.chart-toggle{display:flex;border:1.5px solid var(--border);border-radius:8px;overflow:hidden}.chart-toggle button{display:flex;align-items:center;gap:.3rem;padding:.3rem .625rem;border:none;background:transparent;color:var(--text-4);font-size:.75rem;font-weight:500;cursor:pointer;transition:background .1s,color .1s;white-space:nowrap}.chart-toggle button+button{border-left:1.5px solid var(--border)}.chart-toggle button.active{background:var(--text-1);color:var(--bg-card)}.chart-toggle button:not(.active):hover{background:var(--bg-subtle);color:var(--text-2)}.pie-dim-tabs{display:flex;border:1.5px solid var(--border);border-radius:8px;overflow:hidden}.pie-dim-tabs button{padding:.3rem .625rem;border:none;background:transparent;color:var(--text-4);font-size:.75rem;font-weight:500;cursor:pointer;transition:background .1s,color .1s;white-space:nowrap}.pie-dim-tabs button+button{border-left:1.5px solid var(--border)}.pie-dim-tabs button.active{background:var(--text-1);color:var(--bg-card)}.pie-dim-tabs button:not(.active):hover{background:var(--bg-subtle);color:var(--text-2)}.chart-wrapper{padding:1rem 1.5rem .5rem;overflow-x:auto}.charts-row .dashboard-card{display:flex;flex-direction:column}.charts-row .chart-wrapper{flex:1;display:flex;flex-direction:column;justify-content:center}.chart-legend{display:flex;flex-wrap:wrap;gap:.375rem 1.25rem;padding:.25rem 1.5rem 1rem}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--text-4)}.legend-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.chart-tooltip{position:fixed;z-index:1000;background:#0f172a;color:#f1f5f9;border-radius:10px;padding:.75rem 1rem;pointer-events:none;box-shadow:0 8px 28px #0006;min-width:220px;max-width:300px;font-size:.8125rem;line-height:1.45}.tt-project{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.tt-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.tt-project strong{font-weight:700;color:#fff;font-size:.875rem}.tt-wp{color:#94a3b8;font-size:.775rem;margin-bottom:.375rem}.tt-time{font-variant-numeric:tabular-nums;color:#e2e8f0;border-top:1px solid rgba(255,255,255,.08);padding-top:.375rem;margin-top:.375rem}.tt-hours{color:#e57373;font-weight:600}.tt-desc{color:#94a3b8;font-size:.775rem;margin-top:.25rem;line-height:1.4}.time-table{width:100%;border-collapse:collapse;font-size:.8375rem}.time-table thead tr{background:var(--bg-subtle);border-bottom:2px solid var(--border)}.time-table th{padding:.625rem 1rem;text-align:left;font-size:.725rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-4);white-space:nowrap}.time-table tbody tr{border-bottom:1px solid var(--border-muted);transition:background .1s}.time-table tbody tr:hover{background:var(--bg-subtle)}.time-table tbody tr:last-child{border-bottom:none}.time-table td{padding:.625rem 1rem;color:var(--text-2);vertical-align:middle}.col-date{white-space:nowrap;color:var(--text-1);font-weight:500}.col-time{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-3)}.col-hours{white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums;color:#a91212;text-align:right;width:60px}.col-project{white-space:nowrap}.project-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:.75rem;font-weight:600;background:#a912121a;color:#a91212;white-space:nowrap}.project-badge[data-project="Client Portal v2"]{background:#14b8a61a;color:#0f766e}.project-badge[data-project="Internal Tools Suite"]{background:#7c3aed1a;color:#6d28d9}.col-wp{color:var(--text-3);white-space:nowrap}.col-desc{color:var(--text-4);max-width:320px}.no-entries{text-align:center;padding:2.5rem!important;color:var(--text-5);font-size:.875rem}.prod-wrap{display:flex;flex-direction:column;gap:.5rem}.prod-legend{display:flex;align-items:center;gap:.5rem 1rem;flex-wrap:wrap;font-size:.75rem;color:var(--text-4)}.prod-dot{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}.prod-legend-label{margin-right:.5rem}.prod-status-bar{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;margin-bottom:.375rem}.prod-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.prod-status-text{font-size:.8125rem;color:var(--text-3)}.prod-status-text strong{color:var(--text-1);font-weight:700}.prod-zone-pills{display:flex;gap:.35rem;flex-wrap:wrap}.prod-pill{font-size:.7rem;font-weight:600;padding:1px 8px;border-radius:99px}.prod-pill-red{background:#c050501f;color:#c05050}.prod-pill-yellow{background:#c4923a1f;color:#a87228}.prod-pill-green{background:#4a8a5a1f;color:#3a7048}.prod-empty{padding:2rem 1.5rem;text-align:center;color:var(--text-5);font-size:.875rem}.donut-wrap{display:flex;align-items:flex-start;gap:1.25rem;padding:.5rem 0}.donut-svg{width:200px;height:200px;flex-shrink:0}.donut-empty{padding:3rem 1.5rem;text-align:center;color:var(--text-5);font-size:.875rem}.donut-legend{flex:1;display:flex;flex-direction:column;gap:.35rem;justify-content:center;min-width:0}.donut-legend-item{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:6px;cursor:default;transition:background .1s}.donut-legend-item.hovered{background:var(--bg-subtle)}.donut-legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-legend-label{flex:1;font-size:.75rem;color:var(--text-2);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.donut-legend-hours{font-size:.75rem;font-weight:600;color:var(--text-1);font-variant-numeric:tabular-nums;white-space:nowrap}.donut-legend-pct{font-size:.7rem;color:var(--text-5);font-variant-numeric:tabular-nums;white-space:nowrap;width:42px;text-align:right}.export-wrap{position:relative}.export-btn{display:flex;align-items:center;gap:.35rem;padding:.375rem .75rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-3);font-size:.8125rem;font-weight:500;cursor:pointer;transition:border-color .12s,color .12s,background .12s;white-space:nowrap}.export-btn:hover,.export-btn.open{border-color:#a91212;color:#8a0e0e;background:#fdf2f2}.export-btn-icon{width:14px;height:14px;flex-shrink:0}.export-chevron{width:13px;height:13px;flex-shrink:0;transition:transform .15s}.export-btn.open .export-chevron{transform:rotate(180deg)}.export-dropdown{position:absolute;top:calc(100% + 5px);right:0;background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;box-shadow:0 8px 28px #0000001f;z-index:50;overflow:hidden;min-width:170px;padding:.3rem;display:flex;flex-direction:column;gap:1px}.export-option{display:flex;align-items:center;gap:.625rem;width:100%;padding:.55rem .75rem;border:none;background:transparent;border-radius:7px;cursor:pointer;text-align:left;transition:background .1s}.export-option:hover{background:var(--bg-subtle)}.export-option-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;flex-shrink:0}.export-option-icon svg{width:15px;height:15px}.export-option-excel .export-option-icon{background:#f0fdf4;color:#16a34a}.export-option-excel:hover .export-option-icon{background:#dcfce7}.export-option-csv .export-option-icon{background:#fdf2f2;color:#a91212}.export-option-csv:hover .export-option-icon{background:#fee2e2}.export-option-pdf .export-option-icon{background:#fff1f2;color:#dc2626}.export-option-pdf:hover .export-option-icon{background:#fee2e2}.export-option-label{font-size:.8375rem;font-weight:600;color:var(--text-1);flex:1}.export-option-ext{font-size:.725rem;color:var(--text-5);font-variant-numeric:tabular-nums}.list-toolbar-wrap{border-bottom:1px solid var(--border-muted)}.list-toolbar{display:flex;align-items:center;gap:.625rem;padding:.75rem 1.25rem;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:.5rem;flex:1;min-width:180px;max-width:360px;background:var(--bg-subtle);border:1.5px solid var(--border);border-radius:8px;padding:.35rem .625rem;transition:border-color .12s}.search-box:focus-within{border-color:#a91212;background:var(--bg-card)}.search-icon{width:15px;height:15px;color:var(--text-5);flex-shrink:0}.search-input{flex:1;border:none;background:transparent;font-size:.8125rem;color:var(--text-1);outline:none;min-width:0}.search-input::placeholder{color:var(--text-5)}.search-clear{display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-5);padding:0;transition:color .1s}.search-clear:hover{color:var(--text-3)}.search-clear svg{width:13px;height:13px}.toolbar-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.filter-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-3);font-size:.8125rem;font-weight:500;cursor:pointer;transition:border-color .12s,color .12s,background .12s;white-space:nowrap}.filter-btn svg{width:14px;height:14px}.filter-btn:hover{border-color:#a91212;color:#8a0e0e}.filter-btn.open{border-color:#a91212;background:#a912120f;color:#8a0e0e}.filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:#a91212;color:#fff;font-size:.7rem;font-weight:700;border-radius:99px}.filter-clear-btn{padding:.375rem .625rem;border:1.5px solid #fca5a5;border-radius:8px;background:#fff1f2;color:#dc2626;font-size:.775rem;font-weight:500;cursor:pointer;transition:background .1s;white-space:nowrap}.filter-clear-btn:hover{background:#fee2e2}.columns-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-3);cursor:pointer;transition:border-color .12s,color .12s,background .12s;flex-shrink:0}.columns-btn svg{width:16px;height:16px}.columns-btn:hover{border-color:#a91212;color:#8a0e0e;background:#fdf2f2}.filter-panel{display:flex;flex-wrap:wrap;gap:.75rem;padding:.75rem 1.25rem;background:var(--bg-subtle);border-bottom:1px solid var(--border)}.filter-field{display:flex;flex-direction:column;gap:.25rem;min-width:160px}.filter-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-4)}.filter-select{padding:.3rem .625rem;border:1.5px solid var(--border);border-radius:7px;background:var(--bg-card);font-size:.8125rem;color:var(--text-1);outline:none;cursor:pointer;transition:border-color .12s}.filter-select:focus{border-color:#a91212}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.kpi-toggle{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;margin-top:.2rem;padding:.3rem .75rem;border:1.5px solid var(--border);border-radius:7px;background:var(--bg-card);color:var(--text-4);font-size:.775rem;font-weight:500;cursor:pointer;transition:border-color .12s,color .12s,background .12s;white-space:nowrap}.kpi-toggle:hover{border-color:#a91212;color:#a91212;background:#fdf2f2}.kpi-toggle svg{width:13px;height:13px;transition:transform .2s}.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:860px){.kpi-strip{grid-template-columns:repeat(2,1fr)}}.kpi-strip .summary-card:nth-child(1):before{background:linear-gradient(90deg,#0f766e,#14b8a6)}.kpi-strip .summary-card:nth-child(2):before{background:linear-gradient(90deg,#15803d,#22c55e)}.kpi-strip .summary-card:nth-child(3):before{background:linear-gradient(90deg,#1d4ed8,#3b82f6)}.kpi-strip .summary-card:nth-child(4):before{background:linear-gradient(90deg,#b45309,#f59e0b)}.list-page{display:flex;flex-direction:column;gap:1.5rem;max-width:1200px}.list-card{background:var(--bg-card);border-radius:12px;border:1px solid var(--border);overflow:clip}.list-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.8375rem}.list-table thead tr{background:var(--bg-subtle);border-bottom:2px solid var(--border)}.list-table th{padding:.65rem 1.25rem;text-align:left;font-size:.725rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-4);white-space:nowrap}.list-table th.sortable,.contracts-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.list-table th.sortable:hover,.contracts-table th.sortable:hover{background:var(--bg-subtle);color:#8a0e0e}.list-table th.sort-active,.contracts-table th.sort-active{color:#a91212}.th-inner{display:inline-flex;align-items:center;gap:.35rem}.sort-icon{flex-shrink:0;transition:opacity .1s}th.sortable:hover .sort-icon{opacity:1!important}th.col-draggable{cursor:grab}th.col-drag-over{position:relative}th.col-drag-over:before{content:"";position:absolute;left:0;top:20%;height:60%;width:2px;background:#a91212;border-radius:2px}.list-table tbody tr{border-bottom:1px solid var(--border-muted);transition:background .1s}.list-table tbody tr:hover{background:var(--bg-subtle)}.list-table tbody tr:last-child{border-bottom:none}.list-table td{padding:.875rem 1.25rem;vertical-align:middle;color:var(--text-2)}.empty-state{text-align:center;padding:3rem 1.5rem!important;color:var(--text-5)}.empty-state-icon{margin:0 auto .75rem;width:40px;height:40px;color:var(--border)}.empty-state-text{font-size:.875rem;color:var(--text-5)}.card-header-right{display:flex;align-items:center;gap:.75rem}.add-btn{display:flex;align-items:center;gap:.375rem;padding:.4rem .875rem;background:#a91212;color:#fff;border:none;border-radius:8px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .12s;white-space:nowrap}.add-btn:hover{background:#8a0e0e}.add-btn svg{width:14px;height:14px}.cust-name-cell{display:flex;align-items:center;gap:.625rem}.cust-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.cust-name{font-weight:600;color:var(--text-1)}.cust-meta{color:var(--text-3);font-size:.8125rem}.cust-link{color:#a91212;text-decoration:none}.cust-link:hover{text-decoration:underline}.cust-pill{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:99px;font-size:.725rem;font-weight:600}.cust-pill-on{background:#f0fdf4;color:#15803d}.cust-pill-off{background:var(--bg-subtle);color:var(--text-5)}.user-name-cell{display:flex;align-items:center;gap:.625rem}.user-initials{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#8a0e0e,#a91212);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-mono{font-family:ui-monospace,Cascadia Code,monospace;font-size:.8rem}.user-role-badge{display:inline-flex;align-items:center;padding:.2rem .625rem;border-radius:99px;font-size:.725rem;font-weight:600}.user-role-admin{background:#ef44441a;color:#dc2626}.user-role-staff{background:#a912121a;color:#a91212}.proj-status{display:inline-flex;align-items:center;padding:.25rem .7rem;border-radius:99px;font-size:.75rem;font-weight:600}.proj-status-planning{background:#f5f3ff;color:#7c3aed}.proj-status-active{background:#f0fdf4;color:#15803d}.proj-status-onhold{background:#fffbeb;color:#b45309}.proj-status-completed{background:#eff6ff;color:#1d4ed8}.inv-number{font-family:ui-monospace,Cascadia Code,monospace;font-size:.8rem;font-weight:600;color:var(--text-1)}.inv-amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-1);white-space:nowrap}.inv-total{font-size:.8125rem;font-weight:600;color:var(--text-3);padding:.25rem .625rem;background:var(--bg-subtle);border:1px solid var(--border);border-radius:6px}.inv-status{display:inline-flex;align-items:center;gap:.375rem;padding:.3rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.inv-status-draft{background:var(--bg-subtle);color:var(--text-4)}.inv-status-draft .status-badge-dot{background:var(--text-5)}.inv-status-sent{background:#eff6ff;color:#1d4ed8}.inv-status-sent .status-badge-dot{background:#3b82f6}.inv-status-paid{background:#f0fdf4;color:#15803d}.inv-status-paid .status-badge-dot{background:#22c55e}.inv-status-overdue{background:#fff1f2;color:#dc2626}.inv-status-overdue .status-badge-dot{background:#f87171}.inv-actions{width:56px;text-align:right}.inv-pdf-btn{padding:.25rem .5rem;font-size:.7rem;font-weight:600;letter-spacing:.04em;color:#a91212;background:#fdf2f2;border:1px solid #fecaca;border-radius:4px;cursor:pointer;white-space:nowrap}.inv-pdf-btn:hover{background:#fee2e2}.form-modal{background:var(--bg-card);border-radius:14px;box-shadow:0 20px 60px #0f172a2e;width:100%;max-width:540px;display:flex;flex-direction:column;max-height:90vh;overflow-y:auto}.form-modal-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.form-modal-footer{display:flex;justify-content:flex-end;gap:.625rem;padding:1rem 1.5rem;border-top:1px solid var(--border-muted);flex-shrink:0}.form-modal-row{display:flex;gap:.875rem;flex-wrap:wrap}.fm-field{display:flex;flex-direction:column;gap:.375rem;flex:1;min-width:140px}.fm-label{font-size:.75rem;font-weight:600;color:var(--text-4);letter-spacing:.02em}.fm-required{color:#dc2626}.fm-input,.fm-select{height:38px;padding:0 .75rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-1);font-size:.875rem;font-family:inherit;outline:none;transition:border-color .12s;width:100%;box-sizing:border-box}.fm-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;padding-right:2rem;cursor:pointer}.fm-input:focus,.fm-select:focus{border-color:#a91212}.fm-input.error{border-color:#ef4444}.fm-error{font-size:.75rem;color:#dc2626}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}.modal-title{font-size:1.0625rem;font-weight:700;color:var(--text-1)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:var(--bg-subtle);border-radius:8px;cursor:pointer;color:var(--text-4);transition:background .1s,color .1s}.modal-close:hover{background:var(--border);color:var(--text-1)}.btn-secondary{padding:.5rem 1.125rem;background:var(--bg-card);color:var(--text-3);border:1.5px solid var(--border);border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s}.btn-secondary:hover{background:var(--bg-subtle);border-color:var(--border)}.col-picker{background:var(--bg-card);border-radius:14px;width:100%;max-width:540px;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000038;overflow:hidden}.col-picker-body{padding:1.25rem 1.5rem 1rem}.col-picker-section-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-4);margin-bottom:.875rem}.col-chip-grid{display:flex;flex-wrap:wrap;gap:.5rem}.col-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .875rem;border-radius:99px;border:1.5px solid var(--border);background:var(--bg-subtle);color:var(--text-4);font-size:.8125rem;font-weight:500;cursor:pointer;transition:border-color .12s,background .12s,color .12s;white-space:nowrap}.col-chip:hover{border-color:var(--text-5);color:var(--text-2)}.col-chip.selected{border-color:#a91212;background:#fdf2f2;color:#a91212;font-weight:600}.col-chip.selected:hover{background:#dbeafe}.col-chip-check{width:12px;height:12px;flex-shrink:0}.col-picker-footer{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.5rem 1.125rem;border-top:1px solid var(--border);gap:.75rem}.col-picker-footer-right{display:flex;gap:.5rem}.btn-reset{padding:.45rem .875rem;border:1.5px solid #fca5a5;border-radius:8px;background:#fff1f2;color:#dc2626;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .1s}.btn-reset:hover{background:#fee2e2}.col-order-list{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1.25rem;max-height:220px;overflow-y:auto}.col-order-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:8px;border:1.5px solid var(--border);background:var(--bg-subtle);cursor:grab;-webkit-user-select:none;user-select:none;transition:background .1s,border-color .1s,opacity .1s}.col-order-item:hover{background:var(--bg-subtle);border-color:var(--border)}.col-order-item.dragging{opacity:.35}.col-order-item.drag-over{border-color:#a91212;background:#fdf2f2}.drag-handle{width:12px;height:16px;color:var(--text-5);flex-shrink:0;cursor:grab}.col-order-label{flex:1;font-size:.875rem;font-weight:500;color:var(--text-2)}.col-order-remove{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-5);cursor:pointer;border-radius:4px;padding:0;transition:color .1s,background .1s;flex-shrink:0}.col-order-remove:hover{color:#dc2626;background:#fff1f2}.col-order-remove svg{width:13px;height:13px}.col-chip-plus{width:11px;height:11px;flex-shrink:0;opacity:.6}.contracts-page{display:flex;flex-direction:column;gap:1.5rem;max-width:1200px}.contracts-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.contracts-summary .summary-card:before{background:linear-gradient(90deg,#0f766e,#14b8a6)}.contracts-summary .summary-card:nth-child(2):before{background:linear-gradient(90deg,#15803d,#22c55e)}.contracts-summary .summary-card:nth-child(3):before{background:linear-gradient(90deg,#8a0e0e,#a91212)}.contracts-summary .summary-card:nth-child(4):before{background:linear-gradient(90deg,#b45309,#f59e0b)}.contracts-card{background:var(--bg-card);border-radius:12px;border:1px solid var(--border);overflow:clip}.table-wrapper{overflow-x:auto}.contracts-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.8375rem}.contracts-table thead tr{background:var(--bg-subtle);border-bottom:2px solid var(--border)}.contracts-table th{padding:.65rem 1.25rem;text-align:left;font-size:.725rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-4);white-space:nowrap}.contracts-table tbody tr{border-bottom:1px solid var(--border-muted);transition:background .1s}.contracts-table tbody tr:hover{background:var(--bg-subtle)}.contracts-table tbody tr:last-child{border-bottom:none}.contracts-table td{padding:.875rem 1.25rem;vertical-align:middle;color:var(--text-2)}.contract-name{font-weight:600;color:var(--text-1)}.contract-ref{font-size:.75rem;color:var(--text-5);margin-top:.125rem}.contract-period{white-space:nowrap;color:var(--text-3);font-size:.8125rem}.contract-days{white-space:nowrap}.days-value{font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums}.days-label{font-size:.75rem;color:var(--text-5);margin-left:.2rem}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.3rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.status-badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-signed{background:#f0fdf4;color:#15803d}.status-signed .status-badge-dot{background:#22c55e}.status-partial{background:#eff6ff;color:#1d4ed8}.status-partial .status-badge-dot{background:#3b82f6}.status-open{background:#fff7ed;color:#c2410c}.status-open .status-badge-dot{background:#f97316}.contract-customer{color:var(--text-3);white-space:nowrap}.usage-wrapper{display:flex;align-items:center;gap:.5rem;min-width:120px}.usage-track{flex:1;height:6px;background:var(--border);border-radius:99px;overflow:hidden}.usage-track-ghost{opacity:.4}.usage-fill{height:100%;border-radius:99px;transition:width .2s}.usage-fill-green{background:#22c55e}.usage-fill-yellow{background:#f59e0b}.usage-fill-red{background:#ef4444}.usage-pct{font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums;width:2.5rem;text-align:right;flex-shrink:0}.usage-pct-green{color:#16a34a}.usage-pct-yellow{color:#b45309}.usage-pct-red{color:#dc2626}.usage-pct-ghost{color:var(--text-5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:200;padding:1.5rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:#fff;border-radius:14px;width:100%;max-width:680px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000038;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.modal-title{font-size:1.0625rem;font-weight:700;color:#0f172a}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:#f1f5f9;border-radius:8px;cursor:pointer;color:#64748b;transition:background .1s,color .1s}.modal-close:hover{background:#e2e8f0;color:#0f172a}.modal-close svg{width:16px;height:16px}.modal-body{overflow-y:auto;flex:1;padding:0 0 .5rem}.form-section{padding:1.25rem 1.5rem;border-bottom:1px solid #f1f5f9}.form-section:last-of-type{border-bottom:none}.form-section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#64748b;margin-bottom:1rem}.form-row{display:grid;gap:.875rem;margin-bottom:.875rem}.form-row-2col{grid-template-columns:1fr 1fr}.form-row-3col{grid-template-columns:1fr 1fr 1fr}.form-field{display:flex;flex-direction:column;gap:.325rem;margin-bottom:.875rem}.form-row .form-field{margin-bottom:0}.form-label{font-size:.75rem;font-weight:600;color:#374151;letter-spacing:.01em}.required{color:#dc2626}.form-input,.form-select,.form-textarea{padding:.475rem .75rem;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.8375rem;color:#0f172a;background:#f8fafc;outline:none;transition:border-color .12s,background .12s;font-family:inherit}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#a91212;background:#fff}.form-textarea{resize:vertical;min-height:80px}.form-select{cursor:pointer}.form-field.has-error .form-input,.form-field.has-error .form-select{border-color:#f87171;background:#fff5f5}.form-error{font-size:.75rem;color:#dc2626}.input-icon-wrap{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);width:15px;height:15px;color:#94a3b8;pointer-events:none;flex-shrink:0;display:flex;align-items:center}.input-icon svg{width:15px;height:15px}.input-with-icon{padding-left:2.25rem;width:100%}.input-icon-wrap.has-error .form-input{border-color:#f87171;background:#fff5f5}.input-icon-wrap:focus-within .input-icon{color:#a91212}.color-field{position:relative}.color-trigger{display:flex;align-items:center;gap:.5rem;width:100%;padding:.475rem .75rem;border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;cursor:pointer;font-size:.8375rem;color:#0f172a;text-align:left;transition:border-color .12s,background .12s}.color-trigger:hover,.color-trigger.open{border-color:#a91212;background:#fff}.color-swatch{width:18px;height:18px;border-radius:4px;flex-shrink:0;border:1px solid rgba(0,0,0,.08)}.color-trigger-label{flex:1}.color-trigger-hex{font-size:.7rem;color:#94a3b8;font-variant-numeric:tabular-nums}.color-trigger-chevron{width:14px;height:14px;color:#94a3b8;flex-shrink:0;transition:transform .15s}.color-trigger.open .color-trigger-chevron{transform:rotate(180deg)}.color-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 24px #0000001f;z-index:10;padding:.75rem}.color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:.625rem}.color-option{width:100%;aspect-ratio:1;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s;padding:0}.color-option:hover{transform:scale(1.12)}.color-option.selected{border-color:#0f172a;box-shadow:0 0 0 2px #fff inset}.color-custom-row{display:flex;align-items:center;gap:.5rem;padding-top:.5rem;border-top:1px solid #f1f5f9}.color-custom-label{font-size:.775rem;color:#64748b;flex:1}.color-custom-input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.color-custom-preview{width:28px;height:28px;border-radius:6px;border:1.5px solid #e2e8f0;cursor:pointer;flex-shrink:0;transition:transform .1s}.color-custom-preview:hover{transform:scale(1.1)}.toggle-group{display:flex;flex-direction:column;gap:.75rem}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:background .1s}.toggle-row:hover{background:#f1f5f9}.toggle-text{display:flex;flex-direction:column;gap:.125rem}.toggle-label{font-size:.875rem;font-weight:600;color:#0f172a}.toggle-desc{font-size:.75rem;color:#64748b}.toggle-switch{width:44px;height:24px;border-radius:99px;border:none;background:#cbd5e1;cursor:pointer;position:relative;flex-shrink:0;transition:background .18s;padding:0}.toggle-switch.on{background:#22c55e}.toggle-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000002e;transition:left .18s}.toggle-switch.on .toggle-thumb{left:23px}.modal-footer{display:flex;justify-content:flex-end;gap:.625rem;padding:1rem 1.5rem 1.25rem;border-top:1px solid #e2e8f0;flex-shrink:0;margin-top:.5rem}.btn-primary{padding:.5rem 1.25rem;background:#a91212;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .12s}.btn-primary:hover{background:#8a0e0e}.btn-secondary{padding:.5rem 1.125rem;background:#fff;color:#475569;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.roles-page{display:flex;flex-direction:column;gap:1.5rem;max-width:1200px}.role-name-cell{display:flex;align-items:center;gap:.625rem}.role-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.role-icon svg{width:16px;height:16px}.role-builtin-badge{display:inline-flex;padding:.15rem .5rem;border-radius:99px;font-size:.675rem;font-weight:600;background:var(--bg-subtle);color:var(--text-4);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.perm-count-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .6rem;border-radius:99px;font-size:.75rem;font-weight:600;background:#fdf2f2;color:#a91212}.row-actions{display:flex;align-items:center;gap:.375rem}.icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1.5px solid var(--border);border-radius:7px;background:var(--bg-card);cursor:pointer;color:var(--text-3);transition:border-color .12s,color .12s,background .12s;flex-shrink:0}.icon-btn svg{width:14px;height:14px}.icon-btn:hover{border-color:#a91212;color:#8a0e0e;background:#fdf2f2}.icon-btn.danger:hover{border-color:#fca5a5;color:#dc2626;background:#fff1f2}.icon-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.role-editor-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;overflow-y:auto}.role-editor{background:var(--bg-card);border-radius:14px;width:100%;max-width:760px;box-shadow:0 24px 64px #0f172a2e;display:flex;flex-direction:column;margin:auto 0}.role-editor-header{display:flex;align-items:center;gap:.75rem;padding:1.125rem 1.5rem;border-bottom:1px solid var(--border-muted);flex-shrink:0}.role-editor-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.role-editor-icon svg{width:18px;height:18px}.role-editor-title{font-size:1rem;font-weight:700;color:var(--text-1);flex:1}.role-editor-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;background:none;cursor:pointer;color:var(--text-5);border-radius:6px;transition:color .1s,background .1s}.role-editor-close:hover{color:var(--text-3);background:var(--bg-subtle)}.role-editor-close svg{width:16px;height:16px}.role-editor-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.75rem;overflow-y:auto;max-height:calc(90vh - 132px)}.editor-section-title{font-size:.725rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-4);margin-bottom:.875rem}.role-details-row{display:grid;grid-template-columns:1fr 1fr;gap:.875rem;margin-bottom:.875rem}.re-field{display:flex;flex-direction:column;gap:.3rem}.re-label{font-size:.775rem;font-weight:600;color:var(--text-2)}.re-input{padding:.45rem .75rem;border:1.5px solid var(--border);border-radius:8px;font-size:.8375rem;color:var(--text-1);background:var(--bg-card);outline:none;transition:border-color .12s}.re-input:focus{border-color:#a91212}.re-input:disabled{background:var(--bg-subtle);color:var(--text-5);cursor:not-allowed}.re-input.has-error{border-color:#f87171}.re-error{font-size:.75rem;color:#dc2626}.re-textarea{padding:.45rem .75rem;border:1.5px solid var(--border);border-radius:8px;font-size:.8375rem;color:var(--text-1);background:var(--bg-card);outline:none;resize:vertical;font-family:inherit;line-height:1.5;transition:border-color .12s}.re-textarea:focus{border-color:#a91212}.perm-summary{font-size:.8125rem;color:var(--text-4);margin-bottom:.875rem}.perm-summary strong{color:#a91212;font-weight:700}.perm-groups{display:flex;flex-direction:column;gap:.5rem}.perm-group{border:1.5px solid var(--border);border-radius:10px;overflow:hidden}.perm-group-header{display:flex;align-items:center;gap:.625rem;padding:.55rem .875rem;background:var(--bg-subtle);border-bottom:1.5px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none}.perm-group-header:hover{background:var(--bg-subtle)}.perm-group-name{font-size:.8125rem;font-weight:600;color:var(--text-1);flex:1}.perm-group-count{font-size:.75rem;color:var(--text-5);font-variant-numeric:tabular-nums}.perm-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:.25rem;padding:.625rem .875rem}.perm-item{display:flex;align-items:center;gap:.4rem;padding:.25rem .375rem;border-radius:5px;cursor:pointer;transition:background .08s}.perm-item:hover{background:var(--bg-subtle)}.perm-checkbox{width:15px;height:15px;accent-color:#a91212;cursor:pointer;flex-shrink:0}.perm-label{font-size:.8125rem;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.role-editor-footer{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;padding:1rem 1.5rem;border-top:1px solid var(--border-muted);flex-shrink:0}.settings-page{padding:1.5rem;max-width:680px}.settings-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 1px 4px #0000000d}.settings-card-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border-muted)}.settings-card-title{font-size:.9375rem;font-weight:700;color:var(--text-1)}.settings-card-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.75rem}.settings-field{display:flex;flex-direction:column;gap:.375rem}.settings-field-label{font-size:.8125rem;font-weight:600;color:var(--text-2)}.settings-field-hint{font-size:.75rem;color:var(--text-5);margin:0 0 .25rem}.settings-select{width:240px;padding:.5rem .75rem;border:1.5px solid var(--border);border-radius:8px;font-size:.875rem;color:var(--text-1);background:var(--bg-card);cursor:pointer;outline:none;transition:border-color .12s}.settings-select:hover{border-color:var(--text-5)}.settings-select:focus{border-color:#a91212;box-shadow:0 0 0 3px #a912121a}.btn-upload{display:inline-flex;align-items:center;gap:.375rem;padding:.45rem 1rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-2);font-size:.8125rem;font-weight:500;cursor:pointer;transition:border-color .12s,background .12s}.btn-upload svg{width:14px;height:14px;flex-shrink:0}.btn-upload:hover{border-color:var(--text-5);background:var(--bg-subtle)}.btn-remove-photo{padding:.45rem .875rem;border:1.5px solid #fca5a5;border-radius:8px;background:#fff1f2;color:#dc2626;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .1s}.btn-remove-photo:hover{background:#fee2e2}.color-swatch{width:36px;height:36px;border-radius:50%;border:3px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s,box-shadow .12s;outline:none}.color-swatch:hover{transform:scale(1.1);box-shadow:0 2px 8px #0003}.color-swatch.active{border-color:var(--text-1);box-shadow:0 0 0 2px var(--bg-card),0 0 0 4px var(--text-1)}.color-swatch svg{width:14px;height:14px}.reports-page{display:flex;flex-direction:column;gap:1.5rem;max-width:1400px}.reports-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.reports-page .range-picker{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.reports-page .range-preset-select{padding:.45rem 2rem .45rem .75rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-1);font-size:.8125rem;font-weight:500;cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:border-color .12s}.reports-page .range-preset-select:hover{border-color:var(--text-5)}.reports-page .range-preset-select:focus{border-color:#a91212;outline:none}.reports-page .range-dates{display:flex;align-items:center;gap:.375rem;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;padding:.35rem .625rem;transition:border-color .12s}.reports-page .range-dates:focus-within{border-color:#a91212}.reports-page .range-date-input{border:none;outline:none;background:transparent;font-size:.8125rem;color:var(--text-1);cursor:pointer;padding:0;font-weight:500}.reports-page .range-sep{color:var(--text-5);font-size:.875rem;-webkit-user-select:none;user-select:none}.reports-title{font-size:1.5rem;font-weight:700;color:var(--text-1)}.reports-sub{font-size:.875rem;color:var(--text-4);margin-top:.125rem}.reports-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:900px){.reports-grid{grid-template-columns:1fr}}.rpt-card{background:var(--bg-card);border-radius:12px;border:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column}.rpt-card-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.125rem 1.5rem .5rem;border-bottom:1px solid var(--border-muted)}.rpt-card-title{font-size:.9375rem;font-weight:600;color:var(--text-1)}.rpt-card-subtitle{font-size:.75rem;color:var(--text-5);display:block;margin-top:.1rem}.rpt-meaning{font-size:.78rem;color:var(--text-4);padding:.625rem 1.5rem 0;line-height:1.5;margin:0}.rpt-chart-area{padding:.875rem 1.5rem 1.25rem;overflow-x:auto;flex:1;display:flex;flex-direction:column;justify-content:center}.rpt-legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin-bottom:.625rem;font-size:.75rem;color:var(--text-4)}.rpt-legend-item{display:flex;align-items:center;gap:.35rem}.rpt-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}.rpt-dashed .rpt-swatch{border:1.5px dashed currentColor;background:none!important}.rpt-gauge-row{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.rpt-gauge-cell{display:flex;flex-direction:column;align-items:center;gap:.125rem}.rpt-gauge-label{font-size:.8125rem;font-weight:600;color:var(--text-2)}.rpt-gauge-sub{font-size:.7rem;color:var(--text-5)}.rpt-milestones{display:flex;flex-direction:column;gap:1rem;padding:.25rem 0}.rpt-ms-row{display:flex;flex-direction:column;gap:.25rem}.rpt-ms-label{font-size:.8125rem;font-weight:600;color:var(--text-2)}.rpt-ms-bar-wrap{display:flex;align-items:center;gap:.625rem}.rpt-ms-bar-track{flex:1;height:10px;background:var(--bg-subtle);border-radius:99px;overflow:hidden}.rpt-ms-bar-fill{height:100%;border-radius:99px;transition:width .3s ease}.rpt-ms-pct{font-size:.8125rem;font-weight:700;width:38px;text-align:right;flex-shrink:0}.rpt-ms-sub{font-size:.7rem;color:var(--text-5)}.rpt-bullet-wrap{display:flex;flex-direction:column;gap:1.125rem;padding:.25rem 0}.rpt-bullet-row{display:flex;flex-direction:column;gap:.25rem}.rpt-bullet-label{font-size:.8125rem;font-weight:600;color:var(--text-2)}.rpt-bullet-bars{display:flex;align-items:center;gap:.75rem}.rpt-bullet-track{flex:1;height:14px;background:var(--bg-subtle);border-radius:4px;position:relative;overflow:visible}.rpt-bullet-fill{height:100%;border-radius:4px;transition:width .3s ease}.rpt-bullet-target{position:absolute;right:0;top:-4px;bottom:-4px;width:2px;background:var(--text-2);border-radius:1px}.rpt-bullet-meta{display:flex;align-items:baseline;gap:.5rem;white-space:nowrap;font-size:.8125rem}.rpt-bullet-sub{font-size:.7rem;color:var(--text-5)}.te-page{display:flex;flex-direction:column;gap:1.5rem;max-width:1400px}.te-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.te-title{font-size:1.5rem;font-weight:700;color:var(--text-1)}.te-sub{font-size:.875rem;color:var(--text-4);margin-top:.125rem}.te-header-right{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.te-add-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .875rem;background:#a91212;color:#fff;border:none;border-radius:8px;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s}.te-add-btn:hover{background:#8f0f0f}.te-add-btn svg{width:14px;height:14px;flex-shrink:0}.te-range-picker{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}.te-preset-select{padding:.45rem 2rem .45rem .75rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-1);font-size:.8125rem;font-weight:500;cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:border-color .12s}.te-preset-select:hover{border-color:var(--text-5)}.te-preset-select:focus{border-color:#a91212;outline:none}.te-range-dates{display:flex;align-items:center;gap:.375rem;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;padding:.35rem .625rem;transition:border-color .12s}.te-range-dates:focus-within{border-color:#a91212}.te-date-input{border:none;outline:none;background:transparent;font-size:.8125rem;color:var(--text-1);cursor:pointer;padding:0;font-weight:500}.te-range-sep{color:var(--text-5);font-size:.875rem;-webkit-user-select:none;user-select:none}.col-customer{font-size:.8125rem;color:var(--text-2);white-space:nowrap}.col-actions-header{width:36px}.col-actions{width:36px;padding:0 .5rem 0 0;text-align:right}.row-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--text-5);cursor:pointer;opacity:0;transition:opacity .12s,background .12s,color .12s}.row-edit-btn svg{width:14px;height:14px}.time-table tbody tr:hover .row-edit-btn{opacity:1}.row-edit-btn:hover{background:var(--bg-subtle);color:var(--text-2)}.te-edit-modal{background:var(--bg-card);border-radius:14px;box-shadow:0 20px 60px #0f172a2e;width:100%;max-width:640px;display:flex;flex-direction:column;max-height:90vh;overflow-y:auto}.te-edit-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.te-edit-row{display:flex;gap:.875rem;align-items:flex-end;flex-wrap:wrap}.te-edit-field{display:flex;flex-direction:column;gap:.375rem;flex:1;min-width:0}.te-edit-field--sm{flex:0 0 110px}.te-edit-field--hours{flex:0 0 72px}.te-edit-label{font-size:.75rem;font-weight:600;color:var(--text-4);letter-spacing:.02em}.te-edit-input,.te-edit-select{height:38px;padding:0 .75rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-1);font-size:.875rem;outline:none;transition:border-color .12s;width:100%;box-sizing:border-box}.te-edit-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;padding-right:2rem;cursor:pointer}.te-edit-input:focus,.te-edit-select:focus{border-color:#a91212}.te-edit-input--error{border-color:#ef4444}.te-edit-textarea{padding:.625rem .75rem;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-1);font-size:.875rem;font-family:inherit;outline:none;resize:vertical;width:100%;box-sizing:border-box;transition:border-color .12s;line-height:1.5}.te-edit-textarea:focus{border-color:#a91212}.te-edit-hours{height:38px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border);border-radius:8px;background:var(--bg-subtle);font-size:.9375rem;font-weight:700;color:var(--text-1)}.te-edit-hours--error{color:#ef4444;border-color:#fca5a5}.te-edit-footer{display:flex;justify-content:flex-end;gap:.625rem;padding:1rem 1.5rem;border-top:1px solid var(--border-muted);flex-shrink:0}
