@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--primary:#0d9488;--primary-hover:#0f766e;--primary-light:#f0fdfa;--primary-mid:#99f6e4;--bg:#f5f7fa;--surface:#fff;--border:#e5e7eb;--border-strong:#d1d5db;--text:#111827;--text-muted:#6b7280;--text-subtle:#9ca3af;--heading:#111827;--sidebar-bg:#fff;--sidebar-border:#e5e7eb;--sidebar-text:#6b7280;--sidebar-text-hover:#111827;--sidebar-active-bg:#f0fdfa;--sidebar-active-text:#0d9488;--sidebar-active-border:#0d9488;--c-teal:#0d9488;--c-blue:#3b82f6;--c-purple:#8b5cf6;--c-orange:#f59e0b;--c-green:#22c55e;--success:#16a34a;--success-light:#dcfce7;--danger:#dc2626;--danger-light:#fee2e2;--warning:#d97706;--warning-light:#fef3c7;--font:"Inter", system-ui, -apple-system, sans-serif;--radius-sm:6px;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow:0 4px 12px #00000012;--shadow-lg:0 8px 24px #0000001a}h1,h2,h3{color:var(--heading);font-family:var(--font);letter-spacing:-.02em;font-weight:700;line-height:1.2}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);font-family:var(--font);background:var(--bg);margin:0;font-size:14px;line-height:1.5}#root{min-height:100vh}h1,h2,h3{color:var(--heading);font-family:var(--font);letter-spacing:-.02em;font-weight:700}.layout{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:10;flex-direction:column;width:230px;min-width:230px;height:100vh;display:flex;position:sticky;top:0;overflow:auto}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:.625rem;padding:1.125rem 1.25rem;text-decoration:none;display:flex}.brand-logo{border-radius:var(--radius-sm);background:var(--primary);flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-name{color:var(--text);letter-spacing:-.02em;font-size:.9375rem;font-weight:700}.sidebar-role-banner{background:var(--primary-light);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 1.25rem;display:flex}.role-banner-text{flex-direction:column;gap:1px;min-width:0;display:flex}.role-banner-label{letter-spacing:.08em;text-transform:uppercase;color:var(--primary);font-size:.625rem;font-weight:700}.role-banner-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.nav-section{flex-direction:column;flex:1;gap:2px;padding:1rem .875rem;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--sidebar-text);align-items:center;gap:.625rem;padding:.5625rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .1s,color .1s;display:flex}.nav-item:hover{color:var(--sidebar-text-hover);background:#f9fafb}.nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600}.nav-icon{opacity:.6;flex-shrink:0;width:16px;height:16px}.nav-item:hover .nav-icon{opacity:.85}.nav-item.active .nav-icon{opacity:1;color:var(--primary)}.sidebar-footer{border-top:1px solid var(--border);background:inherit;margin-top:auto;padding:.875rem 1.25rem;position:sticky;bottom:0}.btn-logout{color:var(--sidebar-text);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;width:100%;padding:.375rem 0;font-size:.875rem;font-weight:500;transition:color .1s;display:flex}.btn-logout:hover{color:var(--danger)}.sidebar-username,.sidebar-role{display:none}.content-area{flex:1;min-width:0;overflow-y:auto}.page-topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem 2rem 0;display:flex}.page-topbar-left{flex-direction:column;gap:.2rem;display:flex}.page-topbar-date{color:var(--text-muted);font-size:.84rem;font-weight:500}.page-topbar-title{color:var(--heading);margin:0;font-size:1.6rem;font-weight:700}.page-topbar-sub{color:var(--text-muted);margin:0;font-size:.95rem}.page-topbar-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.page-shell{gap:1.15rem;max-width:1200px;padding:1.5rem 2rem 2rem;display:grid}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-title{margin:0 0 .2rem;font-size:1.5rem;font-weight:700}.page-desc{color:var(--text-muted);max-width:65ch;margin:0;font-size:.95rem}.auth-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(400px,100%);box-shadow:var(--shadow-lg);padding:2.5rem}.auth-logo{border-radius:var(--radius);background:var(--primary);justify-content:center;align-items:center;width:42px;height:42px;margin-bottom:1.5rem;display:flex}.auth-title{margin:0 0 .25rem;font-size:1.375rem;font-weight:700}.auth-subtitle{color:var(--text-muted);margin:0 0 1.75rem;font-size:.875rem}.auth-form{gap:1rem;display:grid}.form-group{gap:.4rem;display:grid}.form-label{color:var(--text);font-size:.8125rem;font-weight:600}.form-input{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%;padding:.5625rem .75rem;font-size:.875rem;transition:border-color .1s,box-shadow .1s}.form-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0d948826}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.85rem;display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:1rem 1.1rem;display:flex;box-shadow:0 8px 22px #0f172a0e}.metric-card-clickable{text-align:left;cursor:pointer;width:100%;font:inherit;transition:border-color .12s,box-shadow .12s}.metric-card-clickable:hover{border-color:var(--primary);box-shadow:0 10px 26px #0f172a16}.metric-card-body{flex:1;min-width:0}.metric-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .5rem;font-size:.8rem;font-weight:700}.metric-value{color:var(--text);letter-spacing:-.03em;word-break:break-word;margin:0 0 .2rem;font-size:1.75rem;font-weight:700;line-height:1}.metric-sub{color:var(--text-muted);word-break:break-word;margin:0;font-size:.88rem}.metric-delta{color:var(--primary);margin:.25rem 0 0;font-size:.82rem;font-weight:600}.metric-icon{border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.metric-icon svg{display:block}.metric-icon-teal{color:#0d9488;background:#f0fdfa}.metric-icon-blue{color:#3b82f6;background:#eff6ff}.metric-icon-purple{color:#8b5cf6;background:#f5f3ff}.metric-icon-orange{color:#f59e0b;background:#fffbeb}.quick-action-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.1rem;text-decoration:none;transition:box-shadow .12s,border-color .12s;display:flex;box-shadow:0 8px 22px #0f172a0e}.quick-action-card:hover{border-color:var(--primary);box-shadow:0 10px 26px #0f172a16}.quick-action-left{align-items:center;gap:.875rem;display:flex}.quick-action-icon{border-radius:var(--radius);background:var(--primary-light);width:36px;height:36px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.quick-action-title{margin:0 0 .15rem;font-size:.96rem;font-weight:600}.quick-action-arrow{color:var(--text-subtle);font-size:1rem}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.875rem;display:flex}.section-title svg{width:16px;height:16px;color:var(--text-muted)}.dashboard-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex;box-shadow:0 8px 22px #0f172a0e}.dashboard-toolbar-block{gap:.35rem;display:grid}.dashboard-toolbar-right{text-align:right}.dashboard-toolbar-range{gap:.25rem}.dashboard-toolbar-range-value{color:var(--text);margin:0;font-size:.95rem;font-weight:600}.dashboard-toolbar-range-hint{color:var(--text-muted);margin:0;font-size:.78rem}.dashboard-toolbar-range-inputs{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.dashboard-toolbar-range-inputs .form-input{width:auto;min-width:150px}.dashboard-toolbar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin:0;font-size:.8rem;font-weight:700}.dashboard-toolbar-value{color:var(--text);margin:0;font-size:.95rem;font-weight:600}.period-chip-row{flex-wrap:wrap;gap:.4rem;display:flex}.period-chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);font:inherit;cursor:pointer;border-radius:999px;padding:.26rem .68rem;font-size:.88rem;font-weight:600}.period-chip:hover{border-color:var(--primary);color:var(--primary)}.period-chip.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);align-items:start;gap:.85rem;display:grid}.dashboard-column-wide,.dashboard-column-side{gap:.85rem;display:grid}.dashboard-panel{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 8px 22px #0f172a0e}.panel-focus{border-color:#5eead4;box-shadow:0 0 0 2px #ccfbf1}.panel-body{padding:.95rem 1.1rem 1rem}.trend-chart{border-bottom:1px solid var(--border);grid-auto-columns:minmax(12px,1fr);grid-auto-flow:column;align-items:end;gap:.22rem;height:190px;padding:0 0 .6rem;display:grid}.trend-bar-wrap{flex-direction:column;justify-content:flex-end;align-items:center;gap:.3rem;height:100%;display:flex}.trend-bar{background:linear-gradient(#14b8a6,#0d9488);border-radius:6px 6px 3px 3px;width:100%;max-width:14px}.trend-label{color:var(--text-subtle);writing-mode:vertical-rl;letter-spacing:.02em;font-size:.6rem;transform:rotate(180deg)}.attention-list{gap:.55rem;display:grid}.attention-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;border-left-width:4px;padding:.5rem .65rem}.attention-warning{background:#fffbeb;border-left-color:#f59e0b}.attention-info{background:#eff6ff;border-left-color:#3b82f6}.attention-title{margin:0;font-size:.9rem;font-weight:700}.attention-empty{gap:.28rem;display:grid}.attention-ok{color:#047857;margin:0;font-size:.95rem;font-weight:700}.dashboard-footnote{justify-content:flex-end;display:flex}.section-title{color:var(--text);align-items:center;gap:.5rem;margin:0;font-size:1.04rem;font-weight:600;display:flex}.section-badge{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:20px;height:20px;font-size:.6875rem;font-weight:700;display:inline-flex}.section-link{color:var(--primary);font-size:.8125rem;font-weight:600;text-decoration:none}.section-link:hover{text-decoration:underline}.upload-process-shell{gap:.95rem;max-width:1180px}.upload-redesign-grid{display:block}.upload-card-redesign{gap:1rem}.upload-dropzone-wrap{gap:.45rem;display:grid}.upload-dropzone-redesign{border-style:dashed;border-width:1.5px;min-height:110px}.upload-config-grid{grid-template-columns:minmax(220px,320px) auto;justify-content:space-between;align-items:end;gap:.8rem;display:grid}.upload-redesign-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.upload-side-panel{overflow:hidden}.upload-side-body{gap:.75rem;display:grid}.upload-guide-item{border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);background:#fff;padding:.6rem .72rem}.upload-guide-step{text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin:0;font-size:.72rem;font-weight:700}.upload-guide-text{color:var(--text-muted);margin:.25rem 0 0;font-size:.88rem}.upload-history-redesign{overflow:hidden}.upload-history-head{justify-content:space-between;align-items:center;display:flex}.upload-history-count{color:#475569;background:#f1f5f9;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 .45rem;font-size:.75rem;font-weight:700;display:inline-flex}.upload-history-wrap{max-height:clamp(280px,44vh,520px);overflow:hidden auto}.upload-history-wrap .data-table th{z-index:5;position:sticky;top:0;box-shadow:0 2px #0f172a0f}.upload-history-wrap .data-table td{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.upload-empty-state{text-align:center;padding:1.4rem 1rem}.upload-history-section{width:100%}.upload-top-actions .btn-outline{color:#6d28d9;background:#ede9fe;border-color:#d8b4fe}.upload-top-actions .btn-ghost,.upload-top-actions .btn-outline,.upload-top-actions .btn-secondary{min-height:36px;padding:.47rem .82rem;font-size:.8rem}.upload-stats-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}.upload-stats-row-corporate{margin-bottom:.1rem}.upload-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-left-width:4px;padding:.8rem .92rem .86rem;box-shadow:0 8px 22px #0f172a0e}.upload-stat-neutral{border-left-color:#94a3b8}.upload-stat-success{border-left-color:#34d399}.upload-stat-emerald{border-left-color:#10b981}.upload-stat-warning{border-left-color:#f59e0b}.upload-stat-danger{border-left-color:#f87171}.upload-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0;font-size:.73rem;font-weight:700}.upload-stat-value{color:var(--heading);margin:.35rem 0 0;font-size:1.78rem;font-weight:700;line-height:1}.upload-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);gap:.82rem;padding:1.25rem;display:grid;box-shadow:0 8px 22px #0f172a0e}.upload-card-head{gap:.35rem;display:grid}.upload-main-card{gap:.8rem}.upload-main-card-wide{width:100%}.upload-main-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.btn-template{padding:.4rem .75rem;font-size:.8rem}.upload-file-zone{border-radius:var(--radius);background:linear-gradient(#fbfcff,#f7fafc);border:1px dashed #99a3b5;flex-direction:column;justify-content:center;gap:.45rem;padding:.9rem 1rem;display:flex}.upload-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;display:grid}.upload-file-inline{align-content:center;min-height:82px}.upload-file-inline input[type=file]{border-radius:var(--radius-sm);width:100%;color:var(--text-muted);border:0;padding:.52rem 0}.upload-file-inline input[type=file]::file-selector-button{color:var(--primary);font:inherit;cursor:pointer;background:#eff6ff;border:1px solid #93c5fd;border-radius:999px;margin-right:.75rem;padding:.4rem .78rem;font-size:.82rem;font-weight:600}.upload-file-inline input[type=file]::file-selector-button:hover{background:#dbeafe}.btn-upload-process{justify-content:center;min-width:176px;height:44px}.upload-bottom-row{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:.85rem;display:flex}.upload-approve-check{padding-bottom:.15rem}.card-title{margin:0 0 .5rem;font-size:.9375rem;font-weight:600}.file-input-label{color:var(--text);font-size:.9rem;font-weight:600}input[type=file]{font:inherit;color:var(--text-muted);font-size:.9rem}.upload-options-grid{grid-template-columns:minmax(220px,300px);gap:.75rem;display:grid}.upload-options-grid label{gap:.35rem;font-size:.9rem;font-weight:600;display:grid}.picked-file{color:var(--text-muted);margin:0;font-size:.8125rem}.field-row{flex-wrap:wrap;gap:.75rem;display:flex}.field-row label{gap:.35rem;min-width:180px;font-size:.9rem;font-weight:600;display:grid}.field-row select,.form-select{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:.5rem .6875rem;font-size:.875rem;transition:border-color .1s,box-shadow .1s}.field-row select:focus,.form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0d948826}.checkbox-row{align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.checkbox-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.btn-row{flex-wrap:wrap;gap:.625rem;padding-top:.25rem;display:flex}.upload-actions-row{justify-content:flex-end;padding-top:0}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:.4rem;padding:.5625rem 1.125rem;font-size:.875rem;font-weight:600;transition:background .1s,box-shadow .1s;display:inline-flex}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 2px 6px #0d948859}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);font:inherit;cursor:pointer;white-space:nowrap;align-items:center;gap:.4rem;padding:.5625rem 1.125rem;font-size:.875rem;font-weight:600;transition:background .1s,border-color .1s;display:inline-flex}.btn-secondary:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-outline{color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:.4rem;padding:.4375rem .875rem;font-size:.8125rem;font-weight:600;transition:background .1s;display:inline-flex}.btn-outline:hover{background:var(--primary-light)}.btn-ghost{color:var(--text-muted);border:1px solid var(--border-strong);border-radius:var(--radius);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:.4rem;padding:.4375rem .875rem;font-size:.8125rem;font-weight:500;transition:background .1s,color .1s;display:inline-flex}.btn-ghost:hover{color:var(--text);background:#f9fafb}.btn-danger{background:var(--surface);color:var(--danger);border-radius:var(--radius);font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #fca5a5;align-items:center;gap:.4rem;padding:.5625rem 1.125rem;font-size:.875rem;font-weight:600;transition:background .1s;display:inline-flex}.btn-danger:hover:not(:disabled){background:var(--danger-light)}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-sm{font:inherit;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:.3125rem .625rem;font-size:.75rem;font-weight:600;transition:background .1s}.hint{color:var(--text-muted);margin:0;font-size:.95rem}.status{margin:0;font-size:.875rem}.form-error{color:var(--danger);background:var(--danger-light);border-radius:var(--radius-sm);border:1px solid #fca5a5;margin:0;padding:.5rem .75rem;font-size:.8125rem;font-weight:500}.form-success{color:var(--success);background:var(--success-light);border-radius:var(--radius-sm);border:1px solid #86efac;margin:0;padding:.5rem .75rem;font-size:.8125rem;font-weight:500}.table-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 8px 22px #0f172a0e}.table-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1.1rem;display:flex}.table-header .section-title{margin:0}.data-table{border-collapse:collapse;width:100%;font-size:.93rem}.users-table-wrap{border:1px solid var(--border);border-radius:var(--radius);max-height:clamp(360px,52vh,620px);overflow:auto}.users-table-wrap .data-table{border:none}.users-table-wrap .data-table th{z-index:6;position:sticky;top:0;box-shadow:0 2px #0f172a0f}.users-table-compact .data-table th{padding-top:.52rem;padding-bottom:.52rem;font-size:.74rem}.users-table-compact .data-table td{padding-top:.54rem;padding-bottom:.54rem;font-size:.88rem}.data-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);white-space:nowrap;background:#fafafa;padding:.625rem 1.1rem;font-size:.78rem;font-weight:700}.data-table td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text);padding:.72rem 1.1rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#fafafa}.data-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.data-table td.ts{white-space:nowrap;color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.82rem}.data-table td.actions{flex-wrap:nowrap;gap:.375rem;display:flex}.icon-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:1.9rem;height:1.9rem;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.icon-btn svg{fill:currentColor;width:.95rem;height:.95rem}.icon-edit{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.icon-delete{color:#dc2626;background:#fef2f2;border-color:#fecaca}.icon-edit:hover:not(:disabled){color:var(--primary);background:#eff6ff;border-color:#93c5fd}.icon-delete:hover:not(:disabled){color:var(--danger);background:var(--danger-light);border-color:#fca5a5}.icon-download{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.icon-download:hover:not(:disabled){color:var(--primary);background:#eff6ff;border-color:#93c5fd}.icon-refresh{color:#666;background:#f5f5f5;border-color:#ddd}.icon-refresh:hover:not(:disabled){color:#333;background:#f0f0f0;border-color:#999}.icon-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.data-table tr.row-inactive td{color:var(--text-muted)}.badge{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.6875rem;font-weight:700;display:inline-flex}.badge-admin{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.badge-viewer{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.badge-active{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.badge-inactive{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(460px,100%);box-shadow:var(--shadow-lg);padding:1.8rem}.modal-card-lg{width:min(860px,100%)}.modal-card h2{margin:0 0 1.5rem;font-size:1.125rem;font-weight:700}.modal-form{gap:1rem;display:grid}.modal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-form-grid .checkbox-row,.modal-form-grid .form-error,.modal-form-grid .modal-footer{grid-column:1/-1}.modal-footer{justify-content:flex-end;gap:.625rem;margin-top:.5rem;display:flex}.modal-confirm{text-align:center}.modal-confirm .modal-title{margin:0 0 .75rem;font-size:1.25rem;font-weight:700}.modal-confirm .modal-message{color:var(--text-muted);margin:0 0 1.5rem;font-size:.95rem;line-height:1.5}.modal-confirm .modal-footer{justify-content:center}.success-notification{z-index:250;animation:.3s ease-out slideDown;position:fixed;top:1.5rem;left:50%;transform:translate(-50%)}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.success-notification-content{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;align-items:center;gap:.75rem;padding:1rem 1.5rem;font-weight:500;display:flex}.success-icon{flex-shrink:0;width:20px;height:20px}.success-message{margin:0;font-size:.95rem}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin:0 0 .35rem;font-size:.6875rem;font-weight:700;display:block}.error{color:var(--danger)}.success{color:var(--success)}.users-toolbar-wrap{z-index:12;background:#fff;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.users-toolbar{flex-direction:row;flex:1;align-items:center;gap:.75rem;width:100%;min-width:0;display:flex}.users-toolbar-shell{flex-direction:column;gap:.75rem;width:100%;display:flex}.users-toolbar-meta{display:none}.toolbar-group{flex-direction:row;align-items:center;gap:.5rem;display:flex}.toolbar-search-group{flex:1;width:auto;min-width:0}.toolbar-filter-group{flex-direction:row;flex-shrink:0;align-items:center;gap:.5rem;width:auto;display:flex}.toolbar-sort-group{grid-column:3;display:none}.toolbar-label{color:var(--text-muted);white-space:nowrap;letter-spacing:-.01em;font-size:.8125rem;font-weight:600}.sort-direction-select{min-width:120px}.users-search{width:100%;min-width:0}.users-header-actions{gap:.55rem}.icon-action-btn{border:1px solid var(--border-strong);background:var(--surface);width:38px;height:38px;color:var(--text-muted);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.icon-action-btn svg{width:18px;height:18px}.icon-action-btn:hover{color:var(--text);background:#f8fafc;border-color:#cbd5e1}.icon-action-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.icon-action-btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.icon-action-btn-export{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.icon-action-btn-export:hover{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.bulk-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.1rem;display:flex}.bulk-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.bulk-count{margin-left:auto}.bulk-meta{align-items:center;gap:.5rem;display:flex}.users-state{border:1px solid var(--border);border-radius:var(--radius);gap:.6rem;margin-top:.2rem;padding:.95rem 1rem;display:grid}.users-state-error{background:#fef2f2;border-color:#fecaca;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.users-state-empty{text-align:center;background:#f8fafc;justify-items:center;padding:1.4rem 1rem}.users-state-title{color:var(--text);margin:0;font-size:.98rem;font-weight:700}.users-state-loading{background:#fff}.users-skeleton-row{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 45%,#e2e8f0 65%) 0 0/200% 100%;border-radius:999px;height:14px;animation:1.2s ease-in-out infinite users-skeleton}@keyframes users-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.pager-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem 1.1rem;display:flex}.user-primary{font-weight:700;line-height:1.2}.user-secondary{color:var(--text-muted);margin-top:.15rem;font-size:.83em;line-height:1.2}.data-table .select-col,.data-table .select-cell{text-align:center;width:42px;padding-left:.65rem;padding-right:.65rem}.data-table .role-col,.data-table .status-col{width:120px}.data-table .date-col{width:150px}.data-table .action-col,.data-table td.actions{text-align:center;width:120px}.users-toolbar .form-input,.users-toolbar .form-select{min-height:38px}.dashboard-toolbar .btn-ghost,.dashboard-toolbar .btn-outline,.dashboard-toolbar .btn-secondary{min-height:34px;padding:.44rem .76rem;font-size:.8rem}.data-table td.actions{justify-content:center}.dashboard-header-actions{align-items:center;gap:.5rem;display:flex}.dashboard-controls-card{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1rem 1.25rem;display:flex}.dashboard-controls-block{gap:.5rem;display:grid}.dashboard-controls-label{letter-spacing:.06em;text-transform:uppercase;color:#64748b;margin:0;font-size:.75rem;font-weight:700}.dashboard-controls-value{color:#1e293b;margin:0;font-size:.9rem;font-weight:600}.dashboard-controls-right{text-align:left}.dashboard-controls-range-inputs{flex-wrap:wrap;align-items:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.period-chip-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.period-chip{border-radius:var(--radius);color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd5e1;padding:.375rem .75rem;font-size:.8rem;font-weight:600;transition:all .12s}.period-chip:hover{color:#0d9488;background:#f0fdfa;border-color:#0d9488}.period-chip.active{color:#fff;background:#0d9488;border-color:#0d9488}.dashboard-stats-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.85rem;display:grid}.dashboard-stats-row-corporate{grid-template-columns:repeat(4,1fr)}.dashboard-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;gap:.4rem;padding:1rem;display:grid;box-shadow:0 1px 2px #0f172a0a}.dashboard-stat-label{letter-spacing:.06em;text-transform:uppercase;color:#64748b;margin:0;font-size:.75rem;font-weight:700}.dashboard-stat-value{color:#1e293b;letter-spacing:-.02em;margin:0;font-size:1.6rem;font-weight:700}.dashboard-stat-sub{color:#94a3b8;margin:0;font-size:.8rem}.dashboard-stat-success{border-left:4px solid #10b981}.dashboard-stat-info{border-left:4px solid #3b82f6}.dashboard-stat-warning{border-left:4px solid #f59e0b}.dashboard-stat-neutral{border-left:4px solid #6b7280}.dashboard-grid{grid-template-columns:1fr minmax(280px,320px);gap:.85rem;display:grid}.dashboard-column-wide,.dashboard-column-side{gap:.85rem;min-width:0;display:grid}.dashboard-panel{flex-direction:column;display:flex}.dashboard-table-wrap{max-height:clamp(200px,40vh,480px);overflow:hidden auto}.dashboard-table-wrap .data-table th{z-index:5;position:sticky;top:0;box-shadow:0 2px #0f172a0f}.dashboard-table-wrap .data-table td{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.trend-chart{justify-content:space-around;align-items:flex-end;gap:.5rem;height:160px;margin:.5rem 0 1rem;display:flex}.trend-bar-wrap{flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.trend-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:linear-gradient(135deg,#0d9488 0%,#06b6d4 100%);width:100%;min-height:8px;transition:all .12s}.trend-bar-wrap:hover .trend-bar{opacity:.8;box-shadow:0 4px 8px #0d948833}.trend-label{color:#64748b;text-align:center;text-overflow:ellipsis;max-width:100%;margin-top:.5rem;font-size:.7rem;overflow:hidden}.quick-actions-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.quick-action-card{color:#1e293b;cursor:pointer;font:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.875rem 1rem;text-decoration:none;transition:all .12s;display:flex}.quick-action-card:hover{background:#f0fdfa;border-color:#0d9488;box-shadow:0 4px 12px #0d94881f}.quick-action-left{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.quick-action-icon{border-radius:var(--radius);color:#0d9488;background:#eff6ff;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.quick-action-title{color:#1e293b;margin:0 0 .15rem;font-size:.9rem;font-weight:600}.quick-action-desc{color:#64748b;margin:0;font-size:.8rem}.quick-action-arrow{color:#cbd5e1;flex-shrink:0;font-size:1rem}@media (width<=768px){.sidebar{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap}.sidebar-brand{border-bottom:none;flex:1}.sidebar-role-banner{display:none}.nav-section{flex-direction:row;flex:100%;padding:.5rem .875rem}.sidebar-footer{padding:.5rem 1rem}.layout{flex-direction:column}.page-topbar,.page-shell{padding-left:1.25rem;padding-right:1.25rem}.dashboard-grid{grid-template-columns:1fr}.dashboard-stats-row-corporate{grid-template-columns:repeat(2,1fr)}.dashboard-controls-card{flex-direction:column;gap:1rem}.metrics-grid,.quick-actions-grid{gap:.7rem}.dashboard-toolbar-right{text-align:left}.dashboard-toolbar-range-inputs,.dashboard-toolbar-range-inputs .form-input,.dashboard-toolbar-range-inputs .btn-secondary{width:100%}.trend-chart{height:150px}.trend-label{writing-mode:horizontal-tb;font-size:.56rem;transform:none}.modal-form-grid{grid-template-columns:1fr}.users-search{min-width:100%}.upload-layout,.upload-stats-row,.upload-redesign-grid,.upload-row{grid-template-columns:1fr}.btn-upload-process{width:100%}.upload-bottom-row{align-items:stretch}.upload-config-grid{grid-template-columns:1fr;justify-content:stretch}.upload-redesign-actions{justify-content:stretch}.upload-redesign-actions .btn-primary,.upload-redesign-actions .btn-secondary{justify-content:center;width:100%}.upload-main-head{flex-wrap:wrap}.upload-file-inline input[type=file]{padding:.68rem .7rem}.upload-top-actions{width:100%}.upload-top-actions .btn-ghost,.upload-top-actions .btn-outline,.upload-top-actions .btn-secondary,.dashboard-toolbar .btn-ghost,.dashboard-toolbar .btn-outline,.dashboard-toolbar .btn-secondary{flex:calc(50% - .25rem);justify-content:center}.upload-options-grid{grid-template-columns:1fr}.upload-actions-row{flex-direction:column}.upload-actions-row .btn-primary,.upload-actions-row .btn-secondary{justify-content:center;width:100%}.users-toolbar{flex-wrap:wrap;gap:.5rem}.users-toolbar-meta{display:none}.users-toolbar-wrap{top:0}.toolbar-group{width:100%}.toolbar-search-group{flex:100%;min-width:0}.toolbar-filter-group{flex-flow:wrap;width:100%}.toolbar-filter-group .form-select,.toolbar-sort-group .form-select,.sort-direction-select{width:100%;min-width:100%}.toolbar-label{display:none}.btn-clear-filters{width:100%}.reports-toolbar{grid-template-columns:1fr}.reports-toolbar-shell{gap:.5rem}.bulk-count{margin-left:0}.pager-row{flex-wrap:wrap;justify-content:center}}.page-container.reports-page-align{gap:1rem;max-width:1400px;padding:2rem;display:grid}.reports-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.reports-page-date{color:#64748b;margin:0 0 .25rem;font-size:.85rem;font-weight:500}.reports-page-title{color:#1e293b;margin:0;font-size:1.6rem;font-weight:700}.reports-page-subtitle{color:#64748b;margin:.3rem 0 0;font-size:.92rem}.reports-page-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.card-header{border-bottom:1px solid #f1f5f9;padding:1rem 1.25rem}.card-body{padding:1rem 1.25rem}.reports-toolbar-card{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:flex}.reports-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.reports-kpi-card{background:#fff;border:1px solid #e2e8f0;border-left:4px solid #0000;border-radius:12px;padding:.9rem 1rem;box-shadow:0 1px 2px #0f172a0a}.reports-kpi-label{color:#64748b;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}.reports-kpi-value{color:#0f172a;margin:.35rem 0 0;font-size:1.6rem;font-weight:700;line-height:1}.reports-kpi-teal{border-left-color:#14b8a6}.reports-kpi-blue{border-left-color:#38bdf8}.reports-kpi-violet{border-left-color:#8b5cf6}.reports-kpi-emerald{border-left-color:#10b981}.users-table-card{overflow:hidden}.users-table-card .card-body{gap:.85rem;display:grid}@media (width<=1024px){.reports-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.page-container.reports-page-align{padding:1rem}.reports-page-header-actions{width:100%}.reports-page-header-actions .btn-primary,.reports-page-header-actions .btn-secondary{flex:calc(50% - .25rem);justify-content:center}.reports-kpi-grid{grid-template-columns:1fr}}.reports-table-container{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--white);margin-top:1.5rem;overflow:hidden}.reports-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:.875rem}.reports-table .col-date{width:148px}.reports-table .col-source{width:auto}.reports-table .col-format{text-align:center;width:80px}.reports-table .col-status{text-align:center;width:100px}.reports-table .col-actions{width:220px}.reports-table thead{background:var(--bg-secondary);border-bottom:1px solid var(--border)}.reports-table th{text-align:left;color:var(--text-secondary);white-space:nowrap;padding:.875rem 1rem;font-weight:600}.reports-table tbody tr{border-bottom:1px solid var(--border);transition:background-color .15s}.reports-table tbody tr:hover{background-color:var(--bg-secondary)}.reports-table tbody tr:last-child{border-bottom:none}.reports-table td{color:var(--text);vertical-align:middle;padding:.75rem 1rem}.col-source-cell{text-overflow:ellipsis;white-space:nowrap;max-width:560px;font-size:.8125rem;overflow:hidden}.reports-table .col-format,.reports-table .col-status{text-align:center}.reports-table td:has(.format-badge){text-align:center}.reports-table td:has(.status-badge){text-align:center}.reports-table .filename-cell{text-overflow:ellipsis;white-space:nowrap;max-width:200px;color:var(--text-secondary);font-family:Monaco,Menlo,monospace;font-size:.8125rem;overflow:hidden}.format-badge{border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.025em;padding:.25rem .625rem;font-size:.75rem;font-weight:600;display:inline-block}.download-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);color:var(--primary);cursor:pointer;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.download-btn:hover:not(:disabled){background:var(--primary);color:var(--white);border-color:var(--primary)}.download-btn:disabled{opacity:.6;cursor:not-allowed}.download-btn svg{stroke:currentColor;width:16px;height:16px}.status-message{text-align:center;color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);margin-top:1.5rem;padding:2rem}.error-message{border-radius:var(--radius-md);color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;margin:1rem 0;padding:1rem;font-size:.875rem}.error-message strong{font-weight:600}.reports-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1.5rem 0;display:grid}.stat-item{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:.75rem;padding:.875rem;display:flex}.stat-label{color:var(--text-secondary);font-size:.8125rem;font-weight:500}.stat-value{color:var(--primary);font-size:1.5rem;font-weight:700}.reports-toolbar-card{margin:1.5rem 0}.reports-toolbar-wrap{border:none!important;padding:0!important}.reports-toolbar-shell{flex-direction:column;gap:1rem;padding:1rem;display:flex}.reports-toolbar{flex-direction:row;align-items:center;gap:.75rem;width:100%;min-width:0;display:flex}.reports-toolbar .toolbar-search-group{flex:1;min-width:0}.reports-toolbar .toolbar-filter-group{flex-direction:row;flex-shrink:0;align-items:center;gap:.5rem;display:flex}.toolbar-filter-group .form-select{min-width:130px}.toolbar-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.025em;white-space:nowrap;flex-shrink:0;font-size:.8125rem;font-weight:600}.btn-clear-filters{white-space:nowrap;grid-column:3;align-self:flex-end;padding:.625rem 1rem!important;font-size:.875rem!important}.toolbar-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.025em;font-size:.8125rem;font-weight:600}.reports-search{width:100%!important;padding:.625rem .75rem!important}.form-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);color:var(--text);cursor:pointer;padding:.625rem .75rem;font-family:inherit;font-size:.875rem;transition:border-color .15s}.form-select:hover{border-color:var(--primary)}.form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #3b82f61a}.reports-header-buttons{align-items:center;gap:.5rem;display:flex}.approve-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.approve-btn:hover:not(:disabled){color:#15803d;background:#f0fdf4;border-color:#86efac}.approve-btn.approved{color:#15803d;background:#dcfce7;border-color:#86efac}.actions-cell .approve-btn,.actions-cell .download-btn{justify-content:center;align-items:center;min-width:96px;display:inline-flex}.approve-btn:disabled{opacity:.6;cursor:not-allowed}.delete-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);width:32px;height:32px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:1rem;transition:all .15s;display:inline-flex}.delete-btn:hover:not(:disabled){color:#b91c1c;background:#fef2f2;border-color:#fca5a5}.delete-btn:disabled{opacity:.6;cursor:not-allowed}.status-badge{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.025em;background:var(--bg-secondary);color:var(--text-secondary);padding:.375rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.status-badge.status-approved{color:#15803d;background:#dcfce7}.status-badge.status-pending{color:#92400e;background:#fef3c7}.actions-cell{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:.375rem;display:flex}.actions-cell .download-btn,.actions-cell .approve-btn{height:32px;padding:.375rem .75rem;font-size:.8rem;line-height:1}.actions-cell .delete-btn.icon-btn{flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}@media (width<=768px){.reports-toolbar{flex-wrap:wrap;gap:.5rem}.reports-toolbar .toolbar-search-group{flex:100%}.reports-toolbar .toolbar-filter-group{flex-wrap:wrap;width:100%}.toolbar-filter-group .form-select{flex:1;min-width:0}.reports-toolbar-shell{gap:.75rem}.reports-stats{grid-template-columns:1fr}.actions-cell{flex-wrap:wrap}.download-btn{flex:1;justify-content:center;min-width:100px}}.password-input-wrap{align-items:center;display:flex;position:relative}.password-input-wrap .form-input{flex:1;padding-right:2.6rem}.btn-show-password{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:.25rem;line-height:1;display:flex;position:absolute;right:.55rem}.btn-show-password svg{width:18px;height:18px}.btn-show-password:hover{color:var(--text)}.password-strength{align-items:center;gap:.5rem;margin-top:.35rem;display:flex}.strength-track{background:#e2e8f0;border-radius:999px;flex:1;height:5px;overflow:hidden}.strength-fill{border-radius:999px;height:100%;transition:width .3s}.strength-weak .strength-fill,.strength-label.strength-weak{color:#ef4444;background:#f87171}.strength-fair .strength-fill,.strength-label.strength-fair{color:#f97316;background:#fb923c}.strength-good .strength-fill,.strength-label.strength-good{color:#ca8a04;background:#facc15}.strength-strong .strength-fill,.strength-label.strength-strong{color:#059669;background:#34d399}.strength-label{white-space:nowrap;font-size:.75rem;font-weight:700}.role-select-row{align-items:center;gap:.6rem;display:flex}.role-select-row .form-select{flex:1}.badge-locked{color:#b45309;background:#fef3c7;border-color:#fde68a}.badge-superadmin{color:#6d28d9;background:#ede9fe;border-color:#c4b5fd}.status-cell{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.btn-unlock-inline{color:#6d28d9;cursor:pointer;white-space:nowrap;background:#ede9fe;border:1px solid #6d28d9;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.btn-unlock-inline:hover{color:#fff;background:#6d28d9}.th-sort-btn{cursor:pointer;font:inherit;color:inherit;white-space:nowrap;background:0 0;border:none;align-items:center;gap:.25rem;padding:0;font-weight:600;display:inline-flex}.th-sort-btn:hover{color:var(--primary)}.sort-icon{opacity:.9;font-size:.8em}.sort-icon-inactive{opacity:.35}.empty-state-icon{color:#94a3b8;width:56px;height:56px;margin:0 auto .75rem;display:block}.users-state-empty{align-items:center}.btn-link{color:var(--primary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.btn-link:hover{color:var(--primary-hover)}.date-filter-input{min-width:130px;max-width:150px;padding:.5rem .6rem!important;font-size:.875rem!important}.text-muted{color:var(--text-muted)}.upload-dropzone{border-radius:var(--radius-lg);cursor:pointer;text-align:center;background:#f8fafc;border:2px dashed #cbd5e1;outline:none;flex-direction:column;justify-content:center;align-items:center;min-height:140px;padding:2rem 1.5rem;transition:border-color .2s,background .2s;display:flex}.upload-dropzone:hover,.upload-dropzone:focus{border-color:var(--primary);background:#f0fdf4}.upload-dropzone-active{border-color:var(--primary);background:#f0fdf4;border-style:solid}.upload-dropzone-has-file{background:#f0fdf4;border-style:solid;border-color:#10b981}.dropzone-icon{color:#94a3b8;width:40px;height:40px;margin-bottom:.75rem}.dropzone-icon-success{color:#10b981}.dropzone-hint-main{color:var(--text);margin:0 0 .25rem;font-size:.95rem}.dropzone-hint-sub{color:var(--text-muted);margin:0;font-size:.85rem}.dropzone-browse{color:var(--primary);cursor:pointer;text-decoration:underline}.dropzone-file-info{flex-direction:column;align-items:center;gap:.5rem;display:flex}.dropzone-filename{word-break:break-all;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin:0;font-size:.9rem;display:flex}.btn-clear-file{color:#ef4444;cursor:pointer;background:#fef2f2;border:1px solid #fca5a5;border-radius:999px;margin-top:.25rem;padding:.2rem .7rem;font-size:.8rem;font-weight:600}.btn-clear-file:hover{color:#fff;background:#ef4444;border-color:#ef4444}.upload-file-error{margin-top:.4rem}.upload-progress-overlay{flex-direction:column;align-items:center;gap:.6rem;padding:1rem;display:flex}.upload-spinner{border:3px solid #e2e8f0;border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.upload-spinner-label{color:var(--text-muted);margin:0;font-size:.875rem}.upload-history-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.upload-history-head-left,.upload-history-head-right{align-items:center;gap:.5rem;display:flex}.form-select-sm{min-height:32px;padding:.35rem .6rem;font-size:.82rem}.icon-reprocess{color:#6366f1}.icon-reprocess:hover{color:#4f46e5;background:#eef2ff}.dashboard-stat-main{flex-direction:column;display:flex}.delta-badge{border-radius:999px;align-self:flex-start;margin-top:.2rem;padding:.15rem .45rem;font-size:.72rem;font-weight:700;display:inline-block}.delta-up{color:#065f46;background:#d1fae5}.delta-down{color:#991b1b;background:#fee2e2}.dashboard-stat-pending{border-left:3px solid #a78bfa}.dashboard-stat-pending .dashboard-stat-value{color:#7c3aed}.dashboard-stat-skeleton{border-radius:var(--radius);background:#f8fafc;border:1px solid #e2e8f0;flex-direction:column;gap:.5rem;min-height:90px;padding:1rem;display:flex}.skeleton-line{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%) 0 0/200% 100%;border-radius:4px;animation:1.3s ease-in-out infinite shimmer}.skeleton-label{width:55%;height:10px}.skeleton-value{width:40%;height:26px}.skeleton-sub{width:70%;height:9px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.attention-panel{flex-direction:column;gap:.5rem;display:flex}.attention-item{border-radius:var(--radius);border:1px solid #0000;align-items:flex-start;gap:.65rem;padding:.7rem 1rem;display:flex}.attention-warning{background:#fffbeb;border-color:#fde68a}.attention-info{background:#eff6ff;border-color:#bfdbfe}.attention-icon{flex-shrink:0;padding-top:2px}.attention-warning .attention-icon{color:#d97706}.attention-info .attention-icon{color:#2563eb}.attention-title{color:var(--text);margin:0;font-size:.875rem;font-weight:700}.attention-detail{color:var(--text-muted);margin:.15rem 0 0;font-size:.8125rem}.trend-svg-wrap{width:100%;position:relative}.trend-svg{width:100%;height:auto;display:block;overflow:visible}.trend-grid-line{stroke:#e2e8f0;stroke-width:1px}.trend-axis-label{fill:#94a3b8;font-family:inherit;font-size:10px}.trend-area{fill:var(--primary,#14b8a6);opacity:.12}.trend-line{fill:none;stroke:var(--primary,#14b8a6);stroke-width:2.2px;stroke-linejoin:round;stroke-linecap:round}.trend-area-prev{fill:#94a3b8;opacity:.07}.trend-line-prev{fill:none;stroke:#94a3b8;stroke-width:1.5px;stroke-dasharray:5 3;stroke-linejoin:round}.trend-dot{fill:var(--primary,#14b8a6);stroke:#fff;stroke-width:1.5px;transition:r .1s}.trend-dot-active{r:5}.trend-crosshair{stroke:#cbd5e1;stroke-width:1px;stroke-dasharray:3 3}.trend-tooltip-bg{fill:#1e293b;opacity:.88}.trend-tooltip-text{fill:#fff;font-family:inherit;font-size:11px}.trend-legend{color:var(--text-muted);align-items:center;gap:1rem;margin-top:.5rem;font-size:.78rem;display:flex}.trend-legend-dot{border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.trend-legend-dot-curr{background:var(--primary,#14b8a6)}.trend-legend-dot-prev{background:#94a3b8}.master-health-grid{flex-direction:column;gap:.6rem;display:flex}.master-health-row{align-items:center;gap:.6rem;display:flex}.master-health-name{color:var(--text);text-transform:capitalize;min-width:100px;font-size:.82rem;font-weight:600}.master-health-bar-wrap{background:#e2e8f0;border-radius:999px;flex:1;height:8px;overflow:hidden}.master-health-bar{background:var(--primary,#14b8a6);border-radius:999px;min-width:3px;height:100%;transition:width .5s}.master-health-count{color:var(--text-muted);text-align:right;min-width:50px;font-size:.78rem}.dashboard-table-row-clickable{cursor:pointer;transition:background .1s}.dashboard-table-row-clickable:hover{background:#f0fdfa}.last-refreshed-label{color:var(--text-muted);white-space:nowrap;font-size:.78rem}.auto-refresh-toggle{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;font-size:.8rem;display:flex}.auto-refresh-toggle input{accent-color:var(--primary);cursor:pointer}.icon-view{color:#2563eb}.icon-view:hover{color:#1d4ed8;background:#eff6ff}
