:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0e14;--bg-elevated:#10151d;--bg-card:#151b24;--bg-card-hover:#1b222d;--bg-input:#0d121a;--border:#232b37;--border-strong:#2c3543;--text-primary:#f2f4f7;--text-secondary:#8a94a6;--text-muted:#5b6472;--accent-green:#22c55e;--accent-green-soft:#22c55e26;--accent-green-contrast:#06210f;--accent-teal:#2dd4bf;--accent-teal-soft:#2dd4bf26;--accent-red:#f87171;--accent-red-soft:#f8717126;--accent-red-contrast:#2a0a0a;--accent-orange:#f59e0b;--accent-orange-soft:#f59e0b26;--radius-card:12px;--radius-pill:999px;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f7fa;--bg-elevated:#fff;--bg-card:#fff;--bg-card-hover:#f2f4f7;--bg-input:#fff;--border:#e4e7ec;--border-strong:#d0d5dd;--text-primary:#101828;--text-secondary:#667085;--text-muted:#98a2b3;--accent-green:#16a34a;--accent-green-soft:#16a34a1f;--accent-green-contrast:#fff;--accent-teal:#0f766e;--accent-teal-soft:#0f766e1f;--accent-red:#dc2626;--accent-red-soft:#dc26261a;--accent-red-contrast:#fff;--accent-orange:#b45309;--accent-orange-soft:#b453091f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text-primary);margin:0}#root{min-height:100vh}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h1{color:var(--text-primary);margin:0;font-size:22px}.page-search{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--bg-input);width:280px;max-width:100%;color:var(--text-primary);margin-bottom:16px;padding:10px 16px;font-size:14px}.page-search::placeholder{color:var(--text-muted)}.page-search:focus{border-color:var(--accent-green);outline:none}.page-search-row{gap:12px;margin-bottom:16px;display:flex}.page-search-row.page-search-row-inline,.page-search-row .page-search{margin-bottom:0}.page-search-row .page-search[type=date]{width:170px;color-scheme:inherit}.pagination-row{justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}.pagination-page{color:var(--text-secondary);font-size:13px}.theme-toggle{border:1px solid var(--border-strong);background:var(--bg-card);border-radius:var(--radius-pill);cursor:pointer;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:16px;line-height:1;display:inline-flex}.theme-toggle:hover{background:var(--bg-card-hover)}.page-header-actions{gap:8px;display:flex}.dashboard-greeting{color:var(--text-secondary);margin:-8px 0 20px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;gap:8px;padding:20px;display:flex}.stat-label{color:var(--text-secondary);font-size:13px}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:32px;display:grid}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px}.chart-card h3{color:var(--text-primary);margin:0 0 16px;font-size:14px;font-weight:600}.chart-footnote{color:var(--text-secondary);text-align:center;margin:8px 0 0;font-size:12px}.chart-empty{color:var(--text-secondary);text-align:center;padding:24px 0;font-size:13px}.operator-bar-chart{flex-direction:column;gap:10px;display:flex}.operator-bar-row{grid-template-columns:84px 1fr 40px;align-items:center;gap:10px;display:grid}.operator-bar-label{color:var(--text-secondary);font-size:13px}.operator-bar-track{background:var(--bg-elevated);border-radius:8px;height:16px;overflow:hidden}.operator-bar-fill{background:var(--accent-teal);border-radius:8px;min-width:4px;height:100%;transition:opacity .15s}.operator-bar-fill:hover{opacity:.8}.operator-bar-value{color:var(--text-primary);text-align:right;font-size:13px;font-weight:600}.stat-value{color:var(--text-primary);font-size:28px;font-weight:700}.stat-value-success{color:var(--accent-green)}.stat-value-error{color:var(--accent-red)}.section-title{color:var(--text-primary);margin:0 0 12px;font-size:16px}.badge{border-radius:var(--radius-pill);padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-success{background:var(--accent-green-soft);color:var(--accent-green)}.badge-error{background:var(--accent-red-soft);color:var(--accent-red)}.badge-neutral{background:var(--accent-teal-soft);color:var(--accent-teal)}.badge-warning{background:var(--accent-orange-soft);color:var(--accent-orange)}.detail-list{margin:0}.detail-list dt{color:var(--text-secondary);margin-top:12px;font-size:12px}.detail-list dt:first-child{margin-top:0}.detail-list dd{color:var(--text-primary);word-break:break-word;margin:2px 0 0;font-size:14px}.batch-results{flex-direction:column;gap:4px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.batch-results li{border-radius:8px;padding:8px 10px;font-size:13px}.batch-result-ok{background:var(--accent-green-soft);color:var(--accent-green)}.batch-result-fail{background:var(--accent-red-soft);color:var(--accent-red)}.modal-backdrop{z-index:900;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);width:400px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);padding:24px;overflow-y:auto;box-shadow:0 8px 24px #0006}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h2{color:var(--text-primary);margin:0;font-size:18px}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:22px;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-form{flex-direction:column;gap:4px;display:flex}.modal-form label{color:var(--text-secondary);margin-top:8px;font-size:13px}.modal-form input,.modal-form select,.modal-form textarea{border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{border-color:var(--accent-green);outline:none}.modal-textarea{resize:vertical}.modal-error{color:var(--accent-red);margin:8px 0 0;font-size:13px}.modal-hint{color:var(--text-secondary);margin:8px 0 0;font-size:12px}.modal-hint-count{color:var(--text-muted);font-weight:400}.modal-hint-count.over-limit{color:var(--accent-red);font-weight:600}.checkbox-label{flex-direction:row;align-items:center;gap:8px;display:flex}.checkbox-label input{width:auto}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.btn{border-radius:var(--radius-pill);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent-green);color:var(--accent-green-contrast);border:none}.btn-primary:hover:not(:disabled){background:#34d374}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover)}.btn-danger{background:var(--accent-red);color:var(--accent-red-contrast);border:none}.btn-danger:hover:not(:disabled){background:#f99b9b}.app-layout{background:var(--bg);min-height:100vh;display:flex}.app-sidebar{background:var(--bg-elevated);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;padding:20px 12px;display:flex}.app-sidebar-brand{color:var(--text-primary);padding:0 8px 20px;font-size:16px;font-weight:700}.app-nav{flex-direction:column;gap:2px;display:flex}.app-nav-link{color:var(--text-secondary);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;text-decoration:none;display:flex}.app-nav-icon{color:var(--text-muted);flex-shrink:0}.app-nav-link:hover{background:var(--bg-card);color:var(--text-primary)}.app-nav-link:hover .app-nav-icon{color:var(--text-primary)}.app-nav-link.active{background:var(--accent-green-soft);color:var(--accent-green);font-weight:600}.app-nav-link.active .app-nav-icon{color:var(--accent-green)}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-header{background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:16px;height:60px;padding:0 24px;display:flex}.app-nav-toggle{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;margin-right:auto;padding:4px 8px;font-size:20px;line-height:1;display:none}.app-nav-backdrop{display:none}.app-header-user{color:var(--text-secondary);font-size:14px}.app-header-logout{border:1px solid var(--border-strong);background:var(--bg-card);border-radius:var(--radius-pill);cursor:pointer;color:var(--text-primary);align-items:center;gap:6px;padding:8px 16px;font-size:13px;display:inline-flex}.app-header-logout:hover{background:var(--bg-card-hover)}.app-content{flex:1;padding:24px;overflow-y:auto}@media (width<=768px){.app-nav-toggle{display:inline-block}.app-sidebar{z-index:950;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.app-sidebar.open{transform:translate(0)}.app-nav-backdrop{z-index:940;background:#0009;display:block;position:fixed;inset:0}.app-content{padding:16px}.app-header{padding:0 16px}.app-header-user{display:none}}.toast-stack{z-index:1000;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.toast{color:#fff;border-radius:8px;min-width:220px;padding:12px 16px;font-size:14px;box-shadow:0 8px 24px #0006}.toast-success{background:#16a34a}.toast-error{background:#dc2626}.data-table-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;color:var(--text-secondary);background:var(--bg-elevated);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 16px;font-size:12px;font-weight:600}.data-table td{color:var(--text-primary);border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--bg-card-hover)}.data-table-status{text-align:center;color:var(--text-secondary);padding:32px 16px}.data-table-error{color:var(--accent-red)}.table-actions{gap:8px;display:flex}.table-action-btn{color:var(--accent-teal);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px 6px;font-size:13px;display:inline-flex}.table-action-btn:hover{text-decoration:underline}.table-action-btn.danger{color:var(--accent-red)}.masked-content{color:var(--text-muted);cursor:pointer;letter-spacing:.05em;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:14px;display:inline-flex}.masked-content:hover{color:var(--text-secondary)}.masked-content-locked{cursor:not-allowed;opacity:.7}.masked-content-locked:hover{color:var(--text-muted)}.skeleton-bar{background:linear-gradient(90deg, var(--border) 25%, var(--bg-card-hover) 37%, var(--border) 63%);background-size:400% 100%;border-radius:6px;width:100%;max-width:140px;height:12px;animation:1.4s infinite skeleton-shimmer;display:inline-block}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.login-page{background:radial-gradient(560px circle at 15% 20%, var(--accent-green-soft), transparent 60%), radial-gradient(480px circle at 85% 85%, var(--accent-teal-soft), transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page-theme-toggle{position:absolute;top:24px;right:24px}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;gap:8px;width:360px;padding:36px 32px 32px;display:flex;position:relative;box-shadow:0 20px 48px #00000059}.login-brand{background:var(--accent-green-soft);width:48px;height:48px;color:var(--accent-green);border-radius:14px;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.login-card h1{text-align:center;color:var(--text-primary);margin:0;font-size:20px}.login-card .subtitle{color:var(--text-secondary);text-align:center;margin:4px 0 16px;font-size:13px}.login-card label{color:var(--text-secondary);margin-top:8px;font-size:13px}.input-group{align-items:center;display:flex;position:relative}.input-group svg{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.login-card input{border:1px solid var(--border-strong);background:var(--bg-input);width:100%;color:var(--text-primary);border-radius:8px;padding:10px 12px 10px 38px;font-size:14px}.login-card input.has-toggle{padding-right:38px}.login-card input::placeholder{color:var(--text-muted)}.login-card input:focus{border-color:var(--accent-green);outline:none}.input-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;display:flex;position:absolute;right:6px}.input-toggle:hover{color:var(--text-secondary);background:var(--bg-card-hover)}.login-card .link-forgot{color:var(--accent-teal);align-self:flex-end;margin-top:12px;font-size:13px;text-decoration:none}.login-card .link-forgot:hover{text-decoration:underline}.login-card .error{color:var(--accent-red);margin:4px 0 0;font-size:13px}.login-submit{border-radius:var(--radius-pill);background:var(--accent-green);color:var(--accent-green-contrast);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;margin-top:20px;padding:11px 12px;font-size:14px;font-weight:600;display:flex}.login-submit:hover:not(:disabled){background:#34d374}.login-submit:disabled{opacity:.7;cursor:not-allowed}.spinner{border:2px solid #00000040;border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-card .link-back{color:var(--accent-teal);text-align:center;margin-top:16px;font-size:13px;text-decoration:none}.login-card .link-back:hover{text-decoration:underline}
