/* v2.12.0 — private character favorites, shared theme tokens. */
.favorite-banner,.favorite-create-banner{display:flex;align-items:center;gap:16px;padding:20px 24px;margin:0 0 24px;border:1px solid var(--line-strong);border-radius:16px;background:linear-gradient(115deg,var(--accent-soft),var(--panel))}
.favorite-banner>div:not(.actions){flex:1;min-width:0}.favorite-banner strong,.favorite-create-banner strong{font-size:15px}.favorite-banner p{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.7}
.favorite-mark{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:14px;color:var(--yellow);background:color-mix(in srgb,var(--yellow) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--yellow) 26%,var(--line))}.favorite-mark .icon{width:23px;height:23px}
.favorite-create-banner{justify-content:space-between;margin-bottom:14px}.favorite-create-banner>div{display:flex;align-items:center;gap:14px;min-width:0}.favorite-create-banner small{display:block;font-size:12px;color:var(--muted);margin-top:6px;line-height:1.6}
dialog:has(.favorite-workspace){width:min(960px,calc(100vw - 32px));max-width:960px}
.favorite-workspace{min-width:0}.favorite-intro{display:flex;gap:13px;align-items:center;padding:0 0 20px;border-bottom:1px solid var(--line);margin-bottom:18px}.favorite-intro>div{flex:1;min-width:0}.favorite-intro h3{font-size:17px;margin:0 0 6px;overflow-wrap:anywhere}.favorite-intro p{font-size:12px;color:var(--muted);margin:0;line-height:1.7}
.favorite-private{display:inline-flex;gap:5px;align-items:center;white-space:nowrap;font-size:11px;color:var(--muted)}.favorite-private .icon{width:13px;height:13px}
.favorite-top-actions,.favorite-selection,.favorite-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.favorite-top-actions{margin-bottom:16px;font-size:12px;color:var(--muted)}
.favorite-filters{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px}.favorite-filters>div{display:flex;gap:6px;min-width:0}.favorite-filters select{min-width:0;max-width:150px;padding:10px 9px;background:var(--panel-inset);border:1px solid var(--line);border-radius:9px;color:var(--ink);font:inherit;font-size:12px}
.favorite-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--panel-inset);min-width:0}.favorite-search>.icon{color:var(--muted);width:17px;flex-shrink:0}.favorite-search input{background:transparent;border:0;color:var(--ink);padding:12px 0;min-width:0;width:100%;font:inherit;font-size:13px}.favorite-search:focus-within{outline:2px solid var(--accent);outline-offset:2px}.favorite-search input:focus{outline:0}
.favorite-selection{margin:14px 0 10px;font-size:11px;color:var(--muted)}.favorite-selection>div{display:flex;gap:6px}.favorite-selection .button{font-size:11px;padding:7px 9px;min-height:34px}
.favorite-list{border:1px solid var(--line);border-radius:13px;overflow:auto;max-height:390px;scrollbar-gutter:stable}.favorite-row{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:7px 14px;padding:16px;border-bottom:1px solid var(--line);background:var(--panel-inset);min-width:0}.favorite-row:last-child{border-bottom:0}.favorite-row:has(input:checked){background:color-mix(in srgb,var(--accent) 7%,var(--panel-inset));box-shadow:inset 3px 0 var(--accent)}
.favorite-person{display:flex;align-items:center;gap:12px;min-width:0;cursor:pointer}.favorite-person input{width:17px!important;height:17px;flex:0 0 17px;accent-color:var(--accent);margin:0}.favorite-person .avatar{width:43px;height:43px;flex-shrink:0;border-radius:12px}.favorite-person>span:last-child{min-width:0}.favorite-person strong{font-size:14px;overflow-wrap:anywhere}.favorite-person small{display:block;font-size:11px;color:var(--muted);margin-top:4px;line-height:1.5}.favorite-person em{display:block;font-size:10px;color:var(--teal);font-style:normal;margin-top:4px}.favorite-person .tag{font-size:9px;padding:3px 5px}
.favorite-power{text-align:right;align-self:center;min-width:0}.favorite-power .power{font-size:16px}.favorite-power>small{display:block;font-size:10px;color:var(--muted);margin-top:5px;line-height:1.5}
.favorite-details{grid-column:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:29px;min-width:0}.favorite-details>small{color:var(--muted);font-size:10px}.favorite-label{display:inline-block;max-width:100%;font-size:10px;padding:4px 8px;border-radius:6px;color:var(--accent);background:var(--accent-soft);overflow-wrap:anywhere}.favorite-details p{font-size:11px;color:var(--muted);margin:0;overflow-wrap:anywhere;white-space:pre-wrap}
.favorite-row-tools{display:flex;justify-content:flex-end;gap:6px;grid-column:2;grid-row:2;align-self:start}.favorite-row:has(.favorite-row-tools){grid-template-columns:minmax(0,1fr) 210px}.favorite-row-tools .button{font-size:10px;min-height:32px;padding:7px 9px}.favorite-row-tools .icon{width:12px;height:12px}.already-in-team{opacity:.65}.already-in-team .favorite-person{cursor:default}
.favorite-empty{text-align:center;padding:36px 20px}.favorite-empty>span{display:inline-flex;color:var(--yellow);margin-bottom:10px}.favorite-empty>span .icon{width:30px;height:30px}.favorite-empty h3{font-size:16px;margin:0 0 8px}.favorite-empty p{font-size:12px;color:var(--muted);line-height:1.8}.favorite-empty .button{margin-top:10px}
#favoriteComposition:empty{display:none}#favoriteComposition .job-composition{margin:12px 0 0}.favorite-snapshot-note{font-size:11px!important;line-height:1.8}.favorite-footer{border-top:1px solid var(--line);padding-top:18px;margin-top:14px}.favorite-footer>div{min-width:0}.favorite-footer strong{display:block;font-size:15px}.favorite-footer small{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.6}.favorite-footer .actions{flex-wrap:wrap;justify-content:flex-end}
.favorite-edit-character{display:flex;align-items:center;gap:12px;margin:0 0 24px}.favorite-edit-character h3{margin:0 0 5px}.favorite-edit-character p{font-size:12px;color:var(--muted);margin:0}
@media(max-width:760px){.favorite-banner,.favorite-create-banner{flex-wrap:wrap;padding:16px}.favorite-banner>.actions,.favorite-create-banner>.button{width:100%;justify-content:flex-end}.favorite-filters{grid-template-columns:1fr}.favorite-filters>div select{flex:1;max-width:none;width:0}.favorite-row:has(.favorite-row-tools){grid-template-columns:minmax(0,1fr) 120px}.favorite-row-tools{grid-column:1/-1;grid-row:auto}.favorite-private{font-size:10px}}
@media(max-width:480px){dialog:has(.favorite-workspace){width:calc(100vw - 20px);padding:18px}.favorite-intro{gap:9px;flex-wrap:wrap}.favorite-intro h3{font-size:14px}.favorite-intro .favorite-mark{width:35px;height:35px;border-radius:11px}.favorite-private{margin-left:44px}.favorite-row,.favorite-row:has(.favorite-row-tools){padding:12px 10px;gap:9px;grid-template-columns:minmax(0,1fr) 88px}.favorite-person{gap:7px}.favorite-person .avatar{width:32px;height:32px;border-radius:9px}.favorite-person strong{font-size:12px}.favorite-person small{font-size:10px}.favorite-person .tag{display:table;margin-top:4px}.favorite-power .power{font-size:13px}.favorite-power>small{font-size:9px}.favorite-details{grid-column:1/-1;margin-left:24px}.favorite-footer{flex-direction:column;align-items:stretch}.favorite-footer>.actions{justify-content:stretch}.favorite-footer .button{flex:1}.favorite-selection{align-items:flex-start;flex-direction:column;gap:8px}.favorite-top-actions{align-items:flex-start}.favorite-top-actions>.actions{gap:5px}.favorite-top-actions .button{font-size:11px;padding:8px}.favorite-list{max-height:340px}.favorite-create-banner>.button{white-space:normal;text-align:center}.favorite-banner>.favorite-mark{display:none}}
@media(max-width:480px){
 .favorite-intro{display:grid;grid-template-columns:35px minmax(0,1fr);gap:7px 9px}.favorite-intro>.favorite-private{grid-column:2;margin:0}.favorite-intro p{word-break:keep-all}
 .favorite-list{max-height:clamp(140px,calc(100dvh - 640px),260px)}
 .favorite-footer{position:sticky;bottom:-18px;z-index:2;background:var(--panel);padding:12px 0 18px;margin-bottom:-18px;box-shadow:0 -8px 14px var(--panel)}
}
