:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-muted:#fafbfc;--color-border:#e3e6ea;--color-border-strong:#d0d5dd;--color-text:#14181f;--color-text-secondary:#3f4652;--color-text-tertiary:#6b7280;--color-text-on-primary:#fff;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-bg:#eef2ff;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-bg:#fef2f2;--color-danger-border:#fecaca;--badge-blue-bg:#dbeafe;--badge-blue-text:#1d4ed8;--badge-indigo-bg:#e0e7ff;--badge-indigo-text:#4338ca;--badge-amber-bg:#fef3c7;--badge-amber-text:#b45309;--badge-purple-bg:#ede9fe;--badge-purple-text:#6d28d9;--badge-teal-bg:#ccfbf1;--badge-teal-text:#0f766e;--badge-cyan-bg:#cffafe;--badge-cyan-text:#0e7490;--badge-green-bg:#dcfce7;--badge-green-text:#15803d;--badge-red-bg:#fee2e2;--badge-red-text:#b91c1c;--badge-orange-bg:#ffedd5;--badge-orange-text:#c2410c;--badge-gray-bg:#f1f2f4;--badge-gray-text:#4b5563;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 4px 10px #10182814;--radius-sm:6px;--radius-md:8px;font-family:var(--font-sans);color:var(--color-text-secondary);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-height:100vh;margin:0}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-sans);color:var(--color-text);margin:0}p{margin:0}a{color:var(--color-primary)}.page{max-width:1180px;margin:0 auto;padding:28px 32px 64px}.page-narrow{max-width:880px}@media (width<=900px){.page{padding:20px 16px 48px}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.page-title{letter-spacing:-.2px;font-size:22px;font-weight:600}.page-subtitle{color:var(--color-text-tertiary);margin-top:2px;font-size:14px}.top-bar-meta{color:var(--color-text-tertiary);align-items:center;gap:14px;font-size:14px;display:flex}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px}.section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:20px;padding:20px 22px}.section-title{color:var(--color-text);margin-bottom:4px;font-size:15px;font-weight:600}.section-hint{color:var(--color-text-tertiary);margin-bottom:14px;font-size:13px}.back-link{color:var(--color-text-secondary);align-items:center;gap:6px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--color-text)}.text-muted{color:var(--color-text-tertiary)}.text-caption{color:var(--color-text-tertiary);font-size:12px}.field-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.input,.select,.textarea{font-family:var(--font-sans);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:8px 10px;font-size:14px;line-height:1.4;transition:border-color .15s,box-shadow .15s}.textarea{font-family:var(--font-sans);resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.form-row{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.form-field{flex-direction:column;display:flex}.btn{font-family:var(--font-sans);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-size:13.5px;font-weight:500;line-height:1.3;transition:background .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text-secondary)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn-danger-outline{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.btn-danger-outline:hover:not(:disabled){background:var(--color-danger-border)}.btn-ghost{color:var(--color-text-tertiary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.btn-sm{padding:5px 10px;font-size:12.5px}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.badge-blue{background:var(--badge-blue-bg);color:var(--badge-blue-text)}.badge-indigo{background:var(--badge-indigo-bg);color:var(--badge-indigo-text)}.badge-amber{background:var(--badge-amber-bg);color:var(--badge-amber-text)}.badge-purple{background:var(--badge-purple-bg);color:var(--badge-purple-text)}.badge-teal{background:var(--badge-teal-bg);color:var(--badge-teal-text)}.badge-cyan{background:var(--badge-cyan-bg);color:var(--badge-cyan-text)}.badge-green{background:var(--badge-green-bg);color:var(--badge-green-text)}.badge-red{background:var(--badge-red-bg);color:var(--badge-red-text)}.badge-orange{background:var(--badge-orange-bg);color:var(--badge-orange-text)}.badge-gray{background:var(--badge-gray-bg);color:var(--badge-gray-text)}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:13.5px}.data-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-tertiary);background:var(--color-surface-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:11px 16px;font-size:11.5px;font-weight:600}.data-table tbody td{border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);vertical-align:middle;padding:13px 16px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.row-clickable{cursor:pointer;transition:background .1s}.data-table tbody tr.row-clickable:hover{background:var(--color-surface-muted)}.data-table .cell-primary{color:var(--color-text);font-weight:500}.data-table .cell-empty{text-align:center;color:var(--color-text-tertiary);padding:40px 16px}table.detail-table{border-collapse:collapse;width:100%}.detail-table tr{border-bottom:1px solid var(--color-border)}.detail-table tr:last-child{border-bottom:none}.detail-table td{padding:10px 4px;font-size:14px}.detail-table td.detail-label{width:160px;color:var(--color-text-tertiary);vertical-align:top;font-weight:500}.detail-table td.detail-value{color:var(--color-text)}.state-message{text-align:center;color:var(--color-text-tertiary);padding:40px 20px;font-size:14px}.error-banner{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);border-radius:var(--radius-sm);margin-bottom:14px;padding:10px 14px;font-size:13.5px}.spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);vertical-align:-2px;border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.callout-instructions{border-radius:var(--radius-md);background:#fffbeb;border:1px solid #fde68a;margin-bottom:22px;padding:16px 18px}.callout-instructions .section-title{color:#92400e}.callout-revert{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-sm);margin-top:12px;padding:14px 16px}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:380px;box-shadow:var(--shadow-md);padding:32px}.login-title{color:var(--color-text);text-align:center;margin-bottom:22px;font-size:18px;font-weight:600}
