:root{--color-brand-black: #1a1a1a;--color-black-90: #111111;--color-black-60: #333333;--color-slate: #5a6c7e;--color-silver: #8e9aab;--color-cloud: #d4dde6;--color-mist: #e8edf2;--color-ash: #f2f3f5;--color-ice: #f5f8fb;--color-white: #ffffff;--color-accent: #3b8fd4;--color-accent-hover: #2d7abf;--color-sky: #5bb8f5;--color-midnight: #0a0a0a;--color-deep-navy: #1a1a1a;--color-primary: #1a1a1a;--color-primary-hover: #333333;--color-green: #27ae60;--color-amber: #e67e22;--color-red: #e74c3c;--color-green-bg: #eafaf1;--color-amber-bg: #fef5e7;--color-red-bg: #fdedec;--color-blue-bg: #eaf2fb;--color-alipay: #1677ff;--color-alipay-bg: #eef5ff;--color-wechat: #07c160;--color-wechat-bg: #eefbf3;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 13.5px;--font-size-lg: 16px;--font-size-xl: 22px;--font-size-xxl: 28px;--font-size-section-label: 10px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-xxl: 24px;--nav-width: 250px;--topbar-height: 52px;--border-radius: 6px;--border-radius-lg: 8px;--border-radius-pill: 12px;--border-radius-circle: 50%;--shadow-card: 0 2px 20px rgba(0, 0, 0, .06);--shadow-popup: 0 4px 20px rgba(0, 0, 0, .3);--transition: all .15s ease;--button-padding-v: 7px;--button-padding-h: 16px;--button-font-size: 13px;--button-font-weight: 500;--button-gap: 6px;--color-operated-bg: #eef6ff;--color-border: var(--color-cloud);--color-border-light: var(--color-mist);--color-bg: var(--color-ash);--color-bg-white: var(--color-white);--color-bg-light: var(--color-ice);--color-bg-hover: var(--color-ash);--color-bg-stripe: var(--color-ice);--color-bg-selected: var(--color-blue-bg);--color-text: var(--color-brand-black);--color-text-dark: var(--color-brand-black);--color-text-light: var(--color-slate);--color-text-lighter: var(--color-silver);--color-text-muted: var(--color-silver);--color-error: var(--color-red);--font-size-small: var(--font-size-sm);--font-size-large: var(--font-size-lg);--button-padding-vertical: var(--button-padding-v);--button-padding-horizontal: var(--button-padding-h)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-brand-black);background:var(--color-ash);line-height:1.5}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:grid;grid-template-columns:var(--nav-width) 1fr;height:100vh;overflow:hidden}.content-area{display:flex;flex-direction:column;overflow:hidden;background:var(--color-ash)}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--color-midnight) 0%,var(--color-deep-navy) 60%,var(--color-black-60) 100%)}.login-card{background:var(--color-white);border-radius:var(--border-radius-lg);padding:40px 36px;width:400px;max-width:90vw;box-shadow:var(--shadow-popup)}.login-logo{text-align:center;margin-bottom:32px}.login-logo img{height:36px}.login-logo .login-product{font-size:var(--font-size-sm);color:var(--color-slate);margin-top:var(--spacing-xs);letter-spacing:.5px}.login-title{font-size:var(--font-size-lg);font-weight:600;text-align:center;margin-bottom:var(--spacing-xxl);color:var(--color-brand-black)}.login-step{display:none}.login-step.active{display:block}.login-note{font-size:var(--font-size-sm);color:var(--color-slate);text-align:center;margin-top:var(--spacing-lg)}.login-code-boxes{display:flex;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-lg)}.login-code-boxes input{width:44px;height:52px;text-align:center;font-size:24px;font-weight:700;border:2px solid var(--color-cloud);border-radius:var(--border-radius);font-family:var(--font-family);color:var(--color-brand-black);transition:border-color .15s}.login-code-boxes input:focus{outline:none;border-color:var(--color-primary, var(--color-brand-black))}.login-countdown{font-size:var(--font-size-sm);color:var(--color-amber);font-weight:600;margin-left:var(--spacing-sm)}.login-error{background:var(--color-red-bg);color:var(--color-red);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--spacing-lg);display:none}.login-error.active{display:block}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.calendar-nav .calendar-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-brand-black)}.calendar-nav .btn-calendar{padding:6px 12px;border:1px solid var(--color-cloud);border-radius:var(--border-radius);background:var(--color-white);cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-brand-black)}.calendar-nav .btn-calendar:hover{background:var(--color-ice)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--color-cloud);border-radius:var(--border-radius-lg);overflow:hidden;background:var(--color-white)}.calendar-day-header{padding:var(--spacing-sm);text-align:center;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;color:var(--color-slate);background:var(--color-ice);border-bottom:1px solid var(--color-cloud)}.calendar-cell{min-height:90px;padding:var(--spacing-xs);border-right:1px solid var(--color-cloud);border-bottom:1px solid var(--color-cloud);font-size:var(--font-size-xs);vertical-align:top;position:relative}.calendar-cell:nth-child(7n){border-right:none}.calendar-cell .cell-date{font-weight:600;color:var(--color-brand-black);margin-bottom:2px;font-size:var(--font-size-sm)}.calendar-cell.other-month .cell-date{color:var(--color-silver)}.calendar-cell.today{background:var(--color-ice)}.calendar-cell.today .cell-date{color:var(--color-primary, var(--color-brand-black));font-weight:700}.calendar-shift{display:block;padding:2px 4px;border-radius:3px;font-size:10px;font-weight:500;margin-bottom:2px;cursor:pointer;transition:opacity .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-shift:hover{opacity:.8}.calendar-shift.day-shift{background:var(--color-sky);color:var(--color-white)}.calendar-shift.night-shift{background:var(--color-deep-navy);color:var(--color-white)}.form-two-col{display:grid;grid-template-columns:7fr 3fr;gap:var(--spacing-lg)}@media(max-width:900px){.form-two-col{grid-template-columns:1fr}}.form-canvas{background:var(--color-white);border:1px solid var(--color-cloud);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.form-canvas-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-brand-black);margin-bottom:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-sm)}body:not(.role-admin) .admin-only{display:none!important}.admin-banner{background:#fff3cd;color:#856404;padding:var(--spacing-sm) var(--spacing-xxl);font-size:var(--font-size-sm);font-weight:500;border-bottom:1px solid #ffc107;flex-shrink:0}.page{display:none}.page.active{display:block}.tab-content{display:none}.tab-content.active{display:block}.btn{display:inline-flex;align-items:center;gap:var(--button-gap);padding:var(--button-padding-v) var(--button-padding-h);border-radius:var(--border-radius);font-size:var(--button-font-size);font-weight:var(--button-font-weight);border:none;cursor:pointer;transition:var(--transition);font-family:var(--font-family);line-height:1.4}.btn svg{width:14px;height:14px}.btn-primary{background:var(--color-primary, var(--color-brand-black));color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-hover, var(--color-black-60))}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-outline{background:transparent;color:var(--color-accent);border:1px solid var(--color-cloud)}.btn-outline:hover{border-color:var(--color-accent)}.btn-danger{background:var(--color-red);color:var(--color-white)}.btn-danger:hover{background:#c0392b}.btn-ghost{background:transparent;color:var(--color-slate);border:none;padding:var(--button-padding-v) var(--spacing-sm)}.btn-ghost:hover{color:var(--color-brand-black);background:var(--color-ash)}.btn-popup-action{display:inline-flex;align-items:center;gap:var(--button-gap);padding:var(--button-padding-v) var(--button-padding-h);border-radius:var(--border-radius);font-size:var(--button-font-size);font-weight:var(--button-font-weight);border:none;cursor:pointer;transition:var(--transition);font-family:var(--font-family);background:var(--color-primary, var(--color-brand-black));color:var(--color-white)}.btn-popup-action:hover{background:var(--color-primary-hover, var(--color-black-60))}.btn-popup-cancel{display:inline-flex;align-items:center;padding:var(--button-padding-v) var(--button-padding-h);border-radius:var(--border-radius);font-size:var(--button-font-size);font-weight:var(--button-font-weight);border:1px solid var(--color-cloud);cursor:pointer;transition:var(--transition);font-family:var(--font-family);background:var(--color-white);color:var(--color-brand-black)}.btn-popup-cancel:hover{border-color:var(--color-slate)}.btn-link{background:none;border:none;color:var(--color-accent);cursor:pointer;font-size:var(--font-size-sm);padding:0;font-family:var(--font-family)}.btn-link:hover{text-decoration:underline}.btn-link.danger{color:var(--color-red)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:3px 10px;border-radius:var(--border-radius-pill);font-size:11.5px;font-weight:600}.badge-green{background:var(--color-green-bg);color:var(--color-green)}.badge-amber{background:var(--color-amber-bg);color:var(--color-amber)}.badge-red{background:var(--color-red-bg);color:var(--color-red)}.badge-blue{background:var(--color-blue-bg);color:var(--color-accent)}.badge-gray{background:var(--color-ash);color:var(--color-slate)}.dot{width:8px;height:8px;border-radius:var(--border-radius-circle);display:inline-block;flex-shrink:0}.dot-green{background:var(--color-green)}.dot-amber{background:var(--color-amber)}.dot-red{background:var(--color-red)}.dot-pulse{animation:dotPulse 1.5s infinite}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.4}}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.summary-card{background:var(--color-white);border-radius:var(--border-radius-lg);padding:18px var(--spacing-xl);border:1px solid var(--color-cloud)}.summary-card .card-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-slate);margin-bottom:var(--spacing-sm)}.summary-card .card-value{font-size:var(--font-size-xxl);font-weight:700;color:var(--color-brand-black)}.summary-card .card-sub{font-size:var(--font-size-sm);color:var(--color-slate);margin-top:var(--spacing-xs)}.summary-card .card-value.green{color:var(--color-green)}.summary-card .card-value.amber{color:var(--color-amber)}.summary-card .card-value.red{color:var(--color-red)}@media(max-width:1024px){.summary-cards{grid-template-columns:repeat(2,1fr)}}.data-table-wrapper{background:var(--color-white);border-radius:var(--border-radius-lg);border:1px solid var(--color-cloud);overflow:hidden;margin-bottom:var(--spacing-xl)}.table-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-base, 14px) 18px;border-bottom:1px solid var(--color-cloud)}.table-header .table-title{font-size:var(--font-size-base);font-weight:600}.table-filter{display:flex;gap:var(--spacing-sm);padding:10px 18px;border-bottom:1px solid var(--color-cloud);background:var(--color-ice);flex-wrap:wrap;align-items:center}.table-filter input,.table-filter select{padding:6px 10px;border:1px solid var(--color-cloud);border-radius:5px;font-size:12.5px;background:var(--color-white);font-family:var(--font-family)}.table-filter .filter-label{color:var(--color-slate);font-size:var(--font-size-base) - 1}table{width:100%;border-collapse:collapse}th{text-align:left;padding:10px 18px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-slate);background:var(--color-ice);border-bottom:1px solid var(--color-cloud);white-space:nowrap}td{padding:12px 18px;font-size:var(--font-size-md);border-bottom:1px solid #f0f2f4;color:var(--color-brand-black)}tr:hover td{background:#fafbfc}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--color-ice)}tr.row-operated td{background:var(--color-operated-bg)}tr.row-operated:hover td{background:#dceeff}.jrs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.jrs-vehicle-card{background:var(--color-white);border:1px solid var(--color-cloud);border-radius:var(--border-radius-lg);padding:14px var(--spacing-lg)}.jrs-vehicle-card .vehicle-plate{font-size:var(--font-size-base);font-weight:700;margin-bottom:10px}.jrs-vehicle-card .status-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) 0;font-size:var(--font-size-sm);color:var(--color-slate)}.jrs-vehicle-card .status-row .status-val{display:flex;align-items:center;gap:5px;font-weight:500}.alert-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) 18px;border-bottom:1px solid #f0f2f4}.alert-item:last-child{border-bottom:none}.alert-icon{width:32px;height:32px;border-radius:var(--border-radius-circle);display:flex;align-items:center;justify-content:center;flex-shrink:0}.alert-icon svg{width:16px;height:16px}.alert-icon.critical{background:var(--color-red-bg);color:var(--color-red)}.alert-icon.warning{background:var(--color-amber-bg);color:var(--color-amber)}.alert-icon.info{background:var(--color-blue-bg);color:var(--color-accent)}.alert-content{flex:1}.alert-content .alert-title{font-size:var(--font-size-base) - 1;font-weight:500}.alert-content .alert-meta{font-size:11.5px;color:var(--color-slate);margin-top:2px}.section-header{font-size:var(--font-size-base);font-weight:600;color:var(--color-brand-black);margin:var(--spacing-xl) 0 var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm)}.section-header:first-child{margin-top:0}.compliance-tip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;cursor:help;color:var(--color-silver);transition:color .15s}.compliance-tip:hover{color:var(--color-accent)}.compliance-tip svg{width:16px;height:16px}.popup-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;align-items:center;justify-content:center}.popup-overlay.active{display:flex}.popup-dialog{background:var(--color-white);border-radius:var(--border-radius-lg);max-width:560px;width:90%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-popup)}.popup-header{padding:var(--spacing-xl) var(--spacing-xxl) var(--spacing-md)}.popup-header .popup-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-brand-black)}.popup-body{padding:0 var(--spacing-xxl) var(--spacing-xl);overflow-y:auto;flex:1}.popup-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-xxl);border-top:1px solid var(--color-cloud)}.detail-grid{display:grid;grid-template-columns:160px 1fr;gap:0;max-width:600px}.detail-label{padding:10px 0;font-size:var(--font-size-md);color:var(--color-slate);border-bottom:1px solid #f0f2f4}.detail-value{padding:10px 0;font-size:var(--font-size-md);color:var(--color-brand-black);border-bottom:1px solid #f0f2f4}.lock-indicator{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);padding:40px}.lock-icon-large{width:80px;height:80px;border-radius:var(--border-radius-circle);display:flex;align-items:center;justify-content:center;border:4px solid}.lock-icon-large svg{width:36px;height:36px}.lock-icon-large.locked{border-color:var(--color-red);color:var(--color-red);background:var(--color-red-bg)}.lock-icon-large.unlocked{border-color:var(--color-green);color:var(--color-green);background:var(--color-green-bg)}.lock-status-text{font-size:var(--font-size-xl);font-weight:700}.lock-meta{font-size:var(--font-size-sm);color:var(--color-slate)}.retention-calendar{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;max-width:400px}.retention-day{aspect-ratio:1;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--color-white)}.retention-day.complete{background:var(--color-green)}.retention-day.partial{background:var(--color-amber)}.retention-day.missing{background:var(--color-red)}.retention-day.future{background:var(--color-cloud);color:var(--color-slate)}.timeline{padding:0;list-style:none}.timeline-event{display:flex;gap:var(--spacing-md);padding:var(--spacing-md) 0;border-left:2px solid var(--color-cloud);margin-left:8px;padding-left:var(--spacing-xl);position:relative}.timeline-event:before{content:"";position:absolute;left:-5px;top:16px;width:8px;height:8px;border-radius:var(--border-radius-circle);background:var(--color-accent)}.timeline-event .event-time{font-size:var(--font-size-sm);color:var(--color-slate);white-space:nowrap;min-width:100px}.timeline-event .event-text{font-size:var(--font-size-md)}.status-tracker{display:flex;align-items:center;gap:0;margin:var(--spacing-xl) 0}.status-step{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:500;color:var(--color-silver)}.status-step .step-dot{width:24px;height:24px;border-radius:var(--border-radius-circle);display:flex;align-items:center;justify-content:center;border:2px solid var(--color-cloud);background:var(--color-white)}.status-step .step-dot svg{width:12px;height:12px}.status-step.completed .step-dot{background:var(--color-green);border-color:var(--color-green);color:var(--color-white)}.status-step.completed{color:var(--color-green)}.status-step.active .step-dot{border-color:var(--color-accent);color:var(--color-accent)}.status-step.active{color:var(--color-accent)}.status-step-line{flex:1;height:2px;background:var(--color-cloud);min-width:40px}.status-step-line.completed{background:var(--color-green)}.agg-tabs{display:inline-flex;gap:0;background:var(--color-white);border:1px solid var(--color-cloud);border-radius:var(--border-radius);overflow:hidden;margin-bottom:var(--spacing-lg)}.agg-tab{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base) - 1;font-weight:500;color:var(--color-slate);cursor:pointer;border-right:1px solid var(--color-cloud);transition:var(--transition)}.agg-tab:last-child{border-right:none}.agg-tab:hover{background:var(--color-ice)}.agg-tab.active{background:var(--color-accent);color:var(--color-white)}.shift-day{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--border-radius-pill);font-size:var(--font-size-xs);font-weight:600;background:#fff8e1;color:#f57f17}.shift-night{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--border-radius-pill);font-size:var(--font-size-xs);font-weight:600;background:#e8eaf6;color:#283593}.mic-toggle{display:inline-flex;align-items:center;gap:var(--spacing-sm)}.mic-toggle .toggle-switch{width:36px;height:20px;border-radius:10px;background:var(--color-cloud);position:relative;cursor:pointer;transition:background .2s}.mic-toggle .toggle-switch.on{background:var(--color-green)}.mic-toggle .toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--border-radius-circle);background:var(--color-white);transition:transform .2s}.mic-toggle .toggle-switch.on:after{transform:translate(16px)}.mic-toggle .toggle-label{font-size:var(--font-size-sm);color:var(--color-slate)}.text-green{color:var(--color-green)}.text-amber{color:var(--color-amber)}.text-red{color:var(--color-red)}.text-slate{color:var(--color-slate)}.text-accent{color:var(--color-accent)}.font-bold{font-weight:700}.font-medium{font-weight:500}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.two-col-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}@media(max-width:1024px){.app-layout{grid-template-columns:1fr}.sidebar{display:none}}.sidebar{display:flex;flex-direction:column;background:var(--color-black-90);color:var(--color-white);overflow-y:auto}.sidebar-logo{padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo img{height:28px}.sidebar-logo .logo-text{font-size:var(--font-size-xl);font-weight:700;letter-spacing:1px;color:var(--color-white)}.sidebar-logo .logo-sub{font-size:var(--font-size-xs);color:var(--color-sky);letter-spacing:.5px;margin-top:2px}.sidebar-context{padding:var(--spacing-md) var(--spacing-xl);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-context select{width:100%;background:var(--color-black-60);color:var(--color-white);border:1px solid rgba(255,255,255,.15);border-radius:var(--border-radius);padding:var(--spacing-sm) 10px;font-size:var(--font-size-base) - 1;cursor:pointer}.sidebar-context .user-info{font-size:var(--font-size-xs);color:var(--color-silver);margin-top:var(--spacing-sm);padding:0 2px}.role-toggle{display:flex;gap:0;margin-top:var(--spacing-sm);border:1px solid rgba(255,255,255,.15);border-radius:var(--border-radius);overflow:hidden}.role-toggle button{flex:1;background:transparent;border:none;padding:6px 8px;cursor:pointer;font-size:var(--font-size-xs);font-weight:600;color:#ffffff80;transition:var(--transition)}.role-toggle button.active{background:var(--color-accent);color:var(--color-white)}.role-toggle button:not(.active):hover{background:#ffffff0d}.sidebar-nav{flex:1;padding:var(--spacing-sm) 0}.nav-section-label{font-size:var(--font-size-section-label);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-slate);padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-sm)}.nav-item{display:flex;align-items:center;gap:10px;padding:10px var(--spacing-xl);color:#ffffffa6;cursor:pointer;border-left:3px solid transparent;transition:var(--transition);font-size:var(--font-size-md)}.nav-item:hover{background:#ffffff0d;color:var(--color-white)}.nav-item.active{background:#ffffff14;color:var(--color-white);border-left-color:var(--color-accent);font-weight:500}.nav-item .nav-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-item .nav-icon svg{width:18px;height:18px}.nav-item .nav-badge{margin-left:auto;background:var(--color-red);color:var(--color-white);font-size:var(--font-size-section-label);font-weight:700;padding:2px 6px;border-radius:10px}.sidebar-footer{padding:var(--spacing-md) var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1)}.sidebar-footer .logout-btn{display:flex;align-items:center;gap:var(--spacing-sm);color:#ffffff80;cursor:pointer;font-size:var(--font-size-base) - 1;padding:6px 0;transition:color .15s}.sidebar-footer .logout-btn:hover{color:var(--color-red)}.sidebar-footer .logout-btn svg{width:16px;height:16px}.top-bar{display:flex;align-items:center;justify-content:space-between;min-height:var(--topbar-height);padding:0 var(--spacing-xxl);background:var(--color-white);border-bottom:none;flex-shrink:0}.back-pane{display:flex;align-items:center;gap:var(--spacing-sm);min-width:80px}.back-pane .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--button-padding-v) var(--button-padding-h);border-radius:var(--border-radius);font-size:var(--button-font-size);font-weight:var(--button-font-weight);border:none;outline:none;cursor:pointer;transition:var(--transition);font-family:var(--font-family);min-width:80px;height:32px;background:var(--color-black-90);color:var(--color-white)}.back-pane .btn:hover{background:var(--color-black-60)}.back-pane .btn:disabled{opacity:.5;cursor:not-allowed}.back-pane .btn svg{width:14px;height:14px}.control-pane{display:flex;align-items:center;gap:var(--spacing-sm)}.control-pane .btn{padding:var(--button-padding-v) var(--button-padding-h);margin:0;border:none;border-radius:var(--border-radius);font-size:var(--button-font-size);font-weight:var(--button-font-weight);cursor:pointer;transition:var(--transition);flex:0 0 auto;min-width:80px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-black-90);color:var(--color-white);font-family:var(--font-family);outline:none}.control-pane .btn:last-child{margin-right:var(--spacing-sm)}.control-pane .btn:hover{background:var(--color-black-60)}.control-pane .btn:disabled{opacity:.5;cursor:not-allowed}.control-pane .btn svg{width:14px;height:14px}.lang-toggle{display:flex;align-items:center;gap:0;margin-left:var(--spacing-sm);border:1px solid var(--color-cloud);border-radius:var(--border-radius);overflow:hidden;flex-shrink:0}.lang-toggle button{background:none;border:none;padding:5px 10px;cursor:pointer;font-weight:600;color:var(--color-slate);transition:var(--transition);font-size:var(--font-size-sm)}.lang-toggle button.active{background:var(--color-primary, var(--color-brand-black));color:var(--color-white)}.lang-toggle button:not(.active):hover{background:var(--color-ice)}.tabs-pane{display:flex;gap:2px;padding:0 var(--spacing-xxl);background:var(--color-white);border-bottom:2px solid var(--color-black-90);height:32px;flex-shrink:0}.tab-item{padding:0px var(--spacing-lg);min-width:80px;height:32px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--color-slate);cursor:pointer;border:none;outline:none;background:var(--color-silver);transition:var(--transition);font-family:var(--font-family);border-bottom:2px solid var(--color-black-90)}.tab-item:hover{background:var(--color-black-60);color:var(--color-white)}.tab-item.active{background:var(--color-black-90);color:var(--color-white);font-weight:500;border-bottom:2px solid var(--color-black-90)}.context-pane{flex:1;overflow-y:auto;padding:var(--spacing-xl) var(--spacing-xxl);background:var(--color-white)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--color-slate);margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-cloud);border-radius:var(--border-radius);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-brand-black);transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-group input:disabled,.form-group select:disabled{background:var(--color-ash);color:var(--color-slate);cursor:not-allowed}.form-group input[readonly]{background:var(--color-ash);color:var(--color-slate)}.form-group textarea{resize:vertical;min-height:60px}.form-label{display:block;font-size:var(--font-size-base) - 1;font-weight:500;color:var(--color-slate);margin-bottom:var(--spacing-sm)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-cloud);border-radius:var(--border-radius);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-brand-black);transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-accent)}.form-input:read-only,.form-input:disabled{background:var(--color-ash);color:var(--color-slate);cursor:not-allowed}.form-textarea{min-height:80px;resize:vertical}.form-hint{font-size:var(--font-size-xs);color:var(--color-silver);margin-top:var(--spacing-xs)}.form-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.form-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.form-checkbox label{font-size:var(--font-size-base) - 1;font-weight:500;color:var(--color-brand-black);cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-xl)}.error-banner{background:var(--color-red-bg);color:var(--color-red);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.two-column-layout{display:grid;grid-template-columns:minmax(0,700px) 1fr;gap:var(--spacing-xxl);width:100%}.left-column{display:flex;flex-direction:column;max-width:700px}.right-column{display:flex;flex-direction:column}.notes-section{display:flex;flex-direction:column;height:100%}.notes-section h3,.add-note{margin-bottom:var(--spacing-md)}.add-note textarea{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--border-radius);font-family:var(--font-family);font-size:var(--font-size-base);resize:vertical;min-height:80px;margin-bottom:var(--spacing-sm)}.add-note textarea:focus{outline:none;border-color:var(--color-primary)}.btn-add-note{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);font-weight:500}.btn-add-note:hover:not(:disabled){background:var(--color-primary-hover)}.btn-add-note:disabled{opacity:.5;cursor:not-allowed}.notes-list{display:flex;flex-direction:column;gap:var(--spacing-md);overflow-y:auto}.note-item{padding:var(--spacing-md);background:var(--color-bg-hover);border:1px solid var(--color-border-light);border-radius:var(--border-radius)}.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);font-size:var(--font-size-small)}.note-author{font-weight:600;color:var(--color-text)}.note-date{color:var(--color-text-light)}.note-content{color:var(--color-text);line-height:1.5;white-space:pre-wrap;word-break:break-word}.no-notes{color:var(--color-text-lighter);font-style:italic;text-align:center;padding:var(--spacing-md);background:var(--color-bg-hover);border-radius:var(--border-radius)}.expenses-section{display:flex;flex-direction:column;height:100%}.expenses-section h3{margin-bottom:var(--spacing-md)}.expenses-table-container{overflow-y:auto;flex:1}.no-expenses{color:var(--color-text-lighter);font-style:italic;text-align:center;padding:var(--spacing-md);background:var(--color-bg-hover);border-radius:var(--border-radius)}.expenses-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.expenses-table thead{background:var(--color-bg);position:sticky;top:0}.expenses-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;color:var(--color-text);border-bottom:2px solid var(--color-border)}.expenses-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light)}.expenses-table .btn-remove{padding:var(--spacing-xs) var(--spacing-sm);background:#ffebee;color:#c62828;border:1px solid #ffcdd2;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-small)}.expenses-table .btn-remove:hover{background:#ffcdd2}.breakdown-table{width:100%;border-collapse:collapse}.breakdown-table thead th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;color:var(--color-text);border-bottom:none;font-size:var(--font-size-base)}.breakdown-table tbody td{padding:var(--spacing-xs) 0}.breakdown-table tbody td input{width:100%}@media(max-width:1024px){.two-column-layout{grid-template-columns:1fr}}.filter-pane{display:flex;flex-direction:column;align-items:stretch;gap:var(--spacing-sm);padding-top:0;padding-bottom:5px;padding-left:0;padding-right:var(--spacing-md);background:var(--color-bg-white);border-bottom:1px solid var(--color-border)}.filter-pane .collapsible-header{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%}.filter-pane .collapsible-header .arrow{font-size:10px;color:var(--color-text-light);transition:transform .2s}.filter-pane .collapsible-header .label{font-weight:500;color:var(--color-text)}.filter-pane .filter-badge{background:var(--color-primary);color:#fff;border-radius:10px;padding:2px 8px;font-size:11px}.filter-pane .record-count{margin-left:auto;font-size:var(--font-size-small);color:var(--color-text-light)}.filter-pane .record-count strong{color:var(--color-text)}.filter-pane .collapsible-content{margin-top:0;padding-top:0;border-top:0px solid var(--color-border)}.filter-pane .collapsible-content.collapsed{display:none}.filter-pane .collapsible-content .filter-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.filter-pane input[type=text]{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-base);font-family:var(--font-family);min-width:200px;background:#fff}.filter-pane input[type=text]::placeholder{color:var(--color-text-lighter)}.filter-pane input[type=text]:focus{outline:none;border-color:var(--color-primary)}.filter-pane .btn-add-filter{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px dashed var(--color-border);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-light);transition:var(--transition)}.filter-pane .btn-add-filter:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-pane .chip{display:inline-flex;align-items:center;gap:6px;background:var(--color-primary);color:#fff;border-radius:16px;padding:4px 12px;font-size:var(--font-size-small)}.filter-pane .chip .remove{cursor:pointer;opacity:.7;font-size:14px;line-height:1}.filter-pane .chip .remove:hover{opacity:1}.filter-pane .btn-clear{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-light);transition:var(--transition)}.filter-pane .btn-clear:hover{background:var(--color-bg-hover);border-color:var(--color-text-light)}.data-table-container{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm, .875rem);background:#fff}.data-table thead{background:var(--color-bg-light, #f5f5f5);border-bottom:2px solid var(--color-border, #ddd)}.data-table thead th{padding:.75rem .5rem;text-align:left;font-weight:600;color:var(--color-text-dark, #333);font-size:var(--font-size-sm, .875rem);white-space:nowrap}.data-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table thead th.sortable:hover{background:var(--color-bg-hover, #e8e8e8)}.th-content{display:flex;align-items:center;gap:.5rem}.sort-indicator{font-size:.75rem;opacity:.5}.data-table thead th.sortable .sort-indicator{opacity:1}.data-table tbody tr{border-bottom:1px solid var(--color-border-light, #eee);transition:background-color .2s}.data-table.striped tbody tr:nth-child(2n){background-color:var(--color-bg-stripe, #fafafa)}.data-table.hover tbody tr:hover{background-color:var(--color-bg-hover, #f0f0f0)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.selected{background-color:var(--color-bg-selected, #e3f2fd)!important}.checkbox-column{width:40px;text-align:center}.checkbox-column input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #1976d2)}.data-table tbody td{padding:.75rem .5rem;vertical-align:middle;color:var(--color-text, #555)}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:3px;font-size:.75rem;font-weight:600;text-transform:uppercase;white-space:nowrap}.status-drafted{background:#e3f2fd;color:#1976d2}.status-submitted{background:#fff3e0;color:#f57c00}.status-approved{background:#e8f5e9;color:#388e3c}.status-verified{background:#e8f5e9;color:#2e7d32}.status-failed{background:#ffebee;color:#c62828}.status-rejected{background:#ffebee;color:#d32f2f}.status-pending{background:#fff9c4;color:#f57f17}.data-table-loading,.data-table-error,.data-table-empty{padding:3rem 2rem;text-align:center;color:var(--color-text-muted, #999);font-style:italic}.data-table-error{color:var(--color-error, #d32f2f);font-style:normal}@media(max-width:768px){.data-table{font-size:.75rem}.data-table thead th,.data-table tbody td{padding:.5rem .25rem}.status-badge{font-size:.65rem;padding:.2rem .4rem}}.pagination-pane{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0;border-top:1px solid var(--color-border);margin-top:var(--spacing-sm)}.pagination-pane .pagination-info{font-size:var(--font-size-small);color:var(--color-text-light)}.pagination-pane .pagination-controls{display:flex;align-items:center;gap:2px}.pagination-pane .btn-pagination{min-width:32px;height:32px;padding:0 var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg-white);color:var(--color-text);font-size:var(--font-size-small);cursor:pointer;transition:var(--transition)}.pagination-pane .btn-pagination:hover:not(:disabled):not(.active){background:var(--color-bg-hover);border-color:var(--color-primary)}.pagination-pane .btn-pagination.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pagination-pane .btn-pagination:disabled{opacity:.4;cursor:not-allowed}.pagination-pane .pagination-ellipsis{min-width:32px;text-align:center;font-size:var(--font-size-small);color:var(--color-text-light)}.notification-pane{position:fixed;top:12px;left:calc(var(--nav-width, 250px) + (100% - var(--nav-width, 250px)) / 2);transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:.5rem;max-width:480px;width:min(480px,calc(100% - var(--nav-width, 250px) - 2rem));pointer-events:none}.notification{display:flex;align-items:center;gap:var(--spacing-sm, 8px);padding:.75rem 1rem;border-radius:var(--border-radius, 6px);box-shadow:0 4px 12px #00000026;font-family:var(--font-family);font-size:var(--font-size-base, 14px);font-weight:500;pointer-events:auto;animation:notification-slide-in .3s ease-out}@keyframes notification-slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.notification-message{flex:1;line-height:1.4}.notification .notification-close{flex-shrink:0;flex-grow:0;flex-basis:auto;background:transparent;border:none;border-radius:0;cursor:pointer;padding:0;margin:0;width:20px;height:20px;min-width:20px;max-width:20px;min-height:20px;max-height:20px;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s;-moz-appearance:none;appearance:none;-webkit-appearance:none;outline:none;color:inherit;box-shadow:none}.notification .notification-close:hover{opacity:1}.notification .notification-close .close-icon{width:20px;height:20px;object-fit:contain;display:block}.notification-success{background:var(--color-green, #27ae60);color:var(--color-white, #ffffff)}.notification-error{background:var(--color-red, #e74c3c);color:var(--color-white, #ffffff)}.notification-warning{background:var(--color-amber, #e67e22);color:var(--color-white, #ffffff)}.notification-info{background:var(--color-accent, #3b8fd4);color:var(--color-white, #ffffff)}@media(max-width:768px){.notification-pane{left:50%;width:calc(100% - 2rem);top:12px}.notification{padding:.5rem .75rem;font-size:var(--font-size-sm, 12px)}}
