:root{color-scheme:dark;font-family:IBM Plex Sans,Avenir Next,sans-serif;background:#2e3440;color:#eceff4;--panel: rgba(59, 66, 82, .86);--panel-solid: #3b4252;--panel-raised: #434c5e;--panel-border: rgba(216, 222, 233, .14);--ink: #eceff4;--ink-soft: #d8dee9;--ink-muted: #aeb8c8;--accent: #88c0d0;--accent-dark: #5e81ac;--moss: #a3be8c;--warn: #ebcb8b;--danger: #bf616a;--shadow: 0 18px 44px rgba(12, 16, 24, .28)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#2e3440,#242a35 56%,#202631)}button,input,select{font:inherit}button{border:0}.app-shell{max-width:1500px;margin:0 auto;padding:24px 24px 40px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border:1px solid var(--panel-border);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar__brand,.hero-card__brand{display:flex;align-items:center;gap:14px}.topbar__brand strong,.topbar__brand span{display:block}.topbar__brand span{color:var(--ink-soft);font-size:.9rem}.topbar__nav{display:flex;gap:10px;flex-wrap:wrap}.auth-panel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;min-width:min(520px,100%)}.auth-panel--loading{min-width:auto;color:var(--ink-soft);font-size:.92rem}.auth-panel--signed-in{min-width:auto}.auth-panel--signed-in span,.auth-panel--signed-in strong{display:block}.auth-panel--signed-in span{color:var(--ink-soft);font-size:.78rem}.auth-panel--signed-in strong{font-size:.95rem}.auth-panel input{width:132px;border:1px solid var(--panel-border);border-radius:999px;padding:10px 12px;background:#2e34409e;color:var(--ink)}.auth-panel__mode{display:flex;padding:3px;border-radius:999px;background:#d8dee914}.auth-panel__mode-button{padding:7px 10px;border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer}.auth-panel__mode-button--active{background:#88c0d02e;color:var(--accent);font-weight:800}.nav-pill,.upload-button,.action-button,.ghost-button{border-radius:999px;cursor:pointer}.nav-pill{padding:10px 14px;background:#d8dee914;color:var(--ink-soft)}.nav-pill--active{background:var(--accent);color:#1f2733}.logo-mark{width:42px;height:42px;flex:0 0 auto;padding:7px;border-radius:12px;background:#88c0d01f;border:1px solid rgba(136,192,208,.28)}.logo-mark__eye{fill:#88c0d02e;stroke:var(--accent);stroke-width:2.2}.logo-mark__iris{fill:#81a1c1}.logo-mark__pupil{fill:#2e3440}.logo-mark__glint{fill:none;stroke:#d8dee9;stroke-width:1.8;stroke-linecap:round}.workspace{display:grid;gap:24px;margin-top:24px}.page-stack{display:grid;gap:24px}.page-header,.panel__header,.actor-card__header,.monster-form,.controls-grid,.results-grid{display:flex;gap:16px}.page-header,.panel__header,.actor-card__header{align-items:start;justify-content:space-between}.actor-card__header>div:not(.actor-card__actions){flex:1;min-width:0}.page-header h2,.panel__header h2,.actor-card h3,.library-panel h3,.runner-column h3{margin:4px 0 0}.page-header__actions,.actor-card__actions,.hero-card__actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actor-avatar{display:grid;place-items:center;flex:0 0 auto;width:54px;height:54px;overflow:hidden;border-radius:8px;color:#2e3440;background:var(--accent);border:1px solid rgba(216,222,233,.28);box-shadow:inset 0 0 0 1px #2e344029;font-weight:900}.actor-avatar--button{padding:0;font:inherit;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.actor-avatar--button:hover,.actor-avatar--button:focus-visible{border-color:#88c0d0c7;box-shadow:0 0 0 3px #88c0d024,inset 0 0 0 1px #2e344029;transform:translateY(-1px)}.actor-avatar--small{width:42px;height:42px;border-radius:7px;font-size:.85rem}.actor-avatar--large{width:92px;height:92px;border-radius:12px;font-size:1.4rem}.actor-avatar--monster{background:var(--danger)}.actor-avatar img{width:100%;height:100%;object-fit:cover}.panel,.panel--hero{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:24px}.panel--hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr);gap:22px}.hero-card h1{margin:16px 0 0;font-size:3.8rem;line-height:1;letter-spacing:0}.hero-card__lede,.lookup-notes,.popover-action-note,.control p,.empty-state,.hero-status p,.page-card p,.actor-card__notes,.actor-card__sources,.runner-summary__focus p{color:var(--ink-soft)}.hero-card__lede{max-width:56ch;margin:24px 0 0;font-size:1rem}.hero-card__actions{margin-top:20px}.hero-status{display:grid;align-content:start;gap:12px}.hero-status__grid,.home-grid,.build-grid,.build-encounter-layout,.build-roster-stack,.active-encounter-grid,.active-roster,.popover-grid,.simulator-grid,.roster-grid,.library-grid,.sample-strip{display:grid;gap:16px}.hero-status__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.build-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.build-encounter-layout{grid-template-columns:minmax(500px,1fr) minmax(340px,.72fr);align-items:start}.build-roster-stack{align-content:start}.active-encounter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.simulator-grid{grid-template-columns:minmax(320px,.9fr) minmax(0,1.4fr)}.page-card,.summary-chip,.runner-card,.runner-target,.runner-action,.runner-log__entry,.library-item,.library-choice,.active-card,.actor-card,.stat-pill,.sample-chip{border:1px solid var(--panel-border);border-radius:8px;background:#434c5e9e;min-width:0}.page-card{padding:20px;text-align:left;color:inherit}.page-card strong,.page-card p{display:block}.page-card strong{margin-top:10px;font-size:1.15rem}.page-card p{margin:10px 0 0;line-height:1.5}.summary-chip{padding:14px}.summary-chip span,.summary-chip strong,.summary-chip small{display:block}.summary-chip span,.summary-chip small,.eyebrow,.panel__eyebrow{color:var(--ink-soft)}.summary-chip span,.eyebrow,.panel__eyebrow{text-transform:uppercase;letter-spacing:0;font-size:.72rem}.summary-chip strong{margin-top:8px;font-size:1.4rem}.summary-chip small{margin-top:4px;font-size:.88rem}.status{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;font-size:.88rem;background:#d8dee914}.status--up{color:var(--moss);background:#3d6d5d1a}.status--warn{color:var(--warn);background:#a472131f}.status--down{color:var(--danger);background:#9f2f271f}.upload-button,.action-button{background:var(--accent);color:#1f2733;padding:12px 18px;font-weight:800}.action-button--save{background:var(--moss)}.ghost-button{padding:10px 14px;background:#d8dee914;color:var(--ink-soft)}.roll-button{display:inline-flex;align-items:center;gap:7px}.button-icon{width:17px;height:17px;flex:0 0 auto}.button-icon--d20{fill:#88c0d024;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}.ghost-button--danger{color:#eceff4;background:#bf616a2e;border:1px solid rgba(191,97,106,.24)}.ghost-button--danger:hover:not(:disabled){color:#2e3440;background:var(--danger)}.ghost-button--active{background:#88c0d02e;color:var(--accent)}.action-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.52}.upload-button input{display:none}.segmented-control{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:999px;background:#d8dee914}.segmented-control span{color:var(--ink-soft);font-size:.9rem}.segmented-control select{border:0;border-radius:999px;padding:6px 10px;background:#2e3440e6;color:inherit}.upload-progress{margin-top:18px;padding:16px;border-radius:8px;background:#434c5e9e;border:1px solid var(--panel-border)}.upload-progress__summary{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;background:transparent;padding:0;text-align:left;color:inherit}.upload-progress__copy strong,.upload-progress__copy span,.upload-step strong,.upload-step span,.library-item strong,.library-item span,.detail-item strong,.detail-item span,.sample-chip strong,.sample-chip span,.runner-suggestion__card strong,.runner-suggestion__card span{display:block}.upload-progress__copy span,.upload-progress__toggle,.upload-step span,.library-item span,.detail-item span,.runner-suggestion__card span,.runner-suggestion__card p,.runner-card__top span,.runner-target span,.runner-action span,.runner-log__entry{color:var(--ink-soft);font-size:.92rem}.upload-progress__bar{margin-top:12px;height:10px;border-radius:999px;overflow:hidden;background:#d8dee91a}.upload-progress__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--moss));transition:width .18s ease}.upload-progress__details{display:grid;gap:10px;margin-top:14px}.upload-step{padding:10px 12px;border-radius:8px;background:#2e34409e}.upload-step--active{background:#88c0d01f}.upload-step--done{background:#32534b1a}.library-panel{margin-top:18px;padding-top:18px;border-top:1px solid var(--panel-border)}.library-panel__header{display:flex;align-items:end;justify-content:space-between;gap:16px}.library-panel__header p{margin:6px 0 0;color:var(--ink-soft);font-size:.9rem}.library-panel__header input,.monster-form input,.popover-toolbar input,.popover-toolbar select,.control input[type=number],.runner-card__fields input,.runner-card__inline-field input{width:100%;border:1px solid var(--panel-border);border-radius:8px;padding:12px 14px;background:#2e3440d1;color:var(--ink)}.library-panel__header input{width:min(320px,100%)}.library-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:14px}.active-roster-panel{display:grid;align-content:start;gap:16px}.active-roster{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.active-card{padding:16px}.active-card__top{display:grid;grid-template-columns:auto minmax(140px,1fr) auto;align-items:start;gap:12px}.active-card__top>div:not(.active-card__actions){min-width:0}.active-card__actions,.actor-editor__header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.active-card__top h3,.active-card__top p{margin:0;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}.active-card__top p,.popover-panel__header p,.library-choice__meta{color:var(--ink-soft)}.active-card__top h3,.library-choice__name{font-weight:800}.active-card__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px;margin-top:14px}.active-card__stats .stat-pill{padding:10px}.active-card__stats .stat-pill strong{font-size:1rem;line-height:1.15}.active-card__skill{display:grid;gap:8px;margin-top:12px;color:var(--ink-soft)}.active-card__skill input{width:100%}.tactical-setup-panel{display:grid;gap:14px}.tactical-form{display:grid;gap:12px}.tactical-form .control{padding:12px}.tactical-form select,.tactical-form input[type=number]{width:100%}.tactical-map{display:grid;gap:10px}.tactical-map__toolbar,.tactical-map__inspector{display:flex;flex-wrap:wrap;gap:8px}.tactical-map__toolbar{align-items:center}.map-controls{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;padding:5px;border-radius:14px;background:#2e344080;border:1px solid var(--panel-border)}.tactical-map__toolbar .map-controls{margin-left:auto}.map-controls__zoom,.map-controls__pan{display:inline-flex;align-items:center;gap:4px}.map-controls .ghost-button{min-width:34px;padding:7px 10px}.map-controls__zoom span{min-width:48px;color:var(--ink-soft);font-size:.82rem;font-weight:800;text-align:center}.map-token-toggle{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;color:var(--ink-soft);background:#2e344080;border:1px solid var(--panel-border);font-size:.86rem;font-weight:800}.map-token-toggle input{accent-color:var(--accent)}.tactical-map__canvas{width:100%;aspect-ratio:6 / 5;border:1px solid var(--panel-border);border-radius:8px;background:#2e344080;cursor:crosshair;touch-action:none}.tactical-map__canvas rect{fill:#d8dee914}.tactical-map__grid-minor{stroke:#d8dee914;stroke-width:.24}.tactical-map__grid-major{stroke:#d8dee91f;stroke-width:.5}.tactical-map__axis{stroke:#88c0d06b;stroke-width:.8}.tactical-map__point{cursor:grab}.tactical-map__point--movable{cursor:move}.tactical-map__point--actor circle{stroke-width:1.8}.tactical-map__point circle,.tactical-map__point rect{opacity:.82;stroke:#ffffffbf;stroke-width:1.2}.tactical-map__token-image{pointer-events:none}.tactical-map__point .tactical-map__token-frame{fill:none;opacity:1;stroke:#ffffffc7;stroke-width:1.2}.tactical-map__point--selected circle,.tactical-map__point--selected rect{opacity:1;stroke:var(--ink);stroke-width:1.6}.tactical-map__point text{fill:#fff;font-size:5px;font-weight:900;text-anchor:middle;dominant-baseline:middle;pointer-events:none;letter-spacing:0}.tactical-map__inspector{align-items:end;padding:10px;border:1px solid var(--panel-border);border-radius:8px;background:#434c5e80}.tactical-map__inspector strong{align-self:center;min-width:70px}.tactical-map__inspector label{display:grid;gap:4px;min-width:58px;color:var(--ink-soft)}.tactical-map__inspector input{width:100%;min-width:0}.tactical-map__actor-tags{display:grid;gap:8px;padding:10px;border:1px solid var(--panel-border);border-radius:8px;background:#434c5e80}.tactical-tags{display:grid;gap:8px}.tag-button-grid{display:flex;flex-wrap:wrap;gap:8px}.tag-button{padding:8px 10px;border:1px solid var(--panel-border);border-radius:8px;color:var(--ink);background:#434c5e9e;font:inherit;cursor:pointer}.tag-button--active{color:#1f2733;border-color:var(--accent);background:var(--accent)}.library-item{padding:14px;text-align:left;color:inherit}.library-item span{margin-top:6px}.monster-form{margin-top:10px}.popover-action-row .monster-form{flex:1;margin-top:0}.popover-action-row .upload-button{white-space:nowrap}.monster-form input{flex:1}.roster-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:18px}.popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:#0c101894;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.popover-panel{width:min(1080px,100%);max-height:min(780px,calc(100vh - 48px));overflow:auto;padding:24px;border:1px solid var(--panel-border);border-radius:10px;background:#2e3440fa;box-shadow:0 28px 80px #0c101857}.popover-panel__header,.popover-action-row,.popover-toolbar{display:flex;gap:14px}.popover-panel__header,.popover-action-row{align-items:start;justify-content:space-between}.popover-panel__header h2,.popover-panel__header p{margin:4px 0 0}.popover-action-row,.popover-toolbar{margin-top:18px}.popover-toolbar{flex:1;align-items:center}.popover-toolbar input{min-width:min(420px,100%)}.popover-toolbar select{width:150px}.popover-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-top:16px}.library-choice{display:grid;gap:8px;min-height:148px;padding:16px;text-align:left;color:inherit;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.library-choice:hover,.empty-state--button:hover{border-color:#88c0d06b;background:#4c566aad}.library-choice--added{border-color:#a3be8c5c;background:linear-gradient(140deg,#a3be8c1f,#434c5e9e)}.library-choice--just-added{border-color:#88c0d0c2;background:linear-gradient(140deg,#88c0d033,#a3be8c24);box-shadow:0 0 0 1px #88c0d033,0 16px 32px #0c101838;animation:library-choice-confirm .52s ease-out}.library-choice__top{display:flex;gap:10px;align-items:center;min-width:0}.library-choice__top>span:last-child{display:grid;gap:2px;min-width:0}@keyframes library-choice-confirm{0%{transform:scale(.985)}45%{transform:scale(1.018)}to{transform:scale(1)}}.library-choice__name,.library-choice__meta,.library-choice__stats{display:block;min-width:0;overflow-wrap:anywhere}.library-choice__stats{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin-top:auto;color:var(--ink-soft);font-size:.88rem}.library-choice__stats span{padding:5px 8px;border-radius:999px;background:#d8dee914}.library-choice__status{width:fit-content;padding:6px 9px;border-radius:999px;color:#1f2733;background:var(--moss);font-size:.78rem;font-weight:800}.library-choice--just-added .library-choice__status{background:var(--accent)}.library-choice__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.actor-editor{width:min(1180px,100%)}.avatar-editor{width:min(680px,100%)}.avatar-editor__body{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;margin-top:18px}.avatar-editor__fields{display:grid;gap:12px}.avatar-editor__fields label:not(.upload-button){display:grid;gap:6px}.avatar-editor__fields label span{color:var(--ink-soft);font-size:.82rem;font-weight:800}.avatar-editor__fields input[type=text],.avatar-editor__fields input:not([type]){width:100%}.avatar-editor__actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:18px}.import-review-banner{display:grid;gap:4px;margin-top:18px;padding:14px 16px;border:1px solid rgba(136,192,208,.28);border-radius:8px;background:#88c0d01a}.import-review-banner span,.actor-editor__rule-row span,.actor-editor__rule-row small,.actor-editor__json span,.actor-editor__error{color:var(--ink-soft)}.actor-editor__grid,.actor-editor__columns{display:grid;gap:14px;margin-top:18px}.actor-editor__grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.actor-editor__grid label,.actor-editor__json{display:grid;gap:6px}.actor-editor__grid input,.actor-editor__mini-grid input,.actor-editor__mini-grid select,.actor-editor__wide-field input,.actor-editor__ability-grid input,.actor-editor__list-row input,.actor-editor__json textarea{width:100%;border:1px solid var(--panel-border);border-radius:8px;background:#2e3440d1;color:inherit}.actor-editor__grid input,.actor-editor__mini-grid input,.actor-editor__mini-grid select,.actor-editor__wide-field input,.actor-editor__ability-grid input,.actor-editor__list-row input{padding:10px 12px}.actor-editor__field{min-width:0}.actor-editor__field-label{display:inline-flex;align-items:center;width:fit-content;gap:6px;padding:3px 8px;border-radius:999px;background:#d8dee914}.actor-editor__field-label svg{width:16px;height:16px;fill:currentColor}.actor-editor__field--hp .actor-editor__field-label{color:var(--danger);background:#bf616a24}.actor-editor__field--hp input{border-color:#bf616a52;box-shadow:inset 0 0 0 1px #bf616a14}.actor-editor__field--ac .actor-editor__field-label{color:var(--accent);background:#88c0d024}.actor-editor__field--ac input{border-color:#88c0d052;box-shadow:inset 0 0 0 1px #88c0d014}.actor-editor__field--skill .actor-editor__field-label{color:var(--moss);background:#a3be8c24}.actor-editor__field--skill input{border-color:#a3be8c52;box-shadow:inset 0 0 0 1px #a3be8c14}.actor-editor__columns{grid-template-columns:repeat(2,minmax(0,1fr))}.actor-editor__section{display:grid;align-content:start;gap:10px}.actor-editor__section-header,.actor-editor__rule-top,.actor-editor__list-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.actor-editor__section h3{margin:0;font-size:1rem}.actor-editor__section-header .action-button{padding:9px 12px}.actor-editor__rule-row{display:grid;gap:5px;padding:12px;border:1px solid var(--panel-border);border-radius:8px;background:#434c5e80}.actor-editor__rule-row--new{border-color:#88c0d09e;background:linear-gradient(140deg,#88c0d029,#434c5e9e);box-shadow:0 0 0 1px #88c0d029,0 14px 32px #0c10182e}.actor-editor__new-prompt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;color:#1f2733;background:var(--accent)}.actor-editor__new-prompt strong,.actor-editor__new-prompt span{color:inherit}.actor-editor__new-prompt span{font-size:.86rem}.actor-editor__rule-top strong{min-width:0;overflow-wrap:anywhere}.actor-editor__rule-top .ghost-button{flex-shrink:0;padding:8px 10px}.actor-editor__mini-grid,.actor-editor__ability-grid{display:grid;gap:10px}.actor-editor__mini-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin-top:6px}.actor-editor__ability-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.actor-editor__mini-grid label,.actor-editor__wide-field,.actor-editor__ability-grid label{display:grid;gap:5px;min-width:0}.actor-editor__mini-grid span,.actor-editor__wide-field span,.actor-editor__ability-grid span{color:var(--ink-soft);font-size:.78rem}.actor-editor__checkbox{display:flex!important;align-items:center;align-self:end;gap:8px;min-height:40px}.actor-editor__checkbox input{width:auto}.actor-editor__list-editor{display:grid;gap:8px}.actor-editor__list-row input{min-width:0}.actor-editor__list-row .ghost-button{flex-shrink:0;padding:8px 10px}.actor-editor__json{margin-top:18px}.actor-editor__json textarea{min-height:280px;padding:12px;font-family:SFMono-Regular,Consolas,monospace;font-size:.86rem;line-height:1.45;resize:vertical}.actor-editor__error{margin:10px 0 0}.rule-tag{display:inline-flex;align-items:center;width:fit-content;margin-left:6px;padding:3px 7px;border-radius:999px;font-size:.74rem;font-weight:800;color:#1f2733;background:var(--moss);vertical-align:middle}.actor-editor__rule-row .rule-tag,.detail-item .rule-tag{color:#1f2733}.rule-tag--estimated{background:var(--warn);color:#2e3440}.rule-tag--fallback{color:#eceff4;background:var(--danger)}.actor-card{padding:18px}.actor-card__header p{margin:6px 0 0;color:var(--ink-soft)}.actor-card__stats{display:grid;gap:10px;margin-top:14px}.stat-pill{display:grid;grid-template-columns:minmax(44px,max-content) minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px}.stat-pill__label{display:inline-flex;align-items:center;width:fit-content;gap:6px}.stat-pill__label svg{width:16px;height:16px;fill:currentColor}.stat-pill span{color:var(--ink-soft);min-width:0}.stat-pill--hp{border-color:#bf616a3d;background:#bf616a14}.stat-pill--hp .stat-pill__label{color:var(--danger)}.stat-pill--ac{border-color:#88c0d03d;background:#88c0d014}.stat-pill--ac .stat-pill__label{color:var(--accent)}.stat-pill strong{min-width:0;text-align:right;overflow-wrap:anywhere;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.actor-card__notes,.actor-card__sources{margin:14px 0 0;font-size:.92rem}.actor-card__detail-group{margin-top:16px}.actor-card__detail-group h4{margin:0 0 10px;font-size:.95rem}.actor-card__detail-list{display:grid;gap:10px}.actor-card__skill{display:block;margin-top:14px;padding:12px 14px;border-radius:8px;background:#d8dee914}.actor-card__skill span{display:block;color:var(--ink-soft);font-size:.9rem}.actor-card__skill input[type=range],.control input[type=range]{width:100%;margin-top:10px;accent-color:var(--accent)}.actor-card__skill strong{display:block;margin-top:8px}.detail-item{width:100%;padding:12px 14px;text-align:left;color:inherit;background:#d8dee90f}.detail-item--open{background:#88c0d01f}.detail-item span{margin-top:6px}.detail-item__body{line-height:1.45}.controls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:stretch}.control{min-width:0;padding:16px;border-radius:8px;background:#434c5e9e;border:1px solid var(--panel-border)}.control p,.control strong,.control span{overflow-wrap:anywhere}.control span{display:block;font-size:.9rem;color:var(--ink-soft)}.control strong{display:block;margin-top:10px;font-size:1.35rem}.precision-labels{display:flex;justify-content:space-between;gap:8px;margin-top:8px;color:var(--ink-soft);font-size:.76rem;font-weight:800}.precision-labels span{font-size:inherit}.control--summary{background:linear-gradient(140deg,#88c0d02e,#a3be8c1f)}.quick-matchup{display:grid;gap:14px;position:sticky;top:18px}.quick-matchup--easy{border-color:#a3be8c4d;background:linear-gradient(140deg,#a3be8c24,#434c5eb8)}.quick-matchup--balanced{border-color:#ebcb8b4d;background:linear-gradient(140deg,#ebcb8b24,#434c5eb8)}.quick-matchup--danger{border-color:#bf616a57;background:linear-gradient(140deg,#bf616a29,#434c5eb8)}.quick-matchup--deadly{border-color:#bf616a7a;background:linear-gradient(140deg,#bf616a3d,#3b4252db)}.quick-matchup__badge{flex-shrink:0;padding:8px 12px;border-radius:8px;color:var(--ink);font-size:.92rem;font-weight:800;background:#d8dee91a;border:1px solid var(--panel-border)}.quick-matchup__note{margin:0;color:var(--ink-soft)}.quick-matchup .results-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.quick-matchup__drivers{display:flex;gap:8px;flex-wrap:wrap}.quick-matchup__drivers span{padding:8px 10px;border-radius:8px;color:var(--ink-soft);font-size:.88rem;background:#d8dee914;border:1px solid var(--panel-border)}.runner-summary{display:flex;align-items:start;justify-content:space-between;gap:16px;padding:16px;border-radius:8px;background:#434c5e9e;border:1px solid var(--panel-border)}.runner-summary--page{margin:0}.runner-summary__focus h3{margin:6px 0 0}.runner-readiness{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.runner-suggestion{flex:1;min-width:280px}.runner-suggestion__card{margin-top:10px;padding:14px;border-radius:8px;background:#434c5e9e;border:1px solid var(--panel-border)}.runner-suggestion__card p{margin:8px 0 12px}.runner-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:16px}.training-grid{grid-template-columns:1fr 1fr 1fr}.training-overview{display:grid;gap:16px}@media (min-width: 1101px){.training-overview{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.training-overview>.runner-summary,.training-overview>.training-battlefield{min-width:0}}.training-now{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.training-now span,.training-initiative-chip{border:1px solid var(--panel-border);background:#d8dee914}.training-now span{padding:6px 10px;border-radius:999px;color:var(--ink-bright);font-weight:800;font-size:.85rem}.training-initiative-track{display:grid;gap:8px;margin:12px 0 18px}.training-initiative-chip{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border-radius:8px}.training-initiative-chip span{display:grid;place-items:center;min-width:34px;height:34px;border-radius:999px;color:#2e3440;background:var(--accent);font-weight:900}.training-initiative-chip strong{min-width:0;overflow-wrap:anywhere}.training-initiative-chip--active{border-color:#88c0d0b8;background:#88c0d029;box-shadow:0 0 0 2px #88c0d01a}.training-initiative-chip--down{opacity:.5}.training-model-card{border-color:#b48ead6b;background:linear-gradient(135deg,#434c5eeb,#4c566ab8)}.training-command-menu{display:grid;gap:12px}.training-command-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:6px;border-radius:8px;background:#2e34407a;border:1px solid var(--panel-border)}.training-command-tab{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px;border-radius:7px;color:var(--ink-soft);background:transparent;border:0;font-weight:800}.training-command-tab span{display:grid;place-items:center;min-width:22px;height:22px;margin:0;border-radius:999px;color:#2e3440;background:var(--ink-soft);font-size:.75rem}.training-command-tab--active{color:#2e3440;background:var(--accent)}.training-command-tab--active span{background:#2e344033}.training-command-tab:disabled{opacity:.45;cursor:not-allowed}.training-command-list{display:grid;gap:10px;max-height:520px;overflow:auto;padding-right:4px}.training-command{display:grid;gap:5px;width:100%;padding:14px;border-radius:8px;text-align:left;color:inherit;background:#434c5e9e;border:1px solid var(--panel-border)}.training-command:hover{border-color:#88c0d08a;background:#88c0d01f}.training-command strong,.training-command span,.training-command small{min-width:0;overflow-wrap:anywhere}.training-command small{color:var(--ink-soft);font-size:.82rem}.training-target-popover{max-width:760px}.training-target-list{display:grid;gap:12px;margin-top:18px}.training-target-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border-radius:8px;background:#434c5e9e;border:1px solid var(--panel-border)}.training-target-card--selected{border-color:#88c0d0b8;background:#88c0d024}.training-target-card strong,.training-target-card span{display:block;min-width:0;overflow-wrap:anywhere}.training-target-card span{margin-top:4px;color:var(--ink-soft);font-size:.88rem}.training-target-card__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.training-target-tools,.training-target-resolve,.training-battlefield__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.training-target-tools,.training-target-resolve{justify-content:space-between;margin-top:14px;padding:10px 12px;border-radius:8px;background:#d8dee90f;border:1px solid var(--panel-border)}.training-target-tools span{color:var(--ink-soft);font-weight:800}.training-battlefield{display:grid;gap:14px}.training-battlefield__layout{display:grid;grid-template-columns:minmax(320px,1fr) minmax(220px,.45fr);gap:14px;align-items:stretch}.training-battlefield__map{min-height:260px}.training-battlefield__movement-radius{fill:#88c0d014;stroke:#88c0d07a;stroke-dasharray:2 2;stroke-width:.8;pointer-events:none}.training-battlefield__move-line{stroke:#a3be8cdb;stroke-width:1.2;stroke-linecap:round;pointer-events:none}.training-battlefield__preview{pointer-events:none}.training-battlefield__preview rect{fill:#a3be8cb8;stroke:var(--ink);stroke-width:1.8}.training-battlefield__preview text{fill:#2e3440;font-size:5px;font-weight:900;text-anchor:middle;dominant-baseline:middle;letter-spacing:0}.training-battlefield__readout{display:grid;align-content:start;gap:10px;padding:14px;border-radius:8px;background:#434c5e9e;border:1px solid var(--panel-border)}.training-battlefield__readout strong,.training-battlefield__readout span{min-width:0;overflow-wrap:anywhere}.training-manual-move{display:grid;grid-template-columns:repeat(2,minmax(72px,1fr)) auto;gap:8px;align-items:end;padding:10px;border-radius:8px;background:#d8dee90f;border:1px solid var(--panel-border)}.training-manual-move div{display:grid;gap:5px}.training-manual-move div span,.training-manual-move small{color:var(--ink-soft);font-size:.78rem;font-weight:800}.training-manual-move div strong{font-size:.95rem}.training-manual-move small{grid-column:1 / -1}.training-log{max-height:620px;overflow:auto;padding-right:4px}.training-log .runner-log__entry:first-child{border-color:#a3be8c7a;background:#a3be8c1a}.runner-column{min-width:0}.runner-list,.runner-log{display:grid;gap:12px;margin-top:12px}.runner-card,.runner-target,.runner-action,.runner-log__entry,.sample-chip{padding:14px}.hp-state--bloodied{border-color:#a4721394;box-shadow:inset 4px 0 #a4721380}.hp-state--critical{border-color:#9f2f27b8;box-shadow:inset 4px 0 #9f2f27ad}.hp-state--down{border-color:#5c221dd1;box-shadow:inset 4px 0 #5c221dd1}.runner-card--active,.runner-target--selected{background:#88c0d01f}.runner-card--down{background:#9f2f271a}.runner-card__top,.runner-card__fields{display:flex;gap:12px}.runner-card__top{justify-content:space-between;align-items:start}.runner-card__top strong,.runner-card__top span,.runner-target strong,.runner-target span,.runner-action strong,.runner-action span{display:block}.runner-card__fields{margin-top:12px}.runner-card__fields label{flex:1}.runner-card__fields span,.runner-card__adjustments span{display:block;margin-bottom:6px;color:var(--ink-soft);font-size:.85rem}.runner-card__field-label{display:inline-flex!important;align-items:center;width:fit-content;gap:6px;padding:4px 8px;border-radius:999px;background:#d8dee914}.runner-card__field-label svg{width:16px;height:16px;fill:currentColor}.runner-card__field--hp .runner-card__field-label{color:var(--danger);background:#bf616a24}.runner-card__field--ac .runner-card__field-label{color:var(--accent);background:#88c0d024}.runner-card__field--hp input{border-color:#bf616a52;box-shadow:inset 0 0 0 1px #bf616a14}.runner-card__field--ac input{border-color:#88c0d052;box-shadow:inset 0 0 0 1px #88c0d014}.runner-card__adjustments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.runner-card__adjustment{min-width:0}.runner-card__adjustment--damage span{color:var(--danger);font-weight:800}.runner-card__adjustment--healing span{color:var(--moss);font-weight:800}.runner-card__inline-field{display:flex;gap:8px;padding:8px;border-radius:12px;border:1px solid var(--panel-border);background:#2e344080}.runner-card__inline-field--damage{border-color:#bf616a3d;background:#bf616a14}.runner-card__inline-field--healing{border-color:#a3be8c3d;background:#a3be8c14}.runner-card__inline-field input{flex:1;min-width:0}.runner-card__inline-field .ghost-button{flex-shrink:0}.runner-card__apply{font-weight:800}.runner-card__apply--damage{color:#2e3440;background:var(--danger)}.runner-card__apply--healing{color:#2e3440;background:var(--moss)}.runner-target,.runner-action{text-align:left;color:inherit}.runner-target{cursor:pointer}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-top:18px}.advanced-report{margin-top:18px;padding:18px;border-radius:8px;background:#434c5e80;border:1px solid var(--panel-border)}.about-hero,.about-notes{display:grid;gap:12px}.about-hero h3,.about-notes h3{margin:4px 0 0}.about-hero p,.about-notes p{max-width:900px;margin:0;color:var(--ink-soft)}.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.about-card{padding:18px;border-radius:8px;background:#434c5e9e;border:1px solid var(--panel-border)}.about-card ul{display:grid;gap:10px;margin:14px 0 0;padding-left:20px}.about-card li{color:var(--ink-soft);overflow-wrap:anywhere}.advanced-report__header,.advanced-report__summary,.report-row{display:flex;gap:12px}.advanced-report__header{align-items:start;justify-content:space-between}.advanced-report__header h3,.report-panel h4{margin:4px 0 0}.advanced-report__confidence{text-align:right}.advanced-report__confidence span,.advanced-report__confidence strong,.advanced-report__summary strong,.advanced-report__summary span,.report-row span,.report-row strong{display:block}.advanced-report__confidence span,.advanced-report__summary span,.report-row span,.report-panel__empty{color:var(--ink-soft)}.advanced-report__confidence strong{margin-top:4px}.outcome-bars{display:flex;height:14px;margin-top:18px;overflow:hidden;border-radius:999px;background:#d8dee91a}.outcome-bars__segment{min-width:2px}.outcome-bars__segment--victory{background:var(--moss)}.outcome-bars__segment--contested{background:var(--warn)}.outcome-bars__segment--defeat{background:var(--danger)}.advanced-report__summary{justify-content:space-between;margin-top:12px;padding:12px 14px;border-radius:8px;background:#d8dee90f}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.report-panel{padding:14px;border-radius:8px;background:#434c5e9e;border:1px solid var(--panel-border)}.report-row{align-items:center;justify-content:space-between;margin-top:12px}.report-row--compact{align-items:start}.report-row strong{flex-shrink:0;text-align:right}.report-meter{width:100%;max-width:150px;height:8px;overflow:hidden;border-radius:999px;background:#d8dee91a}.report-meter div{height:100%;border-radius:inherit;background:var(--warn)}.report-meter--danger div{background:var(--danger)}.report-meter--feature div{background:var(--moss)}.sample-strip{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:16px}.sample-chip span{margin-top:6px;color:var(--ink-soft)}.sample-chip__events{padding-top:8px;border-top:1px solid var(--panel-border);line-height:1.45}.sample-chip__button{width:100%;margin-top:10px;padding:9px 10px;border:1px solid var(--panel-border);border-radius:8px;color:var(--ink);background:#d8dee914;font:inherit;cursor:pointer}.sample-chip__button:hover{border-color:#88c0d06b}.combat-log-panel{margin-top:16px;padding:16px;border-radius:8px;background:#434c5e80;border:1px solid var(--panel-border)}.combat-log-panel__header{display:flex;align-items:start;justify-content:space-between;gap:14px}.combat-log-panel__header h3{margin:4px 0 0}.combat-log-list{display:grid;gap:8px;max-height:520px;margin-top:14px;overflow:auto;padding-right:4px}.combat-log-event{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;padding:10px 12px;border-radius:8px;background:#d8dee90f}.combat-log-event>span,.combat-log-event small{color:var(--ink-soft)}.combat-log-event strong,.combat-log-event small{display:block}.combat-log-event small{margin-top:4px}.combat-log-event--turn-start,.combat-log-event--turn-end{background:#38584e14}.encounter-save-panel{display:grid;gap:16px}.encounter-save-panel__actions,.encounter-save-panel__form,.encounter-save-panel__columns,.encounter-save-panel__library-row{display:flex;gap:12px}.encounter-save-panel__actions{flex-wrap:wrap;justify-content:flex-end}.encounter-save-panel__form{align-items:end}.encounter-save-panel__library-row{align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--panel-border);border-radius:8px;background:#d8dee90f}.encounter-save-panel__library-row h3,.encounter-save-panel__library-row p{margin:0}.encounter-save-panel__library-row p{margin-top:4px}.encounter-save-panel__form label{display:grid;flex:1;min-width:220px;gap:6px}.encounter-save-panel__form label span,.encounter-save-panel__columns h3{margin:0;color:var(--ink-soft);font-size:.76rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.encounter-save-panel__form input{width:100%;padding:13px 14px;border:1px solid var(--panel-border);border-radius:8px;color:var(--ink);background:#2e3440d1;font:inherit}.encounter-save-panel__columns{align-items:start}.encounter-save-panel__columns>div{display:grid;flex:1;min-width:0;gap:10px}.encounter-list{display:grid;gap:8px;max-height:280px;overflow:auto;padding-right:4px}.encounter-list__item{display:grid;gap:4px;width:100%;padding:11px 12px;border:1px solid var(--panel-border);border-radius:8px;color:var(--ink);background:#434c5e9e;text-align:left;cursor:pointer}.encounter-list__item:hover,.encounter-list__item--active{border-color:#88c0d06b;background:#88c0d01f}.encounter-list__item strong,.encounter-list__item span,.encounter-list__item small{min-width:0;overflow-wrap:anywhere}.encounter-list__item span,.encounter-list__item small{color:var(--ink-soft)}.saved-encounter-popover{width:min(980px,100%)}.saved-encounter-toolbar{align-items:center}.saved-encounter-list{display:grid;gap:10px;max-height:min(560px,calc(100vh - 260px));margin-top:16px;overflow:auto;padding-right:4px}.saved-encounter-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--panel-border);border-radius:8px;background:#434c5e9e}.saved-encounter-card--active{border-color:#88c0d085;background:#88c0d01f}.saved-encounter-card strong,.saved-encounter-card span,.saved-encounter-card small{display:block;min-width:0;overflow-wrap:anywhere}.saved-encounter-card span,.saved-encounter-card small{color:var(--ink-soft)}.saved-encounter-card span{margin-top:6px}.saved-encounter-card small{margin-top:4px}.saved-encounter-card__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.saved-encounter-card__actions .action-button,.saved-encounter-card__actions .ghost-button{padding:9px 12px}.error-banner,.empty-state{padding:14px 16px;border-radius:8px}.error-banner{margin-top:16px;background:#bf616a1f;border:1px solid rgba(191,97,106,.24)}.empty-state{background:#d8dee90f}.empty-state--button{width:100%;min-height:132px;border:1px dashed rgba(216,222,233,.24);color:var(--ink-soft);text-align:left;cursor:pointer}@media (max-width: 1100px){.topbar{align-items:stretch;flex-direction:column}.auth-panel{justify-content:flex-start}.panel--hero,.build-grid,.build-encounter-layout,.active-encounter-grid,.simulator-grid,.runner-grid,.report-grid,.home-grid{grid-template-columns:1fr}.advanced-report__header,.advanced-report__summary,.encounter-save-panel__columns,.encounter-save-panel__library-row{flex-direction:column}.advanced-report__confidence{text-align:left}.quick-matchup{position:static}}@media (max-width: 860px){.app-shell{padding:18px}.topbar,.page-header,.page-header__actions,.panel__header,.monster-form,.controls-grid,.library-panel__header,.popover-panel__header,.popover-action-row,.popover-toolbar,.encounter-save-panel__form,.actor-card__actions,.runner-summary,.runner-card__top,.runner-card__fields{flex-direction:column}.saved-encounter-card{grid-template-columns:1fr}.saved-encounter-card__actions{justify-content:flex-start}.topbar{align-items:stretch}.active-roster{grid-template-columns:1fr}.active-card__top{grid-template-columns:auto minmax(0,1fr)}.active-card__actions{grid-column:1 / -1;justify-content:flex-start}.hero-status__grid,.runner-card__adjustments,.training-target-card,.training-battlefield__layout,.avatar-editor__body,.active-card__stats,.quick-matchup .results-grid{grid-template-columns:1fr}.training-target-card__actions{justify-content:flex-start}.training-command-tabs{grid-template-columns:1fr}.popover-toolbar input,.popover-toolbar select,.topbar__nav{width:100%}.nav-pill{flex:1}.hero-card h1{font-size:2.6rem}}
