.ch-pips{align-items:center;gap:2px;display:inline-flex}.ch-pip{cursor:pointer;border:1px solid var(--border-strong);background:var(--bg);border-radius:3px;width:15px;height:15px;padding:0}.ch-pip:hover{border-color:var(--accent)}.ch-pip.on{background:var(--accent-2);border-color:var(--accent-2)}.ch-pip.on.full{background:var(--good);border-color:var(--good)}.ch-pips:focus-within .ch-pip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ch-lvl{text-align:center;width:4.2em;padding:3px 6px}.ch-nickname{color:#f1dc9b;background:#fbbf2417;border-color:#fbbf248c}.ch-nickname strong{color:#ffe9a8}.ch-hint{color:var(--faint);font-size:12px}.ch-hint.warn{color:var(--warn)}.ch-accounts{flex-direction:column;gap:14px;display:flex}.ch-acct-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.ch-acct-head .ch-label{flex:200px;max-width:320px;font-weight:600}.ch-acct-body{padding:0}.ch-toon-table td,.ch-toon-table th{padding:5px 10px}.ch-toon-table input[type=text]{min-width:120px}.ch-toon-detail td{background:#ffffff05}.ch-detail-grid{grid-template-columns:minmax(220px,1fr) minmax(260px,2fr);gap:16px;padding:4px 4px 8px;display:grid}@media (width<=900px){.ch-detail-grid{grid-template-columns:1fr}}.ch-profile{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px 10px;display:grid}.ch-profile label{color:var(--muted);justify-content:space-between;align-items:center;gap:6px;font-size:12px;display:flex}.ch-chip{border:1px solid var(--border-strong);color:var(--faint);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:0 7px;font-size:11px;line-height:1.6}.ch-chip:hover{border-color:var(--accent);color:var(--text)}.ch-chip.on{background:var(--accent-soft);color:var(--accent);border-color:#38bdf880}.ch-chips{flex-wrap:wrap;gap:4px;display:flex}.ch-slots{font-variant-numeric:tabular-nums;white-space:nowrap}.ch-slots span{color:var(--faint);margin-left:2px;margin-right:6px;font-size:11px}.ch-bulkbar{z-index:6;background:var(--panel-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex;position:sticky;bottom:12px}.ch-matrix td.lv,.ch-matrix th.lv{text-align:center;padding-left:6px;padding-right:6px}.ch-matrix td.lv{font-variant-numeric:tabular-nums}.ch-lv0{color:var(--faint)}.ch-lv1,.ch-lv2{color:var(--muted)}.ch-lv3,.ch-lv4{color:var(--accent)}.ch-lv5,.ch-ok{color:var(--good);font-weight:600}.ch-no{color:var(--faint)}tr.ch-group-row td{background:var(--panel-2);border-top:1px solid var(--border-strong);font-weight:600}tr.ch-group-row td small{color:var(--muted);font-weight:400}.ch-skill-groups{flex-direction:column;gap:8px;display:flex}.ch-group{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2)}.ch-group>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:8px 12px;list-style:none;display:flex}.ch-group>summary::-webkit-details-marker{display:none}.ch-group>summary:before{content:"▸";color:var(--faint);width:1em}.ch-group[open]>summary:before{content:"▾"}.ch-group-name{font-weight:600}.ch-skill-row{border-top:1px solid var(--border);align-items:center;gap:12px;padding:4px 12px 4px 34px;display:flex}.ch-skill-row:hover{background:#ffffff06}.ch-skill-row .ch-skill-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ch-skill-row .ch-rank{text-align:right;width:2.6em}.ch-skill-row.trained .ch-skill-name{color:var(--text)}.ch-skill-row:not(.trained) .ch-skill-name{color:var(--muted)}.ch-ignored{max-height:260px;font-family:var(--mono);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;overflow:auto}.ch-ignored div{border-bottom:1px solid var(--border);gap:10px;padding:3px 10px;display:flex}.ch-ignored div:last-child{border-bottom:0}.ch-ignored .ln{color:var(--faint);text-align:right;min-width:3em}.ch-ignored .why{color:var(--warn);white-space:nowrap;margin-left:auto}.ch-login{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2);padding:10px 14px}.ch-login+.ch-login{margin-top:8px}.ch-login h3{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.ch-login ul{color:var(--muted);margin:6px 0 0;padding-left:18px}.ch-esi{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.ch-scopes{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 16px;display:grid}.ch-scopes label{align-items:flex-start;gap:8px;font-size:12.5px;display:flex}.ch-scopes label small{color:var(--faint);display:block}.ch-avatar{border:1px solid var(--border-strong);background:var(--panel-2);border-radius:50%;flex:none;width:28px;height:28px}.ch-avatar.sm{width:22px;height:22px}.ch-auth{position:relative}.ch-auth-btn{align-items:center;gap:8px;padding:3px 10px 3px 4px;display:inline-flex}.ch-auth-pop{z-index:40;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);width:320px;max-width:calc(100vw - 24px);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.ch-auth-chars{flex-direction:column;gap:4px;max-height:220px;display:flex;overflow:auto}.ch-auth-char{align-items:center;gap:8px;font-size:13px;display:flex}.ch-auth-char .grow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ch-switch{align-items:center;gap:8px;display:flex}.ch-dot{background:var(--faint);border-radius:50%;width:8px;height:8px;display:inline-block}.ch-dot.ok{background:var(--good)}.ch-dot.busy{background:var(--accent)}.ch-dot.bad{background:var(--bad)}.ch-mono-area{min-height:220px}.ch-cols{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px;display:grid}.ch-pick-list{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:260px;padding:6px 10px;overflow:auto}.ch-pick-list h4{color:var(--muted);margin:8px 0 2px;font-size:12px;font-weight:600}.ch-pick-list h4:first-child{margin-top:0}:root{--bg:#0a1020;--bg-2:#0e1729;--panel:#111b31;--panel-2:#16223d;--border:#22314f;--border-strong:#2f4266;--text:#e3e9f5;--muted:#8b9bb8;--faint:#5d6d8c;--accent:#38bdf8;--accent-2:#0ea5e9;--accent-soft:#38bdf824;--good:#34d399;--warn:#fbbf24;--bad:#f87171;--radius:10px;--radius-sm:6px;--shadow:0 1px 0 #ffffff08 inset, 0 8px 24px #00000059;--mono:ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:22px}h2{font-size:16px}h3{font-size:14px}p{margin:0}code,.mono{font-family:var(--mono);font-size:12.5px}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--muted)}.faint{color:var(--faint)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.nowrap{white-space:nowrap}.grow{flex:1;min-width:0}.app{grid-template-columns:236px 1fr;min-height:100%;display:grid}.sidebar{background:var(--bg-2);border-right:1px solid var(--border);height:100vh;padding:14px 10px;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:6px 10px 16px;font-size:15px;font-weight:700;display:flex}.brand svg{color:var(--accent)}.nav-group{margin-top:14px}.nav-group>.nav-title{color:var(--faint);text-transform:uppercase;letter-spacing:.08em;padding:0 10px 6px;font-size:11px}.nav-link{border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:8px;padding:7px 10px;font-weight:500;display:flex}.nav-link:hover{background:var(--panel);color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--accent)}.nav-link .soon{color:var(--faint);border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:0 6px;font-size:10px}.main{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#0a1020d9;align-items:center;gap:12px;padding:10px 24px;display:flex;position:sticky;top:0}.topbar .menu-btn{display:none}.content{width:100%;max-width:1500px;padding:24px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-head p{color:var(--muted);margin-top:2px}@media (width<=860px){.app{grid-template-columns:1fr}.sidebar{z-index:20;width:260px;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow);transform:none}.topbar .menu-btn{display:inline-flex}.content{padding:16px}}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card>.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.card>.card-body{padding:16px}.grid{gap:16px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.split{grid-template-columns:380px minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1100px){.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media (width<=640px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.stat{padding:14px 16px}.stat .label{color:var(--muted);font-size:12px}.stat .value{font-variant-numeric:tabular-nums;margin-top:2px;font-size:22px;font-weight:650}.stat .sub{color:var(--faint);margin-top:2px;font-size:12px}.badge{border:1px solid var(--border-strong);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:11px;display:inline-flex}.badge.good{color:var(--good);background:#34d39914;border-color:#34d39966}.badge.warn{color:var(--warn);background:#fbbf2414;border-color:#fbbf2466}.badge.bad{color:var(--bad);background:#f8717114;border-color:#f8717166}.badge.accent{color:var(--accent);background:var(--accent-soft);border-color:#38bdf866}.notice{border:1px solid var(--border-strong);background:var(--panel-2);border-radius:var(--radius);color:var(--muted);padding:10px 14px}.notice.warn{color:#e9d28f;background:#fbbf2412;border-color:#fbbf2466}.notice.bad{color:#f3b1b1;background:#f8717112;border-color:#f8717173}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}input[type=text],input[type=number],input[type=search],input:not([type]),select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;width:100%;min-width:0;padding:7px 10px}textarea{resize:vertical;font-family:var(--mono);font-size:12.5px;line-height:1.45}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:15px;height:15px}input[type=number]{font-variant-numeric:tabular-nums}.check{color:var(--text);align-items:center;gap:8px;display:flex}.btn{border-radius:var(--radius-sm);background:var(--panel-2);color:var(--text);border:1px solid var(--border-strong);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent-2);border-color:var(--accent-2);color:#04121f;font-weight:600}.btn.primary:hover{background:var(--accent)}.btn.ghost{background:0 0}.btn.danger:hover{border-color:var(--bad);color:var(--bad)}.btn.sm{padding:3px 9px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.tabs{border-bottom:1px solid var(--border);gap:2px;display:flex;overflow-x:auto}.tab{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:9px 14px;font-weight:500}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.table-wrap{max-height:70vh;overflow:auto}table.data{border-collapse:collapse;width:100%}table.data th,table.data td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:7px 12px}table.data th{background:var(--panel-2);color:var(--muted);cursor:default;white-space:nowrap;z-index:1;font-size:12px;font-weight:600;position:sticky;top:0}table.data th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data th.sortable:hover{color:var(--text)}table.data th .sort-button{font:inherit;color:inherit;cursor:inherit;text-align:inherit;background:0 0;border:0;margin:0;padding:0}table.data th .sort-button:focus-visible,table.data tbody tr[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}table.data th.right,table.data td.right{text-align:right}table.data tbody tr:hover{background:#ffffff06}table.data.dense th,table.data.dense td{padding:4px 10px}table.data tfoot td{background:var(--panel-2);font-weight:600}.picker{position:relative}.picker-list{z-index:30;background:var(--panel-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);max-height:300px;box-shadow:var(--shadow);position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.picker-item{cursor:pointer;justify-content:space-between;gap:12px;padding:7px 10px;display:flex}.picker-item:hover,.picker-item.active{background:var(--accent-soft)}.picker-item small{color:var(--faint)}.empty{text-align:center;color:var(--muted);padding:32px 16px}.divider{background:var(--border);height:1px;margin:4px 0}.kbd{font-family:var(--mono);border:1px solid var(--border-strong);color:var(--muted);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:11px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg);border-radius:999px}::-webkit-scrollbar-track{background:0 0}.card-body.flush{padding:0}.card-body.flush .table-wrap{border-radius:0 0 var(--radius) var(--radius)}
