:root{--bg: #f5f6f8;--surface: #ffffff;--surface-muted: #fafafb;--surface-hover: #f2f4f7;--border: #e2e4e8;--border-strong: #d0d3d9;--text: #17181c;--text-muted: #6b7280;--text-faint: #9aa0aa;--primary: #7c3aed;--primary-hover: #6a2fd0;--primary-soft: #f3eefe;--primary-border: #d6c6fb;--focus-ring: rgba(124, 58, 237, .35);--success: #137333;--success-soft: #e6f4ea;--warning: #b06000;--warning-soft: #fdf0e0;--danger: #b3261e;--danger-soft: #fceceb;--info: #0b57d0;--info-soft: #e8f0fe;--neutral-soft: #f1f2f4;--radius: 8px;--radius-sm: 6px;--control-h: 34px;--shadow-sm: 0 1px 1px rgba(16, 24, 40, .03);--shadow-md: 0 4px 16px rgba(16, 24, 40, .08);--app-max-width: 1600px;--shell-width: min(var(--app-max-width), calc(100vw - 32px) );--form-max-width: 1540px}html{color-scheme:light}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}.appShell{width:var(--shell-width);margin:0 auto;padding:20px 0 48px}.pageTitle{font-size:20px;font-weight:650;margin:0 0 14px;letter-spacing:-.01em}.sectionTitle{font-size:15px;font-weight:650;margin:0}.subTitle{font-size:13.5px;font-weight:650;margin:0;color:var(--text)}.muted{color:var(--text-muted)}.hint{font-size:12px;color:var(--text-muted);margin:3px 0 0;line-height:1.4}.formShell{max-width:var(--form-max-width)}.appHeader{display:flex;align-items:center;gap:12px;padding:2px 0 10px}.appHeader h1{font-size:18px;font-weight:650;margin:0;letter-spacing:-.01em}.brandProm{color:var(--primary)}.tabBar{display:flex;align-items:center;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:9px 14px;font-size:14px;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:0;height:auto}.tab:hover{color:var(--primary);background:transparent}.tab[aria-selected=true]{color:var(--text);font-weight:600;border-bottom-color:var(--primary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow-sm)}.card--muted{background:var(--surface-muted);box-shadow:none}.card--flush{padding:0;overflow:hidden}.cardHead{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.cardIndex{color:var(--text-faint);font-variant-numeric:tabular-nums;font-weight:650}.subCard{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;background:var(--surface-muted)}.subCard+.subCard{margin-top:0}.subCard--wide{grid-column:1 / -1}.grid2{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:12px 18px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(200px,1fr));gap:12px 18px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px 18px}@media (max-width: 1500px){.grid4{grid-template-columns:repeat(2,minmax(170px,1fr))}}@media (max-width: 1200px){.grid2,.grid3{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:10px}.stack--cols{display:grid;grid-template-columns:repeat(2,minmax(340px,1fr));gap:10px;align-items:start}@media (max-width: 1180px){.stack--cols{grid-template-columns:1fr}}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap}.toolbarGroup{display:flex;align-items:center;gap:6px}.toolbarGroup+.toolbarGroup{padding-left:12px;border-left:1px solid var(--border)}.toolbarLabel{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);margin-right:2px}button,.btn{height:var(--control-h);padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:13.5px;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}button:hover:not(:disabled){background:var(--surface-hover)}button:disabled{color:var(--text-faint);background:var(--surface-muted);cursor:not-allowed}.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:650}.btn--primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn--primary:disabled{background:#e6e7ea;border-color:#e6e7ea;color:var(--text-faint)}.btn--danger{border-color:#efc4c1;background:var(--surface);color:var(--danger);font-weight:600}.btn--danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn--danger:disabled{border-color:var(--border);color:var(--text-faint);background:var(--surface-muted)}.btn--link{height:auto;padding:0;border:none;background:transparent;color:var(--info);font-size:13px}.btn--link:hover:not(:disabled){background:transparent;text-decoration:underline}.btn--sm{height:30px;padding:0 10px;font-size:12.5px}input[type=text],input[type=number],input[type=search],input[type=password],input[type=email],input:not([type]),select,textarea{height:var(--control-h);padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13.5px;font-family:inherit;box-sizing:border-box}textarea{height:auto;padding:8px 10px;line-height:1.45}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>label,.fieldLabel{font-size:12.5px;font-weight:600;color:var(--text-muted)}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{width:100%}.switch{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer;padding:2px 0}.switch input{flex:none}.switch--warning{border:1px solid #e8d5a8;background:var(--warning-soft);border-radius:var(--radius-sm);padding:8px 10px}.switch--disabled{opacity:.55;cursor:not-allowed}.switch--disabled input{cursor:not-allowed}.switch--danger{border:1px solid #f0c8c5;background:var(--danger-soft);border-radius:var(--radius-sm);padding:8px 10px}.chip{height:30px;padding:0 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.chip:hover:not(:disabled){background:var(--surface-hover)}.chip[aria-pressed=true]{border-color:var(--primary-border);background:var(--primary-soft);color:var(--text);font-weight:600}.chipCount{font-variant-numeric:tabular-nums;color:var(--text-faint)}.chip[aria-pressed=true] .chipCount{color:var(--text-muted)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.5}.badge--success{background:var(--success-soft);color:var(--success)}.badge--warning{background:var(--warning-soft);color:var(--warning)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--info{background:var(--info-soft);color:var(--info)}.badge--neutral{background:var(--neutral-soft);color:var(--text-muted)}.badge--purple{background:#f0edfa;color:#5b4a9e}.dataTable{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.dataTable th{position:sticky;top:0;z-index:1;background:var(--surface-muted);border-bottom:1px solid var(--border);padding:9px 10px;text-align:left;font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);white-space:nowrap}.dataTable td{border-bottom:1px solid var(--border);padding:9px 10px;vertical-align:top}.dataTable tbody tr:hover{background:var(--surface-hover)}.dataTable tbody tr[data-selected=true]{background:var(--primary-soft)}.dataTable .num{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.tableWrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:auto;max-height:calc(100vh - 340px);box-shadow:var(--shadow-sm)}.promLink{color:var(--text-faint);text-decoration:none;font-size:13px;line-height:1;padding:0 2px}.promLink:hover{color:var(--primary)}.charTrigger{height:30px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font-size:13px;white-space:nowrap;cursor:pointer}.charTrigger:hover{border-color:var(--primary);color:var(--primary)}.charTrigger--on{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:600}.charBar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted)}.charBarLabel{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap}.charBarBtn{height:34px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px;white-space:nowrap;cursor:pointer}.charBarBtn:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.charBarBtn--active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:600}@media (max-width: 1400px){.charBarBtn{padding:0 9px}}@keyframes sectionFocus{0%{box-shadow:0 0 0 3px var(--primary-border)}to{box-shadow:var(--shadow-sm)}}.card--focused{animation:sectionFocus 1.6s ease-out;scroll-margin-top:16px}.noticeError{background:var(--danger-soft);border:1px solid #f0c8c5;color:var(--danger);border-radius:var(--radius-sm);padding:8px 12px;margin:0 0 12px;font-size:13.5px}.noticeOk{background:var(--success-soft);border:1px solid #cfe6d6;color:var(--success);border-radius:var(--radius-sm);padding:8px 12px;margin:0 0 12px;font-size:13.5px}.authShell{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--bg)}.authCard{width:100%;max-width:380px;padding:28px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.authBrand{margin:0 0 20px;font-size:17px;font-weight:600}.authTitle{margin:0 0 18px;font-size:20px;font-weight:600}.userMenu{position:relative;display:inline-block}.userMenuList{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:210px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.userMenuHead{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.userMenuItem{display:block;width:100%;height:34px;padding:0 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.userMenuItem:hover{background:var(--primary-soft);color:var(--primary)}.userMenuItem--danger:hover{background:var(--danger-soft);color:var(--danger)}.passwordOut{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.02em;-webkit-user-select:all;user-select:all}.issuedBox{margin-bottom:14px;padding:12px;border:1px solid #e8d5a8;border-radius:var(--radius-sm);background:var(--warning-soft)}.kv{display:grid;grid-template-columns:160px 1fr;gap:6px 12px;margin:0;font-size:13.5px}.kv dt{color:var(--text-muted)}.kv dd{margin:0}
