@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--bg-page:#f8f9fb;--bg-white:#fff;--bg-light:#f1f3f7;--bg-hover:#e8ebf0;--navy-900:#1a2744;--navy-800:#0f1829;--navy-700:#2e3a52;--navy-600:#5a6578;--navy-500:#6b7588;--navy-400:#9ca3b0;--navy-300:#d4d6db;--navy-200:#e0e4ea;--navy-100:#eef0f4;--accent:#259b8e;--accent-hover:#1e8a7d;--accent-light:#259b8e1f;--accent-bg:#259b8e0f;--accent-glow:#259b8e40;--accent-secondary:#34d399;--green-600:#16a34a;--green-100:#dcfce7;--red-600:#dc2626;--red-100:#fee2e2;--yellow-600:#ca8a04;--yellow-100:#fef9c3;--radius-sm:.375rem;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px #0000000a, 0 1px 3px #00000008;--shadow-md:0 2px 4px #0000000a, 0 4px 12px #0000000f;--shadow-lg:0 4px 8px #0000000a, 0 8px 24px #00000014;--shadow-xl:0 8px 16px #0000000f, 0 20px 48px #0000001f;--transition-fast:.15s ease;--transition-base:.2s ease;--text-xs:.6875rem;--text-sm:.78rem;--text-base:.875rem;--text-md:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.75rem;--text-display:2rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--dark-bg-page:#1a1c2e;--dark-bg-surface:#151725;--dark-bg-elevated:#1e2036;--dark-bg-hover:#252840;--dark-bg-active:#2e3250;--dark-border:#ffffff14;--dark-border-hover:#ffffff26;--dark-text-primary:#e2e4ed;--dark-text-secondary:#c0c4d6;--dark-text-muted:#9aa0b8;--dark-text-faint:#6b7194;--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--z-base:1;--z-dropdown:100;--z-sticky:200;--z-modal:300;--z-tooltip:400;--z-max:9999;--focus-ring:0 0 0 3px #259b8e59}body{background:var(--bg-page);color:var(--navy-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:1.0625rem;line-height:1.6}.container{max-width:1160px;margin:0 auto;padding:2rem 1.5rem 3rem}.container-wide{max-width:1440px}h1{font-size:var(--text-2xl);letter-spacing:-.03em;color:var(--navy-900);margin-bottom:.35rem;font-weight:700;line-height:1.15}.page-subtitle{color:var(--navy-500);font-size:var(--text-base);margin-bottom:2.25rem}h3{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--navy-500);margin-bottom:.75rem;font-weight:600}.card{background:var(--bg-white);border:1px solid var(--navy-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), border-color var(--transition-base), transform var(--transition-base);margin-bottom:1.25rem;padding:1.5rem;overflow-x:auto}.card:hover{box-shadow:var(--shadow-md);border-color:var(--navy-300)}.card h3{margin-bottom:.85rem}.card-danger{border-color:var(--red-200,#fecaca)}.card-danger h3{color:var(--red-700,#b91c1c)}@media (width<=1024px){.container{padding:1.5rem 1rem 2.5rem}.card{padding:1rem}}[data-theme=dark] body{background:var(--dark-bg-page);color:var(--dark-text-primary)}[data-theme=dark] h1{color:var(--dark-text-primary)}[data-theme=dark] h3,[data-theme=dark] .page-subtitle{color:var(--dark-text-muted)}[data-theme=dark] .card{background:var(--dark-bg-elevated);border-color:var(--dark-border)}[data-theme=dark] .card:hover{border-color:var(--dark-border-hover)}.topbar{height:56px;z-index:var(--z-dropdown);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#1e2d4a,#1a2744);border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:0 1.5rem;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000001f,0 4px 12px #00000014}.topbar-nav{align-items:center;gap:.5rem;display:flex}.topbar-brand{color:#fff;letter-spacing:-.02em;align-items:center;gap:.6rem;font-size:1.1rem;font-weight:700;display:flex}.topbar-brand svg{color:#fff}.topbar .topbar-nav button.lang-switcher{letter-spacing:.04em;color:var(--dark-text-muted);text-align:center;background:#ffffff0f;border-color:#ffffff1f;min-width:2rem;padding:.3rem .6rem;font-size:.7rem;font-weight:700}.topbar .topbar-nav button.lang-switcher:hover{color:#fff;background:#ffffff1a;border-color:#ffffff40}.nav-btn{cursor:pointer;transition:all var(--transition-fast);border:1px solid #ffffff26;border-radius:20px;padding:.4rem .85rem;font-size:.8rem;font-weight:500}.nav-btn.nav-active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 12px #259b8e4d}.nav-btn.nav-active:hover{background:var(--accent-hover);box-shadow:0 0 16px #259b8e66}.nav-btn.nav-inactive{color:#c0c4d6;background:#ffffff0f;border-color:#ffffff26}.nav-btn.nav-inactive:hover{color:#fff;box-shadow:none;background:#ffffff1a;border-color:#ffffff40;transform:none}.app-shell-content{min-height:calc(100vh - 56px)}.nav-badge{color:#fff;background:#fff3;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:.35rem;padding:0 5px;font-size:.65rem;font-weight:700;line-height:1;display:inline-flex}.nav-btn.nav-active .nav-badge{background:#ffffff4d}.api-key-input{gap:.5rem;display:flex}.api-key-input input{border:1px solid var(--navy-200);border-radius:var(--radius-sm);background:var(--bg-white);color:var(--navy-900);font-family:DM Sans,SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:var(--text-base);outline:none;flex:1;padding:.55rem .85rem;transition:border-color .2s,box-shadow .2s}.api-key-input input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e1f,inset 0 1px 2px #0000000a}.api-key-input input:disabled{color:var(--navy-400);background:var(--bg-light)}button{border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:var(--text-sm);letter-spacing:.01em;transition:all var(--transition-fast);border:none;outline:none;padding:.55rem 1.15rem;font-weight:600}button:hover{background:var(--accent-hover);box-shadow:0 4px 14px var(--accent-glow);transform:translateY(-1px)}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;pointer-events:none;transform:none}button:disabled:hover{box-shadow:none;transform:none}.btn-as-label{border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;font-family:DM Sans,sans-serif;font-size:var(--text-sm);letter-spacing:.01em;transition:all var(--transition-fast);align-items:center;gap:.35rem;padding:.55rem 1.15rem;font-weight:600;display:inline-flex}.btn-as-label:hover{background:var(--accent-hover);box-shadow:0 4px 14px var(--accent-glow);transform:translateY(-1px)}button.danger{background:var(--bg-white);color:var(--red-600);border:1px solid var(--navy-200)}button.danger:hover{background:var(--red-100);border-color:var(--red-600);box-shadow:none;transform:none}button.secondary{background:var(--bg-white);color:var(--navy-900);border:1px solid var(--navy-200);box-shadow:var(--shadow-sm)}button.secondary:hover{background:var(--bg-light);border-color:var(--navy-300);box-shadow:var(--shadow-md);transform:none}.input-error{border-color:var(--red-600)!important;box-shadow:0 0 0 3px #dc262626!important}.input-error-text{color:var(--red-600);margin-top:.25rem;font-size:.78rem}.required-star{color:var(--red-600);margin-left:.15rem}input[type=text],input[type=password],textarea{outline:none;transition:border-color .2s,box-shadow .2s}input[type=text],input[type=password]{border-radius:var(--radius-md)}input[type=text]:focus,input[type=password]:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e1f,inset 0 1px 2px #0000000a}.btn-loading{pointer-events:none;opacity:.7;padding-left:2rem;position:relative}.btn-loading:before{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;width:.8rem;height:.8rem;margin-top:-.4rem;animation:.5s linear infinite btn-spin;position:absolute;top:50%;left:.7rem}@keyframes btn-spin{to{transform:rotate(360deg)}}button.danger-filled{background:var(--red-600);color:#fff;border:none}button.danger-filled:hover{box-shadow:none;background:#b91c1c;transform:none}.btn-ghost{color:#fff;background:#ffffff26;border:none}.btn-ghost:hover{box-shadow:none;background:#ffffff40;transform:none}button:focus-visible{box-shadow:var(--focus-ring);outline:none}button.secondary:focus-visible,button.danger:focus-visible{box-shadow:var(--focus-ring)}@media (width<=768px){input,select,textarea{font-size:16px!important}}[data-theme=dark] .api-key-input input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e33,inset 0 1px 2px #0003}[data-theme=dark] .api-key-input input:disabled{color:var(--dark-text-faint);background:var(--dark-bg-surface)}[data-theme=dark] button.danger{background:var(--dark-bg-hover);color:#f87171;border-color:var(--dark-border)}[data-theme=dark] button.danger:hover{border-color:var(--red-600);background:#dc262626}[data-theme=dark] button.danger-filled:hover{background:#991b1b}[data-theme=dark] input[type=text],[data-theme=dark] input[type=password],[data-theme=dark] textarea{background:var(--dark-bg-hover);border-color:var(--dark-border);color:var(--dark-text-primary)}[data-theme=dark] input[type=text]:focus,[data-theme=dark] input[type=password]:focus,[data-theme=dark] textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e33,inset 0 1px 2px #0003}[data-theme=dark] button:disabled{opacity:.4}[data-theme=dark] .input-error-text{color:#f87171}.signup-page{background:var(--bg-page);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.signup-card{background:var(--bg-white);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow-lg);padding:2.5rem}.signup-card h1{color:var(--navy-900);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.signup-subtitle{color:var(--navy-500);font-size:var(--text-sm);margin-bottom:1.75rem}.signup-form{flex-direction:column;gap:1rem;display:flex}.form-field{flex-direction:column;gap:.3rem;display:flex}.form-field label{font-size:var(--text-sm);color:var(--navy-700);font-weight:600}.form-field input{border:1px solid var(--navy-200);border-radius:var(--radius-sm);background:var(--bg-white);color:var(--navy-900);font-family:DM Sans,sans-serif;font-size:var(--text-base);outline:none;padding:.55rem .85rem;transition:border-color .2s,box-shadow .2s}.form-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e1f,inset 0 1px 2px #0000000a}.signup-error{background:var(--red-100);color:var(--red-600);border-radius:var(--radius-sm);font-size:var(--text-sm);padding:.6rem .85rem}.signup-terms{color:var(--navy-400);text-align:center;margin-top:.5rem;font-size:.72rem}.signup-terms a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.form-field-checkbox{margin-top:.25rem}.checkbox-label{color:var(--navy-500);cursor:pointer;align-items:flex-start;gap:.5rem;font-size:.8rem;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;flex-shrink:0;margin-top:.15rem}.checkbox-label a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.signup-success{text-align:center;padding:1rem 0}.signup-success h2{color:var(--accent);margin-bottom:.5rem}.signup-success p{color:var(--navy-600);font-size:var(--text-sm)}.signup-trial-info{margin-top:.75rem;color:var(--navy-400)!important;font-size:.78rem!important}.empty-state-secondary{margin-top:.5rem}[data-theme=dark] .signup-page{background:var(--dark-bg-page)}[data-theme=dark] .signup-card{background:var(--dark-bg-surface);box-shadow:0 4px 24px #0006}[data-theme=dark] .signup-card h1{color:var(--dark-text-primary)}[data-theme=dark] .signup-subtitle,[data-theme=dark] .form-field label{color:var(--dark-text-secondary)}[data-theme=dark] .form-field input{background:var(--dark-bg-hover);border-color:var(--dark-border);color:var(--dark-text-primary)}[data-theme=dark] .form-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e33,inset 0 1px 2px #0003}[data-theme=dark] .signup-error{color:#f87171;background:#dc262626}[data-theme=dark] .signup-terms{color:var(--dark-text-faint)}[data-theme=dark] .checkbox-label{color:var(--dark-text-secondary)}.auth-links{text-align:center;font-size:var(--text-sm);color:var(--navy-500);margin-top:.5rem}.auth-links a{color:var(--accent);text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-links-sep{color:var(--navy-300);margin:0 .5rem}.auth-back-link{color:var(--accent);font-size:var(--text-sm);margin-top:1rem;text-decoration:none;display:inline-block}.auth-back-link:hover{text-decoration:underline}.topbar-user-email{color:var(--navy-500);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:.78rem;overflow:hidden}[data-theme=dark] .topbar-user-email,[data-theme=dark] .auth-links{color:var(--dark-text-secondary)}[data-theme=dark] .auth-links-sep{color:var(--dark-text-faint)}.badge{letter-spacing:.01em;text-transform:capitalize;border-radius:20px;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.68rem;font-weight:600;display:inline-flex}.badge:before{content:"";border-radius:50%;flex-shrink:0;width:5px;height:5px}.badge.pending{color:var(--yellow-600);background:#ca8a041a;border:1px solid #ca8a0433}.badge.pending:before{background:var(--yellow-600)}.badge.processing{color:var(--accent);background:#259b8e1a;border:1px solid #259b8e33}.badge.processing:before{background:var(--accent);animation:1.5s ease-in-out infinite pulse-dot}.badge.completed{color:var(--green-600);background:#16a34a1a;border:1px solid #16a34a33}.badge.completed:before{background:var(--green-600)}.badge.failed{color:var(--red-600);background:#dc26261a;border:1px solid #dc262633}.badge.failed:before{background:var(--red-600)}.badge.failed_permanent{color:#991b1b;background:#991b1b1a;border:1px solid #991b1b33;text-decoration:line-through}.badge.failed_permanent:before{background:#991b1b}.badge.cancelled{color:#64748b;background:#64748b1a;border:1px solid #64748b33}.badge.cancelled:before{background:#64748b}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.warning-dot{color:#fff;background:#d97706;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;margin-left:.3rem;font-size:.6rem;font-weight:700;display:inline-flex}.status-cell{flex-direction:column;gap:.25rem;display:inline-flex}.progress-track{background:var(--navy-100);border-radius:2px;width:100%;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-secondary));border-radius:2px;height:100%;transition:width .6s;box-shadow:0 0 8px #259b8e4d}.time-info{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--navy-400)}.time-info.processing{color:var(--accent)}[data-theme=dark] .badge.pending{color:#facc15;background:#ca8a0426;border-color:#ca8a044d}[data-theme=dark] .badge.pending:before{background:#facc15}[data-theme=dark] .badge.processing{color:#5eead4;background:#259b8e26;border-color:#259b8e4d}[data-theme=dark] .badge.processing:before{background:#5eead4}[data-theme=dark] .badge.completed{color:#4ade80;background:#16a34a26;border-color:#16a34a4d}[data-theme=dark] .badge.completed:before{background:#4ade80}[data-theme=dark] .badge.failed{color:#f87171;background:#dc262626;border-color:#dc26264d}[data-theme=dark] .badge.failed:before{background:#f87171}[data-theme=dark] .badge.failed_permanent{color:#fca5a5;background:#991b1b33;border-color:#991b1b59}[data-theme=dark] .badge.failed_permanent:before{background:#fca5a5}[data-theme=dark] .badge.cancelled{color:#94a3b8;background:#64748b26;border-color:#64748b4d}[data-theme=dark] .badge.cancelled:before{background:#94a3b8}[data-theme=dark] .progress-track{background:#ffffff0f}[data-theme=dark] .time-info{color:var(--dark-text-faint)}table{border-collapse:collapse;table-layout:auto;width:100%;margin-top:.5rem}th,td{text-align:left;border-bottom:1px solid var(--navy-100);text-overflow:ellipsis;white-space:nowrap;padding:.7rem .5rem;overflow:hidden}td.col-actions{overflow:visible}th{text-transform:uppercase;letter-spacing:.05em;color:var(--navy-500);background:var(--bg-light);border-bottom:2px solid var(--navy-200);font-size:.68rem;font-weight:700}th:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}th:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}tr:nth-child(2n) td{background:#00000004}tr:hover td{background:#259b8e08}tr td{transition:background var(--duration-fast) ease}td{color:var(--navy-600);font-size:.9375rem}td:first-child{color:var(--navy-900);font-weight:500}td:last-child,th:last-child{white-space:nowrap;overflow:visible}.table-toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.table-toolbar input,.table-toolbar select{border:1px solid var(--navy-200);border-radius:var(--radius-sm);background:var(--bg-white);color:var(--navy-900);font-family:DM Sans,sans-serif;font-size:var(--text-sm);outline:none;padding:.45rem .75rem;transition:border-color .2s,box-shadow .2s}.table-toolbar input:focus,.table-toolbar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e1f,inset 0 1px 2px #0000000a}.table-toolbar input{flex:1;min-width:180px}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}th.sortable:hover{color:var(--accent)}.row-failed td{background:#dc262608}.row-failed{border-left:3px solid var(--red-600)}.row-completed{border-left:3px solid var(--green-600)}.file-icon{vertical-align:middle;color:var(--red-600);flex-shrink:0;align-items:center;margin-right:.35rem;display:inline-flex}.job-detail-panel{background:var(--bg-light);border-radius:var(--radius-sm);animation:panel-expand var(--duration-normal) var(--ease-out-expo);grid-template-columns:minmax(0,1.5fr) minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:.75rem 1.5rem;margin:0 .75rem .75rem;padding:1rem 1.25rem;display:grid;overflow:hidden}.job-detail-panel>div{min-width:0}@keyframes panel-expand{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0}to{opacity:1;max-height:500px}}.job-detail-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--navy-400);margin-bottom:.15rem;font-weight:600}.job-detail-value{font-size:var(--text-base);color:var(--navy-900);white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0}tr.row-clickable{cursor:pointer}.pagination{border-top:1px solid var(--navy-200);justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;padding-top:.75rem;display:flex}.pagination-info{font-size:var(--text-sm);color:var(--navy-600);text-align:center;min-width:4rem;font-weight:500}.row-checkbox{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.bulk-action-bar{bottom:var(--space-6);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);background:var(--navy-900);color:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);z-index:var(--z-sticky);animation:slide-up .2s var(--ease-out-expo);font-size:var(--text-sm);display:flex;position:fixed;left:50%;transform:translate(-50%)}.bulk-action-bar button{font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}@keyframes slide-up{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.show-sm,.show-md{display:none!important}@media (width<=1280px){.col-invoice-date,.col-due-date{display:none}}@media (width<=1100px){.col-project-ref{display:none}}@media (width<=1024px){th,td{padding:.5rem .4rem;font-size:.84rem}th{font-size:.62rem}.cell-checkbox{width:30px}.hide-sm{display:none!important}.show-sm{display:block!important}}@media (width<=768px){.hide-md{display:none!important}.show-md{display:block!important}.col-status,.col-created{display:none}.bulk-action-bar{bottom:calc(60px + env(safe-area-inset-bottom,0px) + .75rem)}.table-toolbar{flex-direction:column}.table-toolbar input{width:100%;min-width:0}}.column-toggle{position:relative}.column-toggle-dropdown{z-index:var(--z-dropdown);background:var(--bg-white);border:1px solid var(--navy-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);white-space:nowrap;grid-template-columns:1fr auto;align-items:center;gap:0 4px;padding:3px;animation:.15s dropdown-enter;display:grid;position:absolute;top:100%;right:0}.column-toggle-item{font-size:var(--text-sm);color:var(--navy-700);cursor:pointer;display:contents}.column-toggle-label{border-radius:var(--radius-sm);padding:2px 4px;font-size:.75rem}.column-toggle-item:hover .column-toggle-label{background:var(--bg-hover)}.column-toggle-item input{accent-color:var(--accent);flex-shrink:0;width:14px;height:14px;margin:0}.empty-filter-state{color:var(--navy-400);font-size:var(--text-sm);flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.card table thead th{z-index:var(--z-base);position:sticky;top:0}th.sortable .sort-icon{vertical-align:middle;width:12px;height:12px;margin-left:var(--space-1);opacity:.35;display:inline-block}th.sortable.sort-asc .sort-icon,th.sortable.sort-desc .sort-icon{opacity:.8}.cell-checkbox{text-align:center;cursor:pointer;width:36px}.context-menu{z-index:var(--z-modal);background:var(--bg-white);border:1px solid var(--navy-200);border-radius:var(--radius-sm);min-width:160px;box-shadow:var(--shadow-lg);padding:.25rem;position:fixed}.context-menu-item{text-align:left;width:100%;color:var(--navy-900);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-xs,4px);white-space:nowrap;background:0 0;border:none;padding:.4rem .75rem;display:block}.context-menu-item:hover{background:var(--navy-50)}.context-menu-item-danger{color:var(--red-600)}.context-menu-item-danger:hover{background:var(--red-50,#fef2f2)}[data-theme=dark] .context-menu{background:var(--navy-800);border-color:var(--navy-600)}[data-theme=dark] .context-menu-item{color:var(--navy-100)}[data-theme=dark] .context-menu-item:hover{background:var(--navy-700)}[data-theme=dark] th{background:var(--dark-bg-surface);color:var(--dark-text-muted);border-bottom-color:var(--dark-border)}[data-theme=dark] td{color:var(--dark-text-secondary);border-bottom-color:#ffffff0a}[data-theme=dark] td:first-child{color:var(--dark-text-primary)}[data-theme=dark] tr:nth-child(2n) td{background:#ffffff04}[data-theme=dark] tr:hover td{background:#259b8e0f}[data-theme=dark] .table-toolbar input,[data-theme=dark] .table-toolbar select{background:var(--dark-bg-hover);border-color:var(--dark-border);color:var(--dark-text-primary)}[data-theme=dark] .table-toolbar input:focus,[data-theme=dark] .table-toolbar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e33,inset 0 1px 2px #0003}[data-theme=dark] .row-failed td{background:#dc26260f}[data-theme=dark] .job-detail-label{color:var(--dark-text-faint)}[data-theme=dark] .job-detail-value{color:var(--dark-text-primary)}[data-theme=dark] .pagination{border-top-color:var(--dark-border)}[data-theme=dark] .pagination-info{color:var(--dark-text-muted)}[data-theme=dark] .bulk-action-bar{background:var(--dark-bg-elevated);box-shadow:0 8px 16px #0006,0 20px 48px #00000080}[data-theme=dark] .column-toggle-dropdown{background:var(--dark-bg-elevated);border-color:var(--dark-border)}[data-theme=dark] .column-toggle-item{color:var(--dark-text-secondary)}[data-theme=dark] .column-toggle-item:hover{background:var(--dark-bg-hover)}.row-unassigned{border-left:3px solid var(--amber-500,#f59e0b)}.inbox-assign-select{border:1px solid var(--border,var(--navy-200));border-radius:var(--radius-sm,4px);background:var(--surface,#fff);color:var(--text,var(--navy-900));cursor:pointer;width:100%;max-width:133px;padding:2px 6px;font-size:.75rem}.inbox-assign-select:focus{outline:2px solid var(--primary);outline-offset:-1px}td .time-info.processing{font-size:.75rem}.cell-status{white-space:normal;overflow:visible}.detail-edit-input{border:1px solid var(--navy-300,#cbd5e1);border-radius:var(--radius-sm,4px);background:var(--bg-white,#fff);width:100%;color:var(--navy-900);padding:.3rem .5rem;font-family:inherit;font-size:.85rem}.detail-edit-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #259b8e26}[data-theme=dark] .detail-edit-input{background:var(--dark-bg-hover);border-color:var(--dark-border);color:var(--dark-text-primary)}[data-theme=dark] .inbox-assign-select{background:var(--dark-bg-elevated);border-color:var(--dark-border);color:var(--dark-text)}.inbox-create-row td{border-top:none;padding:0}[data-theme=dark] .inbox-create-row div{background:var(--dark-bg-elevated)!important}.activity-log{border-top:1px solid var(--border,#e2e8f0);margin-top:.75rem;padding-top:.75rem}.activity-log-title{font-size:var(--text-xs,.75rem);text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint,#64748b);margin-bottom:.5rem;font-weight:600}.activity-log-loading,.activity-log-empty{font-size:var(--text-xs,.75rem);color:var(--text-faint,#64748b);padding:.25rem 0}.activity-timeline{flex-direction:column;gap:.25rem;display:flex}.activity-entry{align-items:flex-start;gap:.5rem;padding:.25rem 0;display:flex}.activity-dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;margin-top:.1rem;display:flex}.activity-icon{color:#fff;font-size:.6rem;line-height:1}.activity-content{flex:1;min-width:0}.activity-description{font-size:var(--text-sm,.8125rem);color:var(--text-primary,#1e293b);line-height:1.3}.activity-meta{color:var(--text-faint,#94a3b8);gap:.75rem;margin-top:.1rem;font-size:.675rem;display:flex}.activity-diff{font-size:.7rem;font-family:var(--font-mono,monospace);align-items:center;gap:.25rem;margin-top:.15rem;display:flex}.activity-old{color:var(--red-600,#dc2626);text-decoration:line-through}.activity-arrow{color:var(--text-faint,#94a3b8)}.activity-new{color:var(--green-600,#16a34a)}[data-theme=dark] .activity-log{border-top-color:var(--dark-border,#334155)}[data-theme=dark] .activity-log-title,[data-theme=dark] .activity-log-loading,[data-theme=dark] .activity-log-empty{color:var(--dark-text-faint,#64748b)}[data-theme=dark] .activity-description{color:var(--dark-text-primary,#f1f5f9)}[data-theme=dark] .activity-meta{color:var(--dark-text-faint,#64748b)}.upload-zone{border:2px dashed var(--navy-200);border-radius:var(--radius-lg);text-align:center;cursor:pointer;color:var(--navy-600);font-size:var(--text-base);background:linear-gradient(#259b8e05,#0000);padding:3rem 2rem;transition:all .25s;position:relative}.upload-zone:hover{border-color:var(--accent);color:var(--accent);background:linear-gradient(#259b8e0f,#259b8e05);transform:translateY(-2px);box-shadow:0 4px 16px #259b8e1a}.upload-zone.dragging{border-style:solid;border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 4px var(--accent-light), 0 0 24px #259b8e26;background:linear-gradient(#259b8e14,#259b8e08);transform:scale(1.01)}.upload-zone input{display:none}.upload-icon{color:var(--navy-300);transition:color var(--transition-base), transform var(--transition-base);margin-bottom:.5rem}.upload-zone:hover .upload-icon{color:var(--accent);transform:translateY(-2px)}.upload-file-preview{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-light);border-radius:var(--radius-md);margin-top:var(--space-3);font-size:var(--text-sm);display:flex}.upload-file-info{text-align:left;flex:1}.upload-file-name{color:var(--navy-900);font-weight:600}.upload-file-size{font-size:var(--text-xs);color:var(--navy-400)}.upload-progress{background:var(--navy-100);width:100%;height:4px;margin-top:var(--space-2);border-radius:2px;overflow:hidden}.upload-progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-secondary));border-radius:2px;height:100%;transition:width .3s}.upload-success-anim{color:var(--green-600);font-weight:600;animation:.5s forwards upload-success}@keyframes upload-success{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}[data-theme=dark] .upload-zone{border-color:var(--dark-border);color:var(--dark-text-muted);background:linear-gradient(#259b8e0a,#0000)}[data-theme=dark] .upload-zone:hover{border-color:var(--accent);color:var(--accent);background:linear-gradient(#259b8e14,#259b8e08)}[data-theme=dark] .upload-zone.dragging{border-color:var(--accent);background:linear-gradient(#259b8e1a,#259b8e0a)}[data-theme=dark] .upload-icon{color:var(--dark-text-faint)}[data-theme=dark] .upload-file-preview{background:var(--dark-bg-surface)}[data-theme=dark] .upload-file-name{color:var(--dark-text-primary)}[data-theme=dark] .upload-file-size{color:var(--dark-text-faint)}[data-theme=dark] .upload-progress{background:#ffffff0f}@media (width<=768px){.upload-zone{padding:1.5rem 1rem}}.toast-container{z-index:var(--z-modal);pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}.toast{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-left:4px solid var(--navy-400);box-shadow:var(--shadow-lg);color:var(--navy-900);pointer-events:auto;background:#ffffffe6;align-items:center;gap:.75rem;min-width:260px;max-width:400px;padding:.75rem 1rem;font-size:.84rem;animation:.3s forwards toast-in;display:flex}.toast-success{border-left-color:var(--green-600)}.toast-error{border-left-color:var(--red-600)}.toast-info{border-left-color:var(--accent)}.toast-message{flex:1}.toast-close{color:var(--navy-400);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.1rem;line-height:1}.toast-close:hover{color:var(--navy-900);box-shadow:none;background:0 0;transform:none}.toast-action{color:inherit;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;white-space:nowrap;transition:opacity var(--duration-fast) ease;background:0 0;border:1px solid;flex-shrink:0;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.toast-action:hover{opacity:.8}@keyframes toast-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.toast-success .toast-icon{color:var(--green-600)}.toast-error .toast-icon{color:var(--red-600)}.toast-info .toast-icon{color:var(--accent)}.toast-exit{animation:.3s forwards toast-out}@keyframes toast-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-countdown{border-radius:0 0 0 var(--radius-lg);height:3px;position:absolute;bottom:0;left:0}.toast-success .toast-countdown{background:var(--green-600)}.toast-error .toast-countdown{background:var(--red-600)}.toast-info .toast-countdown{background:var(--accent)}.toast{position:relative;overflow:hidden}[data-theme=dark] .toast-close{color:var(--dark-text-muted)}[data-theme=dark] .toast-close:hover{color:var(--dark-text-primary)}.labeling-container{background:var(--dark-bg-page);min-height:0;color:var(--dark-text-primary);flex-direction:column;flex:1;display:flex}.labeling-toolbar{background:var(--dark-bg-surface);border-bottom:1px solid var(--dark-border);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.labeling-toolbar button{background:var(--dark-bg-hover);color:var(--dark-text-secondary);border:1px solid var(--dark-border);padding:.4rem .85rem;font-size:.78rem}.labeling-toolbar button:hover{background:var(--dark-bg-active);color:var(--dark-text-primary);border-color:var(--dark-border-hover);box-shadow:none;transform:none}.labeling-toolbar .save-btn{background:var(--accent);color:#fff;border:none}.labeling-toolbar .save-btn:hover{background:var(--accent-hover);box-shadow:0 0 16px #2a9d8f59}.page-nav{color:var(--dark-text-muted);align-items:center;gap:.5rem;font-size:.8rem;font-weight:500;display:flex}.zoom-controls{align-items:center;gap:.35rem;display:flex}.zoom-level{color:var(--dark-text-muted);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:3rem;font-size:.75rem}.zoom-level:hover{color:var(--dark-text-primary)}.labeling-body{flex:1;display:flex;overflow:hidden}.labeling-viewer{text-align:center;background:var(--dark-bg-page);background-image:radial-gradient(circle at 1px 1px,#ffffff05 1px,#0000 0);background-size:20px 20px;flex:1;padding:1.5rem;overflow:auto}.image-container{text-align:left;border-radius:var(--radius-md);margin:0;display:inline-block;position:relative;overflow:visible;box-shadow:0 8px 32px #0006}.image-container img{-webkit-user-select:none;user-select:none;max-width:100%;max-height:calc(100vh - 70px);display:block}.bbox-overlay{cursor:default;border-radius:2px;transition:background-color .12s,border-color .12s;position:absolute}.bbox-overlay.clickable{cursor:crosshair}.labeling-panel{background:var(--dark-bg-surface);border-left:1px solid var(--dark-border);width:280px;padding:1.25rem;overflow-y:auto}.labeling-panel h3{color:var(--dark-text-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem;font-size:.7rem}.field-item{border-radius:var(--radius-sm);background:var(--dark-bg-elevated,#1e2036);cursor:pointer;border:1px solid #0000;border-left:3px solid #4b5070;margin-bottom:.5rem;padding:.7rem .85rem;transition:all .15s}.field-item:hover{background:var(--dark-bg-hover,#252840);border-color:#ffffff0f;border-left-width:3px}.field-item.selected{background:var(--dark-bg-hover,#282c48);border-color:#ffffff1a;border-left-width:3px;box-shadow:0 0 12px #0000004d}.field-item.assigned{background:#16a34a14;border-color:#16a34a1f;border-left-width:3px}.field-name{letter-spacing:-.01em;margin-bottom:.25rem;font-size:.82rem;font-weight:600}.field-value{color:var(--accent-secondary);word-break:break-all;align-items:center;gap:.5rem;font-size:.78rem;line-height:1.4;display:flex}.field-hint{color:#5b6080;font-size:.72rem;font-style:italic}.clear-btn{color:#6b7194;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff14;flex-shrink:0;padding:.1rem .45rem;font-size:.65rem;line-height:1.4;transition:all .15s}.clear-btn:hover{background:var(--red-600);color:#fff;border-color:var(--red-600);box-shadow:none;transform:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000026 padding-box content-box;border:1px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000040 padding-box content-box;border:1px solid #0000}.labeling-container ::-webkit-scrollbar-thumb{background:#ffffff1a}.labeling-container ::-webkit-scrollbar-thumb:hover{background:#ffffff2e}.mobile-hint-banner{color:var(--dark-text-secondary);border-bottom:1px solid var(--dark-border);background:#259b8e26;justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.75rem;display:flex}.mobile-hint-banner button{color:var(--dark-text-muted);background:0 0;border:none;min-height:auto;padding:.2rem .4rem;font-size:.8rem}.mobile-hint-banner button:hover{color:var(--dark-text-primary);box-shadow:none;background:0 0;transform:none}@media (width<=768px){.labeling-body{flex-direction:column}.labeling-viewer{flex:1;min-height:40vh;padding:.5rem}.labeling-panel{border-left:none;border-top:1px solid var(--dark-border);width:100%;max-height:35vh;padding:.75rem}.field-item{min-height:44px}.labeling-toolbar{flex-wrap:wrap;gap:.4rem}.labeling-toolbar button{padding:.35rem .6rem;font-size:.72rem}.bbox-overlay.clickable:before{content:"";position:absolute;inset:-8px}}.btn-approve-green,.btn-approve-green:hover{color:#fff;background:#16a34a}.btn-approve-green:hover{background:#15803d;box-shadow:0 4px 14px #16a34a59}.app-shell-compact{flex-direction:column;height:100dvh;display:flex}.app-shell-compact-main{flex-direction:column;flex:1;min-height:0;display:flex}.review-container{background:var(--bg-page);min-height:0;color:var(--navy-900);flex-direction:column;flex:1;display:flex}.review-toolbar{background:var(--bg-white);border-bottom:1px solid var(--navy-200);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.review-toolbar button{background:var(--bg-light);color:var(--navy-600);border:1px solid var(--navy-200);padding:.4rem .85rem;font-size:.78rem}.review-toolbar button:hover{background:var(--bg-hover);color:var(--navy-900);border-color:var(--navy-300);box-shadow:none;transform:none}.review-toolbar .save-btn{background:var(--accent);color:#fff;border:none}.review-toolbar .save-btn:hover{background:var(--accent-hover);box-shadow:0 0 16px #2a9d8f59}.review-toolbar-left,.review-toolbar-right{align-items:center;gap:.75rem;display:flex}.review-pending-badge{color:#2563eb;background:#60a5fa1f;border-radius:10px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.review-history-btn{align-items:center;gap:.35rem;display:flex}.review-body{flex:1;display:flex;overflow:hidden}.review-viewer{text-align:center;background:var(--bg-light);background-image:radial-gradient(circle at 1px 1px,#00000008 1px,#0000 0);background-size:20px 20px;flex:0 0 45%;padding:1.5rem;overflow:auto}.review-panel{background:var(--bg-white);border-left:1px solid var(--navy-200);flex-direction:column;flex:1;display:flex;overflow:hidden}.review-table-tabs{border-bottom:1px solid var(--navy-200);flex-shrink:0;gap:0;padding:0 .5rem;display:flex}.review-tab{color:var(--navy-500);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1rem;font-size:.78rem;transition:all .15s}.review-tab:hover{color:var(--navy-700);background:var(--navy-100);box-shadow:none;border:none;border-bottom:2px solid #0000;transform:none}.review-tab-active,.review-tab-active:hover{color:var(--accent);border-bottom-color:var(--accent)}.review-tab:focus-visible{box-shadow:var(--focus-ring);outline:none}.review-table-wrapper{flex:1;padding:0;position:relative;overflow:auto}.review-sum-anchor{pointer-events:none;z-index:20;justify-content:flex-end;margin-top:-52px;padding-right:12px;display:flex;position:sticky;bottom:12px}.review-sum-badge{background:var(--bg-white);border:1px solid var(--navy-200);border-left:3px solid var(--accent);color:var(--navy-900);pointer-events:auto;border-radius:6px;align-items:center;gap:.6rem;padding:.45rem .55rem .45rem .75rem;font-size:.85rem;display:inline-flex;box-shadow:0 4px 14px #0f172a1f}.review-sum-badge-main{font-variant-numeric:tabular-nums;align-items:baseline;gap:.35rem;display:inline-flex}.review-sum-badge-sigma{color:var(--accent);font-size:1.05rem;font-weight:600}.review-sum-badge-value{font-size:1rem;font-weight:600}.review-sum-badge-meta{color:var(--navy-500,#64748b);white-space:nowrap;font-size:.72rem}.review-sum-badge-clear{width:22px;height:22px;color:var(--navy-500,#64748b);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.review-sum-badge-clear:hover{background:var(--navy-100);color:var(--navy-900)}.review-cell-marked{box-shadow:inset 0 0 0 2px var(--accent);background:#259b8e24}.review-cell-marked:hover{background:#259b8e38}.review-kontering-dock{border-top:2px solid var(--navy-200);background:var(--bg-white);flex-shrink:0;width:100%;max-height:50vh;padding:.5rem 1rem .75rem;overflow:auto;box-shadow:0 -2px 8px #0000000a}.review-kontering-dock .kontering-panel{margin-top:0!important}.kontering-balance{align-items:center;gap:1.25rem;padding:.5rem .25rem;font-size:.85rem;display:flex}.kontering-balance strong{color:var(--navy-600);margin-right:.25rem;font-weight:600}.kontering-balance-ok{color:var(--navy-800)}.kontering-balance-off{color:#b45309}.kontering-transaction-info{align-items:center;gap:.5rem;padding:.25rem .25rem .5rem;display:flex}.kontering-transaction-info label{color:var(--navy-600);flex-shrink:0;font-size:.85rem;font-weight:600}.kontering-transaction-info input{border:1px solid var(--navy-200);background:var(--bg-white);border-radius:4px;flex:1;padding:.35rem .5rem;font-size:.85rem}.kontering-transaction-info input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #2a9d8f26}.kontering-combo-cell{min-width:200px;padding:.25rem!important}.searchable-combobox{width:100%;position:relative}.searchable-combobox input{border:1px solid var(--navy-200);background:var(--bg-white);border-radius:4px;width:100%;padding:.35rem .5rem;font-size:.85rem}.searchable-combobox input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #2a9d8f26}.searchable-combobox.is-disabled input{background:var(--bg-light);color:var(--navy-500)}.searchable-combobox-list{z-index:1000;background:var(--bg-white);border:1px solid var(--navy-200);border-radius:4px;min-width:260px;max-height:280px;margin:0;padding:.25rem 0;font-size:.82rem;list-style:none;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.searchable-combobox-list li{cursor:pointer;white-space:nowrap;gap:.5rem;padding:.3rem .6rem;display:flex}.searchable-combobox-list li.combobox-active{background:#2a9d8f1f}.searchable-combobox-list .combobox-value{color:var(--navy-800);min-width:3.5rem;font-weight:600}.searchable-combobox-list .combobox-label{color:var(--navy-500);text-overflow:ellipsis;overflow:hidden}.searchable-combobox-list .combobox-empty{color:var(--navy-400);cursor:default;padding:.4rem .6rem}.searchable-combobox-list .combobox-header{text-transform:uppercase;letter-spacing:.04em;color:var(--navy-500);cursor:default;background:var(--bg-light);padding:.35rem .6rem .15rem;font-size:.66rem;font-weight:700}.searchable-combobox-list .combobox-divider{background:var(--navy-100);cursor:default;height:1px;margin:.25rem 0;padding:0;list-style:none}.searchable-combobox-list li.combobox-suggestion .combobox-value{color:var(--accent)}.searchable-combobox-list li.combobox-suggestion:hover{background:#2a9d8f14}.kontering-suggestion-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);vertical-align:middle;background:#2a9d8f26;border-radius:10px;margin-left:.4rem;padding:.08rem .45rem;font-size:.62rem;font-weight:700;display:inline-block}.kontering-suggestion-badge.is-readonly{opacity:.5}.attest-preflight-warning{color:#78350f;background:#f59e0b14;border:1px solid #f59e0b;border-left-width:3px;border-radius:4px;margin-bottom:.5rem;padding:.6rem .85rem;font-size:.85rem}.attest-preflight-warning strong{margin-bottom:.25rem;display:block}.attest-preflight-warning ul{margin:0;padding-left:1.15rem}.attest-preflight-warning li{margin:.15rem 0}.review-table{border-collapse:collapse;width:100%;font-size:.78rem}.review-table thead{z-index:var(--z-base);position:sticky;top:0}.review-table th{background:var(--bg-light);color:var(--navy-500);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--navy-200);white-space:nowrap;padding:.55rem .6rem;font-size:.7rem;font-weight:600}.review-table th.review-th{padding:.35rem .4rem .35rem .6rem;position:relative}.review-th-trigger{cursor:pointer;width:100%;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;text-align:left;background:0 0;border:none;border-radius:4px;justify-content:space-between;align-items:center;gap:.4rem;margin:0;padding:.25rem .35rem;transition:background .1s;display:flex}.review-th-trigger:hover,.review-th-trigger.open{color:var(--teal-700,#0f766e);background:#0f766e1a}.review-th-trigger:focus-visible{outline:2px solid var(--teal-500,#14b8a6);outline-offset:1px}.review-th-label-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.review-th-indicators{flex-shrink:0;align-items:center;gap:.25rem;display:inline-flex}.review-th-caret{opacity:.55;transition:opacity .1s}.review-th-trigger:hover .review-th-caret{opacity:.9}.review-th-caret.active{opacity:1;color:var(--teal-600,#0f766e)}.review-th-filter-dot{background:var(--teal-500,#14b8a6);border-radius:50%;width:6px;height:6px;display:inline-block}.review-filter-popup{background:var(--bg-white,#fff);border:1px solid var(--navy-200,#d6dae6);min-width:220px;max-width:280px;z-index:calc(var(--z-base,10) + 20);text-transform:none;letter-spacing:normal;border-radius:6px;margin-top:2px;padding:.5rem;font-weight:400;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #0f172a2e}.review-filter-popup-portal{z-index:9999;margin-top:0;position:fixed;top:0;left:0}.review-popup-sort{flex-direction:column;gap:.15rem;display:flex}.review-popup-sort-btn{cursor:pointer;width:100%;color:var(--text-default,#1e293b);text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:.45rem;padding:.4rem .55rem;font-size:.78rem;display:flex}.review-popup-sort-btn:hover:not(:disabled){background:#0f766e14}.review-popup-sort-btn.active{color:var(--teal-700,#0f766e);background:#0f766e24;font-weight:600}.review-popup-sort-btn:disabled{opacity:.45;cursor:not-allowed}.review-popup-divider{background:var(--navy-100,#e2e8f0);height:1px;margin:.45rem -.5rem}.review-popup-list-header{color:var(--navy-500);justify-content:space-between;align-items:center;gap:.4rem;padding:.1rem .3rem .35rem;font-size:.72rem;display:flex}.review-popup-count{font-variant-numeric:tabular-nums}.review-popup-list-actions{gap:.25rem;display:flex}.review-popup-list-actions button{border:1px solid var(--navy-200,#d6dae6);cursor:pointer;color:var(--text-default,#1e293b);background:0 0;border-radius:3px;padding:.15rem .4rem;font-size:.72rem}.review-popup-list-actions button:hover{background:#0f766e14}.review-filter-search{border:1px solid var(--navy-200,#d6dae6);background:var(--bg-white,#fff);width:100%;color:var(--text-default,#1e293b);box-sizing:border-box;border-radius:4px;margin-bottom:.3rem;padding:.35rem .5rem;font-size:.78rem}.review-filter-search:focus{border-color:var(--teal-500,#14b8a6);outline:none}.review-filter-actions{gap:.4rem;margin:.4rem 0 .3rem;display:flex}.review-filter-actions button{background:var(--bg-light);border:1px solid var(--navy-200);cursor:pointer;color:var(--text-default,#1e293b);border-radius:4px;flex:1;padding:.25rem .4rem;font-size:.7rem}.review-filter-actions button:hover{background:var(--navy-100,#e2e8f0)}.review-filter-options{border-top:1px solid var(--navy-100,#e2e8f0);max-height:220px;padding-top:.3rem;overflow-y:auto}.review-filter-option{cursor:pointer;color:var(--text-default,#1e293b);border-radius:3px;align-items:center;gap:.4rem;padding:.25rem .3rem;font-size:.78rem;display:flex}.review-filter-option:hover{background:#0f766e14}.review-filter-option input[type=checkbox]{flex-shrink:0;margin:0}.review-filter-option span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.review-filter-bar{border-bottom:1px solid var(--navy-100,#e2e8f0);background:#0f766e0f;align-items:center;gap:.6rem;padding:.4rem .6rem;font-size:.75rem;display:flex}.review-filter-summary{color:var(--navy-500);font-weight:500}.review-filter-clear{background:var(--bg-white,#fff);border:1px solid var(--navy-200);cursor:pointer;color:var(--text-default,#1e293b);border-radius:4px;align-items:center;gap:.25rem;padding:.2rem .5rem;font-size:.72rem;display:inline-flex}.review-filter-clear:hover{background:var(--navy-100,#e2e8f0)}.review-row-num{color:var(--navy-400);text-align:center;-webkit-user-select:none;user-select:none;width:2rem;font-size:.68rem}.review-table tbody tr{transition:background .1s}.review-table tbody tr:hover{background:#259b8e0a}.review-cell{border-bottom:1px solid var(--navy-100);cursor:text;text-overflow:ellipsis;white-space:nowrap;max-width:200px;padding:.4rem .6rem;transition:background .12s;position:relative;overflow:hidden}.review-cell:hover{background:#259b8e14}.review-cell-value{display:inline}.review-cell-empty{background:#ca8a040f}.review-cell-empty:hover{background:#ca8a041f}.review-cell-edited{background:#16a34a0f}.review-cell-edited:hover{background:#16a34a1f}.review-cell-pending{background:#60a5fa14}.review-cell-pending:hover{background:#60a5fa26}.review-cell-editing{background:#259b8e14;padding:0}.review-cell-input{background:var(--bg-white);width:100%;color:var(--navy-900);border:1.5px solid var(--accent);border-radius:2px;outline:none;padding:.4rem .6rem;font-family:inherit;font-size:.78rem;box-shadow:0 0 8px #259b8e40}.review-cell-indicator{line-height:0;position:absolute;top:2px;right:2px}.review-loading{padding:1.5rem}.review-empty{text-align:center;color:var(--navy-500);padding:2rem;font-size:.85rem}.review-history-panel{border-top:1px solid var(--navy-200);background:var(--bg-light);flex-shrink:0;max-height:280px;padding:1rem;overflow-y:auto}.review-history-panel h4{color:var(--navy-500);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem;font-size:.7rem}.review-history-empty{color:var(--navy-400);font-size:.78rem;font-style:italic}.review-history-version{background:var(--bg-white);border-radius:var(--radius-sm);border-left:3px solid var(--accent);margin-bottom:.75rem;padding:.6rem .7rem}.review-history-header{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.review-version-badge{background:var(--accent);color:#fff;border-radius:4px;padding:.1rem .4rem;font-size:.68rem;font-weight:700}.review-version-time{color:var(--navy-500);font-size:.68rem}.review-version-count{color:var(--navy-600);margin-left:auto;font-size:.68rem}.review-history-edits{flex-direction:column;gap:.2rem;display:flex}.review-history-edit{align-items:center;gap:.5rem;padding:.2rem 0;font-size:.72rem;display:flex}.review-edit-location{color:var(--navy-500);background:var(--navy-100);border-radius:3px;flex-shrink:0;padding:.05rem .3rem;font-family:monospace;font-size:.65rem}.review-edit-col{color:var(--navy-600);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:80px;font-weight:600;overflow:hidden}.review-edit-diff{align-items:center;gap:.3rem;min-width:0;display:flex;overflow:hidden}.review-diff-old{color:var(--red-600);text-overflow:ellipsis;white-space:nowrap;max-width:100px;text-decoration:line-through;overflow:hidden}.review-diff-new{color:var(--green-600);text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-weight:500;overflow:hidden}[data-theme=dark] .review-container{background:var(--dark-bg-page);color:var(--dark-text-primary)}[data-theme=dark] .review-toolbar{background:var(--dark-bg-surface);border-bottom-color:var(--dark-border)}[data-theme=dark] .review-toolbar button{background:var(--dark-bg-hover);color:var(--dark-text-secondary);border-color:#ffffff1a}[data-theme=dark] .review-toolbar button:hover{background:var(--dark-bg-active);color:var(--dark-text-primary);border-color:var(--dark-border-hover)}[data-theme=dark] .review-pending-badge{color:#60a5fa;background:#60a5fa26}[data-theme=dark] .review-viewer{background:var(--dark-bg-page);background-image:radial-gradient(circle at 1px 1px,#ffffff05 1px,#0000 0);background-size:20px 20px}[data-theme=dark] .review-panel{background:var(--dark-bg-surface);border-left-color:var(--dark-border)}[data-theme=dark] .review-table-tabs{border-bottom-color:#ffffff14}[data-theme=dark] .review-tab{color:#6b7194}[data-theme=dark] .review-tab:hover{color:#c0c4d6;background:#ffffff08}[data-theme=dark] .review-table th{color:#9aa0b8;background:#1e2036;border-bottom-color:#ffffff1a}[data-theme=dark] .review-th-trigger:hover,[data-theme=dark] .review-th-trigger.open,[data-theme=dark] .review-th-caret.active{color:#5eead4;background:#5eead41a}[data-theme=dark] .review-th-trigger.open,[data-theme=dark] .review-th-caret.active{background:0 0}[data-theme=dark] .review-th-trigger.open{background:#5eead41f}[data-theme=dark] .review-popup-sort-btn{color:#c0c4d6}[data-theme=dark] .review-popup-sort-btn:hover:not(:disabled){background:#5eead41a}[data-theme=dark] .review-popup-sort-btn.active{color:#5eead4;background:#5eead42e}[data-theme=dark] .review-popup-divider{background:#ffffff14}[data-theme=dark] .review-popup-list-header{color:#9aa0b8}[data-theme=dark] .review-popup-list-actions button{color:#c0c4d6;background:#13152a;border-color:#ffffff1f}[data-theme=dark] .review-popup-list-actions button:hover{background:#5eead41a}[data-theme=dark] .review-filter-popup{color:#e2e4ed;background:#1a1c2e;border-color:#ffffff1f}[data-theme=dark] .review-filter-search{color:#e2e4ed;background:#13152a;border-color:#ffffff1f}[data-theme=dark] .review-filter-actions button{color:#c0c4d6;background:#13152a;border-color:#ffffff1f}[data-theme=dark] .review-filter-actions button:hover{background:#2a2d44}[data-theme=dark] .review-filter-options{border-top-color:#ffffff14}[data-theme=dark] .review-filter-option{color:#c0c4d6}[data-theme=dark] .review-filter-option:hover{background:#5eead414}[data-theme=dark] .review-filter-bar{background:#5eead40f;border-bottom-color:#ffffff0f}[data-theme=dark] .review-filter-summary{color:#9aa0b8}[data-theme=dark] .review-filter-clear{color:#c0c4d6;background:#1a1c2e;border-color:#ffffff1f}[data-theme=dark] .review-filter-clear:hover{background:#2a2d44}[data-theme=dark] .review-row-num{color:#4b5070}[data-theme=dark] .review-table tbody tr:hover{background:#ffffff08}[data-theme=dark] .review-cell{border-bottom-color:#ffffff0a}[data-theme=dark] .review-cell:hover{background:#259b8e14}[data-theme=dark] .review-cell-input{color:#e2e4ed;background:#ffffff14}[data-theme=dark] .review-empty{color:#6b7194}[data-theme=dark] .review-history-panel{background:#13152380;border-top-color:#ffffff14}[data-theme=dark] .review-history-panel h4{color:#6b7194}[data-theme=dark] .review-history-empty{color:#5b6080}[data-theme=dark] .review-history-version{background:#1e2036}[data-theme=dark] .review-version-time{color:#6b7194}[data-theme=dark] .review-version-count{color:#9aa0b8}[data-theme=dark] .review-edit-location{color:#6b7194;background:#ffffff0a}[data-theme=dark] .review-edit-col{color:#9aa0b8}[data-theme=dark] .review-diff-old{color:#f87171}[data-theme=dark] .review-diff-new{color:var(--accent-secondary)}[data-theme=dark] .review-container ::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] .review-container ::-webkit-scrollbar-thumb:hover{background:#ffffff2e}@media (width<=768px){.review-body{flex-direction:column}.review-viewer{flex:0 0 35vh;padding:.5rem}.review-panel{border-left:none;border-top:1px solid var(--navy-200);flex:1;min-height:0}[data-theme=dark] .review-panel{border-top-color:var(--dark-border)}.review-toolbar{flex-wrap:wrap;gap:.4rem;padding:.4rem .5rem}.review-toolbar button{min-height:36px;padding:.3rem .5rem;font-size:.7rem}.review-cell{min-height:40px;padding:.5rem .6rem}.review-cell-input{min-height:40px;font-size:16px}.review-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.review-table{min-width:500px}.review-viewer,.labeling-viewer{touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}}.review-compare-toolbar{border-bottom:1px solid var(--navy-100,#e2e8f0);background:var(--navy-50,#f8fafc);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.review-compare-toolbar-picker{padding:.75rem;display:block}.review-compare-chips{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.review-compare-actions{flex-wrap:wrap;gap:.35rem;margin-left:auto;display:flex}.review-compare-picker{width:100%}.review-compare-picker-header{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.review-compare-picker-hint{color:var(--navy-400,#94a3b8);margin:0 0 .5rem;font-size:.78rem}.review-table tr.review-row-status-match td:first-child{box-shadow:inset 3px 0 #16a34a}.review-table tr.review-row-status-price-diff td:first-child{box-shadow:inset 3px 0 #d97706}.review-table tr.review-row-status-quantity-exceeded td:first-child{box-shadow:inset 3px 0 #f97316}.review-table tr.review-row-status-not-found td:first-child,.review-table tr.review-row-status-fee-issue td:first-child{box-shadow:inset 3px 0 #dc2626}.review-table tr.review-row-status-condition-ambiguous td:first-child{box-shadow:inset 3px 0 #a855f7}.review-row-dimmed{opacity:.35}.review-row-num-clickable{cursor:pointer}.review-row-num-clickable:hover{background:var(--navy-100,#e3e8ef)}.review-cell-expected{margin-top:2px;font-size:.68rem;font-weight:500;line-height:1.1;display:block}.review-cell-expected.over{color:#b45309}.review-cell-expected.under{color:#15803d}.review-cell-diff-over{background:#d977060f}.review-cell-diff-under{background:#16a34a0f}.review-cell-qty-exceeded{background:#f9731614}.review-compare-detail-row td{background:var(--navy-50,#f8fafc);border-top:1px solid var(--navy-100,#e2e8f0);padding:.6rem .85rem}.review-compare-detail{flex-direction:column;gap:.6rem;display:flex}.review-compare-detail-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.35rem 1rem;font-size:.8rem;display:grid}.review-compare-detail-actions{gap:.4rem;display:flex}.review-correction-form{background:var(--white,#fff);border:1px solid var(--navy-200,#e2e8f0);border-radius:4px;padding:.5rem}[data-theme=dark] .review-compare-toolbar{background:#14182a;border-bottom-color:#262b40}[data-theme=dark] .review-compare-detail-row td{background:#14182a;border-top-color:#262b40}[data-theme=dark] .review-correction-form{background:#0f1322;border-color:#262b40}.admin-container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem 3rem}.stat-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem;display:grid}.stat-card{background:var(--bg-white);border:1px solid var(--navy-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), border-color var(--transition-base), transform var(--transition-base);padding:1.25rem 1.5rem;position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-secondary));opacity:0;height:3px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card:hover:before{opacity:1}.stat-value{font-size:var(--text-display);color:var(--navy-900);letter-spacing:-.03em;font-weight:700;line-height:1.2}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--navy-600);margin-top:.25rem;font-size:.78rem;font-weight:600}.stat-sub{text-transform:none;letter-spacing:normal;color:var(--navy-400);font-weight:400}.chart-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem;display:grid}.chart-card{background:var(--bg-white);border:1px solid var(--navy-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), border-color var(--transition-base);margin-bottom:1rem;padding:1.25rem 1.5rem}.chart-card:hover{box-shadow:var(--shadow-md);border-color:var(--navy-300)}.chart-card h3{margin-bottom:.85rem}.chart-grid .chart-card{margin-bottom:0}@media (width<=1024px){.stat-grid{grid-template-columns:repeat(2,1fr)}.stat-card,.chart-card{padding:1rem 1.15rem}}@media (width<=900px){.stat-grid{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}}@media (width<=768px){.admin-container .card{-webkit-overflow-scrolling:touch;overflow-x:auto}.admin-container table{min-width:400px}}@media (width<=480px){.stat-grid{grid-template-columns:1fr}}[data-theme=dark] .stat-card:hover{border-color:var(--dark-border-hover)}[data-theme=dark] .stat-value{color:var(--dark-text-primary)}[data-theme=dark] .stat-label{color:var(--dark-text-muted)}[data-theme=dark] .stat-sub{color:var(--dark-text-faint)}[data-theme=dark] .chart-card{background:var(--dark-bg-elevated);border-color:var(--dark-border)}[data-theme=dark] .chart-card:hover{border-color:var(--dark-border-hover)}.settings-description{color:var(--navy-500);margin-bottom:.75rem;font-size:.84rem}.settings-status{border-radius:var(--radius-sm);align-items:center;gap:.4rem;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.84rem;display:flex}.settings-status-ok{color:var(--green-600);background:#16a34a14}.settings-status-warn{color:var(--yellow-600);background:#ca8a0414}.settings-option-group{flex-wrap:wrap;gap:.5rem;display:flex}.settings-option{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:.4rem;padding:.55rem 1.15rem;font-size:.84rem;font-weight:600;display:inline-flex}.settings-option-active{box-shadow:0 2px 8px var(--accent-glow);background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.settings-option-active:hover{background:var(--accent-hover)!important}.settings-option:focus-visible{box-shadow:var(--focus-ring);outline:none}.settings-support-link{color:var(--accent);transition:color var(--transition-fast);align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.settings-support-link:hover{color:var(--accent-hover);text-decoration:underline}.settings-status-neutral{color:var(--navy-500);background:var(--bg-light)}.settings-shortcuts{flex-direction:column;gap:0;display:flex}.settings-shortcut-row{border-bottom:1px solid var(--navy-100);color:var(--navy-700);justify-content:space-between;align-items:center;padding:.55rem 0;font-size:.84rem;display:flex}.settings-shortcut-row:last-child{border-bottom:none}.settings-shortcut-keys{align-items:center;gap:.2rem;display:flex}.settings-shortcut-keys kbd{color:var(--navy-700);background:var(--bg-light);border:1px solid var(--navy-200);border-radius:var(--radius-sm);box-shadow:0 1px 0 var(--navy-200);padding:.15rem .45rem;font-family:DM Sans,SF Mono,Fira Code,monospace;font-size:.75rem;display:inline-block}.settings-about{flex-direction:column;gap:0;display:flex}.settings-about-row{border-bottom:1px solid var(--navy-100);justify-content:space-between;align-items:center;padding:.55rem 0;font-size:.84rem;display:flex}.settings-about-row:last-child{border-bottom:none}.settings-about-label{color:var(--navy-500)}.settings-about-value{color:var(--navy-900);font-family:DM Sans,SF Mono,Fira Code,monospace;font-weight:600}[data-theme=dark] .settings-status-ok{color:#4ade80;background:#4ade801a}[data-theme=dark] .settings-status-warn{color:#facc15;background:#facc151a}[data-theme=dark] .settings-status-neutral{color:var(--dark-text-muted);background:var(--dark-bg-hover)}[data-theme=dark] .settings-shortcut-keys kbd{color:var(--dark-text-secondary);background:var(--dark-bg-hover);border-color:var(--dark-border);box-shadow:0 1px 0 var(--dark-border)}[data-theme=dark] .settings-support-link{color:#5eead4}[data-theme=dark] .settings-support-link:hover{color:#99f6e4}.settings-gdpr-actions{flex-direction:column;gap:1rem;display:flex}.settings-gdpr-row{border-top:1px solid var(--navy-100);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.settings-gdpr-row strong{color:var(--navy-800);font-size:.88rem}.settings-gdpr-row .settings-description{margin-bottom:0;font-size:.78rem}.settings-gdpr-row button{flex-shrink:0;align-items:center;gap:.35rem;display:inline-flex}.settings-gdpr-danger{border-top-color:var(--red-100)}[data-theme=dark] .settings-gdpr-row{border-color:var(--dark-border)}[data-theme=dark] .settings-gdpr-row strong{color:var(--dark-text-primary)}[data-theme=dark] .settings-gdpr-danger{border-color:var(--dark-border)}.policy-page{background:var(--bg-page);justify-content:center;min-height:100vh;padding:2rem 1.5rem 4rem;display:flex}.policy-card{width:100%;max-width:720px}.policy-brand{color:var(--accent);cursor:pointer;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:1.15rem;font-weight:700;display:inline-flex}.policy-card>h1{font-size:var(--text-2xl);letter-spacing:-.03em;color:var(--navy-900);margin-bottom:.25rem;font-weight:700}.policy-updated{color:var(--navy-400);font-size:var(--text-sm);margin-bottom:2rem}.policy-section{margin-bottom:1.75rem}.policy-section h2{color:var(--navy-800);margin-bottom:.5rem;font-size:1.05rem;font-weight:600}.policy-text{color:var(--navy-600);font-size:var(--text-sm);white-space:pre-line;line-height:1.7}.policy-back{border-top:1px solid var(--navy-100);margin-top:2rem;padding-top:1.5rem}.policy-back button{align-items:center;gap:.35rem;display:inline-flex}@media (prefers-color-scheme:dark){[data-theme=system] .policy-card>h1{color:var(--navy-100)}[data-theme=system] .policy-section h2{color:var(--navy-200)}[data-theme=system] .policy-text{color:var(--navy-300)}[data-theme=system] .policy-back{border-color:var(--navy-700)}}[data-theme=dark] .policy-card>h1{color:var(--navy-100)}[data-theme=dark] .policy-section h2{color:var(--navy-200)}[data-theme=dark] .policy-text{color:var(--navy-300)}[data-theme=dark] .policy-back{border-color:var(--navy-700)}@media (width<=600px){.policy-page{padding:1rem 1rem 3rem}.policy-card>h1{font-size:1.4rem}}.app-shell-wrapper{flex-direction:column;min-height:100vh;display:flex}.app-shell-wrapper>main{flex:1}.app-footer{border-top:1px solid var(--navy-100);margin-top:auto;padding:1.5rem 1.5rem 1rem}.app-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1160px;margin:0 auto;display:flex}.app-footer-copyright{color:var(--navy-400);font-size:.72rem}.app-footer-links{align-items:center;gap:1.25rem;display:flex}.app-footer-links a{color:var(--navy-400);font-size:.72rem;text-decoration:none;transition:color .15s}.app-footer-links a:hover{color:var(--accent);text-decoration:underline}[data-theme=dark] .app-footer{border-color:var(--navy-700)}@media (prefers-color-scheme:dark){[data-theme=system] .app-footer{border-color:var(--navy-700)}}.cookie-banner{z-index:var(--z-sticky);background:var(--navy-800);color:var(--navy-100);justify-content:center;align-items:center;gap:1rem;padding:.85rem 1.5rem;font-size:.8rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #00000026}.cookie-banner-text{margin:0}.cookie-banner-text a{color:var(--accent-light,var(--accent));text-decoration:underline}.cookie-banner-btn{border:1px solid var(--navy-400);border-radius:var(--radius-sm);color:var(--navy-100);cursor:pointer;background:0 0;flex-shrink:0;padding:.35rem 1rem;font-size:.78rem;font-weight:600;transition:background .15s,border-color .15s}.cookie-banner-btn:hover{background:var(--navy-700);border-color:var(--navy-300)}@media (width<=600px){.app-footer{padding-bottom:4.5rem}.app-footer-inner{text-align:center;flex-direction:column;gap:.5rem}.app-footer-links{flex-wrap:wrap;justify-content:center;gap:.75rem}}.nav-badge-inbox{background:var(--amber-500,#f59e0b);color:#fff;text-align:center;border-radius:999px;min-width:16px;padding:1px 5px;font-size:.65rem;font-weight:700;line-height:1.3}.fortnox-status{flex-direction:column;gap:1.25rem;display:flex}.fortnox-status-header{align-items:center;gap:.75rem;display:flex}.fortnox-status-badge{border-radius:999px;align-items:center;gap:.375rem;padding:.25rem .75rem;font-size:.875rem;font-weight:500;display:inline-flex}.fortnox-badge-connected{background:var(--color-success-bg,#dcfce7);color:var(--color-success,#16a34a)}.fortnox-badge-disconnected{background:var(--color-muted-bg,#f3f4f6);color:var(--color-muted,#6b7280)}.fortnox-details{flex-direction:column;gap:.5rem;display:flex}.fortnox-detail-row{border-bottom:1px solid var(--color-border,#e5e7eb);justify-content:space-between;align-items:center;padding:.5rem 0;font-size:.875rem;display:flex}.fortnox-detail-row:last-child{border-bottom:none}.fortnox-detail-label{color:var(--color-muted,#6b7280)}.fortnox-detail-value{font-weight:500}.fortnox-error-text{color:var(--color-danger,#dc2626)}.fortnox-actions{flex-wrap:wrap;gap:.75rem;display:flex}.fortnox-activation{flex-direction:column;gap:2rem;display:flex}.fortnox-activation-hero h2{margin:0 0 .75rem;font-size:1.375rem}.fortnox-hero-sub{color:var(--color-muted,#6b7280);max-width:640px;margin:0;font-size:1rem;line-height:1.7}.fortnox-data-flow{background:var(--color-muted-bg,#f9fafb);border-radius:.5rem;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;padding:1.25rem;display:flex}.fortnox-flow-step{text-align:center;min-width:120px}.fortnox-flow-label{margin-bottom:.25rem;font-size:.9375rem;font-weight:600}.fortnox-flow-desc{color:var(--color-muted,#6b7280);font-size:.8125rem}.fortnox-flow-arrow{color:var(--color-primary,#2563eb);flex-shrink:0}.fortnox-benefits h3{margin:0 0 .75rem;font-size:1.0625rem}.fortnox-benefits-list{flex-direction:column;gap:.625rem;margin:0;padding-left:1.25rem;line-height:1.6;display:flex}.fortnox-activation-steps h3{margin:0 0 .75rem;font-size:1.0625rem}.fortnox-steps-list{color:var(--color-muted,#6b7280);flex-direction:column;gap:.5rem;margin:0;padding-left:1.25rem;line-height:1.5;display:flex}.fortnox-connect-cta{flex-direction:column;align-items:center;gap:.5rem;padding:1rem 0;display:flex}.fortnox-cta-hint{color:var(--color-muted,#6b7280);margin:0;font-size:.8125rem}.btn-lg{padding:.625rem 1.5rem;font-size:1rem}.btn-danger-outline{color:var(--color-danger,#dc2626);border:1px solid var(--color-danger,#dc2626);background:0 0}.btn-danger-outline:hover{background:var(--color-danger,#dc2626);color:#fff}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.card-header{border-bottom:1px solid var(--color-border,#e5e7eb);align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.card-title{margin:0;font-size:1.0625rem;font-weight:600}.clickable-row{cursor:pointer;transition:background .1s}.clickable-row:hover{background:var(--color-muted-bg,#f9fafb)}.expand-icon{vertical-align:middle;color:var(--color-muted,#6b7280);margin-right:.375rem;display:inline-flex}.invoice-rows-header>td{background:var(--color-muted-bg,#f9fafb);padding:0!important}.invoice-rows-table{border-collapse:collapse;width:100%;font-size:.8125rem}.invoice-rows-table th{color:var(--color-muted,#6b7280);text-align:left;border-bottom:1px solid var(--color-border,#e5e7eb);padding:.375rem 1rem;font-weight:500}.invoice-rows-table td{border-bottom:1px solid var(--color-border-light,#f3f4f6);padding:.375rem 1rem}.invoice-rows-table tr:last-child td{border-bottom:none}.kontering-dirty{background:#eab3081f;font-weight:500}.kontering-dirty-row td{background:#eab3080d}[data-theme=dark] .kontering-dirty{background:#eab3082e}[data-theme=dark] .kontering-dirty-row td{background:#eab30814}.loading-inline{color:var(--color-muted,#6b7280);padding:.75rem 1rem;font-size:.875rem}[data-theme=dark] .clickable-row:hover{background:var(--dark-card-hover,#1e2235)}[data-theme=dark] .invoice-rows-header>td{background:var(--dark-bg-secondary,#161928)}[data-theme=dark] .card-header{border-bottom-color:var(--dark-border,#2a2d3e)}[data-theme=dark] .invoice-rows-table th{color:var(--dark-text-muted);border-bottom-color:var(--dark-border,#2a2d3e)}[data-theme=dark] .invoice-rows-table td{border-bottom-color:var(--dark-border-light,#1e2235)}[data-theme=dark] .fortnox-badge-connected{color:#4ade80;background:#16a34a26}[data-theme=dark] .fortnox-badge-disconnected{background:var(--dark-bg-hover);color:var(--dark-text-muted)}[data-theme=dark] .fortnox-detail-row{border-bottom-color:var(--dark-border)}[data-theme=dark] .fortnox-detail-label{color:var(--dark-text-muted)}[data-theme=dark] .fortnox-data-flow{background:var(--dark-bg-surface)}[data-theme=dark] .fortnox-flow-desc,[data-theme=dark] .fortnox-hero-sub,[data-theme=dark] .fortnox-steps-list,[data-theme=dark] .fortnox-cta-hint{color:var(--dark-text-muted)}.error-detail{background:var(--red-100);color:var(--red-600);border-radius:var(--radius-sm);font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word;max-height:200px;margin:0 .75rem .75rem;padding:.75rem 1rem;line-height:1.5;overflow-y:auto}.actions{flex-wrap:nowrap;align-items:center;gap:.25rem;display:flex}.actions button{font-size:var(--text-xs);padding:.3rem .5rem}.report-form{background:var(--bg-light);border-radius:var(--radius-sm);margin:0 .75rem .75rem;padding:.75rem 1rem}.report-textarea{border:1px solid var(--navy-200);border-radius:var(--radius-sm);background:var(--bg-white);width:100%;color:var(--navy-900);font-family:DM Sans,sans-serif;font-size:var(--text-base);resize:vertical;outline:none;padding:.55rem .75rem;line-height:1.5;transition:border-color .2s,box-shadow .2s}.report-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #259b8e1f,inset 0 1px 2px #0000000a}.report-actions{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.report-success{color:var(--green-600);font-size:var(--text-base);font-weight:500}.report-error{color:var(--red-600);font-size:.78rem}.report-hint{color:var(--navy-400);margin-bottom:.25rem;font-size:.78rem}.container p{color:var(--navy-600);font-size:var(--text-base)}.empty-state{text-align:center;color:var(--navy-400);padding:2rem 1rem}.empty-state p{margin-top:.5rem}.more-menu{display:inline-block;position:relative}.more-menu-trigger{justify-content:center;align-items:center;line-height:1;display:inline-flex;padding:.3rem .45rem!important}.more-menu-dropdown{z-index:var(--z-max);background:var(--bg-white);border:1px solid var(--navy-100);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;gap:.1rem;min-width:150px;padding:.3rem;animation:.15s more-menu-enter;display:flex}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes more-menu-enter{0%{opacity:0;transform:translate(-100%)translateY(-4px)scale(.98)}to{opacity:1;transform:translate(-100%)translateY(0)scale(1)}}.more-menu-item{text-align:left;width:100%;color:var(--navy-900);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.45rem .75rem;font-size:.78rem;display:block}.more-menu-item:hover{background:var(--bg-light);box-shadow:none;transform:none}.more-menu-item-danger{color:var(--red-600)}.more-menu-item-danger:hover{background:var(--red-100)}.confirm-backdrop{z-index:var(--z-max);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:backdrop-fade-in var(--duration-normal) ease;background:#0f182980;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-card{background:var(--bg-white);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-xl);animation:modal-enter var(--duration-normal) var(--ease-out-expo);padding:1.5rem}@keyframes backdrop-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-enter{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--navy-100) 25%, var(--navy-200) 50%, var(--navy-100) 75%);border-radius:var(--radius-sm);background-size:800px 100%;animation:1.5s linear infinite shimmer}.skeleton-text{width:70%;height:.85rem;margin-bottom:.4rem}.skeleton-text.short{width:40%}.skeleton-stat{width:3rem;height:2rem;margin-bottom:.35rem}.skeleton-chart{width:100%;height:260px}.skeleton-row td{padding:.7rem .75rem}.skeleton-cell{border-radius:var(--radius-sm);height:.85rem}.empty-state-block{text-align:center;padding:3.5rem 1rem}.empty-state-icon{color:var(--navy-300);margin-bottom:.75rem}.empty-state-title{color:var(--navy-700);margin-bottom:.25rem;font-size:.95rem;font-weight:600}.empty-state-subtitle{font-size:var(--text-base);color:var(--navy-400)}.empty-state-action{margin-top:var(--space-3)}@keyframes page-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.container,.admin-container{animation:.35s cubic-bezier(.4,0,.2,1) page-fade-in}.not-found-page{text-align:center;padding:5rem 1rem;animation:.2s ease-out page-fade-in}.not-found-code{color:var(--navy-300);margin-bottom:.5rem;font-size:5rem;font-weight:700;line-height:1}.not-found-message{color:var(--navy-600);margin-bottom:1.5rem;font-size:1.1rem}.comparison-modal-card{background:var(--bg-white);border-radius:var(--radius-xl);width:95vw;max-width:1100px;max-height:85vh;box-shadow:var(--shadow-xl);animation:modal-enter var(--duration-normal) var(--ease-out-expo);flex-direction:column;padding:1.5rem;display:flex}.comparison-modal-card>h2,.comparison-modal-card>.comparison-summary,.comparison-modal-card>.comparison-filters,.comparison-modal-card>.comparison-modal-footer{flex-shrink:0}.comparison-table-wrap{flex:1;min-height:0;margin-bottom:.75rem;overflow:auto}.comparison-table-wrap table{table-layout:fixed;width:100%;min-width:0;margin-top:0}.comparison-table-wrap th,.comparison-table-wrap td{text-overflow:ellipsis;white-space:nowrap;max-width:none;padding:.3rem .4rem;font-size:.78rem;overflow:hidden}.comparison-table-wrap th{text-transform:none;letter-spacing:normal;font-size:.72rem;font-weight:600}.comparison-table-wrap td:first-child,.comparison-table-wrap th:first-child{white-space:normal;word-break:break-word;max-width:none;overflow:visible}.comparison-table-wrap td:nth-child(7),.comparison-table-wrap td:nth-child(8){white-space:normal;overflow:visible}.comparison-table-wrap th:first-child{width:27%}.comparison-table-wrap th:nth-child(2),.comparison-table-wrap th:nth-child(3){width:10%}.comparison-table-wrap th:nth-child(4){width:7%}.comparison-table-wrap th:nth-child(5){width:6%}.comparison-table-wrap th:nth-child(6){width:5%}.comparison-table-wrap th:nth-child(7){width:13%}.comparison-table-wrap th:nth-child(8){width:14%}.comparison-table-wrap .badge{white-space:nowrap;padding:.15rem .4rem;font-size:.62rem}.comparison-table-wrap tbody tr{-webkit-user-select:none;user-select:none}.comparison-table-wrap thead th{background:var(--bg-white);z-index:var(--z-base);position:sticky;top:0}[data-theme=dark] .comparison-table-wrap thead th{background:var(--dark-bg-elevated)}.pl-doc-viewer{background:var(--bg-white);border-radius:var(--radius-xl);width:90vw;max-width:900px;height:85vh;box-shadow:var(--shadow-xl);flex-direction:column;animation:.2s modal-enter;display:flex;overflow:hidden}.pl-doc-header{border-bottom:1px solid var(--navy-100);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.pl-doc-header h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;overflow:hidden}.pl-doc-content{flex:1;overflow:hidden}.comparison-summary{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.comparison-badge{border-radius:20px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.comparison-badge.match{background:var(--green-100);color:var(--green-600)}.comparison-badge.price-diff{background:var(--yellow-100);color:var(--yellow-600)}.comparison-badge.not-found,.comparison-badge.fee-issue{background:var(--red-100);color:var(--red-600)}.comparison-badge.qty-exceeded{color:#e65100;background:#fff3e0}.comparison-filters{gap:.35rem;margin-bottom:.75rem;display:flex}.comparison-filters button{font-size:var(--text-sm);padding:.3rem .7rem}.comparison-filters button.active-filter{background:var(--accent);color:#fff}.comparison-row-price_diff td{background:#ca8a040a}.comparison-row-not_found td,.comparison-row-fee_issue td{background:#dc26260a}.comparison-row-quantity_exceeded td{background:#e651000f}.comparison-table-wrap tbody tr[style*=pointer]:hover td{background:var(--hover)}.comparison-row-expanded td{border-bottom-color:#0000}.comparison-detail-row td{background:var(--hover);padding:0!important}.comparison-table-wrap td[colspan]>div{max-width:100%;overflow:hidden}.comparison-detail{border-bottom:1px solid var(--border);padding:.75rem 1rem .75rem 2rem}.comparison-detail-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.5rem;font-size:.8rem;font-weight:600}.comparison-detail-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem 1.5rem;display:grid}.comparison-detail-field{flex-direction:column;gap:1px;display:flex}.comparison-detail-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.comparison-detail-value{word-break:break-word;font-size:.85rem;font-weight:500}.comparison-detail-empty{color:var(--text-secondary);font-size:.85rem;font-style:italic}.comparison-modal-footer{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.live-indicator{color:var(--navy-400);white-space:nowrap;align-items:center;gap:.4rem;margin-left:auto;font-size:.75rem;font-weight:500;display:inline-flex}.live-dot{background:var(--green-600);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.5s ease-in-out infinite pulse-dot}.thumbnail-strip{scrollbar-width:thin;background:#151725;border-bottom:1px solid #ffffff14;gap:.5rem;padding:.5rem 1rem;display:flex;overflow-x:auto}.thumbnail-item{border-radius:var(--radius-sm);cursor:pointer;opacity:.7;border:2px solid #0000;flex-shrink:0;width:60px;height:80px;transition:border-color .15s,opacity .15s;position:relative;overflow:hidden}.thumbnail-item:hover{opacity:1}.thumbnail-item.thumbnail-active{border-color:var(--accent);opacity:1}.thumbnail-item img{object-fit:cover;width:100%;height:100%;display:block}.thumbnail-number{color:#fff;background:#0009;border-radius:2px;padding:0 .25rem;font-size:.6rem;font-weight:700;line-height:1.4;position:absolute;bottom:2px;right:3px}.thumbnail-skeleton{background:linear-gradient(90deg,#252840 25%,#2e3250 50%,#252840 75%) 0 0/800px 100%;width:100%;height:100%;animation:1.5s linear infinite shimmer}.cell-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.cell-truncate-sm{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.compare-dropdown{z-index:var(--z-max);background:var(--bg-white);border:1px solid var(--navy-200);border-radius:var(--radius-sm);min-width:200px;box-shadow:var(--shadow-lg);flex-direction:column;padding:.5rem;display:flex;position:absolute;top:100%;right:0}.compare-badge{border-radius:10px;margin-left:.4rem;padding:.05rem .35rem;font-size:.65rem;font-weight:600}.compare-badge-ok{background:var(--green-100);color:var(--green-600)}.compare-badge-diff{background:var(--red-100);color:var(--red-600)}.compare-suggestion{text-align:left;border:1.5px solid var(--blue-400,#60a5fa);background:var(--blue-50,#eff6ff);width:100%;margin-bottom:.25rem;font-size:.78rem}.editable-cell{cursor:pointer;min-width:90px}.editable-cell-narrow{cursor:pointer;min-width:70px}.editable-cell-input{border:1px solid var(--blue-400);background:var(--bg-white);width:80px;color:var(--navy-900);border-radius:4px;padding:.2rem .4rem;font-size:.82rem}.editable-cell-input-narrow{border:1px solid var(--blue-400);background:var(--bg-white);width:60px;color:var(--navy-900);border-radius:4px;padding:.2rem .4rem;font-size:.82rem}.editable-cell-select{border:1px solid var(--navy-200);background:var(--bg-white);color:var(--navy-900);cursor:pointer;border-radius:4px;min-width:80px;padding:.2rem .3rem;font-size:.82rem}.more-menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-xs,4px)}.review-cell:focus-visible,th.sortable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}[data-theme=dark] .compare-dropdown{background:var(--navy-800);border-color:var(--navy-600)}[data-theme=dark] .editable-cell-input,[data-theme=dark] .editable-cell-input-narrow{background:var(--navy-800);color:var(--navy-100);border-color:var(--blue-400)}[data-theme=dark] .editable-cell-select{background:var(--navy-800);color:var(--navy-100);border-color:var(--navy-600)}.command-palette-overlay{z-index:var(--z-modal);background:#00000080;justify-content:center;padding-top:20vh;display:flex;position:fixed;inset:0}.command-palette{background:var(--bg-white);border:1px solid var(--navy-200);border-radius:var(--radius-lg,12px);width:560px;max-width:90vw;max-height:60vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.command-palette-input{border:none;border-bottom:1px solid var(--navy-200);width:100%;color:var(--navy-900);background:0 0;outline:none;padding:.85rem 1rem;font-family:DM Sans,sans-serif;font-size:.95rem}.command-palette-input::placeholder{color:var(--navy-400)}.command-palette-results{flex:1;padding:.5rem;overflow-y:auto}.command-palette-category{text-transform:uppercase;letter-spacing:.05em;color:var(--navy-400);padding:.5rem .75rem .25rem;font-size:.68rem;font-weight:600}.command-palette-item{width:100%;color:var(--navy-900);font-size:var(--text-base);cursor:pointer;border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.command-palette-item:hover,.command-palette-item-active{background:var(--navy-50)}.command-palette-kbd{background:var(--navy-100);border:1px solid var(--navy-200);border-radius:var(--radius-xs,4px);color:var(--navy-500);padding:.1rem .4rem;font-family:monospace;font-size:.68rem}.command-palette-empty{text-align:center;color:var(--navy-400);font-size:var(--text-base);padding:1.5rem}[data-theme=dark] .command-palette{background:var(--navy-800);border-color:var(--navy-600)}[data-theme=dark] .command-palette-input{color:var(--navy-100);border-bottom-color:var(--navy-600)}[data-theme=dark] .command-palette-item{color:var(--navy-100)}[data-theme=dark] .command-palette-item:hover,[data-theme=dark] .command-palette-item-active{background:var(--navy-700)}[data-theme=dark] .command-palette-kbd{background:var(--navy-700);border-color:var(--navy-600);color:var(--navy-300)}@media (width<=1024px){.hide-compact{display:none}}@media (width<=768px){.topbar{flex-direction:column;gap:.5rem;height:auto;padding:.6rem 1rem}.container,.admin-container{padding:1rem .75rem 2rem}.stat-grid{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}table{font-size:.85rem}.hide-mobile{display:none}.upload-zone{padding:1.5rem 1rem}.actions{flex-wrap:wrap;gap:.25rem}.actions button{min-height:36px;padding:.25rem .4rem;font-size:.65rem}.comparison-modal-card{border-radius:0;width:100vw;max-width:100vw;max-height:100vh;margin:0;padding:1rem}.comparison-table-wrap{-webkit-overflow-scrolling:touch}.comparison-table-wrap table{min-width:600px}.comparison-summary{flex-wrap:wrap;gap:.4rem}.table-toolbar{flex-direction:column}.table-toolbar input{width:100%}}@media (width<=480px){.stat-grid{grid-template-columns:1fr}.card{-webkit-overflow-scrolling:touch;overflow-x:auto}table{min-width:0}.job-detail-panel{grid-template-columns:1fr;padding:.75rem}}@media (width<=1024px){.job-detail-panel{grid-template-columns:1fr 1fr}}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{top:-100%;left:var(--space-4);z-index:var(--z-max);padding:var(--space-2) var(--space-4);background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);transition:top var(--duration-fast) ease;font-weight:600;text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-2)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-theme=dark]{--bg-page:var(--dark-bg-page);--bg-white:var(--dark-bg-elevated);--bg-light:var(--dark-bg-surface);--bg-hover:var(--dark-bg-hover);--navy-900:var(--dark-text-primary);--navy-800:var(--dark-text-primary);--navy-700:var(--dark-text-secondary);--navy-600:var(--dark-text-secondary);--navy-500:var(--dark-text-muted);--navy-400:var(--dark-text-muted);--navy-300:#ffffff1f;--navy-200:var(--dark-border);--navy-100:#ffffff0a;--shadow-sm:0 1px 2px #0003, 0 1px 3px #00000026;--shadow-md:0 2px 4px #0003, 0 4px 12px #00000040;--shadow-lg:0 4px 8px #0003, 0 8px 24px #0000004d;--shadow-xl:0 8px 16px #00000040, 0 20px 48px #0006}[data-theme=dark] body{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] .topbar{border-bottom-color:var(--dark-border);background:linear-gradient(#13152580,#10122080)}[data-theme=dark] button.secondary{background:var(--dark-bg-hover);color:var(--dark-text-primary);border-color:var(--dark-border)}[data-theme=dark] button.secondary:hover{background:var(--dark-bg-active);border-color:var(--dark-border-hover)}[data-theme=dark] .upload-zone{border-color:var(--dark-border);background:linear-gradient(#259b8e0a,#0000)}[data-theme=dark] .upload-zone:hover{border-color:var(--accent)}[data-theme=dark] .api-key-input input{background:var(--dark-bg-hover);border-color:var(--dark-border);color:var(--dark-text-primary)}[data-theme=dark] .more-menu-dropdown{background:var(--dark-bg-elevated);border-color:var(--dark-border)}[data-theme=dark] .more-menu-item{color:var(--dark-text-primary)}[data-theme=dark] .more-menu-item:hover{background:var(--dark-bg-hover)}[data-theme=dark] .confirm-backdrop{background:#0009}[data-theme=dark] .confirm-card{background:var(--dark-bg-elevated)}[data-theme=dark] .toast{color:var(--dark-text-primary);background:#1e2036f2}[data-theme=dark] .job-detail-panel,[data-theme=dark] .report-form{background:var(--dark-bg-surface)}[data-theme=dark] .report-textarea{background:var(--dark-bg-hover);border-color:var(--dark-border);color:var(--dark-text-primary)}[data-theme=dark] .stat-card,[data-theme=dark] .chart-card{background:var(--dark-bg-elevated);border-color:var(--dark-border)}[data-theme=dark] .comparison-modal-card,[data-theme=dark] .pl-doc-viewer{background:var(--dark-bg-elevated)}[data-theme=dark] .pl-doc-header{border-bottom-color:#ffffff14}[data-theme=dark] .not-found-code{color:var(--dark-text-faint)}.theme-toggle{border-radius:var(--radius-md);color:var(--dark-text-muted);cursor:pointer;transition:all var(--duration-fast) ease;background:#ffffff0f;border:1px solid #ffffff1f;justify-content:center;align-items:center;padding:.3rem;display:inline-flex}.theme-toggle:hover{color:#fff;box-shadow:none;background:#ffffff1a;border-color:#ffffff40;transform:none}.breadcrumbs{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-6);font-size:var(--text-sm);color:var(--navy-500);background:var(--bg-page);border-bottom:1px solid var(--navy-100);display:flex}.breadcrumb-link{color:var(--navy-500);cursor:pointer;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color var(--duration-fast) ease, background var(--duration-fast) ease;background:0 0;border:none;font-family:inherit;text-decoration:none}.breadcrumb-link:hover{color:var(--accent);background:var(--accent-light);box-shadow:none;transform:none}.breadcrumb-separator{color:var(--navy-300);font-size:var(--text-xs);-webkit-user-select:none;user-select:none}.breadcrumb-current{color:var(--navy-700);font-weight:500}.badge{transition:background-color var(--duration-normal) ease, color var(--duration-normal) ease, border-color var(--duration-normal) ease}.progress-fill{position:relative;overflow:hidden}.progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:100%;height:100%;animation:1.5s ease-in-out infinite progress-shimmer;position:absolute;top:0;left:-100%}@keyframes progress-shimmer{0%{left:-100%}to{left:200%}}.progress-fill.indeterminate{animation:1.5s cubic-bezier(.25,.46,.45,.94) forwards progress-grow;width:85%!important}@keyframes progress-grow{0%{width:0%!important}to{width:85%!important}}.shortcut-overlay{z-index:var(--z-tooltip);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f182980;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}.shortcut-card{background:var(--bg-white);border-radius:var(--radius-xl);padding:var(--space-6);width:100%;max-width:400px;box-shadow:var(--shadow-xl);animation:.2s modal-enter}.shortcut-card h2{font-size:var(--text-xl);margin-bottom:var(--space-4);font-weight:700}.shortcut-row{padding:var(--space-2) 0;border-bottom:1px solid var(--navy-100);font-size:var(--text-sm);justify-content:space-between;align-items:center;display:flex}.shortcut-row:last-child{border-bottom:none}.shortcut-key{align-items:center;gap:var(--space-1);display:inline-flex}.shortcut-key kbd{background:var(--bg-light);border:1px solid var(--navy-200);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--navy-700);box-shadow:0 1px 0 var(--navy-200);padding:.15rem .4rem;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;display:inline-block}.new-row td{animation:row-enter .3s var(--ease-out-expo)}@keyframes row-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.confirm-icon{background:var(--red-100);width:40px;height:40px;color:var(--red-600);margin-bottom:var(--space-3);border-radius:50%;justify-content:center;align-items:center;display:flex}.confirm-title{text-transform:none;letter-spacing:normal;font-size:var(--text-lg);color:var(--navy-900);margin-bottom:var(--space-2);font-weight:600}.confirm-message{font-size:var(--text-base);color:var(--navy-600);margin-bottom:var(--space-5);line-height:1.5}.confirm-actions{gap:var(--space-2);justify-content:flex-end;display:flex}@media (width<=768px){.mobile-bottom-nav{z-index:var(--z-dropdown);background:var(--bg-white);border-top:1px solid var(--navy-200);padding:var(--space-1) 0;padding-bottom:env(safe-area-inset-bottom,0);justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #0000000f}.mobile-nav-btn{padding:var(--space-2) var(--space-1);color:var(--navy-400);cursor:pointer;border-radius:var(--radius-md);min-width:0;min-height:44px;transition:color var(--duration-fast) ease;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;font-size:.6rem;font-weight:500;display:flex;overflow:hidden}.mobile-nav-btn:hover{box-shadow:none;background:0 0;transform:none}.mobile-nav-btn.mobile-nav-active{color:var(--accent)}.mobile-nav-btn svg{width:22px;height:22px}.topbar .topbar-nav{display:none}.app-shell-content{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}}@media (width>=769px){.mobile-bottom-nav{display:none}}.time-warning-text{color:var(--amber-600,#d97706);font-size:.68rem;font-weight:500;display:block}.offline-banner{z-index:var(--z-modal);background:var(--amber-500,#f59e0b);color:#000;text-align:center;padding:.4rem 1rem;font-size:.82rem;font-weight:600;position:sticky;top:0}.status-pill-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dropdown{position:relative}.status-dropdown-trigger{border:1px solid var(--navy-200);background:var(--bg-white);color:var(--navy-600);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-weight:500;display:inline-flex}.status-dropdown-trigger:hover{border-color:var(--navy-300);background:var(--bg-hover)}.status-dropdown-trigger:focus-visible{box-shadow:var(--focus-ring);outline:none}.status-dropdown-menu{z-index:var(--z-dropdown);background:var(--bg-white);border:1px solid var(--navy-200);border-radius:var(--radius-lg);min-width:180px;box-shadow:var(--shadow-lg);padding:.25rem;animation:.15s dropdown-enter;position:absolute;top:calc(100% + 4px);left:0}.status-dropdown-item{border-radius:var(--radius-sm);width:100%;color:var(--navy-700);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast) ease;white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:.4rem;padding:.4rem .65rem;font-weight:500;display:flex}.status-dropdown-item:hover{background:var(--bg-hover)}.status-dropdown-item-active{background:var(--accent-light);color:var(--accent);font-weight:600}[data-theme=dark] .status-dropdown-trigger{border-color:var(--dark-border);background:var(--dark-bg-elevated);color:var(--dark-text-secondary)}[data-theme=dark] .status-dropdown-trigger:hover{border-color:var(--dark-border-hover);background:var(--dark-bg-hover)}[data-theme=dark] .status-dropdown-menu{background:var(--dark-bg-elevated);border-color:var(--dark-border)}[data-theme=dark] .status-dropdown-item{color:var(--dark-text-secondary)}[data-theme=dark] .status-dropdown-item:hover{background:var(--dark-bg-hover)}[data-theme=dark] .status-dropdown-item-active{color:var(--accent);background:#259b8e33}.token-compact-bar{background:var(--bg-light);border-radius:var(--radius-md);font-size:var(--text-sm);align-items:center;gap:.5rem;margin-bottom:1rem;padding:.5rem .75rem;display:flex}.token-compact-label{color:var(--navy-500);text-transform:uppercase;letter-spacing:.04em;font-weight:600;font-size:var(--text-xs)}.token-compact{align-items:center;gap:.5rem;display:flex}.token-compact-mask{color:var(--navy-400);letter-spacing:.1em;font-family:monospace}.token-compact-change{font-size:var(--text-xs);border:1px solid var(--navy-200);border-radius:var(--radius-sm);background:var(--bg-white);color:var(--navy-600);cursor:pointer;transition:all var(--transition-fast);padding:.15rem .5rem}.token-compact-change:hover{border-color:var(--navy-300);background:var(--bg-hover)}[data-theme=dark] .token-compact-bar{background:var(--dark-bg-elevated)}[data-theme=dark] .token-compact-mask{color:var(--dark-text-muted)}[data-theme=dark] .token-compact-change{border-color:var(--dark-border);background:var(--dark-bg-surface);color:var(--dark-text-secondary)}[data-theme=dark] .token-compact-change:hover{border-color:var(--dark-border-hover);background:var(--dark-bg-hover)}.error-boundary{background:var(--bg-page);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.error-boundary-card{text-align:center;background:var(--bg-white);border-radius:var(--radius-xl);max-width:420px;box-shadow:var(--shadow-lg);padding:3rem 2.5rem}.error-boundary-icon{color:var(--red-600);margin-bottom:1.5rem}.error-boundary-title{font-size:var(--text-xl);margin-bottom:.75rem}.error-boundary-message{color:var(--navy-500);font-size:var(--text-base);word-break:break-word;margin-bottom:2rem}.error-boundary-btn{background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;transition:background var(--transition-fast);border:none;padding:.6rem 1.5rem;font-weight:600}.error-boundary-btn:hover{background:var(--accent-hover)}[data-theme=dark] .error-boundary{background:var(--dark-bg-page)}[data-theme=dark] .error-boundary-card{background:var(--dark-bg-elevated)}[data-theme=dark] .error-boundary-title{color:var(--dark-text-primary)}[data-theme=dark] .error-boundary-message{color:var(--dark-text-muted)}.card-header-row{justify-content:space-between;align-items:center;display:flex}.card-header-row h3{margin-bottom:0}.compact-upload-toggle{flex-direction:column;align-items:center;margin-bottom:1.25rem;display:flex}.compact-upload-btn{font-size:var(--text-base);border:2px dashed var(--accent);border-radius:var(--radius-md);background:var(--accent-bg);color:var(--accent);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:.5rem;padding:.6rem 1.5rem;font-weight:600;display:inline-flex}.compact-upload-btn:hover{background:var(--accent);color:#fff;border-style:solid}.compact-upload-zone{width:100%;margin-top:.75rem}[data-theme=dark] .compact-upload-btn{border-color:var(--accent);color:var(--accent);background:#259b8e1a}[data-theme=dark] .compact-upload-btn:hover{background:var(--accent);color:#fff;border-style:solid}.pagination-summary{font-size:var(--text-sm);color:var(--navy-500);text-align:center;padding:.5rem 0}[data-theme=dark] .pagination-summary{color:var(--dark-text-muted)}.pl-upload-inline{flex-direction:column;gap:.75rem;display:flex}.pl-upload-file-row{background:var(--accent-bg);border:1px solid var(--accent-light);border-radius:var(--radius-sm);align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.pl-upload-filename{font-size:var(--text-sm);color:var(--navy-900);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}[data-theme=dark] .pl-upload-file-row{background:#259b8e14;border-color:#259b8e33}[data-theme=dark] .pl-upload-filename{color:var(--dark-text-primary)}.pl-item-search{margin-bottom:.5rem}.pl-item-search input{width:100%;font-size:var(--text-sm);border:1px solid var(--navy-200);border-radius:var(--radius-sm);background:var(--bg-white);color:var(--navy-900);padding:.35rem .65rem}[data-theme=dark] .pl-item-search input{border-color:var(--dark-border);background:var(--dark-bg-surface);color:var(--dark-text-primary)}.editable-cell-dashed{border-bottom:1px dashed var(--navy-300);cursor:pointer;transition:border-color var(--transition-fast);padding-bottom:1px}.editable-cell-dashed:hover{border-bottom-color:var(--accent)}[data-theme=dark] .editable-cell-dashed{border-bottom-color:var(--dark-border-hover)}[data-theme=dark] .editable-cell-dashed:hover{border-bottom-color:var(--accent)}.toast-stack-item{transition:transform var(--duration-normal) var(--ease-out-expo), opacity var(--duration-normal) ease}.viewer-placeholder{justify-content:center;align-items:center;width:100%;min-height:400px;display:flex}.viewer-placeholder.viewer-error{color:var(--red-600);font-size:.9rem}.skeleton-image{border-radius:var(--radius-sm);width:100%;max-width:500px;height:600px}.labeling-progress{align-items:center;gap:.5rem;margin-bottom:.75rem;padding:0 .25rem;display:flex}.labeling-progress-bar{background:var(--navy-100);border-radius:3px;flex:1;height:6px;overflow:hidden}.labeling-progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .3s}.labeling-progress-text{color:var(--navy-400);white-space:nowrap;font-size:.75rem}@media (width<=768px){.status-dropdown-trigger{min-height:44px}.zoom-controls button{min-width:44px;min-height:44px}.column-toggle>button{min-height:44px}}.page-loader{justify-content:center;align-items:center;min-height:60vh;animation:.3s page-fade-in;display:flex}.page-loader-spinner{border:3px solid var(--navy-200);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.6s linear infinite btn-spin}[data-theme=dark] .page-loader-spinner{border-color:var(--dark-border);border-top-color:var(--accent)}input[type=text]:focus-visible,input[type=password]:focus-visible,input[type=email]:focus-visible,input[type=number]:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow), inset 0 1px 2px #0000000a;outline:none}.row-checkbox:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes row-exit{0%{opacity:1;max-height:80px}to{opacity:0;max-height:0;padding:0;overflow:hidden}}.card-interactive{transition:box-shadow var(--transition-base), border-color var(--transition-base), transform var(--transition-base)}.card-interactive:hover{box-shadow:var(--shadow-lg);border-color:var(--navy-300);transform:translateY(-2px)}[data-theme=dark] .card-interactive:hover{border-color:var(--dark-border-hover)}tbody tr{transition:opacity var(--duration-fast) ease, background var(--duration-fast) ease}.search-input-wrapper{flex:1;min-width:180px;position:relative}.search-input-wrapper input{width:100%;padding-left:2.2rem}.search-input-icon{color:var(--navy-400);pointer-events:none;transition:color var(--duration-fast) ease;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.search-input-wrapper input:focus+.search-input-icon,.search-input-wrapper input:focus~.search-input-icon{color:var(--accent)}.compare-inline-wrapper{display:inline-block;position:relative}.compare-inline-wrapper .compare-dropdown{min-width:240px;left:auto;right:0}.compare-results-btn{font-size:var(--text-xs);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;letter-spacing:.01em;border:1px solid;align-items:center;gap:.25rem;padding:.25rem .45rem;font-weight:600;display:inline-flex}.compare-results-ok{background:var(--green-100);color:var(--green-600);border-color:var(--green-600)}.compare-results-ok:hover{background:var(--green-600);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #16a34a40}.compare-results-diff{background:var(--red-100);color:var(--red-600);border-color:var(--red-600)}.compare-results-diff:hover{background:var(--red-600);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #dc262640}[data-theme=dark] .compare-results-ok{background:#16a34a26;border-color:#16a34a66}[data-theme=dark] .compare-results-ok:hover{background:var(--green-600);color:#fff}[data-theme=dark] .compare-results-diff{background:#dc262626;border-color:#dc262666}[data-theme=dark] .compare-results-diff:hover{background:var(--red-600);color:#fff}
