/* ==========================================
   CHARACTER COLLECTOR — IMAGE-FIRST UNIVERSE
========================================== */

.character-dashboard{
    --character-pink:#5b9ee0;
    --character-cyan:#a9dcff;
    --character-yellow:#ffe066;
    --character-violet:#5b9ee0;
    min-width:0;
    margin:0 0 22px;
    color:var(--text);
    animation:characterDashboardIn .42s cubic-bezier(.2,.8,.2,1) both;
}

.home-workspace-view[data-dashboard-template="character-collector"] > .home-workspace-dashboard{
    display:none !important;
}

.character-dashboard button,
.character-dashboard input{ font:inherit; }

.character-dashboard-hero{
    position:relative;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(320px,1.05fr) minmax(300px,.95fr);
    gap:26px;
    align-items:center;
    min-height:300px;
    padding:30px;
    border:1px solid color-mix(in srgb,var(--character-cyan) 70%,var(--border));
    border-radius:24px 24px 0 0;
    background:
        radial-gradient(circle at 88% 10%,rgba(169,220,255,.34),transparent 30%),
        radial-gradient(circle at 58% 90%,rgba(255,224,102,.2),transparent 28%),
        linear-gradient(125deg,#173b5d 0%,#5b9ee0 46%,#2f6fa8 100%);
    box-shadow:0 9px 0 rgba(0,17,62,.38),0 24px 44px rgba(0,12,48,.34),inset 0 1px rgba(255,255,255,.13);
}

.character-dashboard-hero::before,
.character-dashboard-hero::after{
    content:"";
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}

.character-dashboard-hero::before{
    width:240px;
    height:240px;
    left:-105px;
    top:-120px;
    border:42px solid rgba(255,255,255,.06);
}

.character-dashboard-hero::after{
    width:130px;
    height:130px;
    right:34%;
    bottom:-92px;
    background:rgba(255,227,110,.12);
    filter:blur(2px);
}

.character-hero-copy{ position:relative;z-index:2; }
.character-hero-copy > span{
    display:flex;
    align-items:center;
    gap:8px;
    color:#ffeb76;
    font-size:11px;
    font-weight:800;
    letter-spacing:1.5px;
}
.character-hero-copy h2{
    max-width:700px;
    margin:9px 0;
    color:#fff;
    font-size:clamp(34px,4vw,58px);
    line-height:.98;
    letter-spacing:-1.7px;
}
.character-hero-copy p{
    max-width:640px;
    margin:0;
    color:rgba(255,255,255,.84);
    font-size:14px;
    line-height:1.6;
}
.character-hero-copy > div{ display:flex;flex-wrap:wrap;gap:10px;margin-top:22px; }
.character-hero-copy button,
.character-gallery-panel > header button,
.character-panel header button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:42px;
    padding:10px 14px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:13px;
    background:rgba(16,14,54,.28);
    color:#fff;
    font-size:12px;
    font-weight:750;
    cursor:pointer;
    transition:transform .2s ease,border-color .2s ease,background .2s ease;
}
.character-hero-copy button:first-child{ background:#fff;color:#2f6fa8;border-color:#fff;box-shadow:0 5px 0 rgba(0,20,72,.28),0 12px 22px rgba(0,16,58,.2); }
.character-hero-copy button:hover,
.character-gallery-panel > header button:hover,
.character-panel header button:hover{ transform:translateY(-2px);border-color:var(--character-cyan); }

.character-hero-mosaic{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:230px;
    perspective:900px;
}
.character-hero-mosaic > button{
    position:absolute;
    width:150px;
    height:210px;
    padding:0;
    overflow:hidden;
    border:3px solid rgba(255,255,255,.72);
    border-radius:14px;
    background:#0d1e30;
    box-shadow:0 7px 0 rgba(0,15,54,.34),0 22px 38px rgba(0,9,38,.42),0 0 0 1px rgba(91,158,224,.28);
    cursor:pointer;
    transform:translateX(calc((var(--character-image-index) - 2) * 76px)) rotate(calc((var(--character-image-index) - 2) * 5deg));
    transition:transform .24s ease,z-index 0s;
}
.character-hero-mosaic > button:nth-child(1),
.character-hero-mosaic > button:nth-child(5){ margin-top:22px; }
.character-hero-mosaic > button:nth-child(2),
.character-hero-mosaic > button:nth-child(4){ margin-top:9px; }
.character-hero-mosaic > button:hover{ z-index:9;transform:translateX(calc((var(--character-image-index) - 2) * 76px)) rotate(0) translateY(-12px) scale(1.08); }
.character-hero-mosaic img{ width:100%;height:100%;object-fit:cover;display:block; }
.character-hero-mosaic > span{ display:grid;place-items:center;gap:8px;color:#fff;text-align:center; }
.character-hero-mosaic > span i{ font-size:38px;color:var(--character-yellow); }
.character-hero-mosaic > span small{ color:rgba(255,255,255,.75); }

.character-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1px;
    overflow:hidden;
    border:1px solid var(--border);
    border-top:0;
    border-radius:0 0 22px 22px;
    background:var(--border);
}
.character-kpis article{
    display:flex;
    gap:13px;
    align-items:center;
    min-width:0;
    padding:17px 18px;
    background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 84%,var(--character-violet)),var(--panel));
}
.character-kpis article > i{ width:39px;height:39px;display:grid;place-items:center;flex:none;border-radius:13px;color:var(--character-cyan);background:rgba(169,220,255,.14);box-shadow:0 4px 0 rgba(0,18,62,.22),0 9px 18px rgba(0,14,51,.18); }
.character-kpis article:nth-child(2) > i{ color:var(--character-pink);background:rgba(91,158,224,.16); }
.character-kpis article:nth-child(3) > i{ color:#ff799b;background:rgba(255,121,155,.12); }
.character-kpis article:nth-child(4) > i{ color:var(--character-yellow);background:rgba(255,227,110,.12); }
.character-kpis article span{ min-width:0;display:flex;flex-direction:column; }
.character-kpis small,.character-panel header small,.character-gallery-panel > header small{ color:var(--character-cyan);font-size:10px;font-weight:800;letter-spacing:1.15px; }
.character-kpis strong{ margin:2px 0;color:var(--text);font-size:22px;line-height:1.1; }
.character-kpis em{ overflow:hidden;color:var(--text-light);font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap; }

.character-gallery-panel,
.character-panel{
    margin-top:18px;
    border:1px solid color-mix(in srgb,var(--character-cyan) 38%,var(--border));
    border-radius:22px;
    background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 86%,var(--character-violet)),var(--panel));
    box-shadow:0 7px 0 rgba(0,15,54,.28),0 18px 32px rgba(0,10,42,.24),inset 0 1px rgba(255,255,255,.07);
}
.character-gallery-panel{ overflow:hidden; }
.character-gallery-panel > header,
.character-panel > header{ display:flex;align-items:center;justify-content:space-between;gap:18px; }
.character-gallery-panel > header h3,.character-panel > header h3{ margin:3px 0;color:var(--text);font-size:21px; }
.character-gallery-panel > header p{ margin:0;color:var(--text-light);font-size:12px; }
.character-gallery-header{ padding:22px 24px 18px;border-bottom:1px solid color-mix(in srgb,var(--border) 82%,transparent); }
.character-gallery-actions{ display:flex;align-items:center;gap:10px; }
.character-gallery-actions > div{ display:flex;gap:6px;padding:4px;border:1px solid var(--border);border-radius:13px;background:color-mix(in srgb,var(--panel-light) 76%,transparent); }
.character-gallery-actions button{ min-width:38px;min-height:38px;padding:8px 11px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-light);cursor:pointer; }
.character-gallery-actions > div button:hover{ background:var(--panel-light);color:var(--character-cyan); }
.character-gallery-actions button.primary{ min-width:auto;padding-inline:15px;border-color:color-mix(in srgb,var(--character-violet) 62%,var(--border));background:color-mix(in srgb,var(--character-violet) 18%,var(--panel-light));color:var(--text);font-weight:750; }
.character-gallery-actions button.primary:hover{ border-color:var(--character-cyan); }

.character-gallery-controls{ display:flex;flex-direction:column;gap:14px;padding:16px 24px;background:color-mix(in srgb,var(--panel-light) 42%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 78%,transparent); }
.character-control-row{ display:grid;grid-template-columns:116px minmax(0,1fr);gap:15px;align-items:center;min-width:0; }
.character-control-label{ color:var(--text-light);font-size:10px;font-weight:800;letter-spacing:.72px;text-transform:uppercase; }

.character-focus-chips{ display:flex;gap:7px;overflow-x:auto;margin:0;padding:2px 0 4px;scrollbar-width:thin; }
.character-focus-chips button,
.character-gallery-tools button{
    display:inline-flex;
    align-items:center;
    gap:7px;
    flex:none;
    min-height:34px;
    padding:6px 11px;
    border:1px solid var(--border);
    border-radius:999px;
    background:var(--panel-light);
    color:var(--text-light);
    font-size:11px;
    font-weight:700;
    cursor:pointer;
}
.character-focus-chips button.active,.character-gallery-tools button.active{ border-color:var(--character-cyan);background:linear-gradient(115deg,rgba(91,158,224,.25),rgba(169,220,255,.17));color:var(--text);box-shadow:0 3px 0 rgba(0,18,64,.25),0 7px 16px rgba(0,17,61,.2); }
.character-focus-chips button b,.character-gallery-tools button b{ padding:2px 6px;border-radius:99px;background:rgba(255,255,255,.08);color:var(--character-yellow);font-size:10px; }
.character-focus-chips button.add{ width:34px;justify-content:center;border-color:rgba(91,158,224,.68);color:var(--character-pink); }

.character-gallery-tools{ display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);align-items:end;gap:20px; }
.character-status-control{ display:grid;grid-template-columns:116px minmax(0,1fr);gap:15px;align-items:center;min-width:0; }
.character-status-control > div{ display:flex;flex-wrap:wrap;gap:7px; }
.character-gallery-tools > label{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0;
}
.character-gallery-tools > label > span:first-child{ color:var(--text-light);font-size:10px;font-weight:800;letter-spacing:.72px;text-transform:uppercase; }
.character-gallery-tools > label > span:last-child{ display:flex;align-items:center;gap:9px;width:100%;min-height:38px;padding:0 11px;border:1px solid var(--border);border-radius:11px;background:var(--panel-light);color:var(--character-cyan); }
.character-gallery-tools input{ min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:12px; }
.character-gallery-tools [data-character-search-clear]{ width:26px;min-width:26px;min-height:26px;padding:0;justify-content:center;border:0;background:transparent;color:var(--text-light); }
.character-gallery-summary{ display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 24px;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--panel) 88%,transparent); }
.character-gallery-summary span{ display:flex;align-items:baseline;gap:5px;color:var(--text-light);font-size:11px; }.character-gallery-summary strong{ color:var(--text);font-size:19px; }.character-gallery-summary em{ overflow:hidden;color:var(--text-light);font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap; }

.character-card-shelf{ display:grid;grid-auto-flow:column;grid-auto-columns:clamp(210px,15vw,248px);align-items:start;gap:14px;overflow-x:auto;padding:18px 24px 26px;scroll-snap-type:x proximity;scrollbar-color:rgba(91,158,224,.58) transparent; }
.character-gallery-panel > .character-empty{ margin:18px 24px 22px; }
.character-gallery-card{ position:relative;overflow:hidden;display:flex;flex-direction:column;scroll-snap-align:start;border:1px solid color-mix(in srgb,var(--character-cyan) 28%,var(--border));border-radius:18px;background:color-mix(in srgb,var(--panel-light) 88%,var(--character-violet));box-shadow:0 6px 0 rgba(0,15,54,.28),0 14px 26px rgba(0,10,42,.22),inset 0 1px rgba(255,255,255,.07);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.character-gallery-card.excluded{ border-color:rgba(148,163,184,.42);filter:saturate(.62); }
.character-gallery-card.excluded .character-gallery-image img{ opacity:.66; }
.character-card-exclude{ position:absolute;z-index:5;top:9px;right:9px;width:31px;height:31px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:9px;background:rgba(7,18,34,.84);color:#fff;cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.28);backdrop-filter:blur(7px); }
.character-card-exclude:hover{ border-color:#ff728f;background:rgba(255,70,105,.2);color:#ff9daf; }
.character-card-exclude.active{ border-color:rgba(169,220,255,.65);background:rgba(91,158,224,.24);color:var(--character-cyan); }
.character-card-exclude.active:hover{ background:rgba(91,158,224,.34);color:#fff; }
.character-gallery-card:hover{ transform:translateY(-5px);border-color:var(--character-cyan);box-shadow:0 9px 0 rgba(0,15,54,.3),0 22px 34px rgba(0,10,42,.3),0 0 0 1px rgba(91,158,224,.28); }
.character-gallery-open{ display:flex;flex:0 0 auto;flex-direction:column;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer; }
.character-gallery-image{ position:relative;display:block;aspect-ratio:5/7;overflow:hidden;background:#0d1e30; }
.character-gallery-image img{ width:100%;height:100%;display:block;object-fit:cover; }
.character-gallery-image em{ position:absolute;left:9px;bottom:9px;padding:5px 8px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(9,8,28,.82);color:#fff;font-size:10px;font-style:normal;font-weight:800;backdrop-filter:blur(8px); }
.character-gallery-card.owned .character-gallery-image{ box-shadow:inset 0 0 0 3px var(--character-cyan); }
.character-gallery-copy{ display:flex;flex-direction:column;gap:4px;padding:13px 13px 10px; }
.character-gallery-copy > small{ color:var(--character-pink);font-size:10px;font-weight:850;letter-spacing:.8px;text-transform:uppercase; }
.character-gallery-copy strong{ color:var(--text);font-size:14px;line-height:1.25; }
.character-gallery-copy span{ overflow:hidden;color:var(--text-light);font-size:10px;text-overflow:ellipsis;white-space:nowrap; }
.character-gallery-copy i{ color:var(--character-yellow);font-size:10px;font-style:normal;font-weight:650; }
.character-gallery-card footer{ display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:0;padding:10px 12px;border-top:1px solid var(--border); }
.character-gallery-card footer > span{ display:flex;min-width:0;flex:1;flex-direction:column; }.character-gallery-card footer small{ color:var(--text-light);font-size:9px; }.character-gallery-card footer strong{ color:var(--text);font-size:13px; }
.character-gallery-card footer button{ width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-light);cursor:pointer; }
.character-gallery-card footer button.active{ border-color:rgba(91,158,224,.72);color:var(--character-cyan);background:rgba(91,158,224,.18);box-shadow:0 3px 0 rgba(0,18,64,.22); }
.character-gallery-qty{ display:flex;align-items:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--character-cyan) 34%,var(--border));border-radius:10px;background:rgba(7,20,28,.34); }
.character-gallery-qty button{ width:28px!important;height:32px!important;border:0!important;border-radius:0!important;color:var(--character-cyan)!important; }
.character-gallery-qty button:hover:not(:disabled){ background:rgba(169,220,255,.16)!important; }
.character-gallery-qty button:disabled{ opacity:.32;cursor:not-allowed; }
.character-gallery-qty b{ min-width:42px;color:var(--text);font-size:10px;text-align:center;white-space:nowrap; }

.character-image-fallback{ width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:7px;color:var(--character-yellow);background:linear-gradient(145deg,rgba(91,158,224,.18),rgba(169,220,255,.1)); }
.character-image-fallback[hidden]{ display:none; }.character-image-fallback small{ color:var(--text-light);font-size:10px; }

.character-dashboard-grid{ display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px; }
.character-panel{ min-width:0;padding:19px; }.character-panel > header{ margin-bottom:14px; }.character-panel > header > i{ color:var(--character-pink);font-size:18px; }
.character-stories{ grid-column:span 5; }.character-missing{ grid-column:span 4; }.character-recommendations{ grid-column:span 3; }
.character-stories-list{ display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(86px,auto);gap:9px;max-height:181px;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--character-cyan) 55%,transparent) transparent; }
.character-missing > div{ display:flex;flex-direction:column;gap:9px; }
.character-story{ position:relative;display:block;min-width:0;border:1px solid var(--border);border-radius:14px;background:var(--panel-light);color:var(--text); }
.character-story-main{ display:grid;grid-template-columns:48px 1fr;gap:9px;align-items:center;width:100%;height:100%;padding:8px 34px 8px 8px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer; }
.character-story.active{ border-color:var(--character-cyan);background:linear-gradient(110deg,rgba(91,158,224,.2),rgba(169,220,255,.13));box-shadow:0 4px 0 rgba(0,17,60,.22),0 10px 18px rgba(0,13,48,.18); }
.character-story-image{ width:48px;height:62px;overflow:hidden;border-radius:9px;background:#0d1e30;box-shadow:0 4px 0 rgba(0,15,54,.24); }.character-story-image img{ width:100%;height:100%;object-fit:cover; }
.character-story-main > span:last-child{ min-width:0;display:flex;flex-direction:column;gap:3px; }.character-story strong{ overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap; }.character-story small,.character-story em{ color:var(--text-light);font-size:9px;font-style:normal; }
.character-story span > i{ height:5px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.08); }.character-story span > i b{ display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--character-pink),var(--character-cyan),var(--character-yellow)); }
.character-story-remove{ position:absolute;top:7px;right:7px;width:25px;height:25px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:rgba(0,18,64,.42);color:var(--text-light);cursor:pointer;opacity:.68; }.character-story-remove:hover{ border-color:rgba(91,158,224,.68);background:rgba(91,158,224,.2);color:var(--character-cyan);opacity:1; }
.character-missing > div > button{ display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;width:100%;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--panel-light);color:var(--text);text-align:left;cursor:pointer; }
.character-missing > div > button > span:first-child{ width:42px;height:55px;overflow:hidden;border-radius:7px; }.character-missing img{ width:100%;height:100%;object-fit:cover; }.character-missing button span:nth-child(2){ min-width:0;display:flex;flex-direction:column;gap:2px; }.character-missing button strong,.character-missing button small{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.character-missing button strong{ font-size:11px; }.character-missing button small{ color:var(--text-light);font-size:9px; }.character-missing button > i{ color:var(--character-cyan); }
.character-recommendations ol{ display:flex;flex-direction:column;gap:11px;margin:0;padding:0;list-style:none; }.character-recommendations li{ display:grid;grid-template-columns:30px 1fr;gap:10px;padding:11px;border:1px solid var(--border);border-radius:13px;background:var(--panel-light); }.character-recommendations li > b{ width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,var(--character-pink),var(--character-violet));color:#fff;font-size:11px; }.character-recommendations li span{ display:flex;flex-direction:column;gap:4px; }.character-recommendations li strong{ font-size:11px;line-height:1.35; }.character-recommendations li small{ color:var(--text-light);font-size:9px;line-height:1.5; }
.character-empty{ display:grid;place-items:center;gap:8px;min-height:210px;padding:25px;color:var(--text-light);text-align:center; }.character-empty > i{ color:var(--character-cyan);font-size:28px; }.character-empty strong{ color:var(--text); }.character-empty button{ padding:9px 13px;border:1px solid var(--character-cyan);border-radius:11px;background:rgba(91,158,224,.16);color:var(--text);cursor:pointer;box-shadow:0 4px 0 rgba(0,17,61,.24); }.character-empty.compact{ min-height:100px; }

body.character-chooser-open{ overflow:hidden; }
body.character-exclusion-open{ overflow:hidden; }
.character-exclusion-dialog{ --character-pink:#5b9ee0;--character-cyan:#a9dcff;--character-yellow:#ffe066;--character-violet:#2f6fa8;position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .2s ease; }
.character-exclusion-dialog.open{ opacity:1; }
.character-exclusion-backdrop{ position:absolute;inset:0;border:0;background:rgba(0,10,38,.84);backdrop-filter:blur(8px); }
.character-exclusion-dialog > section{ position:relative;width:min(820px,100%);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid rgba(91,158,224,.62);border-radius:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 88%,#2f6fa8),var(--panel));box-shadow:0 9px 0 rgba(0,15,54,.32),0 32px 85px rgba(0,8,34,.62);transform:translateY(12px) scale(.985);transition:transform .22s ease; }
.character-exclusion-dialog.open > section{ transform:none; }
.character-exclusion-dialog > section > header{ display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:21px 22px;border-bottom:1px solid var(--border);background:linear-gradient(110deg,rgba(91,158,224,.24),rgba(169,220,255,.1)); }
.character-exclusion-dialog header small{ color:var(--character-cyan);font-size:10px;font-weight:800;letter-spacing:1.25px; }.character-exclusion-dialog header h2{ margin:4px 0;font-size:25px; }.character-exclusion-dialog header p{ max-width:650px;margin:0;color:var(--text-light);font-size:11px;line-height:1.55; }
.character-exclusion-dialog header > button{ flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--border);border-radius:12px;background:var(--panel-light);color:var(--text);cursor:pointer; }
.character-exclusion-groups{ display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:18px 22px; }
.character-exclusion-groups fieldset{ min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:7px;margin:0;padding:13px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025); }
.character-exclusion-groups legend{ padding:0 7px;color:var(--character-cyan);font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase; }
.character-exclusion-groups label{ min-width:0;display:flex;align-items:center;gap:8px;padding:8px;border:1px solid transparent;border-radius:9px;color:var(--text-light);cursor:pointer; }
.character-exclusion-groups label:hover{ border-color:rgba(169,220,255,.3);background:rgba(91,158,224,.08);color:var(--text); }
.character-exclusion-groups input{ position:absolute;opacity:0;pointer-events:none; }
.character-exclusion-groups label > span{ flex:0 0 20px;width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--border);border-radius:6px;background:var(--panel-light);color:transparent;font-size:10px; }
.character-exclusion-groups input:checked + span{ border-color:var(--character-cyan);background:rgba(91,158,224,.3);color:#fff; }
.character-exclusion-groups label > strong{ overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap; }
.character-exclusion-dialog > section > aside{ display:flex;align-items:center;gap:10px;margin:0 22px 18px;padding:11px 13px;border:1px solid rgba(255,224,102,.26);border-radius:12px;background:rgba(255,224,102,.07); }.character-exclusion-dialog aside > i{ color:var(--character-yellow); }.character-exclusion-dialog aside span{ display:flex;flex-direction:column;gap:2px; }.character-exclusion-dialog aside strong{ font-size:11px; }.character-exclusion-dialog aside small{ color:var(--text-light);font-size:9px;line-height:1.45; }
.character-exclusion-dialog > section > footer{ display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;border-top:1px solid var(--border);background:var(--panel); }.character-exclusion-dialog footer > span{ display:flex;gap:8px; }.character-exclusion-dialog footer button{ min-height:39px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-light);color:var(--text);font:inherit;font-size:10px;font-weight:700;cursor:pointer; }.character-exclusion-dialog footer button.primary{ border-color:var(--character-pink);background:linear-gradient(110deg,var(--character-pink),var(--character-violet));color:#fff; }.character-exclusion-dialog footer button.danger{ border-color:rgba(255,114,143,.38);color:#ff9daf; }.character-exclusion-dialog footer button:disabled{ opacity:.42;cursor:not-allowed; }
.character-chooser{ --character-pink:#5b9ee0;--character-cyan:#a9dcff;--character-yellow:#ffe066;--character-violet:#2f6fa8;position:fixed;inset:0;z-index:10000;display:grid;align-items:start;justify-items:center;padding:clamp(16px,3vh,30px) 20px 20px;overflow:hidden;opacity:0;transition:opacity .2s ease; }.character-chooser.open{ opacity:1; }
.character-chooser-backdrop{ position:absolute;inset:0;border:0;background:rgba(0,10,38,.82);backdrop-filter:blur(7px); }
.character-chooser-window{ position:relative;display:grid;grid-template-rows:auto auto auto minmax(180px,1fr) auto;width:min(1040px,100%);max-height:min(820px,calc(100dvh - clamp(32px,6vh,60px)));overflow:clip;border:1px solid rgba(91,158,224,.64);border-radius:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 84%,#5b9ee0),var(--panel));box-shadow:0 9px 0 rgba(0,15,54,.32),0 30px 80px rgba(0,8,34,.58),inset 0 1px rgba(255,255,255,.08);transform:translateY(14px) scale(.985);transition:transform .22s ease; }
.character-chooser.open .character-chooser-window{ transform:none; }
.character-chooser-window > header{ display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px;border-bottom:1px solid var(--border);background:linear-gradient(110deg,rgba(91,158,224,.26),rgba(169,220,255,.12)); }.character-chooser-window > header small{ color:var(--character-cyan);font-size:10px;font-weight:800;letter-spacing:1.4px; }.character-chooser-window > header h2{ margin:4px 0;font-size:26px; }.character-chooser-window > header p{ max-width:720px;margin:0;color:var(--text-light);font-size:11px;line-height:1.55; }.character-chooser-window > header button{ width:40px;height:40px;display:grid;place-items:center;flex:none;border:1px solid var(--border);border-radius:12px;background:var(--panel-light);color:var(--text);cursor:pointer;box-shadow:0 4px 0 rgba(0,17,61,.24); }
.character-chooser-tools{ display:flex;gap:9px;padding:14px 20px;border-bottom:1px solid var(--border); }.character-chooser-tools label{ display:flex;align-items:center;gap:9px;min-width:220px;flex:1;padding:0 13px;border:1px solid var(--border);border-radius:12px;background:var(--panel-light);color:var(--character-cyan); }.character-chooser-tools input{ width:100%;min-height:42px;border:0;outline:0;background:transparent;color:var(--text); }.character-chooser-tools button,.character-chooser-window footer button{ padding:9px 12px;border:1px solid var(--border);border-radius:11px;background:var(--panel-light);color:var(--text);font-size:11px;font-weight:700;cursor:pointer; }
.character-chooser-selected{ display:flex;gap:7px;overflow-x:auto;min-height:47px;padding:10px 20px;border-bottom:1px solid var(--border); }.character-chooser-selected button{ display:flex;align-items:center;gap:6px;flex:none;padding:6px 9px;border:1px solid rgba(91,158,224,.56);border-radius:999px;background:rgba(91,158,224,.18);color:var(--text);font-size:10px;font-weight:700;cursor:pointer;box-shadow:0 3px 0 rgba(0,17,61,.2); }.character-chooser-selected button:hover{ border-color:var(--character-cyan);color:var(--character-cyan); }.character-chooser-selected small{ align-self:center;color:var(--text-light); }
.character-chooser-grid{ display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;overflow-y:auto;padding:18px 20px;align-content:start; }.character-chooser-grid label{ display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;min-width:0;padding:8px;border:1px solid var(--border);border-radius:14px;background:var(--panel-light);cursor:pointer;box-shadow:0 4px 0 rgba(0,17,61,.2),0 9px 16px rgba(0,12,45,.14);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease; }.character-chooser-grid label:hover{ transform:translateY(-3px);border-color:var(--character-cyan);box-shadow:0 6px 0 rgba(0,17,61,.22),0 14px 22px rgba(0,12,45,.2); }.character-chooser-grid label.selected{ border-color:var(--character-cyan);background:linear-gradient(110deg,rgba(91,158,224,.24),rgba(169,220,255,.13)); }.character-chooser-grid input{ position:absolute;opacity:0;pointer-events:none; }.character-option-image{ width:48px;height:62px;overflow:hidden;border-radius:8px;background:#0d1e30; }.character-option-image img{ width:100%;height:100%;object-fit:cover; }.character-chooser-grid label > span:nth-child(3){ min-width:0;display:flex;flex-direction:column;gap:3px; }.character-chooser-grid strong,.character-chooser-grid small{ overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.character-chooser-grid strong{ font-size:11px; }.character-chooser-grid small{ color:var(--text-light);font-size:9px; }.character-chooser-grid label > i{ color:var(--border); }.character-chooser-grid input:checked ~ i{ color:var(--character-cyan); }
.character-chooser-grid [hidden]{ display:none !important; }
.character-chooser-empty{ grid-column:1/-1;min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--text-light);text-align:center; }
.character-chooser-empty i{ color:var(--character-cyan);font-size:24px; }
.character-chooser-empty strong{ color:var(--text);font-size:15px; }
.character-chooser-window > footer{ display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 20px;border-top:1px solid var(--border);background:var(--panel); }.character-chooser-window > footer > span{ display:flex;flex-direction:column; }.character-chooser-window footer strong{ font-size:11px; }.character-chooser-window footer small{ color:#ff728f;font-size:10px; }.character-chooser-window footer > div{ display:flex;gap:8px; }.character-chooser-window footer button.primary{ border-color:var(--character-pink);background:linear-gradient(110deg,var(--character-pink),var(--character-violet));color:#fff; }.character-chooser-window footer button:disabled{ opacity:.45;cursor:not-allowed; }

@media (max-width:1250px){
    .character-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .character-stories{ grid-column:span 6; }.character-missing{ grid-column:span 6; }.character-recommendations{ grid-column:1 / -1; }
    .character-recommendations ol{ display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
    .character-chooser-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:820px){
    .character-dashboard-hero{ grid-template-columns:1fr;padding:22px; }
    .character-hero-mosaic{ min-height:195px;transform:scale(.82); }
    .character-kpis{ grid-template-columns:1fr; }
    .character-gallery-panel{ padding:0; }
    .character-gallery-header{ align-items:flex-start;flex-direction:column;padding:19px 18px 16px; }
    .character-gallery-controls{ padding:14px 18px; }
    .character-control-row,.character-status-control{ grid-template-columns:1fr;gap:8px; }
    .character-gallery-tools{ grid-template-columns:1fr;align-items:stretch;gap:14px; }.character-gallery-tools > label{ width:100%; }
    .character-gallery-summary{ padding-inline:18px; }
    .character-card-shelf{ padding-inline:18px; }
    .character-dashboard-grid{ grid-template-columns:1fr; }.character-stories,.character-missing,.character-recommendations{ grid-column:auto; }
    .character-stories-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .character-recommendations ol{ grid-template-columns:1fr; }
    .character-chooser-tools{ flex-wrap:wrap; }.character-chooser-tools label{ flex-basis:100%; }.character-chooser-grid{ grid-template-columns:1fr; }
}

@media (max-width:520px){
    .character-dashboard-hero{ min-height:auto;padding:18px;border-radius:18px 18px 0 0; }.character-hero-copy h2{ font-size:34px; }.character-hero-copy > div{ flex-direction:column; }.character-hero-copy button{ width:100%; }
    .character-hero-mosaic{ min-height:165px;transform:scale(.68);margin:-22px -50px; }
    .character-gallery-actions{ width:100%;justify-content:space-between; }
    .character-gallery-actions > .primary{ display:none; }
    .character-gallery-summary{ align-items:flex-start;flex-direction:column;gap:3px; }
    .character-card-shelf{ grid-auto-columns:min(76vw,245px);padding:14px 14px 18px; }
    .character-stories-list{ grid-template-columns:1fr;grid-auto-rows:minmax(78px,auto);max-height:339px; }
    .character-chooser{ padding:0; }.character-chooser-window{ width:100vw;max-height:100vh;height:100vh;border-radius:0; }.character-chooser-window > footer{ align-items:stretch;flex-direction:column; }.character-chooser-window footer > div{ display:grid;grid-template-columns:1fr 1fr; }
    .character-exclusion-dialog{ padding:0; }.character-exclusion-dialog > section{ width:100vw;max-height:100dvh;height:100dvh;border-radius:0; }.character-exclusion-groups{ grid-template-columns:1fr;padding:14px; }.character-exclusion-dialog > section > aside{ margin:0 14px 14px; }.character-exclusion-dialog > section > footer{ align-items:stretch;flex-direction:column;padding:12px 14px; }.character-exclusion-dialog footer > span{ display:grid;grid-template-columns:1fr 1fr; }.character-exclusion-dialog footer button{ width:100%; }
}

@media (prefers-reduced-motion:reduce){
    .character-dashboard,.character-dashboard *{ animation:none !important;scroll-behavior:auto !important;transition:none !important; }
}

@keyframes characterDashboardIn{ from{ opacity:0;transform:translateY(10px); } to{ opacity:1;transform:none; } }
