:root{--color-primary:#337ab7;--color-primary-hover:#286090;--color-primary-border:#2e6da4;--color-surface:#fff;--color-bg:#f5f5f5;--color-border:#ddd;--color-border-light:#eee;--color-muted:#555;--color-muted-strong:#888;--color-error:#c00;--color-nav-bg:#ecf0f5;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--radius-sm:4px;--radius-md:8px;--font-sans:system-ui, -apple-system, Segoe UI, sans-serif;--text-base:1rem;--text-lg:1.25rem;--shadow-card:0 1px 3px #0000001a}*{box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--text-base);background:var(--color-bg);margin:0}#root{min-height:100vh}a{color:var(--color-primary)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.container{max-width:1200px;padding:var(--space-md);margin:0 auto}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:48px;padding:0 var(--space-lg);align-items:center;gap:var(--space-md);border-bottom:3px solid var(--color-primary-border);background:linear-gradient(135deg,#337ab7 0%,#286090 40%,#1a4a6e 100%);display:flex;box-shadow:0 2px 8px #0000001a}.topbar-logo{min-height:48px;padding:0 var(--space-md);margin-right:var(--space-md);border-radius:var(--radius-sm);color:var(--color-primary);background:#fff;border:1px solid #00000014;align-items:center;font-size:.95rem;font-weight:700;text-decoration:none;display:flex}.topbar-logo:hover{color:var(--color-primary);background:#f8f9fa}.topbar-logo-img{object-fit:contain;width:auto;height:44px;display:block}.topbar-logo-fallback{padding:0 var(--space-xs);display:none}.topbar-logo-fallback.visible{display:inline}.topbar-nav{align-items:center;gap:2px;display:flex}.topbar-link{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:#ffffffe6;font-weight:500;text-decoration:none}.topbar-link:hover{color:#fff;background:#fff3}.topbar-link.active{color:var(--color-primary);background:#fffffff2}.topbar-spacer{flex:1}.topbar .lang-btn{color:#fff;background:#fff3;border-color:#fff6}.topbar .lang-btn:hover{color:#fff;background:#ffffff59}.topbar .lang-btn.active{color:var(--color-primary);background:#fff;border-color:#fff}.topbar .lang-sep{color:#fffc}.topbar .topbar-user-id{color:#fffffff2;font-size:.9rem}.topbar .topbar-user .topbar-logout-btn{color:var(--color-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;background:#fffffff2;border:1px solid #fffc;font-size:.9rem}.topbar .topbar-user .topbar-logout-btn:hover{color:var(--color-primary);background:#fff}.lang-selector{align-items:center;gap:var(--space-xs);margin-right:var(--space-md);display:flex}.lang-btn{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:.9rem}.lang-btn:hover{background:var(--color-border-light)}.lang-btn.active{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary-border)}.lang-sep{color:var(--color-muted-strong);font-size:.85rem}.topbar-user{align-items:center;gap:var(--space-md);display:flex}.main-content{padding:var(--space-lg);flex:1;overflow:auto}.main-content .container{max-width:1200px;margin:0 auto}.page-subtitle{margin:0 0 var(--space-md);color:var(--color-primary);font-size:1.1rem;font-weight:600;display:block}.page-title{margin:0 0 var(--space-md);font-size:1.25rem;font-weight:600;display:block}.home-loading-wrap{min-height:240px;padding:var(--space-lg);justify-content:center;align-items:center;display:flex}.home-client-field{margin-bottom:var(--space-lg);max-width:320px}.home-client-field label{margin-bottom:var(--space-xs);font-size:.95rem;font-weight:500;display:block}.home-client-select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:200px;font-size:var(--text-base)}.home-sections{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.home-section-card{margin-bottom:var(--space-md);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.home-section-title{margin:0 0 var(--space-sm);font-size:1rem;font-weight:600}.home-section-card .home-list{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.home-list li{padding:0}.home-report-btn{padding:var(--space-sm) var(--space-md);color:inherit;border-radius:999px;text-decoration:none;transition:background .2s,box-shadow .2s;display:inline-block}.home-report-btn.home-link{color:var(--color-primary)}.home-report-btn.home-link:hover{background:#337ab71f}.home-report-btn.home-label-only{color:var(--color-muted-strong)}.home-report-btn:hover{background:var(--color-border-light)}.home-report-btn-disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.home-select-hint{color:var(--color-muted-strong);margin:0 0 var(--space-md);font-size:.95rem}.page-error{align-items:center;gap:var(--space-md);padding:var(--space-md);margin-bottom:var(--space-md);border:1px solid var(--color-error);border-radius:var(--radius-sm);color:var(--color-error);background:#c8000014;flex-wrap:wrap;display:flex}.profile-dialog-overlay{z-index:1000;padding:var(--space-lg);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.profile-dialog-panel{background:var(--color-surface);border-radius:var(--radius-md);width:100%;max-width:420px;padding:var(--space-lg);box-shadow:0 4px 20px #00000026}.profile-dialog-title{margin:0 0 var(--space-md);font-size:1.1rem;font-weight:700}.profile-dialog-form{gap:var(--space-md);flex-direction:column;display:flex}.profile-dialog-field label{margin-bottom:var(--space-xs);color:var(--color-muted);font-size:.9rem;font-weight:500;display:block}.profile-dialog-field input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-base);font-family:inherit}.profile-dialog-field input:focus{outline:2px solid var(--color-primary);outline-offset:0}.profile-dialog-actions{gap:var(--space-sm);margin-top:var(--space-md);justify-content:flex-end;display:flex}.profile-dialog-actions button{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:500}.profile-dialog-actions .profile-btn-back{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-muted)}.profile-dialog-actions .profile-btn-back:hover{background:var(--color-border-light);color:inherit}.profile-dialog-actions .profile-btn-save{background:var(--color-primary);border:1px solid var(--color-primary-border);color:var(--color-surface)}.profile-dialog-actions .profile-btn-save:hover{background:var(--color-primary-hover)}.profile-dialog-actions .profile-btn-save:disabled{opacity:.7;cursor:not-allowed}.profile-dialog-lang-wrap{gap:var(--space-md);flex-wrap:wrap;align-items:center;display:flex}.profile-dialog-lang-wrap label{margin-right:var(--space-xs);color:var(--color-muted);font-size:.9rem;font-weight:500}.profile-dialog-check-row{align-items:center;gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.profile-dialog-check-row input[type=checkbox]{cursor:pointer;width:auto;margin:0}.profile-dialog-check-row label{color:var(--color-muted);cursor:pointer;margin:0;font-size:.9rem;font-weight:500}.topbar .topbar-user-id-btn{color:#fffffff2;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-family:inherit;font-size:.9rem;text-decoration:underline}.topbar .topbar-user-id-btn:hover{color:#fff}.settings-layout{gap:var(--space-lg);margin-top:var(--space-md);display:flex}.settings-nav{gap:var(--space-xs);flex-direction:column;min-width:160px;display:flex}.settings-nav-btn{padding:var(--space-sm) var(--space-md);text-align:left;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-muted);border-radius:var(--radius-sm);cursor:pointer;font-size:.95rem}.settings-nav-btn:hover{background:var(--color-border-light);color:inherit}.settings-nav-btn.active{background:var(--color-primary);border-color:var(--color-primary-border);color:#fff}.settings-content{flex:1}.settings-section-placeholder,.settings-tab-content{margin-top:var(--space-md)}.settings-tab-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.settings-hint{color:var(--color-muted-strong);margin:0;font-size:.95rem}.settings-table{border-collapse:collapse;width:100%;font-size:.9rem}.settings-table th,.settings-table td{border:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);text-align:left}.settings-table th{background:var(--color-nav-bg);font-weight:600}.settings-table .btn-row{gap:var(--space-xs);flex-wrap:wrap;display:flex}.settings-table .btn-row button{padding:var(--space-xs) var(--space-sm);cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);font-size:.85rem}.settings-table .btn-row button:hover{background:var(--color-border-light)}.settings-table .btn-row button.btn-primary{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary-border)}.settings-table .btn-row button.btn-primary:hover{background:var(--color-primary-hover)}[dir=rtl] .login-brand-text{text-align:right}.login-page{min-height:100vh;padding:var(--space-lg);justify-content:center;align-items:center;display:flex}.login-shell{border-radius:var(--radius-md);background:var(--color-surface);width:min(1100px,100%);box-shadow:var(--shadow-card);border:1px solid var(--color-border-light);display:flex;overflow:hidden}.login-left{padding:calc(var(--space-lg) * 1.25);gap:var(--space-lg);background:linear-gradient(135deg,#337ab714,#1a4d2e0f);flex-direction:column;flex:1.2;justify-content:center;display:flex}.login-right{padding:calc(var(--space-lg) * 1.25);flex:.8;justify-content:center;align-items:center;display:flex}.login-branding{justify-content:flex-start;align-items:center;gap:var(--space-md);color:inherit;margin-bottom:0;text-decoration:none;display:flex}.login-branding:hover{color:inherit}.login-logo{object-fit:contain;width:auto;height:48px}.login-logo-hires{width:min(480px,100%);height:auto;max-height:220px}.login-brand-text{text-align:left;flex-direction:column;gap:2px;display:flex}.login-welcome-title{color:#000;white-space:nowrap;margin:0;font-size:1.05rem;font-weight:700;line-height:1.2}.login-slogan{color:#265d0c;margin:0;font-size:1.05rem;font-weight:700}.login-left-links{color:var(--color-muted-strong);font-size:.95rem}.login-footer-link{color:var(--color-primary);text-decoration:none}.login-footer-link:hover{text-decoration:underline}.login-footer-sep{color:var(--color-muted-strong)}.login-form{gap:var(--space-md);flex-direction:column;width:100%;max-width:380px;display:flex}.login-card-title{margin:0 0 var(--space-sm);font-size:1.1rem;font-weight:700}.login-field-wrap{gap:var(--space-xs);flex-direction:column;display:flex}.login-field-wrap label{color:var(--color-muted);font-size:.9rem;font-weight:500}.login-field{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-base);font-family:inherit}.login-field:focus{outline:2px solid var(--color-primary);outline-offset:0}.login-field:disabled{background:var(--color-border-light);cursor:not-allowed}.login-message{padding:var(--space-sm);color:var(--color-error);border-radius:var(--radius-sm);background:#c8000014;margin:0;font-size:.9rem}.login-actions{margin-top:var(--space-xs)}.landing-cta{border-radius:var(--radius-md);border:1px solid var(--color-primary-border);background:var(--color-primary);color:var(--color-surface);cursor:pointer;text-align:center;width:100%;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:600;text-decoration:none;transition:background .2s,border-color .2s;display:inline-block}.landing-cta:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-surface)}.landing-cta:disabled{opacity:.7;cursor:not-allowed}.landing-cta-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border)}.landing-cta-secondary:hover{background:var(--color-border-light);color:var(--color-primary)}.landing-cta-wrap{align-items:center;gap:var(--space-md);text-align:center;flex-direction:column;width:100%;max-width:380px;display:flex}.landing-cta-wrap p{color:var(--color-muted);margin:0;font-size:.95rem}.login-success-msg{color:var(--color-primary);font-weight:600}@media (width<=900px){.login-shell{flex-direction:column}.login-left,.login-right{padding:var(--space-lg)}.login-branding{text-align:center;flex-direction:column;justify-content:center}.login-brand-text{text-align:center;align-items:center}}.tab-section-title{margin:0 0 1rem;font-size:1.3rem;font-weight:500}.login-forgot{text-align:right;margin-top:-4px;margin-bottom:4px}.login-forgot-link{color:var(--color-muted,#888);font-size:.82rem;text-decoration:none}.login-forgot-link:hover{text-decoration:underline}.upload-page{flex-direction:column;gap:0;max-width:820px;margin:0 auto;padding:2rem 0 3rem;display:flex}.upload-page-divider{background:linear-gradient(to right, transparent, var(--color-border,#d0d5dd) 20%, var(--color-border,#d0d5dd) 80%, transparent);height:1px;margin:2rem 0}.upload-zone-card,.upload-history-card{background:var(--color-surface,#fff);border:1px solid var(--color-border,#d0d5dd);border-radius:10px;padding:1.6rem 1.75rem;box-shadow:0 1px 4px #0000000f}.upload-section-title{color:var(--color-text,#111);margin:0 0 1.1rem;font-size:1rem;font-weight:600}.upload-file-row{border:1px solid var(--color-border,#d0d5dd);background:var(--color-bg,#f9fafb);border-radius:7px;align-items:center;gap:.6rem;margin-bottom:.85rem;padding:.45rem .45rem .45rem .8rem;display:flex}.upload-file-display{color:var(--color-text-muted,#888);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.875rem;overflow:hidden}.upload-file-display:has(+.upload-browse-btn){color:var(--color-text,#222)}.upload-browse-btn{border:1px solid var(--color-border,#d0d5dd);background:var(--color-surface,#fff);color:var(--color-text,#333);cursor:pointer;border-radius:5px;flex-shrink:0;padding:.38rem 1rem;font-size:.83rem;font-weight:500;transition:background .14s,border-color .14s}.upload-browse-btn:hover:not(:disabled){background:var(--color-bg,#f0f0f0);border-color:var(--color-primary,#2d6be4);color:var(--color-primary,#2d6be4)}.upload-browse-btn:disabled{opacity:.45;cursor:not-allowed}.upload-error-msg{color:#c0392b;margin:0 0 .8rem;font-size:.82rem}.upload-submit-btn{border:1.5px solid var(--color-primary,#2d6be4);width:100%;color:var(--color-primary,#2d6be4);cursor:pointer;letter-spacing:.01em;background:#fff;border-radius:7px;padding:.78rem 1.2rem;font-size:.9rem;font-weight:600;transition:color .25s,border-color .25s,opacity .2s;position:relative;overflow:hidden}.upload-submit-btn:disabled{opacity:.4;cursor:not-allowed}.upload-btn-fill{width:var(--fill-pct,0%);background:var(--color-primary,#2d6be4);z-index:0;transition:width .3s;position:absolute;inset:0}.upload-btn-label{z-index:1;position:relative}.upload-submit-btn.uploading .upload-btn-label{color:#fff}.upload-submit-btn.uploading{cursor:pointer}.upload-submit-btn.done{border-color:#27ae60}.upload-submit-btn.done .upload-btn-fill{background:#27ae60;width:100%}.upload-submit-btn.done .upload-btn-label{color:#fff}.upload-submit-btn.errored{color:#c0392b;border-color:#c0392b}.upload-history-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.upload-history-header .upload-section-title{margin:0}.upload-history-refresh-btn{border:1px solid var(--color-border,#d0d5dd);cursor:pointer;color:var(--color-text-muted,#888);background:0 0;border-radius:6px;padding:.28rem .6rem;font-size:1rem;transition:background .14s,color .14s}.upload-history-refresh-btn:hover{background:var(--color-bg,#f4f4f4);color:var(--color-text,#111)}.upload-history-table-wrap{border:1px solid var(--color-border,#e4e7ec);border-radius:7px;overflow-x:auto}.upload-history-table{border-collapse:collapse;width:100%;font-size:.875rem}.upload-history-table thead tr{background:var(--color-bg,#f7f8fa);border-bottom:1px solid var(--color-border,#e4e7ec)}.upload-history-table th{text-align:left;color:var(--color-text-muted,#667);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;padding:.65rem 1rem;font-size:.76rem;font-weight:600}.upload-history-table td{border-bottom:1px solid var(--color-border,#f0f0f0);color:var(--color-text,#222);vertical-align:middle;padding:.7rem 1rem}.upload-history-row:last-child td{border-bottom:none}.upload-history-row:hover td{background:color-mix(in srgb, var(--color-primary,#2d6be4) 4%, transparent)}.col-index{width:48px;color:var(--color-text-muted,#aaa);font-size:.78rem}.col-status{width:160px}.upload-filename-text{white-space:nowrap;text-overflow:ellipsis;max-width:500px;display:block;overflow:hidden}.upload-table-empty{text-align:center;color:var(--color-text-muted,#aaa);padding:2rem 1rem;font-size:.88rem}.upload-status-badge{letter-spacing:.03em;white-space:nowrap;border-radius:20px;padding:.2rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.status-unknown{background:var(--color-bg,#f0f0f0);color:var(--color-text-muted,#666);border:1px solid var(--color-border,#ddd)}.status-pending{color:#b08000;background:#fff8e1;border:1px solid #f0d060}.status-processing{color:#1a5bbf;background:#e3f0ff;border:1px solid #90bef0}.status-done{color:#1a7a40;background:#e6f9ee;border:1px solid #80d4a0}.status-failed{color:#b00020;background:#fdecea;border:1px solid #f0a0a0}.upload-pagination{border-top:1px solid var(--color-border,#eee);justify-content:center;align-items:center;gap:.4rem;margin-top:1rem;padding-top:.8rem;display:flex}.page-btn{border:1px solid var(--color-border,#d0d5dd);cursor:pointer;color:var(--color-text,#333);background:0 0;border-radius:5px;min-width:30px;padding:.28rem .6rem;font-size:.85rem;transition:background .14s,border-color .14s}.page-btn:hover:not(:disabled){background:var(--color-bg,#f4f4f4);border-color:var(--color-primary,#2d6be4);color:var(--color-primary,#2d6be4)}.page-btn:disabled{opacity:.35;cursor:default}.page-indicator{color:var(--color-text-muted,#888);text-align:center;min-width:55px;padding:0 .4rem;font-size:.82rem}.upload-validation-box{border:1px solid #0000;border-radius:7px;margin-bottom:.85rem;padding:.85rem 1rem;font-size:.85rem}.upload-validation-box.validating{background:var(--color-bg,#f7f8fa);border-color:var(--color-border,#e0e0e0);color:var(--color-text-muted,#888);align-items:center;gap:.6rem;display:flex}.upload-validation-box.passed{background:#f0faf4;border-color:#80d4a0}.upload-validation-box.failed{background:#fef6f6;border-color:#f0a0a0}.upload-val-header{align-items:center;gap:.5rem;margin-bottom:.65rem;font-weight:600;display:flex}.upload-val-icon{font-size:1rem;line-height:1}.upload-validation-box.passed .upload-val-icon{color:#1a7a40}.upload-validation-box.failed .upload-val-icon{color:#b00020}.upload-validation-box.passed .upload-val-title{color:#1a7a40}.upload-validation-box.failed .upload-val-title{color:#b00020}.upload-col-list{flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem;display:flex}.upload-col-chip{background:var(--color-surface,#fff);border:1px solid var(--color-border,#d0d5dd);color:var(--color-text,#333);border-radius:4px;padding:.18rem .6rem;font-family:monospace;font-size:.78rem;display:inline-block}.upload-val-errors{color:#b00020;margin:.4rem 0 0;padding:0 0 0 1.1rem;font-size:.8rem}.upload-val-errors li{margin-bottom:.2rem}.upload-val-spinner{border:2px solid var(--color-border,#ccc);border-top-color:var(--color-primary,#2d6be4);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite upload-spin;display:inline-block}@keyframes upload-spin{to{transform:rotate(360deg)}}.upload-submit-btn.blocked{color:#c07070;cursor:not-allowed;opacity:.7;border-color:#e0a0a0}.upload-file-display.has-file{color:var(--color-text,#222)}.upload-selector-card{background:var(--color-surface,#fff);border:1px solid var(--color-border,#d0d5dd);border-radius:10px;padding:1.6rem 1.75rem;box-shadow:0 1px 4px #0000000f}.upload-selector-header{justify-content:space-between;align-items:center;margin-bottom:1.2rem;display:flex}.upload-selector-header .upload-section-title{margin:0}.upload-selector-steps{align-items:center;gap:.45rem;display:flex}.upload-step-dot{background:var(--color-border,#d0d5dd);border:1.5px solid var(--color-border,#ccc);cursor:default;border-radius:50%;width:9px;height:9px;transition:background .2s,border-color .2s,transform .2s}.upload-step-dot.active{background:color-mix(in srgb, var(--color-primary,#2d6be4) 20%, white);border-color:var(--color-primary,#2d6be4);transform:scale(1.25)}.upload-step-dot.done{background:#27ae60;border-color:#27ae60}.upload-selector-grid{grid-template-columns:1fr 1fr;gap:1rem 1.25rem;display:grid}.upload-selector-field{flex-direction:column;gap:.35rem;transition:opacity .2s;display:flex}.upload-selector-field.locked{opacity:.45;pointer-events:none}.upload-selector-dates{grid-column:1/-1}.upload-selector-label{color:var(--color-text-muted,#667);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:600}.upload-selector-select{border:1px solid var(--color-border,#d0d5dd);background:var(--color-bg,#f9fafb);width:100%;color:var(--color-text,#222);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;border-radius:6px;padding:.48rem 2rem .48rem .75rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.upload-selector-select:focus{border-color:var(--color-primary,#2d6be4);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary,#2d6be4) 12%, transparent);outline:none}.upload-selector-select:disabled{opacity:.55;cursor:not-allowed}.upload-date-row{align-items:center;gap:.75rem;display:flex}.upload-date-group{flex:1;align-items:center;gap:.45rem;display:flex}.upload-date-label{color:var(--color-text-muted,#888);white-space:nowrap;flex-shrink:0;font-size:.78rem}.upload-date-sep{color:var(--color-text-muted,#aaa);flex-shrink:0;font-size:.9rem}.upload-selector-date{border:1px solid var(--color-border,#d0d5dd);background:var(--color-bg,#f9fafb);color:var(--color-text,#222);border-radius:6px;flex:1;padding:.45rem .65rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.upload-selector-date:focus{border-color:var(--color-primary,#2d6be4);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary,#2d6be4) 12%, transparent);outline:none}.upload-selector-date:disabled{opacity:.45;cursor:not-allowed}.upload-selector-date.date-error{border-color:#c0392b}.upload-date-error{color:#c0392b;margin:.3rem 0 0;font-size:.78rem}.upload-file-row.locked{opacity:.5;pointer-events:none}.col-period{white-space:nowrap;color:var(--color-text-muted,#666);font-size:.8rem}.col-log{text-align:center;width:80px}.upload-log-download-btn{color:#2f5496;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #2f5496;border-radius:4px;padding:3px 10px;font-size:12px}.upload-log-download-btn:hover{color:#fff;background:#2f5496}.upload-log-na{color:#aaa}
