*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #B7FF36;--color-primary-light: #9BD92E;--color-primary-lighter: #C1D983;--color-primary-deep: #6AAC14;--color-primary-ink: #6AAC14;--color-on-primary: #0B0B0D;--color-accent: #3B82F6;--color-nav: #0B0B0D;--color-nav-light: #1A1B1F;--color-success: #16A34A;--color-warning: #F59E0B;--color-danger: #EF4444;--color-bg: #FAF7F0;--color-bg-subtle: #F2EEE5;--color-surface: #FFFFFF;--color-border: #E5E0D4;--color-border-light: #F2EEE5;--color-text: #0B0B0D;--color-text-secondary: #5C5C5F;--color-text-muted: #8A8A8E;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: .875rem;--radius-xl: 1rem;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .04);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);font-feature-settings:"tnum";color:var(--color-text);background-color:var(--color-bg);line-height:1.6;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#root{min-height:100dvh}h1{font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.025em}h2{font-size:var(--font-size-xl);font-weight:600;letter-spacing:-.02em}h3{font-size:var(--font-size-lg);font-weight:600;letter-spacing:-.015em}label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}input,select,textarea{width:100%;padding:.75rem .875rem;font-size:var(--font-size-base);font-family:var(--font-family);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);margin-bottom:var(--space-md);min-height:44px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #0ea5e91f}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}button{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:500;cursor:pointer;border:none;border-radius:var(--radius-md);padding:.75rem 1.5rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:background-color var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}button:disabled{opacity:.5;cursor:not-allowed}button:active:not(:disabled){transform:scale(.97)}.btn-primary{background-color:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-subtle);border-color:var(--color-text-secondary)}.btn-large{width:100%;padding:1rem;font-size:var(--font-size-lg);font-weight:600;border-radius:var(--radius-lg);letter-spacing:-.01em}.app-layout{min-height:100dvh;display:flex;flex-direction:column}.app-header{background:var(--color-nav);color:#fff;padding:var(--space-md) var(--space-lg);position:sticky;top:0;z-index:100;box-shadow:0 1px 3px #0000001f}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:600px;margin:0 auto}.header-logo{max-height:2.5rem;max-width:10rem;object-fit:contain}.header-title{font-size:var(--font-size-lg);font-weight:700}.header-right{display:flex;align-items:center;gap:.75rem}.header-user{font-size:var(--font-size-sm);opacity:.8}.header-mark{height:40px;opacity:.6}.app-main{flex:1;padding:var(--space-lg);max-width:600px;margin:0 auto;width:100%}.admin-layout{display:flex;min-height:100dvh}.admin-sidebar{width:240px;background:linear-gradient(to bottom,var(--color-nav-light),var(--color-nav));color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform var(--transition-base)}.sidebar-header{padding:var(--space-lg);border-bottom:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.sidebar-logo{width:75%;max-height:4rem;object-fit:contain}.sidebar-header h2{font-size:var(--font-size-lg)}.sidebar-badge{font-size:.7rem;text-transform:uppercase;background:var(--color-accent);padding:2px 8px;border-radius:var(--radius-sm);font-weight:600}.sidebar-nav{flex:1;padding:var(--space-md) 0;display:flex;flex-direction:column}.sidebar-nav a{display:flex;align-items:center;gap:.625rem;padding:.625rem var(--space-lg);color:#ffffffa6;text-decoration:none;font-size:var(--font-size-sm);font-weight:400;transition:background-color var(--transition-fast),color var(--transition-fast);border-left:3px solid transparent}.sidebar-nav a:hover{background:#ffffff14;color:#fff;border-left-color:#ffffff4d}.sidebar-nav a.active{background:#ffffff1f;color:#fff;font-weight:600;border-left-color:var(--color-primary)}.sidebar-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid rgba(255,255,255,.1);font-size:var(--font-size-sm);opacity:.7;display:flex;flex-direction:column;gap:.5rem}.sidebar-footer-user{display:flex;align-items:center;gap:.5rem}.btn-signout{display:flex;align-items:center;gap:.375rem;background:#ffffff1a;color:inherit;border:none;border-radius:var(--radius-sm);padding:.375rem .75rem;font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast);min-height:44px}.btn-signout:hover{background:#fff3}.admin-main{flex:1;margin-left:240px;padding:var(--space-xl)}.admin-topbar{display:flex;justify-content:flex-end;margin-bottom:var(--space-md)}@media(max-width:768px){.admin-topbar-lockup>span{display:none}}.cheklistr-mark{height:64px;width:auto;opacity:.5;transition:opacity var(--transition-fast);display:inline-flex;align-items:center;line-height:0}.cheklistr-mark:hover{opacity:.8}.sidebar-toggle{display:none;position:fixed;top:var(--space-sm);left:var(--space-sm);z-index:110;background:var(--color-nav);color:#fff;border:none;border-radius:var(--radius-sm);padding:var(--space-xs);min-height:44px;min-width:44px;cursor:pointer;align-items:center;justify-content:center}.sidebar-backdrop{display:none}@media(max-width:768px){.sidebar-toggle{display:flex}.admin-sidebar{transform:translate(-100%)}.admin-sidebar.open{transform:translate(0)}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000080;z-index:99}.sidebar-backdrop.open{display:block}.admin-main{margin-left:0;padding:var(--space-lg) var(--space-md);padding-top:calc(44px + var(--space-lg))}}.login-page{min-height:100dvh;background:linear-gradient(160deg,var(--color-nav-light) 0%,var(--color-nav) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl);position:relative;overflow:hidden}.login-glow{position:absolute;top:-150px;right:-150px;width:500px;height:500px;background:radial-gradient(circle,rgba(183,255,54,.25),transparent 65%);filter:blur(40px);pointer-events:none}.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:var(--space-xl);color:#f2f4f7;position:relative;z-index:1}.login-lockup{margin-bottom:var(--space-md)}.login-card h1{color:var(--color-text);margin-bottom:var(--space-xs);font-size:var(--font-size-3xl);letter-spacing:-.03em}.login-tagline{font-size:1.25rem;font-weight:300;letter-spacing:-.02em;color:#f2f4f7b3;margin:0}.login-form-panel{width:100%;max-width:420px}.login-card{width:100%;background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);box-shadow:0 8px 32px #0000004d}.login-card-title{font-size:var(--font-size-xl);color:var(--color-text);margin-bottom:var(--space-lg);text-align:center}.login-form{text-align:left}.login-field label{display:flex;align-items:center;gap:.375rem}.login-form button{width:100%;margin-top:var(--space-md)}@media(max-width:768px){.login-page{padding:var(--space-lg)}.login-lockup{transform:scale(.8);transform-origin:center}.login-tagline{font-size:1rem}.login-glow{width:380px;height:380px;top:-100px;right:-100px}}.privacy-page{min-height:100dvh;background:var(--color-bg);padding:var(--space-xl) var(--space-lg);display:flex;justify-content:center}.privacy-container{width:100%;max-width:800px}.privacy-back-btn{display:inline-flex;align-items:center;gap:var(--space-xs);background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;padding:var(--space-xs) 0;margin-bottom:var(--space-lg);transition:color var(--transition-fast)}.privacy-back-btn:hover{color:var(--color-primary-ink)}.privacy-container h1{font-size:var(--font-size-2xl);color:var(--color-text);margin-bottom:var(--space-xs);letter-spacing:-.02em}.privacy-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-2xl)}.privacy-container section{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-xs)}.privacy-container h2{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--space-md);letter-spacing:-.01em}.privacy-container h3{font-size:var(--font-size-base);color:var(--color-text);margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-weight:600}.privacy-container p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--space-sm)}.privacy-container ul{padding-left:var(--space-lg);margin-bottom:var(--space-sm)}.privacy-container li{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--space-xs)}.privacy-container a{color:var(--color-primary-ink);text-decoration:none}.privacy-container a:hover{text-decoration:underline}.privacy-footer{text-align:center;padding:var(--space-xl) 0 var(--space-md)}.privacy-footer p{font-size:var(--font-size-xs);color:var(--color-text-muted)}.home-page{display:flex;flex-direction:column;gap:var(--space-lg)}.home-greeting h2{font-size:var(--font-size-xl)}.home-meta{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.home-section{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm)}.home-section h3{font-size:var(--font-size-base);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:.375rem}.empty-state{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}.submission-list{display:flex;flex-direction:column;gap:var(--space-xs)}.submission-card{padding:var(--space-sm) var(--space-md);background:var(--color-bg-subtle);border-radius:var(--radius-md);border:1px solid transparent;transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.submission-card:hover{background:var(--color-surface);box-shadow:var(--shadow-xs)}.submission-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.submission-vrm{font-weight:600;font-family:var(--font-mono, monospace);font-size:var(--font-size-base)}.submission-card-details{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.submission-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs, .75rem);color:var(--color-text-muted);margin-top:4px}.submission-defects{color:var(--color-warning);font-weight:500}.loading-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);color:var(--color-text-secondary)}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary-ink);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-spin{animation:spin 1s linear infinite}.error-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-xl)}.error-message{background:#fef2f2;color:var(--color-danger);border:1px solid #FECACA;border-left:3px solid var(--color-danger);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);font-size:var(--font-size-sm);font-weight:500}.session-expiry-overlay{position:fixed;inset:0;z-index:1000;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.session-expiry-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);width:100%;max-width:400px;box-shadow:var(--shadow-xl);text-align:center}.session-expiry-icon{font-size:2.5rem;margin-bottom:var(--space-sm)}.session-expiry-card h2{font-size:var(--font-size-xl);color:var(--color-text);margin-bottom:var(--space-sm)}.session-expiry-message{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-xs)}.session-expiry-reassurance{color:var(--color-success);font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--space-lg)}.checklist-page{display:flex;flex-direction:column;gap:var(--space-md)}.form-progress{margin-bottom:var(--space-sm)}.form-progress-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);display:block;margin-bottom:var(--space-xs)}.form-progress-bar{height:6px;background:var(--color-bg-subtle);border-radius:3px;overflow:hidden}.form-progress-fill{height:100%;background:var(--color-accent);border-radius:3px;transition:width var(--transition-slow)}.form-step{display:flex;flex-direction:column;gap:var(--space-sm)}.form-step-title{font-size:var(--font-size-xl);margin-bottom:0}.form-step-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-sm)}.driver-fields{background:#f0f7ff;border:1px solid #BFD9F2;border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md)}.driver-fields-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-primary-ink);margin-bottom:var(--space-sm)}.driver-fields input{background:var(--color-surface)}.inspector-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-sm) 0;margin-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.vrm-lookup-row{display:flex;gap:var(--space-xs);align-items:stretch}.vrm-lookup-row input{flex:1;margin-bottom:0}.btn-lookup{padding:.5rem 1rem;background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;white-space:nowrap}.btn-lookup:disabled{background:var(--color-text-muted);cursor:not-allowed}.lookup-success{background:#dcfce7;color:#166534;padding:.5rem .75rem;border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-top:var(--space-xs);margin-bottom:var(--space-sm)}.lookup-warning{background:#fef3c7;color:#92400e;padding:.5rem .75rem;border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-top:var(--space-xs);margin-bottom:var(--space-sm)}.input-autofilled{background:#f0fdf4;border-color:var(--color-success)}.form-step-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.form-step-actions .btn-primary{flex:1}.checklist-section{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm)}.checklist-section-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-primary-ink);margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:2px solid var(--color-primary-ink)}.checklist-section-items{display:flex;flex-direction:column;gap:var(--space-md)}.checklist-item{padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.checklist-item:last-child{border-bottom:none;padding-bottom:0}.field-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text);margin-bottom:var(--space-xs)}.field-required{color:var(--color-danger);margin-left:2px}.field-unit{color:var(--color-text-muted);font-weight:400;margin-left:4px}.field-guidance{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic;margin-bottom:var(--space-xs)}.field-defect-warning{font-size:var(--font-size-sm);color:var(--color-warning);font-weight:500;margin-top:var(--space-xs)}.boolean-toggle-group{display:flex;gap:var(--space-xs)}.boolean-toggle{flex:1;padding:.625rem;font-size:var(--font-size-base);font-weight:500;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);transition:all .15s}.boolean-toggle--yes{border-color:var(--color-success);background:#f0fdf4;color:var(--color-success)}.boolean-toggle--no{border-color:var(--color-danger);background:#fef2f2;color:var(--color-danger)}.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);margin-bottom:var(--space-md)}.photo-slot{aspect-ratio:4 / 3;border:2px dashed var(--color-border);border-radius:var(--radius-md);overflow:hidden;position:relative}.photo-slot--captured{border-style:solid;border-color:var(--color-success)}.photo-slot-input{position:absolute;width:0;height:0;opacity:0}.photo-slot-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:var(--space-sm);background:var(--color-bg);padding:var(--space-sm)}.photo-slot-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);text-align:center;padding:0 var(--space-xs)}.photo-slot-buttons{display:flex;gap:4px;width:100%}.photo-slot-btn{flex:1;padding:6px 4px;font-size:.75rem;font-weight:600;min-height:36px;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);border:none;cursor:pointer;white-space:nowrap}.photo-slot-btn--gallery{background:var(--color-text-secondary)}.photo-slot-preview{width:100%;height:100%;position:relative}.photo-slot-preview img{width:100%;height:100%;object-fit:cover}.photo-slot-actions{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;background:#0000008c;padding:4px 6px}.photo-slot-retake{background:none;color:#fff;font-size:var(--font-size-sm);font-weight:600;padding:4px 8px;min-height:auto;border:1px solid rgba(255,255,255,.5);border-radius:var(--radius-sm)}.photo-slot-remove{width:28px;height:28px;min-height:28px;padding:0;border-radius:50%;background:#dc2626cc;color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center}.image-capture-buttons{display:flex;gap:var(--space-sm)}.image-capture-btn{flex:1;text-align:center}.defect-image-buttons{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.defect-photo-btn{flex:1;text-align:center}.image-preview-container{display:flex;flex-direction:column;gap:var(--space-xs)}.image-preview{width:100%;max-height:200px;object-fit:cover;border-radius:var(--radius-md)}.image-remove-btn{background:none;color:var(--color-danger);font-size:var(--font-size-sm);padding:var(--space-xs) 0;min-height:auto}.image-capture-area{position:relative}.image-input{position:absolute;width:0;height:0;opacity:0}.image-capture-button{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:1rem;border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-base);transition:background .15s}.image-capture-button:hover{background:var(--color-border)}.image-capture-icon{font-size:1.25rem}.defect-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-md);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm)}.defect-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.defect-card-header h4{font-size:var(--font-size-base);font-weight:600}.defect-remove-btn{background:none;color:var(--color-danger);font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-sm);min-height:auto}.defect-image-preview{margin-top:var(--space-sm)}.defect-image-preview img{width:100%;max-height:200px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:var(--space-xs)}.review-section{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm)}.review-section-title{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--space-sm);color:var(--color-primary-ink)}.review-subsection{margin-bottom:var(--space-sm)}.review-subsection-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.review-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.review-row:last-child{border-bottom:none}.review-row--issue{background:#fef2f2;padding:var(--space-xs) var(--space-sm);margin:0 calc(-1 * var(--space-sm));border-radius:var(--radius-sm)}.review-label{color:var(--color-text-secondary)}.review-value{font-weight:500;color:var(--color-text)}.review-none{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}.review-defect{padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}.review-defect:last-child{border-bottom:none}.review-badge{display:inline-block;font-size:.75rem;background:var(--color-accent);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);margin-top:var(--space-xs)}.btn-submit{background-color:var(--color-success)}.btn-submit:hover:not(:disabled){background-color:var(--color-primary-light)}.admin-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.admin-page-header h2{margin:0}.admin-count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.admin-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.admin-card h3{margin-bottom:var(--space-sm)}.admin-filter-input{margin-bottom:var(--space-md)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-md)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center;border-top:3px solid transparent;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card--primary{border-top-color:var(--color-primary)}.stat-card--accent{border-top-color:var(--color-accent)}.stat-card--success{border-top-color:var(--color-success)}.stat-card--warning{border-top-color:var(--color-warning)}.stat-card-icon{color:var(--color-text-muted);margin-bottom:var(--space-xs)}.stat-card--primary .stat-card-icon{color:var(--color-primary)}.stat-card--accent .stat-card-icon{color:var(--color-accent)}.stat-card--success .stat-card-icon{color:var(--color-success)}.stat-card--warning .stat-card-icon{color:var(--color-warning)}.stat-card-value{font-size:var(--font-size-3xl);font-weight:700;color:var(--color-text);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat-card-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-xs)}.admin-table-container{overflow-x:auto;border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:var(--color-surface)}.admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.admin-table th{text-align:left;padding:var(--space-sm) var(--space-md);background:var(--color-bg-subtle);font-weight:600;font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);white-space:nowrap}.admin-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border-light);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table .row-inactive{opacity:.5}.td-mono{font-family:var(--font-mono);font-weight:600}.td-secondary{color:var(--color-text-muted);font-size:.8em}.role-badge{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.role-badge--admin{background:#eef2ff;color:#4338ca}.role-badge--site_manager{background:#f0fdf4;color:var(--color-success)}.status-badge{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:999px;letter-spacing:.02em}.status-badge--active,.status-badge--submitted,.status-badge--synced{background:#f0fdf4;color:var(--color-success)}.status-badge--inactive{background:#fef2f2;color:var(--color-danger)}.status-badge--archived{background:#fef3c7;color:#92400e;border:1px solid #F59E0B}.status-badge--draft{background:#fffbeb;color:var(--color-warning)}.review-badge{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:999px;letter-spacing:.02em}.review-badge--requires_review{background:#fef2f2;color:var(--color-danger)}.review-badge--in_review{background:#fffbeb;color:var(--color-warning)}.review-badge--reviewed{background:#f0fdf4;color:var(--color-success)}.review-panel{border-left:4px solid var(--color-border)}.review-panel h3{margin-bottom:var(--space-md)}.review-status-display{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-md)}.review-meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.review-meta--escalated{color:var(--color-warning);font-weight:500}.review-notes-field{margin-bottom:var(--space-md)}.review-notes-field label{display:block;font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--space-xs);color:var(--color-text-secondary)}.review-notes-field textarea{width:100%;resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);font-family:var(--font-family);font-size:var(--font-size-sm)}.review-actions{display:flex;gap:var(--space-sm)}.review-notes-display{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-light)}.review-notes-display p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6}.btn-warning{background:var(--color-warning);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:500;min-height:44px;padding:.5rem 1rem;transition:opacity var(--transition-fast)}.btn-warning:hover{opacity:.9}.role-badge--operations{background:#fff7ed;color:#c2410c}.admin-filter-select{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:var(--font-size-sm);font-family:var(--font-family);background:var(--color-surface);min-height:44px}.btn-sm{font-size:var(--font-size-sm);padding:.375rem .75rem;min-height:32px}.clickable-row{cursor:pointer;transition:background-color var(--transition-fast)}.clickable-row:hover{background:var(--color-bg-subtle)}.admin-detail{padding:var(--space-md)}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);gap:var(--space-sm)}.detail-header-left{display:flex;align-items:center;gap:var(--space-sm)}.detail-header h2{font-family:var(--font-mono, monospace);font-size:1.5rem}.btn-pdf{white-space:nowrap;font-size:.85rem;padding:8px 16px}.btn-pdf:disabled{opacity:.7;cursor:wait}.detail-section{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm)}.detail-section h3{font-size:var(--font-size-base);margin-bottom:var(--space-sm);color:var(--color-text-secondary)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.detail-field{display:flex;flex-direction:column;gap:2px}.detail-label{font-size:var(--font-size-xs, .75rem);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-value{font-size:var(--font-size-sm)}.response-list{display:flex;flex-direction:column;gap:4px}.response-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0;border-bottom:1px solid var(--color-border)}.response-row:last-child{border-bottom:none}.response-label{font-size:var(--font-size-sm);flex:1;padding-right:var(--space-sm)}.response-value{font-size:var(--font-size-sm);font-weight:600;color:var(--color-success)}.response-fail{color:var(--color-danger)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-sm)}.photo-card{display:flex;flex-direction:column;align-items:center;gap:4px}.photo-card--clickable{cursor:pointer}.photo-card--clickable:hover img{border-color:var(--color-primary, #2563EB);box-shadow:0 0 0 2px #2563eb40;transform:scale(1.03)}.photo-card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border);transition:border-color .15s,box-shadow .15s,transform .15s}.photo-label{font-size:var(--font-size-xs, .75rem);color:var(--color-text-muted);text-transform:capitalize}.defect-list{display:flex;flex-direction:column;gap:var(--space-sm)}.geo-link{color:var(--color-primary, #2563EB);text-decoration:none;font-family:var(--font-mono);font-size:.85rem}.geo-link:hover{text-decoration:underline}.defect-card{padding:var(--space-sm);background:#fef2f2;border:1px solid #FECACA;border-radius:var(--radius-sm)}.defect-card strong{color:var(--color-danger)}.defect-image--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.defect-image--clickable:hover{border-color:var(--color-primary, #2563EB);box-shadow:0 0 0 2px #2563eb40}.lightbox-overlay{position:fixed;inset:0;z-index:9999;background:#000000d9;display:flex;align-items:center;justify-content:center;animation:lightbox-fade-in .2s ease}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.lightbox-image{max-width:90vw;max-height:80vh;object-fit:contain;border-radius:var(--radius-sm);box-shadow:0 4px 24px #00000080}.lightbox-close{position:absolute;top:-40px;right:-8px;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;padding:4px 12px;line-height:1;opacity:.8;transition:opacity .15s}.lightbox-close:hover{opacity:1}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff26;border:none;color:#fff;font-size:2.5rem;cursor:pointer;padding:8px 14px;line-height:1;border-radius:var(--radius-sm);opacity:.7;transition:opacity .15s,background .15s}.lightbox-nav:hover{opacity:1;background:#ffffff40}.lightbox-nav--prev{left:-60px}.lightbox-nav--next{right:-60px}.lightbox-caption{margin-top:var(--space-sm);color:#fff;font-size:.875rem;text-transform:capitalize;text-align:center}.lightbox-counter{color:#fff9}@media(max-width:768px){.lightbox-nav--prev{left:4px}.lightbox-nav--next{right:4px}.lightbox-close{top:-36px;right:0}}.defect-card p{margin-top:4px;font-size:var(--font-size-sm)}.defect-image{margin-top:var(--space-xs);max-width:200px;border-radius:var(--radius-sm)}.pwa-install-banner{position:fixed;bottom:0;left:0;right:0;z-index:900;background:var(--color-nav);color:#fff;padding:var(--space-sm) var(--space-md);box-shadow:0 -2px 12px #00000026;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.pwa-install-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);max-width:600px;margin:0 auto}.pwa-install-text{display:flex;flex-direction:column;gap:2px}.pwa-install-text strong{font-size:var(--font-size-base)}.pwa-install-text span{font-size:var(--font-size-sm);opacity:.85}.pwa-install-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.btn-small{padding:6px 14px;font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);cursor:pointer;font-weight:500;transition:background .15s}.btn-ghost:hover{background:#ffffff1a}.pwa-ios-icon{display:inline-flex;vertical-align:middle;margin:0 2px}.btn-danger{background:var(--color-danger);color:#fff;border:none;cursor:pointer;font-weight:600;border-radius:var(--radius-md);transition:background var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-xs)}.btn-danger:hover{background:#b91c1c;box-shadow:var(--shadow-sm)}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-toggle{background:transparent;color:var(--color-primary-ink);border:1px solid var(--color-primary-ink);padding:8px 14px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-toggle:hover{background:var(--color-primary);color:var(--color-on-primary)}.btn-toggle--active{background:var(--color-warning);color:#fff;border-color:var(--color-warning)}.btn-toggle--active:hover{background:#b45309;border-color:#b45309}.admin-toolbar{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);align-items:center;flex-wrap:wrap}.admin-toolbar .admin-filter-input{flex:1 1 200px;min-width:0;margin-bottom:0}.admin-toolbar .admin-filter-select,.admin-toolbar .btn-toggle{flex-shrink:0}.bulk-action-bar{display:flex;align-items:center;gap:var(--space-sm);background:var(--color-nav);color:#fff;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);font-size:var(--font-size-sm);font-weight:500;animation:slideDown .2s ease-out}@keyframes slideDown{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}.bulk-action-bar .btn-danger{padding:4px 12px}.bulk-action-bar .btn-secondary{padding:4px 12px;font-size:var(--font-size-sm)}.th-checkbox,.td-checkbox{width:36px;text-align:center;padding:8px 4px!important}.th-checkbox input,.td-checkbox input{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.row-selected{background:#0ea5e914!important}.archived-banner{background:var(--color-warning);color:#fff;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-sm);font-size:var(--font-size-sm);font-weight:500}.detail-header-actions{display:flex;gap:var(--space-xs);align-items:center}.offline-indicator{position:fixed;top:0;left:0;right:0;z-index:9999;background:var(--color-warning);color:#fff;text-align:center;padding:.5rem 1rem;font-size:.85rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem}.offline-indicator-dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse-dot 1.5s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.pending-badge-card{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);background:#fef3c7;border:1px solid #FDE68A;border-left:4px solid var(--color-warning);border-radius:var(--radius-lg);cursor:pointer;font-family:inherit;font-size:.95rem;color:#92400e;transition:background var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm)}.pending-badge-card:hover{background:#fde68a;box-shadow:var(--shadow-md)}.pending-badge-count{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-warning);color:#fff;font-weight:700;font-size:.85rem;flex-shrink:0}.pending-badge-text{flex:1;text-align:left;font-weight:500}.pending-badge-arrow{font-size:1.2rem;font-weight:700}.pending-page{padding:var(--space-md);max-width:600px;margin:0 auto}.pending-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.pending-header h2{font-size:1.25rem;color:var(--color-primary-ink)}.btn-back{background:none;border:none;color:var(--color-primary-ink);font-size:1rem;cursor:pointer;padding:var(--space-xs);font-family:inherit;font-weight:600;display:inline-flex;align-items:center;gap:.25rem}.pending-list{display:flex;flex-direction:column;gap:var(--space-sm)}.pending-card{background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm)}.pending-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.pending-badge{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:999px;background:#fef3c7;color:#92400e;border:1px solid var(--color-warning)}.pending-card-details{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.pending-card-meta{display:flex;gap:var(--space-sm);font-size:.8rem;color:var(--color-text-secondary);margin-bottom:var(--space-sm);flex-wrap:wrap}.pending-card-actions{display:flex;gap:var(--space-xs);justify-content:flex-end}.draft-card{background:#fff7ed;border:1px solid #FED7AA;border-left:4px solid #FB923C;border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm)}.draft-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.draft-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;background:#ffedd5;color:#c2410c;border:1px solid #FB923C}.draft-vrm{font-weight:700;font-size:1.05rem;color:var(--color-primary-ink)}.draft-card-details{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.draft-card-meta{display:flex;gap:var(--space-sm);font-size:.8rem;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.draft-card-actions{display:flex;gap:var(--space-xs);justify-content:flex-end}.sync-progress-bar{background:#eff6ff;border:1px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md)}.sync-progress-info{display:flex;justify-content:space-between;font-size:.85rem;color:var(--color-primary-ink);margin-bottom:var(--space-xs)}.sync-step{color:var(--color-text-secondary)}.sync-progress-track{height:6px;background:#dbeafe;border-radius:3px;overflow:hidden}.sync-progress-fill{height:100%;background:var(--color-accent);border-radius:3px;transition:width .3s ease}.success-message{background:#dcfce7;border:1px solid #BBF7D0;border-left:3px solid var(--color-success);color:#166534;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);font-size:.9rem;font-weight:500}.empty-state-card{text-align:center;padding:var(--space-xl) var(--space-md);color:var(--color-text-secondary)}.empty-state-sub{font-size:.85rem;margin-top:var(--space-xs);color:var(--color-text-secondary);opacity:.7}.checklist-list{display:flex;flex-direction:column;gap:var(--space-sm)}.checklist-card{background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast)}.checklist-card:hover{box-shadow:var(--shadow-md)}.checklist-card--active{border-color:var(--color-success);border-width:2px}.checklist-card-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.checklist-card-name{font-size:1.1rem;font-weight:700;color:var(--color-primary-ink)}.checklist-card-meta{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--space-sm);display:flex;gap:var(--space-xs)}.checklist-card-actions{display:flex;gap:var(--space-xs)}.version-list{display:flex;flex-direction:column;gap:var(--space-sm)}.version-card{background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm)}.version-card--active{border-color:var(--color-success);border-width:2px}.version-card--draft{border-color:var(--color-warning);border-style:dashed}.version-card-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.version-number{font-size:1.1rem;font-weight:700;color:var(--color-primary-ink)}.version-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.version-badge--active{background:#dcfce7;color:#166534}.version-badge--draft{background:#fef3c7;color:#92400e}.version-badge--previous{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.version-card-meta{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.version-card-actions{display:flex;gap:var(--space-xs)}.btn-publish{background:var(--color-success);color:#fff;border:none;border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-publish:hover{background:var(--color-primary-light)}.editor-top-bar{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.editor-title{display:flex;align-items:center;gap:var(--space-sm);flex:1}.editor-title h2{font-size:1.25rem;color:var(--color-primary-ink);margin:0}.editor-stats{display:flex;gap:var(--space-xs);font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--space-md)}.sections-list{display:flex;flex-direction:column;gap:var(--space-sm)}.section-editor{background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);gap:var(--space-sm)}.section-header-left{display:flex;align-items:center;gap:var(--space-sm);flex:1;min-width:0}.section-expand-btn{background:none;border:none;cursor:pointer;font-size:.8rem;padding:4px;color:var(--color-text-secondary);flex-shrink:0}.section-name-display{font-weight:600;color:var(--color-primary-ink);font-size:.95rem}.section-name-input{font-weight:600;color:var(--color-primary-ink);font-size:.95rem;border:1px solid transparent;background:transparent;padding:2px 6px;border-radius:var(--radius-sm);font-family:inherit;flex:1;min-width:0}.section-name-input:focus{border-color:var(--color-accent);background:#fff;outline:none}.section-item-count{font-size:.75rem;color:var(--color-text-secondary);flex-shrink:0}.section-header-actions{display:flex;gap:4px;align-items:center;flex-shrink:0}.reorder-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.85rem;color:var(--color-text-secondary);transition:background .1s}.reorder-btn:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-primary-ink)}.reorder-btn:disabled{opacity:.3;cursor:default}.section-items{padding:var(--space-sm) var(--space-md)}.item-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) 0;border-bottom:1px solid var(--color-border);gap:var(--space-sm)}.item-row:last-of-type{border-bottom:none}.item-row-left{display:flex;align-items:center;gap:var(--space-xs);flex:1;min-width:0;flex-wrap:wrap}.item-label{font-size:.9rem;color:var(--color-text)}.field-type-badge{font-size:.65rem;font-weight:600;padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.field-type-badge--boolean{background:#dbeafe;color:#1e40af}.field-type-badge--text{background:#e0e7ff;color:#3730a3}.field-type-badge--number{background:#fef3c7;color:#92400e}.field-type-badge--image{background:#fce7f3;color:#9d174d}.field-type-badge--select{background:#d1fae5;color:#065f46}.item-badge{font-size:.6rem;font-weight:600;padding:1px 5px;border-radius:999px}.item-badge--required{background:#fee2e2;color:#991b1b}.item-badge--defect{background:#fed7aa;color:#9a3412}.item-row-actions{display:flex;gap:4px;align-items:center;flex-shrink:0}.btn-add-item{background:none;border:1px dashed var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:.85rem;width:100%;margin-top:var(--space-xs);transition:background .1s,color .1s}.btn-add-item:hover{background:var(--color-bg-secondary);color:var(--color-primary-ink)}.item-editor-form{background:#f8fafc;border:1px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-md);margin:var(--space-xs) 0}.item-editor-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap}.item-editor-label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);flex:1;min-width:120px}.item-editor-input{padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem}.item-editor-input:focus{border-color:var(--color-accent);outline:none}.item-editor-select{padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;background:#fff}.item-editor-checkbox{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:500;color:var(--color-text);cursor:pointer}.item-editor-checkbox input[type=checkbox]{width:16px;height:16px}.item-editor-actions{display:flex;gap:var(--space-xs);margin-top:var(--space-sm)}.config-fields{display:flex;gap:var(--space-sm);flex-wrap:wrap;padding:var(--space-sm);background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--space-xs)}.review-queue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);margin-top:var(--space-lg)}.review-queue-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-lg) var(--space-md);background:var(--color-surface);border:2px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;font-family:inherit;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.review-queue-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.review-queue-card--requires{border-color:var(--color-danger)}.review-queue-card--requires:hover{border-color:#b91c1c}.review-queue-card--escalated{border-color:var(--color-warning)}.review-queue-card--escalated:hover{border-color:#b45309}.review-queue-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--color-bg)}.review-queue-card--requires .review-queue-icon{color:var(--color-danger);background:#fef2f2}.review-queue-card--escalated .review-queue-icon{color:var(--color-warning);background:#fef3c7}.review-queue-value{font-size:2rem;font-weight:700;line-height:1;color:var(--color-text)}.review-queue-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);text-align:center}.toast-container{position:fixed;bottom:var(--space-lg);right:var(--space-lg);z-index:9999;display:flex;flex-direction:column-reverse;gap:var(--space-sm);max-width:22rem}@media(max-width:768px){.toast-container{left:var(--space-md);right:var(--space-md);bottom:var(--space-md);max-width:none}}.toast{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);border-left:4px solid;animation:toast-slide-in .25s ease-out;min-height:44px}.toast--success{border-left-color:var(--color-success)}.toast--success .toast-icon{color:var(--color-success)}.toast--error{border-left-color:var(--color-danger)}.toast--error .toast-icon{color:var(--color-danger)}.toast--info{border-left-color:var(--color-accent)}.toast--info .toast-icon{color:var(--color-accent)}.toast-icon{flex-shrink:0}.toast-message{flex:1;font-size:var(--font-size-sm);color:var(--color-text);line-height:1.4}.toast-close{flex-shrink:0;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;min-height:28px;min-width:28px}.toast-close:hover{background:var(--color-bg);color:var(--color-text)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.15}}.skeleton-line{background:var(--color-bg-subtle);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-circle{background:var(--color-bg-subtle);border-radius:50%;animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);box-shadow:var(--shadow-sm)}.skeleton-card-list{display:flex;flex-direction:column;gap:var(--space-md)}.skeleton-table{background:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.skeleton-table-header{display:flex;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}.skeleton-table-row{display:flex;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--color-border-light)}.skeleton-table-row:last-child{border-bottom:none}.skeleton-section{margin-top:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:var(--space-md)}.skeleton-grid>div{display:flex;flex-direction:column;gap:var(--space-xs)}.skeleton-detail{display:flex;flex-direction:column;gap:var(--space-sm)}.skeleton-dashboard .stats-grid{margin-top:0}.photo-slots-editor{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg)}.photo-slots-title{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--space-sm)}.photo-slot-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--color-border-light)}.photo-slot-row:last-of-type{border-bottom:none}.photo-slot-row-info{display:flex;align-items:center;gap:var(--space-sm)}.photo-slot-row-label{font-weight:500}.photo-slot-row-type{font-size:var(--font-size-sm);color:var(--color-text-muted);font-family:var(--font-mono)}.photo-slot-row-actions{display:flex;align-items:center;gap:var(--space-xs)}.photo-slot-add-form{margin-top:var(--space-sm);padding:var(--space-sm);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.photo-slot-add-fields{display:flex;gap:var(--space-sm);margin-bottom:var(--space-sm)}.photo-slot-add-input{flex:1;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.photo-slot-add-input--type{flex:.6;font-family:var(--font-mono)}.photo-slot-add-actions{display:flex;gap:var(--space-xs)}.preview-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;margin-bottom:1rem;background-color:var(--color-nav);color:#fff;border-left:4px solid #F59E0B;border-radius:var(--radius-md);font-size:.9rem;font-weight:500}.preview-banner strong{color:#f59e0b;letter-spacing:.05em;margin-right:.5rem}.preview-exit-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;min-height:44px}.preview-exit-btn:hover{background:#ffffff1a}.mileage-validation-error{display:flex;align-items:flex-start;gap:var(--space-xs);background:#fef2f2;color:#991b1b;border:1px solid #FECACA;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);margin-top:var(--space-xs);margin-bottom:var(--space-sm);line-height:1.4}.mileage-validation-error svg{flex-shrink:0;margin-top:2px;color:#dc2626}.mileage-validation-ok{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-xs);margin-bottom:var(--space-sm)}.input-error{border-color:#dc2626!important;background:#fef2f2}.pending-card--error{border-color:#fecaca;border-left:4px solid #DC2626}.pending-badge--error{background:#fef2f2;color:#991b1b;border-color:#fecaca}.mileage-error-banner{display:flex;gap:var(--space-sm);background:#fef2f2;border:1px solid #FECACA;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin:var(--space-xs) 0}.mileage-error-banner svg{flex-shrink:0;color:#dc2626;margin-top:2px}.mileage-error-text{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);color:#991b1b}.mileage-error-hint{font-size:.75rem;color:#b91c1c;opacity:.8}.pending-card-mileage{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-xs) 0;font-size:var(--font-size-sm)}.mileage-display-row{display:flex;align-items:center;gap:var(--space-xs)}.mileage-value--error{color:#dc2626;font-weight:600;text-decoration:line-through}.mileage-edit-row{display:flex;align-items:center;gap:var(--space-xs)}.mileage-edit-input{width:120px;padding:4px 8px;font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);cursor:pointer;background:transparent;padding:0;min-height:auto}.btn-icon--success{color:var(--color-primary-ink)}.btn-icon--success:hover{background:#f0fdf4}.btn-icon--muted{color:var(--color-text-secondary)}.btn-icon--muted:hover{background:var(--color-bg-secondary)}.btn-icon--inline{width:auto;height:auto;margin-left:4px;color:var(--color-text-muted);vertical-align:middle}.btn-icon--inline:hover{color:var(--color-text-secondary)}.detail-field--mileage .detail-label{display:flex;align-items:center}.detail-field--full-width{grid-column:1 / -1}.mileage-correction-form{display:flex;flex-direction:column;gap:var(--space-xs)}.mileage-correction-input{width:160px;padding:4px 8px;font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.mileage-correction-reason{width:100%;padding:4px 8px;font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.mileage-correction-actions{display:flex;gap:var(--space-xs);margin-top:2px}.mileage-correction-badge{font-size:.75rem;color:var(--color-text-secondary);background:#fff7ed;border:1px solid #FED7AA;border-radius:var(--radius-sm);padding:2px 8px;margin-top:2px}.correction-reason{font-style:italic}.mileage-history-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);margin-top:var(--space-xs)}.mileage-history-table th{text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:4px 8px;border-bottom:1px solid var(--color-border-light)}.mileage-history-table td{padding:4px 8px;border-bottom:1px solid var(--color-border-light)}.mileage-history-current{background:#f0fdf4;font-weight:600}.correction-indicator{font-size:.75rem;color:#b45309;background:#fef3c7;padding:1px 6px;border-radius:var(--radius-sm)}.pending-uploads-section{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border-light)}.pending-uploads-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.pending-uploads-header h3{display:flex;align-items:center;gap:var(--space-xs);font-size:1rem;margin:0}.pending-uploads-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-md)}.pending-card--photos{border-left:4px solid #F59E0B}.pending-badge--photos{background:#fef3c7;color:#92400e;border-color:#f59e0b}.pending-upload-types{display:flex;flex-wrap:wrap;gap:4px;margin:var(--space-xs) 0}.pending-upload-chip{font-size:.7rem;background:var(--color-bg-secondary);color:var(--color-text-secondary);padding:2px 8px;border-radius:999px;text-transform:capitalize}.modal-overlay{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md)}.modal-card{background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;width:100%;max-width:560px;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border-light)}.modal-header h3{margin:0;font-size:1.1rem;display:flex;align-items:center;gap:var(--space-xs)}.modal-close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.modal-close:hover:not(:disabled){background:var(--color-bg-secondary)}.modal-body{padding:var(--space-lg);overflow-y:auto;flex:1}.modal-footer{display:flex;gap:var(--space-sm);justify-content:flex-end;padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border-light);background:var(--color-bg-secondary)}.spinning{animation:spin .8s linear infinite}.purge-modal{max-width:600px}.purge-warning-banner{display:flex;gap:var(--space-md);background:#fef2f2;border:1px solid #FECACA;border-left:4px solid #DC2626;border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);align-items:flex-start}.purge-warning-banner svg{flex-shrink:0;color:#dc2626;margin-top:2px}.purge-warning-banner strong{color:#991b1b;display:block;margin-bottom:4px}.purge-warning-banner p{margin:0;font-size:var(--font-size-sm);color:#7f1d1d}.purge-loading{display:flex;align-items:center;gap:var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.purge-preview,.purge-confirm{background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-md)}.purge-preview h4,.purge-confirm h4{margin-top:0;margin-bottom:var(--space-sm);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.purge-empty{color:var(--color-text-secondary);font-style:italic;margin:0}.purge-counts-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.purge-counts-table th{text-align:left;font-weight:500;padding:6px 0;color:var(--color-text-secondary)}.purge-counts-table td{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;padding:6px 0}.purge-confirm code{background:var(--color-bg-secondary);padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-weight:600}.purge-confirm input{width:100%;padding:8px 12px;font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:var(--space-xs) 0 var(--space-md)}.purge-greythorn-warning{display:flex;gap:var(--space-xs);align-items:center;background:#fef3c7;color:#92400e;border:1px solid #F59E0B;border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-sm);font-size:var(--font-size-sm)}.purge-greythorn-warning svg{flex-shrink:0;color:#d97706}.archive-banner{display:flex;gap:var(--space-sm);background:#fef3c7;border:1px solid #F59E0B;border-left:4px solid #D97706;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);align-items:center;color:#78350f;font-size:var(--font-size-sm)}.archive-banner svg{flex-shrink:0;color:#d97706}.archive-banner strong{color:#78350f}.archive-modal{max-width:560px}.archive-warning-banner{display:flex;gap:var(--space-sm);background:#fef3c7;border:1px solid #F59E0B;border-left:4px solid #D97706;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);align-items:flex-start}.archive-warning-banner svg{flex-shrink:0;color:#d97706;margin-top:2px}.archive-warning-banner strong{color:#78350f;display:block;margin-bottom:4px}.archive-warning-banner p{margin:0;font-size:var(--font-size-sm);color:#78350f;line-height:1.5}.archive-warning-banner code{background:#00000014;padding:0 4px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85em}.archive-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-bg-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.archive-stats .detail-label{display:block;margin-bottom:2px}.archive-field-label{display:block;font-weight:500;margin-bottom:var(--space-xs);margin-top:var(--space-sm);font-size:var(--font-size-sm)}.archive-field-label code{background:var(--color-bg-subtle);padding:1px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9em}.archive-months-input,.archive-confirm-input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base)}.archive-months-input{max-width:160px}.archive-months-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-xs);margin-bottom:var(--space-sm)}
