:root{
  --bg:#14110d; --panel:#1d1914; --panel2:#262019; --line:#3a3025; --ink:#f3eadc; --muted:#a89b89;
  --accent:#b36a3c; --accent2:#d7b071; --good:#91b27c; --danger:#bd6a5f; --shadow:0 10px 30px rgba(0,0,0,.28);
}
.appearance208{padding:18px 0;border-top:1px solid var(--line);margin-top:18px}.appearance208>p,.talent-info208{line-height:1.6}.appearance-field208{padding:12px 0}.appearance-field208 input{width:100%;min-height:46px;font:inherit;font-size:16px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:8px}.appearance-field208 summary,.career-talent-info208 summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--accent2)}.appearance-roll208{display:flex;flex-wrap:wrap;gap:8px}.appearance-roll208 input{flex:1 1 180px}.appearance-roll208 button,.own-talent208 button{appearance:none;-webkit-appearance:none;min-height:46px;background:var(--panel2);color:var(--ink);border:1px solid var(--accent2);border-radius:10px;padding:12px;font:inherit;cursor:pointer}.own-talent208{margin-top:14px}.own-talent208 input{font-size:16px;min-height:46px;width:100%;padding:10px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px}.own-talent208 label{display:block}.own-talent208 button{margin-top:10px}.career-talent-info208{padding:0 14px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:14px}.talent-info208 p{white-space:normal;font-size:14px}.talent-info208 small{color:var(--accent2)}.appearance208 button:focus-visible,.career-talent-info208 summary:focus-visible{outline:3px solid var(--accent2);outline-offset:2px}.notes{white-space:pre-wrap}
*{box-sizing:border-box}
html,body{touch-action:manipulation} button,a,input,textarea,summary,.editable-skill,.editable-row,.tappable-pool{touch-action:manipulation}
html,body{margin:0;background:linear-gradient(180deg,#17130f 0%,#0f0d0a 100%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100%}
body{padding-bottom:92px}.app-shell{max-width:760px;margin:0 auto;min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:16px;padding:20px 18px 14px;background:rgba(20,17,13,.93);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.05)}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:10px;color:var(--accent2);font-weight:800}.topbar h1{font-family:Georgia,serif;margin:4px 0 2px;font-size:28px;line-height:1.05}.subtitle{font-size:12px;color:var(--muted)}
.icon-btn{border:1px solid var(--line);background:var(--panel2);color:var(--ink);border-radius:12px;width:40px;height:40px;font-size:20px}.screen{padding:16px 14px 24px}.section{margin-bottom:18px}.section-head{display:flex;align-items:end;justify-content:space-between;margin:0 2px 9px}.section-head h2{font-family:Georgia,serif;font-size:19px;margin:0}.section-head span{font-size:11px;color:var(--muted)}
.grid{display:grid;gap:10px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:16px;padding:13px;box-shadow:var(--shadow)}.card.flat{box-shadow:none}.stat-card{text-align:center}.stat-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.stat-value{font-family:Georgia,serif;font-weight:700;font-size:31px;margin:3px 0}.stat-sub{font-size:11px;color:var(--accent2)}
.attribute-table,.data-table{width:100%;border-collapse:collapse;font-size:12px}.attribute-table th,.data-table th{color:var(--muted);font-weight:700;text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}.attribute-table td,.data-table td{padding:9px 6px;border-bottom:1px solid rgba(255,255,255,.055)}.attribute-table td:not(:first-child),.attribute-table th:not(:first-child){text-align:center}.attribute-table tr:last-child td,.data-table tr:last-child td{border-bottom:0}.attribute-total{font-weight:800;color:var(--accent2)}
.pill-row{display:flex;flex-wrap:wrap;gap:7px}.pill{padding:7px 9px;background:#120f0c;border:1px solid var(--line);border-radius:999px;font-size:11px;color:var(--muted)}.pill b{color:var(--ink)}
.skill-list{display:grid;gap:8px}.skill{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 13px;border:1px solid var(--line);background:var(--panel);border-radius:14px}.skill-name{font-weight:700;font-size:13px}.skill-meta{font-size:11px;color:var(--muted);margin-top:2px}.skill-score{font-family:Georgia,serif;font-size:24px;color:var(--accent2);font-weight:700}.tag{display:inline-block;padding:3px 7px;border-radius:999px;background:#31261d;color:#d9bea2;font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-left:5px}.weapon{padding:13px;border:1px solid var(--line);background:var(--panel);border-radius:15px}.weapon-head{display:flex;justify-content:space-between;gap:10px}.weapon h3{font-size:15px;margin:0}.weapon-damage{font-family:Georgia,serif;font-size:25px;color:var(--accent2)}.weapon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.mini{padding:8px;border-radius:10px;background:#120f0c}.mini span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase}.mini b{font-size:12px}.qualities{font-size:11px;color:var(--muted);margin-top:9px;line-height:1.4}.armor-location{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.055)}.armor-location:last-child{border:0}.ap{font-family:Georgia,serif;color:var(--accent2);font-weight:700}.inventory-row{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.055)}.inventory-row:last-child{border:0}.inventory-title{display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:700}.inventory-desc{font-size:11px;color:var(--muted);line-height:1.45;margin-top:4px}.money{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.money .card{text-align:center}.money strong{display:block;font-size:24px;font-family:Georgia,serif}.money span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}.empty{color:var(--muted);font-size:12px;padding:14px 2px}.notes{white-space:pre-wrap;line-height:1.5;color:#ddd0bd;font-size:13px}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:30;width:min(760px,100%);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));padding:7px max(8px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom));background:rgba(18,15,12,.97);backdrop-filter:blur(16px);border-top:1px solid var(--line)}.nav-item{border:0;background:transparent;color:#7f7466;display:grid;place-items:center;gap:2px;padding:4px;min-width:0}.nav-item span{font-size:18px;line-height:1}.nav-item small{font-size:9px;white-space:nowrap}.nav-item.active{color:var(--accent2)}
input,textarea{width:100%;margin-top:5px;background:#130f0c;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit}dialog{border:0;background:transparent;padding:0;width:min(92vw,520px)}dialog::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(3px)}.dialog-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;color:var(--ink);display:grid;gap:11px}.dialog-card label{font-size:11px;color:var(--muted)}.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-head h2{margin:0;font-family:Georgia,serif}.dialog-actions{justify-content:flex-end}.dialog-actions button{padding:10px 14px;border:0;border-radius:10px;background:var(--accent);color:white;font-weight:800}.dialog-actions .secondary{background:#2a241e;color:var(--ink)}
@media (min-width:680px){.screen{padding-left:18px;padding-right:18px}.grid-desktop-2{grid-template-columns:repeat(2,minmax(0,1fr))}}

.editable-skill,.editable-row,.tappable-pool{cursor:pointer;-webkit-tap-highlight-color:transparent}.editable-skill:active,.tappable-pool:active{transform:scale(.985)}.advance-chip{display:inline-block;min-width:34px;padding:4px 7px;border:1px solid var(--line);border-radius:999px;color:var(--accent2);font-weight:800;background:#120f0c}.tap-hint{font-size:8px;color:var(--muted);margin-top:5px;text-transform:uppercase;letter-spacing:.05em}.editable-skill::after{content:'edit advances';font-size:8px;color:#756959;text-transform:uppercase;letter-spacing:.06em;position:absolute;right:12px;bottom:5px}.editable-skill{position:relative;padding-bottom:18px}

.pool-max{font-size:.48em;color:var(--muted);font-family:Inter,ui-sans-serif,system-ui}.tappable-pool{user-select:none;-webkit-user-select:none;touch-action:manipulation}.tappable-pool.long-active{outline:1px solid var(--accent2)}


/* Companion5: XP ledger */
.xp-summary{margin-bottom:10px}.xp-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}.action-btn{border:1px solid #8f5735;background:var(--accent);color:white;border-radius:12px;padding:11px 12px;font-weight:800;font-size:12px}.secondary-action{background:var(--panel2);border-color:var(--line);color:var(--ink)}
.xp-history{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}.xp-history summary{list-style:none;cursor:pointer;padding:12px 13px;font-size:12px;font-weight:800;color:var(--accent2);display:flex;justify-content:space-between;align-items:center;-webkit-tap-highlight-color:transparent}.xp-history summary::-webkit-details-marker{display:none}.xp-history summary::after{content:'⌄';color:var(--muted);margin-left:auto;padding-left:8px}.xp-history[open] summary::after{content:'⌃'}.xp-history summary span{margin-left:7px;color:var(--muted);font-weight:600}.xp-ledger{border-top:1px solid var(--line);padding:0 10px}.xp-entry{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;border-bottom:1px solid rgba(255,255,255,.055)}.xp-entry:last-child{border-bottom:0}.xp-entry-main{border:0;background:transparent;color:var(--ink);padding:10px 0;text-align:left;display:grid;grid-template-columns:58px 1fr;gap:8px;align-items:center}.xp-amount{font-family:Georgia,serif;font-weight:800;font-size:18px}.xp-amount.earned{color:var(--good)}.xp-amount.spent{color:var(--danger)}.xp-entry-copy{display:grid;gap:2px}.xp-entry-copy b{font-size:11px}.xp-entry-copy small{font-size:9px;color:var(--muted)}.xp-delete{width:30px;height:30px;border:1px solid var(--line);border-radius:9px;background:#17120f;color:var(--muted);font-size:18px}.optional{font-weight:400;color:#786d60}

.wealth-card{appearance:none;width:100%;color:inherit;font:inherit;cursor:pointer}.wealth-card small{display:block;margin-top:5px;font-size:8px;color:var(--accent2);text-transform:uppercase;letter-spacing:.08em}.wealth-card:active{transform:scale(.98)}

/* Companion7: unified items */
select{width:100%;margin-top:5px;background:#130f0c;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit}.item-list{display:grid;gap:8px}.item-card{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:14px;padding:11px;display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;text-align:left}.item-card:active{transform:scale(.99)}.item-icon{width:32px;height:32px;border-radius:10px;background:#120f0c;display:grid;place-items:center;color:var(--accent2)}.item-copy{display:grid;gap:2px;min-width:0}.item-copy b{font-size:13px}.item-copy small{font-size:10px;color:var(--muted)}.item-copy em{font-size:9px;color:#827666;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-state{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent2);border:1px solid var(--line);border-radius:999px;padding:5px 7px}.add-item-btn{width:100%;margin:0 0 18px;border:1px dashed #765039;background:#1a1511;color:var(--accent2);border-radius:14px;padding:12px;font-weight:800}.load-line{display:flex;align-items:baseline;gap:8px}.load-line b{font-family:Georgia,serif;font-size:28px;color:var(--accent2)}.load-line span{font-size:11px;color:var(--muted)}.item-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.split-actions{display:grid;grid-template-columns:auto 1fr auto auto}.danger-btn{background:#3b1d19!important;color:#e8aaa2!important}.dialog-card [hidden]{display:none!important}@media(max-width:420px){.item-form-grid{grid-template-columns:1fr}.item-state{display:none}}

/* Companion8: drag & drop inventory */
.item-drop-zone{border-radius:16px;transition:background .16s ease,outline-color .16s ease,transform .16s ease;min-height:54px}
.item-drop-zone.drag-ready{outline:1px dashed #765039;outline-offset:4px;background:rgba(151,104,67,.05)}
.item-drop-zone.drag-over{outline:2px solid var(--accent2);outline-offset:3px;background:rgba(203,151,98,.12);transform:scale(1.008)}
.item-card{touch-action:pan-y pinch-zoom;position:relative;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}\n.item-card *{user-select:none!important;-webkit-user-select:none!important;-webkit-touch-callout:none!important}
.item-card.drag-armed{outline:1px solid #765039}
.item-card.dragging{opacity:.28;transform:scale(.98)}
.drag-ghost{position:fixed;z-index:9999;pointer-events:none;width:min(82vw,390px);box-shadow:0 14px 40px rgba(0,0,0,.55);opacity:.96;transform:rotate(1deg) scale(1.02)}
.item-slot{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}
.hand-dialog{max-width:360px}.hand-dialog p{margin:3px 0 0;color:var(--muted);font-size:11px}.hand-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.hand-choice button{border:1px solid #765039;background:#1d1712;color:var(--ink);border-radius:12px;padding:14px 10px;font-weight:800}.secondary-btn{width:100%;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:12px;padding:11px}.checkline{display:flex!important;align-items:center;gap:8px;padding-top:8px}.checkline input{width:auto;margin:0}
body.inventory-dragging{overflow:hidden}

/* Companion11: dedicated drag handle — iOS-safe */
.item-card{grid-template-columns:32px minmax(0,1fr) auto 38px;cursor:pointer;touch-action:pan-y pinch-zoom;-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}
.item-card *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}
.drag-handle{width:38px;height:42px;margin:-5px -4px -5px 0;border:0;border-left:1px solid rgba(255,255,255,.055);background:transparent;color:var(--accent2);border-radius:8px;display:grid;place-items:center;font-size:24px;line-height:1;cursor:grab;touch-action:none!important;-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;-webkit-tap-highlight-color:transparent}
.drag-handle:active{cursor:grabbing;background:rgba(203,151,98,.08)}
.item-card.dragging{opacity:.22;transform:scale(.985)}
.drag-ghost{grid-template-columns:32px minmax(0,1fr) auto!important}
body.inventory-dragging{overscroll-behavior:none}
@media(max-width:420px){.item-card{grid-template-columns:32px minmax(0,1fr) 38px}.item-state{display:none}.drag-handle{grid-column:3}}

/* Companion12 rule reference chips */
.rule-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;position:relative;z-index:3}
.rule-chip{-webkit-appearance:none;appearance:none;border:1px solid rgba(215,174,105,.34);background:rgba(215,174,105,.08);color:#dfbd80;border-radius:999px;padding:5px 9px;font:700 11px/1.1 system-ui,-apple-system,sans-serif;letter-spacing:.02em;touch-action:manipulation}
.rule-chip.flaw{border-color:rgba(184,105,91,.38);background:rgba(184,105,91,.08);color:#d49a8f}
.rule-chip span{font-size:10px;opacity:.7}
.rule-card{max-width:430px}
.rule-kind{text-transform:uppercase;letter-spacing:.18em;color:#d8ad68;font-size:11px;font-weight:800;margin-bottom:4px}
.rule-card p{color:#d8cdbd;font-size:16px;line-height:1.55;margin:14px 0 22px}
.rule-close{width:100%}

/* Companion13: live attack skill projection */
.combat-attack{margin-top:10px;padding:10px 11px;border:1px solid rgba(205,164,108,.22);background:#17120e;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:14px}.combat-attack span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.combat-attack b{display:block;margin-top:2px;font-size:13px;color:#eadcc9}.combat-attack small{display:block;margin-top:3px;font-size:9px;color:var(--muted)}.combat-attack strong{font-family:Georgia,serif;font-size:28px;line-height:1;color:var(--accent2)}.weapon-damage{display:flex;flex-direction:column;align-items:flex-end;line-height:1}.weapon-damage span{font-family:system-ui,sans-serif;font-size:8px;letter-spacing:.1em;color:var(--muted);margin-bottom:3px}

/* Companion14 Armoury */
.gear-actions{display:grid;grid-template-columns:1.25fr .85fr;gap:10px;margin:0 0 18px}.armoury-btn{background:linear-gradient(180deg,#8e6d36,#67491f);border-color:#b89555;color:#fff8e7}.secondary-gear{background:#29231b}.shop-dialog,.buy-dialog{padding:0;border:0;background:transparent;max-width:none}.shop-dialog::backdrop,.buy-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(3px)}.shop-card{width:min(720px,calc(100vw - 20px));max-height:min(88vh,850px);overflow:hidden;display:flex;flex-direction:column;padding:18px}.shop-subtitle{margin:4px 0 0;color:var(--muted);font-size:.85rem}.shop-toolbar{display:grid;gap:10px;margin:14px 0 10px}.shop-toolbar input{width:100%;box-sizing:border-box}.shop-filters{display:flex;gap:8px;overflow:auto}.shop-filter{padding:8px 13px;border-radius:999px;background:#252119;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.shop-filter.active{background:#6d5228;color:#fff5db;border-color:#a98449}.shop-purse{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#17140f;border:1px solid var(--line);border-radius:12px;margin-bottom:10px}.shop-purse span{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.shop-list{overflow:auto;padding:2px 2px 20px;display:grid;gap:10px}.shop-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px;background:#211d17;border:1px solid var(--line);border-radius:14px}.shop-item h3{margin:3px 0 5px;font-size:1rem}.shop-item p{margin:0;color:var(--muted);font-size:.84rem}.shop-type{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:#bda473}.shop-meta{margin-top:8px;font-size:.72rem;color:var(--muted)}.shop-buy{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:9px;min-width:92px}.shop-buy strong{font-size:.84rem;color:#e9d3a3;text-align:right}.shop-buy button{padding:8px 14px}.shop-buy button:disabled{opacity:.4;filter:grayscale(1)}.buy-card{width:min(430px,calc(100vw - 28px))}.buy-item-details{display:flex;flex-direction:column;gap:3px;padding:12px;border-radius:12px;background:#18150f;border:1px solid var(--line);margin:12px 0}.buy-item-details span{color:var(--muted);font-size:.78rem}.purchase-math{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.purchase-math>div{display:flex;justify-content:space-between;padding:11px 12px;background:#211d17;border-bottom:1px solid var(--line)}.purchase-math>div:last-child{border-bottom:0}.purchase-math span{color:var(--muted);font-size:.8rem}.purchase-math .after{background:#252116}.purchase-math .after strong{color:#dfc17f}.purchase-note{font-size:.8rem;color:var(--muted);margin:12px 0}.purchase-toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:9999;background:#e7d0a0;color:#18130b;padding:10px 16px;border-radius:999px;font-weight:800;box-shadow:0 10px 30px #0008;white-space:nowrap}.shop-item .qualities{margin-top:8px}
@media(max-width:520px){.gear-actions{grid-template-columns:1fr}.shop-card{width:calc(100vw - 12px);max-height:92vh;padding:14px}.shop-item{grid-template-columns:1fr auto;padding:12px}.shop-buy{min-width:82px}}
/* Companion15 market split */
.gear-market-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin:0 0 18px}.market-btn{min-height:42px;padding:9px 11px;border-radius:12px;border:1px solid var(--line);font-weight:800;font-size:.84rem}.armoury-btn{background:linear-gradient(180deg,#8e6d36,#67491f);border-color:#b89555;color:#fff8e7}.shop-btn{background:#2b261d;color:#efe3c7}.add-compact{background:#211d17;color:var(--muted);min-width:68px}.shop-source{width:100%;box-sizing:border-box;background:#211d17;color:#efe3c7;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.source-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border:1px solid #6c5a38;border-radius:999px;color:#d5bd8c;font-size:.62rem;letter-spacing:.04em;text-transform:none}.shop-empty-state{text-align:center;padding:34px 16px 24px}.shop-empty-state h3{margin:8px 0 8px}.shop-empty-state p{margin:0 auto;max-width:460px;color:var(--muted);line-height:1.5}.shop-empty-icon{font-size:2rem;color:#b89555}
@media(max-width:430px){.gear-market-actions{grid-template-columns:1fr 1fr}.add-compact{grid-column:1/-1}.market-btn{font-size:.8rem}}

/* Companion16 populated general Shop */
.trapping-filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.trapping-filters::-webkit-scrollbar{display:none}.trapping-filter{flex:0 0 auto;background:#211d17;color:#cdbf9f;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:.72rem;font-weight:800}.trapping-filter.active{background:#8e6d36;color:#fff8e7;border-color:#b89555}.shop-meta{display:flex;gap:10px;flex-wrap:wrap}

/* Companion17: structured Species + Career progression */
.identity-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
.identity-tile{text-align:left;border:1px solid var(--line);background:#191510;color:var(--ink);border-radius:13px;padding:11px 12px;min-width:0}
.identity-tile small,.identity-tile span{display:block;color:var(--muted);font-size:.68rem}
.identity-tile small{text-transform:uppercase;letter-spacing:.09em;margin-bottom:4px}
.identity-tile b{display:block;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}
.identity-tile:active{transform:scale(.985);background:#211b14}
.career-card{width:min(470px,calc(100vw - 24px));max-height:88vh;overflow:auto}
.career-path{display:grid;gap:8px;margin:14px 0}
.career-level{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#191610}
.career-level>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#29231b;color:var(--muted);font-weight:900}
.career-level b,.career-level small{display:block}.career-level small{color:var(--muted);margin-top:2px}.career-level em{font-size:.65rem;color:var(--muted);font-style:normal;text-transform:uppercase;letter-spacing:.08em}
.career-level.current{border-color:#9d7943;background:#252015}.career-level.current>span{background:#8e6d36;color:#fff8e7}.career-level.current em{color:#dfc17f}
.career-level.done{opacity:.65}
.career-advance{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid #755a31;border-radius:13px;background:#211b12}
.career-advance h3{margin:3px 0 5px}.career-advance p{margin:0;color:var(--muted);font-size:.78rem}.career-advance button{padding:10px 14px}
.career-advance button:disabled{opacity:.4}
.career-kicker{font-size:.65rem;color:#d7b46d;text-transform:uppercase;letter-spacing:.1em}
.career-warning{margin-top:9px;padding:10px 12px;border-radius:10px;background:#1a1712;color:var(--muted);font-size:.78rem}
.career-note{color:var(--muted);font-size:.78rem;line-height:1.5}
@media(max-width:430px){.identity-actions{grid-template-columns:1fr}}

/* Companion18: live Career completion validator */
.requirements-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 9px}.requirements-head h3{margin:3px 0 0}.req-score{font-size:1.25rem;font-weight:950;color:#e0bf79}
.req-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 11px;margin-top:10px;border-radius:10px;border:1px solid var(--line);font-size:.76rem}.req-summary span{color:var(--muted);text-align:right}.req-summary.ok{border-color:#506044;background:#172016}.req-summary.bad{border-color:#71433a;background:#211715}
.req-group{display:grid;gap:5px;margin:6px 0 9px}.req-row{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:8px 9px;border-radius:9px;background:#181510;border:1px solid var(--line);font-size:.74rem}.req-row small{display:block;color:var(--muted);font-size:.62rem;margin-top:2px}.req-row strong{font-size:.72rem}.req-row.ok .req-mark,.req-row.ok strong{color:#9fbd7d}.req-row.bad .req-mark{color:#d17f70}.req-mark{font-weight:950;text-align:center}
.req-details{margin-top:6px}.req-details summary{cursor:pointer;color:#c8aa70;font-size:.7rem;padding:7px 2px;user-select:none;-webkit-user-select:none}

/* Companion21: Advantage */
.adv-card{display:grid;grid-template-columns:1fr 44px;gap:8px;margin:0 0 12px;padding:10px;border:1px solid #755a31;border-radius:15px;background:linear-gradient(145deg,#211b12,#17130f)}
.adv-main{grid-row:span 2;display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;border:0;background:transparent;color:var(--ink);padding:2px 5px;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.adv-main small{font-size:.66rem;letter-spacing:.1em;color:#d7b46d}.adv-main strong{grid-row:1/3;grid-column:2;font-size:2.15rem;line-height:1;color:#fff1cf;padding-left:12px}.adv-main span{font-size:.64rem;color:var(--muted);margin-top:4px}
.adv-info,.adv-mode{border:1px solid var(--line);background:#1a1712;color:#d7b46d;border-radius:9px}.adv-info{font-size:1rem}.adv-mode{font-size:.52rem;font-weight:900;letter-spacing:.04em;padding:3px}
.adv-mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0}.adv-mode-picker button{border:1px solid var(--line);background:#191610;color:var(--muted);border-radius:10px;padding:10px 6px;font-weight:800}.adv-mode-picker button.active{border-color:#9d7943;background:#2a2115;color:#f2d597}
.adv-rule-copy{padding:2px}.adv-rule-copy h3{margin:10px 0 4px}.adv-rule-copy>p{color:var(--muted);font-size:.78rem;line-height:1.5}.adv-rule-copy details{border-top:1px solid var(--line);padding:10px 0}.adv-rule-copy summary{font-weight:850;color:#d7b46d;cursor:pointer}.adv-rule-copy details p{font-size:.75rem;color:var(--muted);line-height:1.45;margin:7px 0}

/* Companion22: structured Qualities & Flaws */
.item-rules-editor{border:1px solid var(--line);border-radius:12px;background:#17140f;padding:9px;margin:4px 0 10px}
.editor-rule-chips{display:flex;flex-wrap:wrap;gap:7px;min-height:30px;align-items:center}
.editor-rule-chip{display:inline-flex;align-items:stretch;border:1px solid #6e5d38;border-radius:999px;overflow:hidden;background:#241e14}
.editor-rule-chip.flaw{border-color:#78443e;background:#251715}
.editor-rule-info,.editor-rule-remove{border:0;background:transparent;color:#e8d5a7}.editor-rule-info{padding:7px 6px 7px 10px;font-size:.72rem;font-weight:800}.editor-rule-chip.flaw .editor-rule-info{color:#e6aaa2}.editor-rule-remove{padding:6px 9px;color:var(--muted);font-size:.95rem;border-left:1px solid var(--line)}
.editor-rule-empty{color:var(--muted);font-size:.72rem;padding:5px 2px}
.add-rule-btn{width:100%;margin-top:8px;padding:9px}
.rule-chip.unknown{display:inline-flex;align-items:center;opacity:.65;border-style:dashed}
.rule-picker-card{width:min(500px,calc(100vw - 20px));max-height:90vh;overflow:hidden;display:flex;flex-direction:column}
.rule-picker-search{width:100%;margin:7px 0 8px}
.rule-picker-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:9px}
.rule-picker-tab{padding:8px 4px;border:1px solid var(--line);border-radius:9px;background:#191610;color:var(--muted);font-size:.7rem;font-weight:850}
.rule-picker-tab.active{background:#2a2115;border-color:#98753f;color:#f1d293}
.rule-picker-list{display:grid;gap:6px;overflow:auto;padding:1px 2px 8px;-webkit-overflow-scrolling:touch}
.rule-pick-row{display:grid;grid-template-columns:1fr 42px;gap:5px}
.rule-pick-main,.rule-pick-info{border:1px solid var(--line);background:#191610;color:var(--ink);border-radius:10px}
.rule-pick-main{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:9px 10px}
.rule-pick-main span b,.rule-pick-main span small{display:block}.rule-pick-main span small{font-size:.61rem;color:#b59a68;margin-top:2px;text-transform:uppercase;letter-spacing:.06em}.rule-pick-main em{font-style:normal;color:#d7b46d;font-size:.7rem}
.rule-pick-main:disabled{opacity:.48}.rule-pick-info{color:#d7b46d;font-size:.9rem}
.rule-pick-row.flaw .rule-pick-main{border-color:#5f3733}.rule-pick-row.flaw .rule-pick-main span small,.rule-pick-row.flaw .rule-pick-info{color:#d78e84}

/* Companion23: precise mechanical rule cards */
.rule-mechanic,.rule-example{margin-top:10px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#181510}
.rule-example{border-color:#66502f;background:#211b12}
.rule-section-label{display:block;font-size:.59rem;font-weight:950;letter-spacing:.12em;color:#d7b46d;margin-bottom:5px}
.rule-mechanic p,.rule-example p{margin:0!important;color:#e4dccd!important;font-size:.8rem!important;line-height:1.5!important}

/* Companion24 exact mechanics pass */
.rule-source-line{display:inline-block;margin-top:9px;padding:4px 7px;border:1px solid #6d5935;border-radius:999px;color:#d7b46d;font-size:.56rem;font-weight:950;letter-spacing:.09em}

/* Companion25 Talents */
.talent-list{display:grid;gap:7px}
.talent-row{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#191610;color:var(--ink)}
.talent-row span b,.talent-row span small{display:block}.talent-row span small{color:var(--muted);font-size:.64rem;margin-top:2px}.talent-row strong{color:#d7b46d}
.add-talent-btn{width:100%;margin-top:9px}
.talent-edit-rank{width:100%;margin-top:10px}
.talent-pick-row{display:grid;grid-template-columns:1fr 64px;gap:6px}
.talent-buy-btn{border:1px solid #6e5b37;background:#2a2115;color:#e5c57e;border-radius:10px;font-weight:900;font-size:.7rem}
.talent-buy-btn:disabled{opacity:.35}
.talent-filter{padding:8px 4px;border:1px solid var(--line);border-radius:9px;background:#191610;color:var(--muted);font-size:.7rem;font-weight:850}
.talent-filter.active{background:#2a2115;border-color:#98753f;color:#f1d293}

/* Companion26: legacy Skills Talent rows are visibly interactive */
.talent-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}
.talent-clickable:active{opacity:.72}

/* Companion27: exact Talent reference */
.talent-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.talent-facts>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:#17140f}
.talent-facts span,.talent-rank-rule>span{display:block;font-size:.58rem;font-weight:950;letter-spacing:.11em;color:#d7b46d;margin-bottom:4px}
.talent-facts b{font-size:.77rem;line-height:1.35}
.talent-rank-rule{margin-top:8px;padding:10px 11px;border:1px solid #4f6345;border-radius:10px;background:#172016}
.talent-rank-rule p{margin:0;font-size:.76rem;line-height:1.45;color:#d7dfcf}

.rule-clarification{margin-top:10px;padding:11px 12px;border:1px solid #70433b;border-radius:11px;background:#211513}
.rule-clarification p{margin:0;color:#e4c9c4;font-size:.78rem;line-height:1.5}

/* Companion29: visible Learn Talent CTA */
.talent-section-head{display:flex;justify-content:flex-end;margin:0 0 9px}
.learn-talent-btn{
  border:1px solid #8b6b38;
  background:#2a2115;
  color:#e6c77f;
  border-radius:10px;
  padding:9px 12px;
  font-size:.7rem;
  font-weight:950;
  letter-spacing:.05em;
}
.learn-talent-btn:active{transform:scale(.985)}

/* Companion33: current-Career Skills and live advance progress */
.skill.career-skill{
  border-color:#80643a;
  background:linear-gradient(145deg,#211b13,#19150f);
}
.career-skill-badge{
  display:inline-flex;
  vertical-align:middle;
  margin-left:6px;
  padding:3px 6px;
  border:1px solid #8d6d3a;
  border-radius:999px;
  background:#2b2216;
  color:#e4bf72;
  font-size:.55rem;
  font-weight:950;
  letter-spacing:.055em;
  white-space:nowrap;
}
.career-skill-badge.done{
  border-color:#59734b;
  background:#182117;
  color:#a9c98f;
}

.skill-ref-career{display:inline-block;margin-top:8px;padding:5px 8px;border:1px solid #80643a;border-radius:999px;background:#2b2216;color:#e4bf72;font-size:.6rem;font-weight:950}
.skill-ref-hold{margin-top:10px;text-align:center;color:var(--muted);font-size:.64rem}
.editable-skill{-webkit-user-select:none;user-select:none;touch-action:pan-y}

.mini-buy-adv{margin-left:auto;border:1px solid #80643a;background:#2b2216;color:#e4bf72;border-radius:8px;padding:6px 7px;font-size:.58rem;font-weight:900}
.skill-test-btn,.combat-roll-btn{margin-top:10px;width:100%}
.combat-roll-btn{border:1px solid #80643a;background:#2b2216;color:#e4bf72;border-radius:9px;padding:8px;font-weight:900}
.condition-actions{margin-bottom:8px}
.condition-row,.critical-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}
.condition-row:last-child,.critical-row:last-child{border-bottom:0}
.condition-row>button,.critical-row>button:first-child{flex:1;text-align:left;background:none;border:0;color:inherit}
.condition-row small,.critical-row small{display:block;color:var(--muted);margin-top:2px}
.condition-row>div{display:flex;align-items:center;gap:8px}.condition-row>div button,.critical-row>button:last-child{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:#211b13;color:inherit}
.skill-filter-row{display:flex;gap:6px}.skill-filter-row button{flex:1;padding:8px;border:1px solid var(--line);border-radius:9px;background:#17140f;color:var(--muted);font-weight:900;font-size:.65rem}.skill-filter-row button.active{border-color:#80643a;color:#e4bf72;background:#2b2216}
[hidden]{display:none!important}

.picker-card-list{display:grid;gap:8px;overflow:auto;max-height:62vh;padding-bottom:8px;-webkit-overflow-scrolling:touch}
.picker-card{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#181510;color:var(--ink);border-radius:12px;padding:11px}
.picker-card>div{display:flex;justify-content:space-between;gap:10px;align-items:center}
.picker-card small{color:#d2ae67;font-size:.62rem;text-transform:uppercase;letter-spacing:.05em}
.picker-card p{margin:7px 0 0;color:var(--muted);font-size:.72rem;line-height:1.45}
.picker-card:active{transform:scale(.99);border-color:#80643a}
.critical-location-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
.critical-location{border:1px solid var(--line);border-radius:9px;background:#181510;color:var(--muted);padding:8px 3px;font-size:.68rem;font-weight:900}
.critical-location.active{background:#2b2216;border-color:#80643a;color:#e4bf72}
.critical-row>button:first-child span{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;line-height:1.35}

.active-modifiers{margin:0 0 12px;border:1px solid #7a6038;border-radius:14px;background:linear-gradient(145deg,#251d13,#18140f);overflow:hidden}
.active-modifiers-head{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;border-bottom:1px solid var(--line)}
.active-modifiers-head span{font-size:.65rem;font-weight:950;letter-spacing:.09em;color:#e4bf72}
.active-modifiers-head small{color:var(--muted);font-size:.58rem}
.active-modifier-row{display:grid;grid-template-columns:auto 1fr;gap:9px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:9px 11px}
.active-modifier-row:last-child{border-bottom:0}
.active-modifier-row b{font-size:.72rem;color:#f0d69c}
.active-modifier-row span{font-size:.68rem;line-height:1.35;color:#d6cdbd}
.critical-auto-hint{margin-top:8px;padding:6px 8px;border-radius:8px;background:#1d2619;border:1px solid #506443;color:#a9c98f;font-size:.62rem;font-weight:900}

/* Companion41: round tracker, reminders, injuries */
.round-tracker{margin:0 0 12px;border:1px solid #755a31;border-radius:15px;background:linear-gradient(145deg,#241c12,#17130f);padding:11px}
.round-number{display:flex;align-items:end;gap:8px}.round-number span{font-size:.62rem;font-weight:950;letter-spacing:.12em;color:#d7b46d}.round-number strong{font-size:1.8rem;line-height:1;color:#fff0cd}
.round-controls{display:grid;grid-template-columns:42px 1fr;gap:7px;margin-top:9px}.round-controls button{border:1px solid var(--line);border-radius:9px;background:#1b1711;color:var(--ink);padding:9px;font-weight:900}.round-controls #nextRoundBtn{border-color:#80643a;color:#e4bf72;background:#2b2216}
.round-reminders{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.round-reminders-title{font-size:.58rem;font-weight:950;letter-spacing:.1em;color:#d7b46d;margin-bottom:5px}.round-reminder{padding:6px 0;border-bottom:1px dashed #3a3023;font-size:.69rem;line-height:1.4;color:#ddd2bf}.round-reminder:last-child{border-bottom:0}
.round-clear{margin-top:8px;color:var(--muted);font-size:.65rem}
.injury-row button:first-child span{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;line-height:1.35}

/* Companion42 interaction stability */
button,[role="button"],.editable-skill,.editable-row,.identity-tile,.item-card{
  -webkit-tap-highlight-color:transparent;
}
button{touch-action:manipulation}

/* Companion44 popup-focused Character layout */
.popup-launchers{display:grid;gap:8px}
.popup-launcher{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;width:100%;text-align:left;padding:12px;border:1px solid var(--line);border-radius:13px;background:#1b1711;color:var(--ink)}
.popup-launcher:active{transform:scale(.992)}
.popup-launcher .popup-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#271f15;color:#ddb96e;font-size:1rem}
.popup-launcher div b,.popup-launcher div small{display:block}.popup-launcher div b{font-size:.86rem}.popup-launcher div small{margin-top:3px;color:var(--muted);font-size:.66rem;line-height:1.35}
.popup-launcher em{font-style:normal;color:#b79a68;font-size:1.2rem}
.large-popup-card{width:min(720px,calc(100vw - 18px));max-height:88vh;overflow:auto;-webkit-overflow-scrolling:touch}
.gear-popup-card{width:min(760px,calc(100vw - 12px))}
.popup-scroll{overflow:auto}
.popup-attribute-row{cursor:pointer}
.popup-attribute-row:active{opacity:.72}
.known-spell-list{display:grid;gap:7px}
.known-spell-row{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:start;padding:11px;border:1px solid var(--line);border-radius:11px;background:#181510}
.known-spell-row>span{color:#d7b46d}.known-spell-row b,.known-spell-row small{display:block}.known-spell-row small{margin-top:4px;color:var(--muted);font-size:.68rem;line-height:1.4}

/* Companion45 — wealth on Character + Favorite Skills */
.favorite-skill-toggle{width:100%;margin-top:8px;padding:10px 12px;border:1px solid #705a35;border-radius:10px;background:#1a1711;color:#cdb98f;font-weight:900;letter-spacing:.03em}
.favorite-skill-toggle.active{background:#2b2215;border-color:#a07c42;color:#edc975}
.favorite-launcher .popup-icon{color:#f0c96f}
.favorite-skill-list{display:grid;gap:8px}
.favorite-skill-row{display:grid;grid-template-columns:1fr 58px;gap:7px;align-items:stretch}
.favorite-skill-main{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;padding:11px;border:1px solid var(--line);border-radius:11px;background:#181510;color:var(--ink)}
.favorite-skill-main div b,.favorite-skill-main div small{display:block}
.favorite-skill-main div small{margin-top:3px;color:var(--muted);font-size:.64rem}
.favorite-skill-main strong{font-size:1.35rem;color:#e1b964}
.favorite-skill-test{border:1px solid #80643a;border-radius:11px;background:#2b2216;color:#e4bf72;font-size:.62rem;font-weight:950}
.skill-ref-actions{display:grid;gap:0}

/* Companion46 — coin exchange */
.exchange-rates{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.exchange-rates span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:#181510;color:#d8c8a8;font-size:.62rem;font-weight:850}
.exchange-btn{width:100%;border:1px solid #80643a;border-radius:10px;background:#2b2216;color:#e4bf72;padding:10px;font-weight:950;letter-spacing:.04em}
.exchange-grid{display:grid;grid-template-columns:1fr 24px 1fr;gap:7px;align-items:end;margin:10px 0}
.exchange-grid label,.exchange-amount{display:grid;gap:5px;color:var(--muted);font-size:.65rem;font-weight:800}
.exchange-grid select,.exchange-amount input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;background:#181510;color:var(--ink);padding:10px}
.exchange-arrow{text-align:center;padding-bottom:10px;color:#d7b46d;font-weight:950}
.exchange-preview{margin:10px 0;padding:10px;border:1px solid #52683f;border-radius:10px;background:#1c2518;color:#b9d69c}
.exchange-preview b,.exchange-preview small{display:block}.exchange-preview small{margin-top:4px;font-size:.65rem;color:#aeb99f}
.exchange-preview.invalid{border-color:#75504a;background:#261a18;color:#dfaaa1}

/* Companion47 — Character architecture / creation foundation */
.topbar-actions{display:flex;gap:7px;align-items:center}.slot-btn{font-size:1rem}
.character-hub-card,.creator-card{width:min(720px,calc(100vw - 14px));max-height:90vh;overflow:auto}
.hub-section47{padding:11px 0;border-bottom:1px solid var(--line)}.hub-section47:last-child{border-bottom:0}
.section-head47{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:8px}.section-head47>b{font-size:.7rem;letter-spacing:.08em;color:#d7b46d}.section-head47 small{font-size:.6rem;color:var(--muted)}
.character-slot47{width:100%;display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;text-align:left;padding:11px;border:1px solid #80643a;border-radius:13px;background:#221b12;color:var(--ink)}
.slot-avatar47{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#342919;color:#e3bd6b}
.character-slot47 div b,.character-slot47 div small,.character-slot47 div em{display:block}.character-slot47 div small{margin-top:3px;color:#c8b99d;font-size:.66rem}.character-slot47 div em{margin-top:4px;color:var(--muted);font-size:.58rem;font-style:normal}.character-slot47>strong{font-size:.56rem;color:#d7b46d}
.new-character47{width:100%;margin-top:8px;padding:11px;border:1px dashed #80643a;border-radius:11px;background:#17140f;color:#dfbd76;font-weight:950}
.source-toggles47{display:flex;flex-wrap:wrap;gap:7px}.source-toggle{position:relative}.source-toggle input{position:absolute;opacity:0}.source-toggle span{display:block;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:#181510;color:var(--muted);font-size:.67rem;font-weight:900}.source-toggle.on span{border-color:#80643a;background:#2a2116;color:#e6c177}
.hub-note47{margin:8px 0 0;color:var(--muted);font-size:.64rem;line-height:1.45}
.rule-setting47{display:grid;grid-template-columns:1fr minmax(135px,46%);gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed #30281e}.rule-setting47 div b,.rule-setting47 div small{display:block}.rule-setting47 div b{font-size:.73rem}.rule-setting47 div small{margin-top:2px;color:var(--muted);font-size:.58rem}.rule-setting47 select{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:#181510;color:var(--ink);font-size:.65rem}
.creator-progress47{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:13px}.creator-progress47 span{height:4px;border-radius:999px;background:#30291f;font-size:0}.creator-progress47 span.done{background:#b18a49}
.creator-copy47{margin-bottom:12px}.creator-copy47 b{font-size:.9rem}.creator-copy47 p{margin:5px 0 0;color:var(--muted);font-size:.7rem;line-height:1.45}
.creator-source-list47{display:grid;gap:8px}.creator-source47{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:11px;background:#181510}.creator-source47 div b,.creator-source47 div small{display:block}.creator-source47 div small{margin-top:3px;color:var(--muted);font-size:.62rem}.creator-source47>span{font-size:.6rem;color:#d7b46d}.creator-source47.locked{opacity:.9}
.creator-nav47{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.creator-nav47 button{padding:11px;border-radius:10px;font-weight:950}.creator-secondary47{border:1px solid var(--line);background:#181510;color:var(--ink)}.creator-primary47{border:1px solid #8a6938;background:#302315;color:#ecc875}
.creator-choice47{display:grid;grid-template-columns:1fr 1fr;gap:8px}.creator-choice47 button,.species-grid47 button,.origin-grid47 button{padding:12px 9px;border:1px solid var(--line);border-radius:11px;background:#181510;color:var(--ink);text-align:left}.creator-choice47 button b,.creator-choice47 button small,.species-grid47 button b,.species-grid47 button small,.origin-grid47 button b,.origin-grid47 button small{display:block}.creator-choice47 button small,.species-grid47 button small,.origin-grid47 button small{margin-top:4px;color:var(--muted);font-size:.61rem;line-height:1.35}.creator-choice47 button.selected,.species-grid47 button.selected,.origin-grid47 button.selected{border-color:#a17b3f;background:#2a2115}
.creator-block47{margin-top:12px}.creator-label47{margin-bottom:6px;font-size:.59rem;font-weight:950;letter-spacing:.1em;color:#d7b46d}.species-grid47{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.origin-grid47{display:grid;grid-template-columns:1fr 1fr;gap:7px}.origin-info47{padding:11px;border:1px solid var(--line);border-radius:11px;background:#181510}.origin-info47 b,.origin-info47 span{display:block}.origin-info47 span{margin-top:3px;color:var(--muted);font-size:.64rem}
.random-roll47{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid #6e5834;border-radius:11px;background:#211b12}.random-roll47 div b,.random-roll47 div small{display:block}.random-roll47 div small{margin-top:3px;color:#cbbd9f;font-size:.62rem}.random-roll47 button{padding:9px 12px;border:1px solid #8a6938;border-radius:9px;background:#332717;color:#efcb79;font-weight:950}
.creator-summary47{display:grid;gap:7px}.creator-summary47>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:#181510}.creator-summary47 small,.creator-summary47 b{display:block}.creator-summary47 small{font-size:.55rem;letter-spacing:.08em;color:var(--muted)}.creator-summary47 b{margin-top:3px;font-size:.76rem}
.foundation-notice47{margin-top:12px;padding:11px;border:1px solid #80643a;border-radius:11px;background:#241d13}.foundation-notice47 b{color:#e5be71}.foundation-notice47 p{margin:5px 0 0;color:#cbbd9f;font-size:.67rem;line-height:1.45}
@media(max-width:430px){.species-grid47,.origin-grid47,.creator-choice47{grid-template-columns:1fr}.rule-setting47{grid-template-columns:1fr}}

/* Companion48 — official per-step creation + cultural packages */
.creation-xp48{display:flex;justify-content:space-between;align-items:center;margin:-2px 0 12px;padding:8px 10px;border:1px solid #6e5834;border-radius:10px;background:#1d1811}
.creation-xp48 small{font-size:.57rem;letter-spacing:.09em;color:var(--muted);font-weight:900}.creation-xp48 b{color:#e6bd6d;font-size:.86rem}
.unusual-careers48{width:100%;display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;text-align:left;margin-top:10px;padding:11px;border:1px solid #775c35;border-radius:11px;background:#211a12;color:var(--ink)}
.unusual-careers48>span{font-size:1rem}.unusual-careers48 div b,.unusual-careers48 div small{display:block}.unusual-careers48 div b{font-size:.7rem;color:#e0b866}.unusual-careers48 div small{margin-top:3px;color:var(--muted);font-size:.59rem}.unusual-careers48>strong{font-size:1.1rem;color:#c9a25e}
.unusual-panel48{margin-top:7px;padding:11px;border:1px dashed #755b36;border-radius:10px;background:#18140f}.unusual-panel48>b{font-size:.65rem;color:#e0b866;letter-spacing:.08em}.unusual-panel48 p{margin:5px 0 0;color:var(--muted);font-size:.64rem;line-height:1.45}
\n/* Companion49 — verified Career database and selection */\n.career-section-title49{display:flex;justify-content:space-between;align-items:end;margin:14px 0 7px}.career-section-title49 b,.career-section-title49 small{display:block}.career-section-title49 b{font-size:.68rem;letter-spacing:.08em;color:#dfb96b}.career-section-title49 small{margin-top:2px;color:var(--muted);font-size:.57rem}.career-list49{display:grid;gap:6px;max-height:46vh;overflow:auto;padding-right:2px}.career-choice49{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;text-align:left;padding:10px;border:1px solid var(--line);border-radius:10px;background:#181510;color:var(--ink)}.career-choice49.selected{border-color:#a47b3d;background:#292015}.career-choice49 div b,.career-choice49 div small{display:block}.career-choice49 div b{font-size:.76rem}.career-choice49 div small{margin-top:3px;color:var(--muted);font-size:.58rem;line-height:1.35}.career-choice49>strong{font-size:1rem;color:#caa45f}.career-source49{display:inline-block;margin-bottom:4px;padding:2px 5px;border:1px solid #5d482d;border-radius:999px;color:#d3aa62;font-size:.48rem;font-weight:950;letter-spacing:.07em}.selected-career49{padding:10px;border:1px solid #946f38;border-radius:11px;background:#251d12;margin-bottom:10px}.selected-career49 small,.selected-career49 b,.selected-career49 span{display:block}.selected-career49 small{font-size:.52rem;letter-spacing:.08em;color:var(--muted)}.selected-career49 b{margin-top:3px;color:#ecc576;font-size:.9rem}.selected-career49 span{margin-top:3px;font-size:.58rem;color:#bfae91}.career-random-box49{padding:10px;border:1px solid var(--line);border-radius:12px;background:#15120e}.career-roll-main49,.uia-roll49{width:100%;padding:11px;border:1px solid #8a6938;border-radius:9px;background:#302315;color:#edc875;font-weight:950}.career-table-mode49{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin:8px 0}.career-table-mode49 span{font-size:.62rem;color:var(--muted)}.career-table-mode49 select{padding:7px;border:1px solid var(--line);border-radius:8px;background:#1b1711;color:var(--ink);font-size:.62rem}.career-rolls49{display:grid;gap:7px}.career-roll-card49{padding:9px;border:1px solid #51412b;border-radius:10px;background:#1c1710}.career-roll-head49{display:flex;justify-content:space-between;font-size:.59rem;color:#d8b468;margin-bottom:6px}.career-roll-options49{display:grid;gap:5px}.career-roll-options49 button{padding:8px;border:1px solid var(--line);border-radius:8px;background:#201a12;color:var(--ink);text-align:left}.career-roll-options49 b,.career-roll-options49 small{display:block}.career-roll-options49 small{margin-top:2px;color:var(--muted);font-size:.54rem}.uia-roll49{margin-top:7px;padding:8px;font-size:.59rem}.full49{width:100%;margin-top:7px}.career-preview-species49{padding:8px 0;border-bottom:1px solid var(--line)}.career-preview-species49 span,.career-preview-species49 b{display:block}.career-preview-species49 span{font-size:.54rem;color:var(--muted)}.career-preview-species49 b{margin-top:3px;font-size:.7rem}.career-levels49{display:grid;gap:6px;margin:10px 0}.career-levels49 details{border:1px solid var(--line);border-radius:10px;background:#181510;overflow:hidden}.career-levels49 summary{display:grid;grid-template-columns:26px 1fr;gap:7px;align-items:center;padding:9px;cursor:pointer}.career-levels49 summary>span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#332719;color:#e1b96c;font-weight:950}.career-levels49 summary div b,.career-levels49 summary div small{display:block}.career-levels49 summary div small{margin-top:2px;color:var(--muted);font-size:.56rem}.career-level-body49{padding:0 10px 10px}.career-level-body49 p{margin:6px 0;font-size:.62rem;line-height:1.45;color:#cfc2aa}.source-warning49{margin:7px 0;padding:8px;border:1px solid #7b5d31;border-radius:9px;background:#261d11}.source-warning49 b{font-size:.58rem;color:#e4b75f}.source-warning49 p{margin:4px 0 0;font-size:.6rem;color:#c7b798;line-height:1.4}.unusual-wrap49>small{display:block;margin:3px 3px 4px;color:#bd9b61;font-size:.52rem}.career-preview-card49,.unusual-career-card49{max-height:90vh;overflow:auto}\n
/* Companion50 · playable creation flow */
.creator-progress47{grid-template-columns:repeat(9,1fr)}
.roll-chips50{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.roll-chip50{padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:#181510;font-size:.65rem;color:var(--muted)}.roll-chip50 b{color:var(--ink)}
.char-methods50{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.char-methods50 button{padding:10px;border:1px solid var(--line);border-radius:10px;background:#181510;color:var(--ink);text-align:left}.char-methods50 button.selected{border-color:#a17b3f;background:#2a2115}.char-methods50 b,.char-methods50 small{display:block}.char-methods50 small{margin-top:3px;color:var(--muted);font-size:.58rem}
.char-grid50{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.char-grid50 label,.details50 label{display:grid;gap:5px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#181510}.char-grid50 span,.details50 span{font-size:.6rem;color:var(--muted)}.char-grid50 input,.char-grid50 select,.details50 input,.details50 textarea,.skill-alloc50 select,.talent-picks50 select,.career-skill-alloc50 input{width:100%;box-sizing:border-box;padding:8px;border:1px solid var(--line);border-radius:7px;background:#11100d;color:var(--ink)}
.final-char-grid50{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px}.final-char-grid50>div{padding:8px 4px;text-align:center;border:1px solid var(--line);border-radius:9px;background:#181510}.final-char-grid50 small,.final-char-grid50 b,.final-char-grid50 em{display:block}.final-char-grid50 small{font-size:.55rem;color:var(--muted)}.final-char-grid50 b{font-size:1rem}.final-char-grid50 em{font-size:.52rem;color:#d3b06a;font-style:normal}
.skill-alloc50,.career-skill-alloc50{display:grid;gap:6px}.skill-alloc50 label,.career-skill-alloc50 label,.talent-picks50 label,.fixed-talent50{display:grid;grid-template-columns:1fr 86px;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:9px;background:#181510}.skill-alloc50 span,.career-skill-alloc50 span,.talent-picks50 span,.fixed-talent50 span{font-size:.66rem}.fixed-talent50 b{font-size:.55rem;color:#d7b46d;text-align:right}
.random-talent-box50,.wealth-roll50,.wealth-result50,.validation50{margin-top:10px;padding:10px;border:1px solid #765c37;border-radius:10px;background:#211a12}.random-talent-box50>div{display:grid;gap:4px;margin:7px 0}.random-talent-box50 span{font-size:.63rem;color:#d7c7a8}.random-talent-box50 button,.wealth-roll50 button{padding:8px 10px;border:1px solid #8a6938;border-radius:8px;background:#322617;color:#efcb79;font-weight:900}
.career-alloc-total50{margin:8px 0;padding:8px;border-radius:8px;background:#17140f;color:var(--muted);font-size:.65rem}.career-alloc-total50 b{color:#e4bc70}.career-talent-radios50{display:grid;grid-template-columns:1fr 1fr;gap:6px}.career-talent-radios50 label{display:flex;gap:7px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:9px;background:#181510;font-size:.64rem}
.trapping-list50{display:grid;gap:5px}.trapping-list50>div{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#181510;font-size:.64rem}.wealth-roll50{display:flex;justify-content:space-between;gap:10px;align-items:center}.wealth-roll50 b,.wealth-roll50 small,.wealth-result50 b,.wealth-result50 small{display:block}.wealth-roll50 small,.wealth-result50 small{margin-top:3px;color:var(--muted);font-size:.58rem}
.details50{display:grid;gap:7px}.details50 textarea{min-height:76px;resize:vertical}.top50{margin-top:12px}.full49{width:100%}.slot-list50{display:grid;gap:7px}
@media(max-width:430px){.char-methods50{grid-template-columns:1fr}.final-char-grid50{grid-template-columns:repeat(2,1fr)}.career-talent-radios50{grid-template-columns:1fr}}

.qa-valid54{border-color:#6f8b55!important}.qa-valid54 b{color:#b7d58d!important}

.grouped-skill-choice60{grid-column:1/-1;display:grid;gap:5px;margin-top:6px;padding-top:7px;border-top:1px solid var(--line)}
.grouped-skill-choice60 small{font-size:.52rem;color:#d1ad69;font-weight:800}
.grouped-skill-choice60 select,.grouped-skill-choice60 input{width:100%;box-sizing:border-box;padding:7px;border:1px solid var(--line);border-radius:7px;background:#11100d;color:var(--ink)}

.talent-spec61{display:grid;gap:5px;margin-top:6px;padding-top:7px;border-top:1px solid var(--line)}
.talent-spec61 small{font-size:.52rem;color:#d1ad69;font-weight:800}
.talent-spec61 select,.talent-spec61 input{width:100%;box-sizing:border-box;padding:7px;border:1px solid var(--line);border-radius:7px;background:#11100d;color:var(--ink)}
.random-talent-row61{display:grid;gap:5px;padding:7px 0;border-bottom:1px solid var(--line)}
.career-talent-spec-wrap61{grid-column:1/-1;width:100%}

.character-slot-wrap66{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:stretch}
.character-slot-wrap66 .character-slot47{min-width:0}
.delete-character66{border:1px solid #6e3d35;border-radius:12px;background:#1b1210;color:#d99a8d;font-size:.58rem;font-weight:900;padding:0 10px;letter-spacing:.06em}
.delete-character66:active{transform:scale(.97)}
@media(max-width:430px){.character-slot-wrap66{grid-template-columns:1fr}.delete-character66{padding:9px}}

/* Companion68 · unobtrusive global copyright */
.companion-copyright68{
  position:fixed;left:0;right:0;bottom:2px;z-index:6;
  text-align:center;pointer-events:none;
  font-size:9px;line-height:1;
  letter-spacing:.04em;
  opacity:.28;
  color:var(--ink);
  user-select:none;
}
.character-change-row68{}
.career-change68{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.career-change-section68{display:grid;gap:7px;margin-top:10px}
.career-change-section68 h4{margin:0 0 2px;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;opacity:.65}
.career-change-row68{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.015)}
.career-change-row68 div{display:grid;gap:2px}
.career-change-row68 small{opacity:.66}
.career-change-row68 button{border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);font-size:.62rem;font-weight:800;padding:7px 9px}
.career-change-gm68{margin-top:10px;padding:10px;border:1px dashed var(--line);border-radius:10px;opacity:.72}
.career-change-gm68 b{font-size:.62rem;letter-spacing:.08em}
.career-change-gm68 p{margin:4px 0 0;font-size:.66rem;line-height:1.35}

.rule-not-wired69{display:block;margin-top:4px;color:#c99b75;font-size:.58rem;line-height:1.3}

.noncareer-actions70{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.noncareer-actions70 button,.career-change-gm68 button{border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--ink);font-size:.62rem;font-weight:800;padding:9px}
.career-change-gm68 button{width:100%;margin-top:7px}

.career-level-unlocks71{display:grid;gap:9px;margin:0 0 16px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)}
.career-unlock71{display:grid;gap:5px}
.career-unlock71>b{font-size:.65rem;letter-spacing:.05em;text-transform:uppercase;opacity:.72}
.career-unlock71>div{display:flex;flex-wrap:wrap;gap:5px}
.career-unlock71 span{font-size:.64rem;border:1px solid var(--line);border-radius:999px;padding:4px 7px}
.career-trapping-note71{margin:2px 0 0;font-size:.62rem;line-height:1.35;opacity:.62}

/* Companion74 · audited Advantage subsystem */
.adv-card74{position:relative}
.adv-pools74{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:1}
.adv-pool74{border:0;border-radius:18px;padding:12px;background:var(--surface-2,#171717);color:inherit;text-align:center}
.adv-pool74 small,.adv-pool74 span{display:block;opacity:.62}.adv-pool74 strong{display:block;font-size:30px;line-height:1.05;margin:4px 0}
.adv-actions74{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.adv-actions74 button{min-height:42px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.05);color:inherit;font-weight:700;font-size:11px}
.adv-inline74{font-size:10px;opacity:.68;font-weight:500}
@media(max-width:430px){.adv-actions74{grid-template-columns:1fr}.adv-pools74{gap:7px}}

/* Companion80 · player-safe combat input */
.combat-pad80{border:0;background:transparent;padding:0;width:min(92vw,420px);color:inherit}
.combat-pad80::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(3px)}
.combat-pad-card80{background:#1c1c1e;border:1px solid rgba(218,174,91,.28);border-radius:24px;padding:22px;box-shadow:0 22px 70px rgba(0,0,0,.55)}
.combat-pad-title80{text-align:center;font-size:13px;font-weight:800;letter-spacing:.14em;color:#d8b46c;margin:2px 0 14px}
.combat-pad-value80{text-align:center;font-size:42px;font-weight:700;min-height:54px;margin-bottom:14px}
.combat-pad-grid80{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.combat-pad-grid80 button,.combat-choice-grid80 button,.combat-pad-actions80 button{border:1px solid rgba(255,255,255,.10);background:#2c2c2e;color:#f5f1e8;border-radius:15px;min-height:58px;font-size:22px;font-weight:650}
.combat-pad-actions80{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.combat-pad-actions80 button{min-height:48px;font-size:12px;letter-spacing:.08em}
.combat-choice-grid80{display:grid;gap:10px}.combat-choice-grid80 button{font-size:16px;color:#f1cc78}

.combat-d100-81{width:100%;margin-top:10px;min-height:48px;border:1px solid rgba(218,174,91,.35);border-radius:14px;background:rgba(218,174,91,.08);color:#f1cc78;font-weight:800;letter-spacing:.06em}

.combat-skip82{width:100%;margin-top:8px;min-height:44px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:transparent;color:#d8d3c8;font-weight:750;letter-spacing:.08em}

/* Companion83 · persistent last attack */
.last-attack83{margin:0 0 16px;padding:15px 16px;border:1px solid rgba(218,174,91,.24);border-radius:18px;background:rgba(218,174,91,.055)}
.last-attack-top83{display:flex;justify-content:space-between;gap:12px;align-items:center}.last-attack-top83 span{font-size:10px;letter-spacing:.15em;font-weight:850;color:#d8b46c}.last-attack-top83 b{font-size:13px}
.last-attack-roll83{margin-top:9px;font-size:13px;opacity:.72}.last-attack-result83{margin-top:8px;font-size:18px;font-weight:900;letter-spacing:.04em}.last-attack-result83.hit83{color:#f1cc78}
.last-attack-damage83{margin-top:4px;font-size:15px;font-weight:800}.last-attack-damage83 small{font-size:11px;opacity:.65}

.last-attack-sl84{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:9px;font-size:11px;opacity:.78}
.last-attack-sl84 span{white-space:nowrap}.last-attack-sl84 b{color:#f1cc78}

/* Companion85 · ChatGPT-style Gear drawer */
.gear-drawer85{position:fixed;inset:0;z-index:1200;pointer-events:none;--gear-progress85:0}
.gear-drawer85.active85{pointer-events:auto}
.gear-drawer-scrim85{position:absolute;inset:0;background:rgba(0,0,0,calc(.62 * var(--gear-progress85)));touch-action:none}
.gear-drawer-panel85{position:absolute;left:0;top:0;bottom:0;width:min(88vw,430px);overflow-y:auto;-webkit-overflow-scrolling:touch;background:#17140f;border-right:1px solid rgba(218,174,91,.20);padding:calc(18px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom));transform:translateX(-100%);box-shadow:18px 0 55px rgba(0,0,0,.42);will-change:transform;touch-action:pan-y}
.gear-drawer-head85{position:sticky;top:calc(-18px - env(safe-area-inset-top));z-index:2;background:#17140f;padding-top:18px}
.gear-drawer-panel85 .screen{padding-left:0;padding-right:0;padding-bottom:30px}

/* Companion85 · iOS-style Last Attack swipe delete */
.last-attack-swipe85{position:relative;overflow:hidden;border-radius:18px;margin:0 0 16px;background:#d93636}
.last-attack-swipe85 .last-attack83{position:relative;z-index:2;margin:0;background:#17140f;will-change:transform;touch-action:pan-y}
.last-attack-delete85{position:absolute;z-index:1;right:0;top:0;bottom:0;width:92px;border:0;background:#d93636;color:white;font-size:24px}

/* Companion86 · edge drawer affordance */
.gear-edge-hint86{
 position:fixed;left:10px;top:calc(10px + env(safe-area-inset-top));z-index:1100;
 width:46px;height:46px;border-radius:15px;border:1px solid rgba(218,174,91,.22);
 background:rgba(24,20,15,.94);color:#d9b36b;font-size:21px;line-height:1;
 display:grid;place-items:center;box-shadow:0 5px 18px rgba(0,0,0,.22);
 -webkit-tap-highlight-color:transparent;touch-action:manipulation
}
.gear-drawer85.active85~* .gear-edge-hint86{opacity:0}

.last-attack-effects90{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.last-attack-effects90 span{font-size:10px;padding:5px 7px;border:1px solid rgba(218,174,91,.22);border-radius:999px;opacity:.82}

.skill-buy94{margin-top:8px}
.skill-edit94{margin-top:8px}

.incoming-attack96{margin-bottom:9px}

.corruption-sin-summary99{width:100%;border:0;text-align:inherit;color:inherit;background:transparent;font:inherit}
.corruption-sin-values99{display:flex;justify-content:center;gap:24px;margin:8px 0}
.corruption-sin-values99 span{display:flex;flex-direction:column;align-items:center}
.corruption-sin-values99 b{font-family:Georgia,serif;font-size:2rem}
.corruption-sin-values99 small{opacity:.65;text-transform:uppercase;letter-spacing:.08em;font-size:.62rem}
.corruption-sin-grid99{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.corruption-sin-grid99 .stat-card{cursor:pointer}
@media(max-width:430px){.corruption-sin-grid99{grid-template-columns:1fr 1fr}}

/* Companion101 · compact Corruption / Sin summary */
.corruption-sin-summary99{
  padding:16px 12px 14px!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column;
  justify-content:center;
  align-items:stretch;
}
.corruption-sin-title101{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  font-size:.72rem!important;
}
.corruption-sin-title101 i{
  display:block;
  width:1px;
  height:13px;
  background:currentColor;
  opacity:.28;
}
.corruption-sin-values99{
  display:grid!important;
  grid-template-columns:1fr 1px 1fr;
  align-items:center;
  gap:10px!important;
  margin:9px 0 7px!important;
}
.corruption-sin-values99 span{
  min-width:0;
  display:flex!important;
  align-items:center!important;
  justify-content:center;
}
.corruption-sin-values99 b{
  font-size:2rem!important;
  line-height:1!important;
}
.corruption-sin-divider101{
  display:block;
  width:1px;
  height:34px;
  background:currentColor;
  opacity:.18;
}
.corruption-sin-manage101{
  margin:0!important;
  text-align:center;
  font-size:.72rem!important;
  line-height:1.1;
}

/* Companion102 · cleaner compact Corruption/Sin tile */
.corruption-sin-summary102{
  padding:18px 10px 15px!important;
  justify-content:center!important;
}
.corruption-sin-values102{
  grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr)!important;
  gap:8px!important;
  margin:0!important;
}
.corruption-sin-values102 span{
  gap:7px;
  flex-direction:column!important;
}
.corruption-sin-values102 small{
  display:block;
  max-width:100%;
  overflow:hidden;
  font-size:.56rem!important;
  line-height:1;
  letter-spacing:.12em!important;
  white-space:nowrap;
  opacity:.66;
}
.corruption-sin-values102 b{
  font-size:2.15rem!important;
  line-height:.9!important;
}
.corruption-sin-divider102{
  height:48px!important;
  opacity:.2!important;
}
.corruption-sin-manage102{
  margin-top:11px!important;
  font-size:.57rem!important;
  letter-spacing:.11em;
  opacity:.72;
  white-space:nowrap;
}

.scroll-badge103{display:inline-flex;margin-top:6px;padding:4px 7px;border:1px solid rgba(215,173,94,.32);border-radius:999px;color:#d7ad5e;font-size:.68rem}
.scroll-use-mini103{align-self:center;border:1px solid rgba(215,173,94,.4);background:rgba(215,173,94,.08);color:#d7ad5e;border-radius:10px;padding:8px 10px;font-weight:800}
.scroll-use-mini103:disabled{opacity:.35}
.scroll-reference103{display:grid;gap:8px;padding:14px;border:1px solid rgba(215,173,94,.25);border-radius:14px;margin:14px 0}
.scroll-reference103 span{font-size:.85rem;opacity:.78}

.assets-tabs105{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0 14px}.assets-tabs105 button{padding:9px;border-radius:10px;border:1px solid rgba(215,173,94,.2);background:transparent;color:inherit;font-weight:800}.assets-tabs105 button.active{color:#d7ad5e;border-color:rgba(215,173,94,.55)}.asset-row105{width:100%;text-align:left;display:grid;gap:7px;padding:13px;margin:8px 0;border-radius:14px;border:1px solid rgba(215,173,94,.18);background:rgba(255,255,255,.025);color:inherit}.asset-row-head105{display:flex;justify-content:space-between}.asset-row105 span{font-size:.78rem;opacity:.72}.aboard105{color:#d7ad5e!important;opacity:1!important;font-size:.62rem!important}.asset-stats105{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.asset-stats105 i{font-style:normal;text-align:center;padding:6px 3px;border-radius:8px;background:rgba(255,255,255,.035);font-size:.68rem}.asset-warning105{font-size:.7rem;color:#d7ad5e}.asset-edit105 textarea{min-height:72px}

.field-hint106{display:block;margin-top:5px;font-size:.67rem;opacity:.58;font-weight:500}
#boatPreset106{font-weight:750}

.asset-row105{cursor:default}
.asset-row-actions107{display:flex;align-items:center;gap:8px}
.asset-edit-btn107{border:0;background:transparent;color:#d7ad5e;font:inherit;font-size:.68rem;font-weight:800;padding:5px 3px;opacity:.9}
.asset-edit-btn107:active{opacity:.55}
.asset-stats105 .cargo-stat107{appearance:none;border:0;color:inherit;background:rgba(255,255,255,.035);border-radius:8px;padding:5px 3px;display:grid;place-items:center;min-width:0;font:inherit}
.cargo-stat107 small{font-size:.62rem;opacity:.7;line-height:1}
.cargo-stat107 b{font-size:.76rem;margin-top:3px}
.cargo-stat107:active{transform:scale(.97);background:rgba(215,173,94,.10)}
.cargo-quick107{max-width:430px}
.cargo-capacity107{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;margin:8px 0 14px;border:1px solid rgba(215,173,94,.18);border-radius:12px;background:rgba(255,255,255,.025)}
.cargo-capacity107 span{opacity:.7;font-size:.8rem}.cargo-capacity107 b{color:#d7ad5e}
.cargo-status107{min-height:34px;padding:0 3px 12px;font-size:.75rem;color:#d7ad5e}

.talent-source109{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;opacity:.55;margin:-2px 0 10px}

.asset-inline110,.asset-mini110{border:0;background:transparent;color:inherit;font:inherit;padding:0;text-align:left}
.asset-inline110{font-size:.78rem;opacity:.72}.asset-inline110:active,.asset-mini110:active{opacity:.55}
.asset-mini110{font-style:normal;text-align:center;padding:6px 3px;border-radius:8px;background:rgba(255,255,255,.035);font-size:.68rem;width:100%}
.asset-ops-rules110{display:grid;gap:7px;margin:12px 0;padding:12px;border-radius:12px;background:rgba(215,173,94,.055);font-size:.72rem;line-height:1.35}

/* Companion112 patch */
.gear-collapse112 .gear-collapse-head112{width:100%;border:0;background:transparent;color:inherit;padding:0;cursor:pointer}
.gear-collapse112 .gear-collapse-body112{display:none}.gear-collapse112.open .gear-collapse-body112{display:block}
.gear-collapse112 .chev112{display:inline-block;transition:transform .18s ease}.gear-collapse112.open .chev112{transform:rotate(180deg)}
.req-row .mini-buy-adv{writing-mode:horizontal-tb!important;white-space:nowrap!important;width:auto!important;min-width:86px!important;height:34px!important;padding:0 10px!important;display:inline-flex!important;align-items:center;justify-content:center;line-height:1!important}
.learn-skill-inline112{margin-left:auto}
.learn-skill-cost112{display:grid;gap:4px;padding:12px;border-radius:12px;background:rgba(255,255,255,.035);margin:8px 0 14px}.learn-skill-cost112 small{opacity:.65}
.trade-tabs112{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.trade-tabs112 button{padding:10px;border-radius:10px}.trade-tabs112 button.active{font-weight:800}
.trade-controls112{display:grid;grid-template-columns:1fr 120px;gap:8px}.trade-note112{font-size:.72rem;opacity:.65;margin:10px 0}
.trade-row112{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 2px;border-bottom:1px solid rgba(255,255,255,.07)}
.trade-row112>div{display:grid;gap:3px}.trade-row112>div:last-child{justify-items:end}.trade-row112 small{opacity:.6}.trade-row112 button{min-width:58px}
/* Companion113 · Magic workspace */
.magic-card113{max-width:760px}.magic-caster113{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.magic-caster113>div{padding:12px;border-radius:12px;background:rgba(255,255,255,.045);display:grid;gap:3px}.magic-caster113 small,.magic-lores113 small{font-size:.62rem;opacity:.55;letter-spacing:.08em}.magic-caster113 strong{font-size:1.35rem}.magic-lores113{padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;display:grid;gap:4px;margin-bottom:10px}.magic-toolbar113{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.magic-toolbar113 button,.magic-actions113 button{min-height:36px}.magic-rule113{font-size:.72rem;line-height:1.45;opacity:.65;padding:10px 12px;border-left:2px solid currentColor;margin-bottom:10px}.magic-spells113{display:grid;gap:9px}.magic-spell113{border:1px solid rgba(255,255,255,.09);border-radius:14px;overflow:hidden;background:rgba(255,255,255,.025)}.magic-spell113.channel-active113{box-shadow:inset 3px 0 0 currentColor}.magic-spell-main113{width:100%;border:0;background:transparent;color:inherit;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:12px}.magic-spell-main113>div{display:grid;gap:3px}.magic-spell-main113 small{font-size:.62rem;opacity:.55}.magic-spell-main113 b{font-size:1rem}.magic-spell-main113 span{font-size:.72rem;opacity:.72}.magic-actions113{display:grid;grid-template-columns:1fr 1fr;gap:1px;border-top:1px solid rgba(255,255,255,.07)}.magic-actions113 button{border-radius:0;border:0;background:rgba(255,255,255,.035)}@media(max-width:480px){.magic-caster113{grid-template-columns:repeat(3,1fr)}.magic-caster113>div{padding:9px}.magic-caster113 strong{font-size:1.15rem}}
/* Companion113 · Magic workspace */
.magic-card113{max-width:760px}.magic-caster113{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.magic-caster113>div{padding:12px;border-radius:12px;background:rgba(255,255,255,.045);display:grid;gap:3px}.magic-caster113 small,.magic-lores113 small{font-size:.62rem;opacity:.55;letter-spacing:.08em}.magic-caster113 strong{font-size:1.35rem}.magic-lores113{padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;display:grid;gap:4px;margin-bottom:10px}.magic-toolbar113{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.magic-toolbar113 button,.magic-actions113 button{min-height:36px}.magic-rule113{font-size:.72rem;line-height:1.45;opacity:.65;padding:10px 12px;border-left:2px solid currentColor;margin-bottom:10px}.magic-spells113{display:grid;gap:9px}.magic-spell113{border:1px solid rgba(255,255,255,.09);border-radius:14px;overflow:hidden;background:rgba(255,255,255,.025)}.magic-spell113.channel-active113{box-shadow:inset 3px 0 0 currentColor}.magic-spell-main113{width:100%;border:0;background:transparent;color:inherit;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:12px}.magic-spell-main113>div{display:grid;gap:3px}.magic-spell-main113 small{font-size:.62rem;opacity:.55}.magic-spell-main113 b{font-size:1rem}.magic-spell-main113 span{font-size:.72rem;opacity:.72}.magic-actions113{display:grid;grid-template-columns:1fr 1fr;gap:1px;border-top:1px solid rgba(255,255,255,.07)}.magic-actions113 button{border-radius:0;border:0;background:rgba(255,255,255,.035)}@media(max-width:480px){.magic-caster113>div{padding:9px}.magic-caster113 strong{font-size:1.15rem}}
/* Companion117 — Winds of Magic channel pool */
.magic-pool117{margin:12px 0;padding:16px;border:1px solid rgba(202,157,77,.35);border-radius:18px;background:rgba(202,157,77,.07);display:flex;gap:14px;align-items:center;justify-content:space-between}.magic-pool117 small,.magic-pool117 span{display:block;opacity:.72}.magic-pool117 strong{display:block;font-family:Georgia,serif;font-size:30px;margin:3px 0}.magic-pool-actions117{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.magic-pool-actions117 button,.magic-wind117{border:1px solid rgba(202,157,77,.35);background:rgba(255,255,255,.03);color:inherit;border-radius:12px;padding:10px 12px}.magic-wind117.active{border-color:#c99b4b;background:rgba(201,155,75,.16)}

/* Companion118 — eight independent Winds of Magic pools */
.magic-winds-grid118{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 14px}.magic-wind-card118{appearance:none;text-align:left;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.035);padding:10px;color:inherit;display:flex;flex-direction:column;gap:2px}.magic-wind-card118 small{font-size:10px;opacity:.7}.magic-wind-card118 b{font-size:18px}.magic-wind-card118 span{font-size:10px;opacity:.65}.magic-wind-card118.active{outline:2px solid currentColor;background:rgba(255,255,255,.08)}
/* Companion121 illustrated spell library */
.spell-library-dialog121 .large-popup-card{max-width:900px}.spell-lib-tabs121{display:flex;gap:7px;overflow:auto;padding:2px 0 12px}.spell-lib-tabs121 button{white-space:nowrap}.spell-lib-tabs121 button.active{outline:2px solid currentColor}.spell-lib-grid121{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.spell-lib-card121{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.025)}.spell-lib-image121{padding:0;border:0;background:transparent;border-radius:9px;overflow:hidden}.spell-lib-image121 img{display:block;width:100%;aspect-ratio:1008/1424;object-fit:cover}.spell-lib-copy121{display:flex;flex-direction:column;gap:5px;min-width:0}.spell-lib-copy121 small,.spell-lib-copy121 span{opacity:.65;font-size:.72rem}.spell-lib-copy121 b{font-size:1rem}.spell-lib-copy121 button{margin-top:auto}.spell-preview-card121{max-width:680px}.spell-preview-card121 img{display:block;width:100%;height:auto;max-height:78vh;object-fit:contain;border-radius:10px}.spell-preview-dialog121::backdrop,.spell-library-dialog121::backdrop{background:rgba(0,0,0,.78)}@media(max-width:620px){.spell-lib-grid121{grid-template-columns:1fr}.spell-lib-card121{grid-template-columns:100px 1fr}.spell-preview-card121{padding:10px}}

/* v122: spell cards are visible directly inside Magic */
.spell-library-inline122{margin:18px 0 24px;padding:16px;border:1px solid rgba(212,169,88,.38);border-radius:16px;background:linear-gradient(180deg,rgba(212,169,88,.08),rgba(0,0,0,.12))}
.spell-library-head122{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.spell-library-head122 h3,.known-spells-head122 h3{margin:2px 0 4px}.spell-library-head122 p{margin:0;opacity:.78;font-size:.9rem}.known-spells-head122{margin:20px 0 10px}
\n/* Companion125 — Known Spells grouped by Wind / lore */
.magic-spell-groups124{display:grid;gap:10px}.magic-wind-group124{border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.022);overflow:hidden}.magic-wind-group124>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:13px 14px;user-select:none}.magic-wind-group124>summary::-webkit-details-marker{display:none}.magic-wind-group124>summary span{display:grid;gap:2px}.magic-wind-group124>summary b{font-size:.95rem}.magic-wind-group124>summary small{font-size:.65rem;opacity:.55;letter-spacing:.04em}.magic-wind-group124>summary i{font-style:normal;opacity:.55;transition:transform .18s ease}.magic-wind-group124[open]>summary i{transform:rotate(180deg)}.magic-wind-group124>.magic-spells113{padding:0 9px 9px;border-top:1px solid rgba(255,255,255,.06);padding-top:9px}\n
/* Companion126 — tappable spell reference, matching Skills/Talents */
.spell-ref-facts126{grid-template-columns:repeat(2,minmax(0,1fr))}.spell-ref-facts126 b{overflow-wrap:anywhere}.magic-spell-main113{cursor:pointer}
/* Companion133 — Campaign Cloud */
.backend-card133{display:grid;gap:14px}.backend-auth133,.backend-grid133,.shared-assets133{display:grid;gap:10px}.backend-auth133 input,.backend-grid133 input,.backend-grid133 select,.backend-join133 input{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--line,#d8d8d8);border-radius:10px;background:var(--card,#fff);color:inherit}.backend-actions133,.backend-join133{display:flex;gap:8px}.backend-actions133>*{flex:1}.backend-join133 input:first-child{flex:1}.backend-user133,.shared-row133,.invite-code133{display:flex;align-items:center;justify-content:space-between;gap:12px}.backend-user133 div{display:grid;gap:3px}.backend-user133 small,.backend-note133{opacity:.68;font-size:12px}.backend-grid133{grid-template-columns:1fr}@media(min-width:700px){.backend-grid133{grid-template-columns:1fr 1fr}}.backend-grid133>div,.shared-assets133{border-top:1px solid var(--line,#ddd);padding-top:12px}.backend-grid133 h3,.shared-assets133 h3{margin:0 0 8px}.invite-code133{padding:10px 0}.invite-code133 b{letter-spacing:.12em}.backend-msg133{padding:10px 12px;border-radius:10px;background:rgba(127,127,127,.12);font-size:13px}.shared-row133{padding:9px 0;border-bottom:1px solid var(--line,#eee)}

/* Companion134 — GM campaign character roster */
.campaign-characters134{border-top:1px solid var(--line,#ddd);padding-top:12px;display:grid;gap:10px}.campaign-characters-head134{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.campaign-characters-head134 h3{margin:0 0 4px}.campaign-characters-head134 p{margin:0}.campaign-characters-head134>span{min-width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:rgba(202,157,77,.12);border:1px solid rgba(202,157,77,.28);font-weight:800}.campaign-character-list134{display:grid;gap:8px}.campaign-character134{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;padding:12px 13px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.025);color:inherit}.campaign-character134>span:first-child{display:grid;gap:3px}.campaign-character134 small{opacity:.62}.campaign-character-meta134{white-space:nowrap;opacity:.72;font-size:.8rem}.cloud-character-dialog134::backdrop{background:rgba(0,0,0,.78)}.cloud-character-card134{width:min(680px,calc(100vw - 28px));max-height:82vh;overflow:auto}.cloud-character-card134 .dialog-head p{margin:4px 0 0;opacity:.65}.cloud-facts134{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.cloud-facts134>div,.cloud-attrs134>div{padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.025);display:grid;gap:3px}.cloud-facts134 small,.cloud-attrs134 small{opacity:.58;text-transform:uppercase;letter-spacing:.06em;font-size:.62rem}.cloud-attrs134{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.cloud-attrs134 b{font-size:1.05rem}.cloud-description134,.cloud-readonly-note134{margin-top:14px;padding:12px;border-radius:11px;background:rgba(255,255,255,.035);line-height:1.45}.cloud-readonly-note134{font-size:.75rem;opacity:.65}@media(max-width:520px){.cloud-attrs134{grid-template-columns:repeat(5,minmax(0,1fr))}.cloud-attrs134>div{padding:8px 4px;text-align:center}.cloud-facts134{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Companion136 — Shared Asset entry order */
.shared-asset-entry136 .asset-qty136{flex:0 0 64px!important;width:64px!important;min-width:64px!important;text-align:center}
.shared-asset-entry136 .asset-name136{flex:1 1 auto!important;min-width:0}

/* Companion140 — Auth Gate + user-scoped workspace */
body.auth-locked .app-shell{display:none!important}
#authGate140{position:fixed;inset:0;z-index:10000;background:#100e0b;color:#f3eadc;overflow:auto;padding:calc(env(safe-area-inset-top) + 28px) 22px calc(env(safe-area-inset-bottom) + 28px);font-family:inherit}
#authGate140[hidden]{display:none!important}
.auth-shell140{max-width:560px;margin:0 auto;min-height:80vh;display:flex;flex-direction:column;justify-content:center}
.auth-brand140{margin-bottom:28px}.auth-brand140 .eyebrow{color:#d9ad64;letter-spacing:.22em;text-transform:uppercase;font-weight:800}.auth-brand140 h1{font-family:Georgia,serif;font-size:clamp(38px,11vw,62px);line-height:.96;margin:10px 0 12px}.auth-brand140 p{color:#a99f92;font-size:18px;line-height:1.45;margin:0}
.auth-card140{background:#1d1914;border:1px solid #493821;border-radius:26px;padding:22px;box-shadow:0 24px 80px #0008}.auth-card140 h2{font-size:28px;margin:0 0 6px}.auth-card140>p{color:#aaa095;margin:0 0 20px}.auth-card140 label{display:block;color:#b5aa9d;margin:13px 0 6px}.auth-card140 input{box-sizing:border-box;width:100%;background:#120f0c;border:1px solid #493821;border-radius:16px;color:#f4eadc;padding:16px;font-size:17px}.auth-actions140{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.auth-actions140 button,.hub-action140{min-height:52px;border-radius:16px;border:1px solid #5d4727;background:#c06f3c;color:white;font-weight:800;font-size:16px}.auth-actions140 .secondary,.hub-action140.secondary{background:#211c16;color:#eadfce}.auth-msg140{margin-top:14px;padding:12px 14px;border-radius:13px;background:#29231c;color:#e7ddcf;line-height:1.4}
#userHub140{position:fixed;inset:0;z-index:9999;background:#100e0b;color:#f3eadc;overflow:auto;padding:calc(env(safe-area-inset-top) + 22px) 20px calc(env(safe-area-inset-bottom) + 30px)}#userHub140[hidden]{display:none!important}.hub-shell140{max-width:700px;margin:0 auto}.hub-top140{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin:22px 0 28px}.hub-top140 h1{font-family:Georgia,serif;font-size:40px;line-height:1;margin:5px 0}.hub-top140 small{color:#aaa095}.hub-signout140{background:#211c16;color:#d7cbbc;border:1px solid #493821;border-radius:14px;padding:12px 14px}.hub-section140{margin:28px 0}.hub-section140 h2{font-size:26px;margin:0 0 12px}.hub-list140{display:grid;gap:12px}.hub-character140,.hub-campaign140{width:100%;text-align:left;background:#1d1914;color:#f3eadc;border:1px solid #40372d;border-radius:20px;padding:18px;display:flex;justify-content:space-between;gap:14px;align-items:center}.hub-character140 b,.hub-campaign140 b{display:block;font-size:19px}.hub-character140 small,.hub-campaign140 small{display:block;color:#aaa095;margin-top:5px;line-height:1.35}.hub-character140 span:last-child,.hub-campaign140 span:last-child{color:#d9ad64;font-size:24px}.hub-empty140{background:#1d1914;border:1px dashed #493821;border-radius:18px;padding:20px;color:#aaa095}.hub-footer-actions140{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}

.auth-google141{width:100%;margin-top:12px;background:transparent;border:1px solid rgba(224,177,96,.35);color:var(--ink,#f3eadb);font-weight:700}

.auth-remember141{display:flex;align-items:center;gap:10px;margin:14px 0 4px;font-size:.92rem}.auth-remember141 input{width:20px;height:20px;margin:0}

/* Companion142 — Google auth CTA */
.auth-google141{position:relative;display:flex;align-items:center;justify-content:center;gap:11px;min-height:54px;margin-top:14px;border:1px solid #6a5230!important;border-radius:16px!important;background:#f3eadc!important;color:#17130f!important;font-size:16px!important;font-weight:800!important;letter-spacing:.01em;box-shadow:0 8px 24px #0003;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.auth-google141::before{content:'G';display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#fff;color:#4285f4;font:800 17px/1 Arial,sans-serif;box-shadow:0 1px 4px #0002}
.auth-google141:active{transform:scale(.985);box-shadow:0 4px 14px #0003;background:#fff7eb!important}


/* Companion144 — creation UX fixes */
#characterCreatorDialog,#characterHubDialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#0d0c09;overflow:hidden}
#characterCreatorDialog::backdrop,#characterHubDialog::backdrop{background:#0d0c09}
#characterCreatorDialog .creator-card,#characterHubDialog .character-hub-card{width:100%;height:100dvh;max-width:none;max-height:none;margin:0;box-sizing:border-box;border-radius:0;overflow-y:auto;overflow-x:hidden;padding:max(18px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overscroll-behavior:contain}
#characterCreatorDialog .dialog-head,#characterHubDialog .dialog-head{position:sticky;top:0;z-index:5;background:#1d1913;padding-top:4px}
.career-talent-radios50{grid-template-columns:1fr!important}.career-talent-radios50 label{display:grid;grid-template-columns:auto minmax(0,1fr);width:100%;box-sizing:border-box;overflow:hidden}.career-talent-radios50 label>input{width:22px;height:22px;margin:0}.career-talent-radios50 label>span{min-width:0;overflow-wrap:anywhere}.career-talent-spec-wrap61{grid-column:2;min-width:0;max-width:100%}.career-talent-spec-wrap61 select,.career-talent-spec-wrap61 input{max-width:100%;width:100%;box-sizing:border-box}
.random-details144{margin-top:4px;padding:8px 10px;border:1px solid #8a6938;border-radius:8px;background:#302315;color:#efcb79;font-weight:900;font-size:.62rem;letter-spacing:.04em}

/* Companion145 — Cloud Sync cosmetic cleanup */
.cloud-sync-card144{display:grid;gap:12px}
.cloud-sync-head144{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.cloud-sync-head144 h3{margin:0 0 3px}
.cloud-sync-head144 .backend-note133{margin:0}
.cloud-sync-status144{flex:0 0 auto;font-size:12px;font-weight:800;letter-spacing:.04em;opacity:.62;padding-top:3px}
.cloud-sync-status144.is-on{color:var(--gold,#e0b45f);opacity:1}
.cloud-sync-status144.is-idle{opacity:.72}
.cloud-sync-main144{width:100%;min-height:48px;font-weight:800}
.cloud-sync-advanced144{border-top:1px solid var(--line,#ddd);padding-top:10px}
.cloud-sync-advanced144 summary{cursor:pointer;list-style:none;font-size:12px;font-weight:700;opacity:.68;text-align:center;padding:5px}
.cloud-sync-advanced144 summary::-webkit-details-marker{display:none}
.cloud-sync-advanced144[open] summary{margin-bottom:9px}
@media(max-width:520px){.cloud-sync-advanced144 .backend-actions133{display:grid;grid-template-columns:1fr 1fr}.cloud-sync-status144{white-space:nowrap}}

/* Companion146 — reliable Vault character deletion */
.hub-character-row146{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}
.hub-character-row146 .hub-character140{min-width:0;width:100%}
.hub-delete146{border:1px solid rgba(176,75,64,.62);background:rgba(72,24,20,.28);color:#e9a59d;border-radius:18px;padding:0 16px;font-weight:800;letter-spacing:.04em}
.hub-delete146:active{transform:scale(.97)}
@media(max-width:560px){.hub-character-row146{grid-template-columns:1fr}.hub-delete146{min-height:46px}}


/* Companion147 — global iOS input UX: no focus zoom */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,textarea{font-size:16px!important;}
@supports (-webkit-touch-callout:none){
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{font-size:16px!important;}
}

/* Companion150 — Career Progress advance controls stay horizontal */
.req-row:has(.req-advance-control150){grid-template-columns:22px minmax(0,1fr) auto}
.req-advance-control150{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap;min-width:max-content}
.req-advance-control150 strong{flex:0 0 auto;margin:0}
.req-advance-control150 .mini-buy-adv{flex:0 0 auto;margin:0!important;writing-mode:horizontal-tb!important;white-space:nowrap!important}
@media(max-width:430px){.req-row:has(.req-advance-control150){grid-template-columns:22px minmax(0,1fr) auto;gap:6px}.req-advance-control150{gap:5px}.req-advance-control150 .mini-buy-adv{min-width:78px!important;padding:0 7px!important}}
/* Companion152 — trading purchase approval */
.trade-buy152{max-width:560px}.trade-good-meta152{padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;margin-bottom:10px;display:grid;gap:3px}.trade-good-meta152 small,.trade-buy152 label small{display:block;opacity:.65;font-size:.72rem;margin-top:4px}.trade-buy-summary152{margin:12px 0;padding:12px;border-radius:12px;background:rgba(255,255,255,.045);display:grid;gap:5px}.trade-buy-summary152 b{font-size:1.05rem}.trade-grade152{font-size:.7rem;opacity:.72;text-transform:uppercase;letter-spacing:.06em}.trade-row112 small{line-height:1.35}
/* Companion153 — Alpha QA */
.qa-summary153{display:grid;gap:12px}.qa-progress153{height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.qa-progress153 i{display:block;height:100%;background:currentColor;border-radius:inherit}.qa-dialog153 .qa-card153{width:min(680px,calc(100vw - 24px));max-height:min(88dvh,820px);overflow:auto}.qa-intro153{margin:0 0 12px;opacity:.75;font-size:13px;line-height:1.45}.qa-list153{display:grid;gap:8px}.qa-row153{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.025)}.qa-row153 input{width:20px;height:20px;margin:1px 0 0}.qa-row153 span{min-width:0}.qa-row153 b{display:block}.qa-row153 small{display:block;margin-top:4px;opacity:.68;line-height:1.4}.qa-row153.done{opacity:.68}.qa-row153.done b{text-decoration:line-through}.qa-entry153 button{width:100%}
/* Companion155 — make Alpha QA entry unmistakable */
.qa-entry153 .qa-summary153{padding:16px!important;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:0 10px 28px rgba(0,0,0,.14)}
.qa-entry153 .qa-progress153{height:10px}
.qa-entry153 #openQa153{min-height:58px!important;border-radius:16px!important;font-size:16px!important;font-weight:800!important;letter-spacing:.01em!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;box-shadow:0 8px 22px rgba(0,0,0,.18)!important}
.qa-entry153 #openQa153::before{content:'✓';display:grid;place-items:center;width:27px;height:27px;border:1px solid currentColor;border-radius:9px;font-size:15px;line-height:1}
.qa-entry153 #openQa153::after{content:'›';font-size:25px;line-height:1;margin-left:2px;opacity:.75}
.qa-message184{min-height:1.4em;color:#efc88b;font-size:13px;line-height:1.45}.qa-report184{border:1px solid rgba(255,255,255,.13);border-radius:14px;padding:12px;background:rgba(255,255,255,.025)}.qa-report184 summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center}.qa-report184 summary span{font-size:11px;opacity:.7}.qa-report184 p{font-size:12px;line-height:1.45;opacity:.75}.qa-report184 label{display:block;margin:11px 0;font-size:12px}.qa-report184 select,.qa-report184 textarea{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:#171515;color:inherit;font:inherit}.qa-report184 textarea{resize:vertical}.qa-report184 button{width:100%;min-height:44px}.qa-report184 button:disabled{opacity:.6}
.qa-choices185{border:0;padding:0;margin:12px 0}.qa-choices185 legend{font-size:13px;font-weight:700;margin-bottom:8px}.qa-choices185 label{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid rgba(255,255,255,.18);border-radius:12px;margin:6px 0;cursor:pointer;background:rgba(255,255,255,.025)}.qa-choices185 label:has(input:checked){border-color:#c4a66c;background:rgba(196,166,108,.16)}.qa-choices185 input{flex:none;width:20px;height:20px;accent-color:#c4a66c}.qa-choices185 span b,.qa-choices185 span small{display:block}.qa-choices185 span small{margin-top:3px;opacity:.7;line-height:1.35}.qa-hint185{color:#e8c98e;min-height:1.5em}
.qa-report184 .qa-inline-message187{min-height:0;margin:8px 0 0;color:#efc88b;font-size:13px;line-height:1.4;opacity:1}

/* Companion163 · Armour damage / Critical Deflection */
.armour-wear163{display:block;color:#d7a957!important;margin-top:5px;font-weight:700}.armour-actions163{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.armour-actions163 button{border:1px solid rgba(211,166,91,.45);background:#211b13;color:#e7c27b;border-radius:10px;padding:8px 10px;font-weight:800;font-size:11px}.armour-actions163 button:disabled{opacity:.35}.armor-location.armour163{align-items:flex-start}.armor-location.armour163 .ap{white-space:nowrap}

/* Companion171 — explicit UiA per-attack weapon mode selector */
.weapon-mode171{margin-top:8px;padding:9px 10px;border:1px dashed rgba(215,174,105,.34);border-radius:12px;background:rgba(215,174,105,.04)}.weapon-mode171>span{display:block;margin-bottom:7px;font-size:9px;font-weight:800;letter-spacing:.12em;color:var(--muted)}.weapon-mode171>div{display:flex;flex-wrap:wrap;gap:7px}.weapon-mode-btn171{border:1px solid rgba(215,174,105,.45);background:#17130e;color:#dfbd80;border-radius:999px;padding:8px 12px;font-weight:850;font-size:11px;letter-spacing:.04em}.weapon-mode-btn171.selected{background:#7a5a27;border-color:#d7ae69;color:#fff8e8}.combat-roll-btn:disabled{opacity:.42;filter:grayscale(.35)}
@media(max-width:390px){.bottom-nav{padding-left:3px;padding-right:3px}.nav-item{padding-left:0;padding-right:0}.nav-item small{font-size:8px}}

/* Companion179 · beta creation clarity */
.info179{display:inline-grid;place-items:center;width:22px;height:22px;min-width:22px;padding:0;border:1px solid #9f7b3d;border-radius:50%;background:transparent;color:#d8b76d;font:700 13px/1 system-ui;vertical-align:middle;margin-left:5px}.extra-save179{margin-top:10px}.extra-hint179{display:block;margin:7px 2px 0;color:#a99f8c;line-height:1.35}


/* Companion180 — Career onboarding info */
.career-choice-wrap180{position:relative}.career-choice-wrap180 .career-choice49{padding-right:52px}.career-info180{position:absolute;right:11px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:1px solid #8a6938;border-radius:50%;background:#251d12;color:#e6bd6c;font-weight:950;font-family:Georgia,serif;font-size:.8rem;z-index:2}.career-info180:active{transform:translateY(-50%) scale(.95)}.career-at-glance180{margin:8px 0 10px;padding:10px;border:1px solid #6d5330;border-radius:10px;background:#211a11}.career-at-glance180>b{display:block;margin-bottom:6px;color:#dfb96b;font-size:.58rem;letter-spacing:.09em}.career-at-glance180 p{margin:4px 0;color:#cfc2aa;font-size:.62rem;line-height:1.4}.career-at-glance180 strong{color:#f0e6d5}
/* Companion181 — beta career flow + autosave extra points */
.career-list181{max-height:none;overflow:visible;padding-right:0}.selected-career181{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border:1px solid #946f38;border-radius:12px;background:#251d12;margin-bottom:10px}.selected-career181 small,.selected-career181 b,.selected-career181 span{display:block}.selected-career181 small{font-size:.52rem;letter-spacing:.11em;color:#dfb96b}.selected-career181 b{margin-top:4px;font-size:1rem;color:#f1dfbe}.selected-career181 span{margin-top:4px;font-size:.59rem;color:#bfae91}.career-info181{flex:0 0 34px;width:34px;height:34px;border:1px solid #8a6938;border-radius:50%;background:#181510;color:#e6bd6c;font:950 .9rem Georgia,serif}.career-mode-grid181{display:grid;gap:10px;margin:10px 0}.career-mode-grid181 button{padding:16px;text-align:left;border:1px solid #6d5330;border-radius:12px;background:#181510;color:var(--ink)}.career-mode-grid181 b,.career-mode-grid181 small{display:block}.career-mode-grid181 b{color:#edc875;font-size:.76rem}.career-mode-grid181 small{margin-top:5px;color:var(--muted);font-size:.6rem}.career-flow181{margin-top:8px}.career-search181{box-sizing:border-box;width:100%;margin:0 0 9px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#120f0c;color:var(--ink);font-size:.72rem}.career-change181,.career-back-mode181{width:100%;margin:7px 0;padding:10px;border:1px solid #665035;border-radius:9px;background:#181510;color:#d9b66f;font-weight:850}.extra-auto181{margin-top:8px;padding:9px 10px;border:1px solid #5e4930;border-radius:9px;text-align:center;color:#b9a98d;font-size:.62rem;font-weight:850;letter-spacing:.04em}.extra-auto181.complete{border-color:#8a6938;color:#e5bd6d;background:#251d12}

/* Companion183: richer sourcebook-based career glance, isolated presentation change */
.career-at-glance180{min-height:132px;box-sizing:border-box;padding:14px 16px}.career-at-glance180>b{margin-bottom:10px}.career-at-glance180 p{font-size:.72rem;line-height:1.52;margin:0;color:#d7cbb7}

/* High Elf creation details */
.elf-options189,.elf-history189{margin:16px 0;padding:14px;border:1px solid #756344;border-radius:14px;background:rgba(184,152,92,.05)}
.elf-options189 summary,.elf-history189 summary{cursor:pointer;font-weight:700;color:#cfb47d;margin-bottom:12px}
.elf-options189 select,.elf-options189 input:not([type=checkbox]){width:100%;box-sizing:border-box;min-height:44px}
.elf-options189 label{display:block;margin:10px 0}.elf-options189 label span{display:block;margin-bottom:5px}
.elf-options189 button{min-height:44px;margin:6px 0;white-space:normal}

.lore-spell191{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #756344}.lore-spell191 span{min-width:0;overflow-wrap:anywhere}.lore-spell191 button{flex-shrink:0;min-height:44px}.magic-spell113 small{display:block;margin-top:6px}
/* Existing character entry */
/* Always-readable High Magic requirements */
.high-requirements193 ul { list-style:none; padding:0; margin:12px 0; }
.high-requirements193 li { padding:10px 0; border-bottom:1px solid #635746; line-height:1.5; overflow-wrap:anywhere; }
.high-requirements193 li.met { color:#b6d7ac; }
.high-requirements193 li.missing { color:#d8c9b0; }
.high-requirements193 summary span { display:block; font-size:12px; margin-top:4px; }
[data-existing192] { width:100%; box-sizing:border-box; }
textarea[data-existing192] { min-height:100px; font-size:16px; line-height:1.5; }
.import-review192 { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:13px; }
.import-rows192 { margin:16px 0; }
.import-rows192 p { color:var(--muted,#afa595); font-size:14px; }
.import-row192 { border:1px solid #635746; border-radius:12px; padding:12px; margin:10px 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.import-row192 input,.import-row192 select { width:100%; box-sizing:border-box; min-width:0; font-size:16px; }
.import-row192 label span { display:block; font-size:13px; }
.import-row192 button { grid-column:1/-1; }
@media(max-width:440px) { .import-row192 { grid-template-columns:minmax(0,1fr); } }
.yen-card194{border:1px solid var(--gold,#bda16a);border-radius:16px;padding:16px;margin:16px 0}.yen-track194{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.yen-track194 button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;min-height:100px;min-width:0;border:1px solid #777;border-radius:12px}.yen-track194 button span{font-size:28px}.yen-track194 .selected{border:2px solid #d7b771;background:#473d29}.yen-track194 small{font-size:10px}.yen-card194 details{margin-top:16px}.yen-card194 summary{cursor:pointer}.yen-card194 label{display:block;margin:12px 0}.yen-card194 input:not([type=checkbox]),.yen-card194 select{display:block;width:100%;max-width:100%;box-sizing:border-box;margin:6px 0}.yen-card194 .section-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.yen-card194 .section-head span{font-size:12px}.yen-current194{line-height:1.6}
.import-db196{padding:14px 0;border-bottom:1px solid var(--line)}.import-results196{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow:auto;margin:12px 0;padding:2px 4px 4px 2px;overscroll-behavior:contain}.import-results196 button{appearance:none;-webkit-appearance:none;width:100%;box-sizing:border-box;min-height:56px;text-align:left;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;font:inherit;line-height:1.4;white-space:normal;cursor:pointer}.import-results196 button .import-result-name206{min-width:0;white-space:normal;overflow-wrap:anywhere}.import-results196 button .import-result-action206{flex-shrink:0;white-space:nowrap;color:var(--accent2);font-weight:700;font-size:.85em;border:1px solid var(--accent2);border-radius:8px;padding:6px 10px}.import-results196 button:hover{border-color:var(--accent2)}.import-results196 button:focus-visible{outline:3px solid var(--accent2);outline-offset:1px}.import-results196 button:disabled{opacity:.6;cursor:default}.import-db196 input[readonly]{opacity:.8;background:var(--panel)}.import-db196 details>summary{padding:12px;cursor:pointer}.import-db196 input[type=search],#importCareerSearch196{width:100%;box-sizing:border-box;min-height:48px;font-size:16px}#authShowPassword196,#sbShowPassword196{margin:6px 0 12px;width:auto;min-height:38px}.import-db196 h3{margin:0 0 8px}.creator-extra206{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:12px}.creator-extra206 summary{cursor:pointer;min-height:44px}.creator-extra206 small{color:var(--muted);margin-left:8px}.creator-extra206 button,.creator-copy47 [data-baseline-add196],.import-row192>button{appearance:none;-webkit-appearance:none;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px;min-height:44px;font:inherit;cursor:pointer}.creator-extra206 button{display:block;width:100%;margin-top:8px;text-align:left}.creator-extra206 button:focus-visible,.import-row192>button:focus-visible{outline:3px solid var(--accent2)}
.edit-max-wounds197{width:100%;min-height:44px;margin-top:10px;padding:10px 6px;border:1px solid var(--gold,#c5a15a);border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:12px;cursor:pointer;touch-action:manipulation;}

/* Navigation200: the page scrolls in its own row; navigation is never a
   translated/backdrop-filtered fixed layer over the document on iOS. */
html{height:100%;overflow:hidden}
body{height:100vh;height:100dvh;min-height:0;overflow:hidden;padding-bottom:0}
.app-shell{height:100vh;height:100dvh;min-height:0;width:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden}
.app-scroll200{min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;position:relative}
.app-scroll200>.topbar{padding-top:calc(20px + env(safe-area-inset-top))}
.bottom-nav{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:100%;max-width:none;margin:0;backdrop-filter:none;-webkit-backdrop-filter:none;background:#120f0c;align-self:stretch;min-width:0}
.app-scroll200 .screen{padding-bottom:24px}
/* Creator204: only the New / Existing entry-method buttons. */
.entry-mode204{display:grid;grid-template-columns:1fr;gap:12px;margin:14px 0}
.entry-mode204 .entry-mode-button204{display:block;width:100%;min-height:88px;box-sizing:border-box;padding:16px;text-align:left;border:2px solid #9b896d;border-radius:14px;background:#302a22;color:#fff4df;font:inherit;cursor:pointer;box-shadow:0 3px 0 #0c0a08;touch-action:manipulation}
.entry-mode204 .entry-mode-button204.selected{border-color:#edc87f;background:#4a3b23}
.entry-mode204 .entry-mode-button204:focus-visible{outline:3px solid #fff4df;outline-offset:3px}
.entry-mode204 .entry-mode-button204:active{box-shadow:none;transform:translateY(2px)}
.entry-mode-head204{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.entry-mode-head204 strong{font-size:1rem;line-height:1.3}
.entry-mode-state204{border:1px solid currentColor;border-radius:8px;padding:5px 8px;font-size:.78rem;font-weight:800;white-space:nowrap}
.entry-mode-description204{display:block;margin-top:9px;font-size:.9rem;line-height:1.45;color:#f0e2cb}
/* Career205: existing-character Career search only. */
.career-picker205,.career-selected205,.career-previous205{margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#211c15}
.career-picker205>label,.career-previous205>label{display:block;margin:0 0 8px;font-weight:800}
.career-picker205>input,.career-previous205>input{width:100%;box-sizing:border-box;padding:12px;font-size:16px}
.career-results205{display:grid;gap:9px;max-height:22rem;overflow-y:auto;margin-top:10px}
.career-result205{display:block;width:100%;box-sizing:border-box;padding:14px;border:2px solid #a38b62;border-radius:11px;background:#332a1d;color:#fff1d5;text-align:left;cursor:pointer;font:inherit;touch-action:manipulation}
.career-result205 strong,.career-result205 small,.career-result205>span{display:block}
.career-result205 small{margin-top:5px;color:#e5d9c3;line-height:1.4}
.career-result205>span{margin-top:8px;font-weight:800;color:#f0cb84}
.career-result205:focus-visible,.career-selected205 button:focus-visible,.career-previous205 button:focus-visible{outline:3px solid #fff1d5;outline-offset:2px}
.career-selected-head205{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.career-selected-head205>span{color:#e8c57e}.career-selected205 button,.career-previous205 button[data-remove-previous205]{padding:10px 12px;border:1px solid #a38b62;border-radius:9px;background:#332a1d;color:#fff1d5;cursor:pointer;font:inherit}
.career-status205{display:grid;gap:6px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px}
.career-previous205 h3{margin:0 0 12px}.career-previous205 h3 small{font-size:.8rem;font-weight:400;color:var(--muted)}
.career-previous-list205>div{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.career-previous-list205>div>span{overflow-wrap:anywhere}
.career-search-note205{color:var(--muted);margin:4px 0}

/* 210: review edits and explicit draft replacement on a phone. */
.creator-review-actions210{margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:12px}.creator-review-actions210 h3{margin:0 0 6px}.creator-review-actions210 p,.creator-edit-note210{color:var(--muted);font-size:.8rem}.creator-review-actions210>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.creator-review-actions210 button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;white-space:normal;text-align:left;padding:10px}.creator-review-actions210 span{min-width:0;overflow-wrap:anywhere}.creator-errors210 ul{padding-left:20px}.draft-actions210{display:grid;gap:10px;margin-top:18px}.draft-actions210 button{min-height:48px;white-space:normal}#draftChoiceDialog210{max-width:min(430px,94vw)}@media(max-width:420px){.creator-review-actions210>div{grid-template-columns:1fr}}

/* 211: compact existing Skills, without editable database metadata. */
.appearance-field208 select{width:100%;box-sizing:border-box;min-height:48px;font:inherit;font-size:16px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:8px}
.import-skill211{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding:14px;margin:10px 0;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.skill-heading211{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;overflow-wrap:anywhere}.skill-heading211 b{min-width:0}.skill-heading211 small{flex-shrink:0;color:var(--accent2)}
.import-skill211 label{display:flex;align-items:center;gap:12px;min-width:0}.import-skill211 input{width:88px;min-width:0;min-height:48px;font-size:16px;box-sizing:border-box}.import-skill211 button{appearance:none;min-height:48px;padding:10px;font:inherit;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:10px;cursor:pointer}.import-skill211 button:focus-visible{outline:3px solid var(--accent2)}
@media(max-width:340px){.import-skill211{grid-template-columns:minmax(0,1fr)}.import-skill211 label{justify-content:space-between}}

.invite-card213{width:min(430px,90vw);box-sizing:border-box}.invite-qr213{width:min(280px,100%);margin:16px auto;background:#fff;border-radius:12px;padding:12px;box-sizing:border-box}.invite-qr213 svg{width:100%;height:auto;display:block}.invite-actions213{display:flex;flex-wrap:wrap;gap:10px}.invite-card213 input{width:100%;box-sizing:border-box;font-size:16px;min-height:48px}.invite-card213 details{padding:16px 0}.pending-invite213{max-width:620px;margin:16px auto;padding:20px;border:1px solid var(--accent2);border-radius:14px;background:var(--panel);box-sizing:border-box;line-height:1.5}.pending-invite213 button,.invite-actions213 button,.invite-main213{min-height:48px;padding:12px 16px;font:inherit;border-radius:10px;border:1px solid var(--accent2);background:var(--panel2);color:var(--ink);cursor:pointer;margin:4px}.pending-invite213 button:focus-visible,.invite-actions213 button:focus-visible,.invite-main213:focus-visible{outline:3px solid var(--accent2);outline-offset:2px}.pending-invite213 button:disabled{opacity:.6;cursor:default}.invite-main213{width:100%;box-sizing:border-box;margin:12px 0}

/* 214: one compact invitation action in its campaign card. */
.hub-campaign140>span:first-child{min-width:0;flex:1}.hub-campaign140>span:first-child b{overflow-wrap:anywhere}.hub-invite214{appearance:none;-webkit-appearance:none;flex:0 0 auto;min-height:44px;padding:9px 14px;border:1px solid #78603d;border-radius:12px;background:#2c2419;color:#e7c28a;font:inherit;font-size:14px;font-weight:600;cursor:pointer;box-shadow:inset 0 1px 0 #ffffff08}.hub-invite214:hover{background:#382c1c;border-color:#d9ad64}.hub-invite214:active{background:#43331f}.hub-invite214:focus-visible{outline:3px solid #d9ad64;outline-offset:3px}

/* Build 215: small, reachable player controls. */
.talent-info-button215{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;border-radius:50%;padding:0;font-size:24px;vertical-align:middle;background:#251f15;border:1px solid #76603f;color:#dfbb7c;}
.career-talent-row215{display:flex;align-items:flex-start;gap:8px;min-width:0}.career-talent-row215>label{flex:1;min-width:0}.career-talent-row215>.talent-info-button215{margin-top:4px;}
.own-wealth215{margin:12px 0;padding:12px;border:1px solid #59472c;border-radius:12px;}
.own-wealth215 input{width:100%;box-sizing:border-box;margin:8px 0;}
.reload-progress215{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:10px 0;color:#dfbb7c;}
.reload-progress215 button{font-size:12px;padding:8px;}
.vault-button215{background:#251f15;color:#eed5a1;border:1px solid #80613b;border-radius:999px;min-height:44px;padding:8px 16px;font-weight:700;}
#vaultAccess215{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);right:12px;z-index:180;box-shadow:0 3px 12px #0008;}
body.auth-locked #vaultAccess215{display:none;}
.vault-dialog215{margin-left:auto;flex-shrink:0;}
.dialog-head:has(.vault-dialog215){flex-wrap:wrap;gap:8px;}
body:not(.auth-locked) .topbar{padding-right:84px;}
@keyframes autofill215{from{opacity:.999}to{opacity:1}}
#authPassword140:autofill{animation:autofill215 .01s;}
#authPassword140:-webkit-autofill{animation:autofill215 .01s;}
@media(prefers-reduced-motion:reduce){#authPassword140:autofill,#authPassword140:-webkit-autofill{animation-duration:.001s;}}
.incoming-rules215{margin:12px 0;text-align:left;font-size:14px}.incoming-rules215>label{display:block;padding:8px 0}.incoming-rules215 input[type=checkbox]{width:22px;height:22px;vertical-align:middle}.incoming-rules215 input[type=number]{width:100%;font-size:16px;padding:10px}.career-reference-talent215{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;}

.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));}
.reference-version216{margin:12px 0;line-height:1.6}.reference-version216 summary{min-height:44px;padding:10px 0}.reference-source216{color:var(--accent2);font-size:12px;margin:8px 0;}

body:has(dialog[open]) #vaultAccess215{display:none;}

/* Spell source variants and combat effects */
.spell-card219{padding:12px;margin:12px 0}.spell-card219>p{font-size:14px;line-height:1.5}.spell-facts219{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:8px 0}.spell-facts219 small,.spell-facts219 b{display:block;overflow-wrap:anywhere}.spell-facts219 small{opacity:.7;font-size:11px}.spell-facts219 b{font-size:13px}.spell-chips219{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.spell-chip219{border:1px solid #729cba;background:#233d50;color:#e5f4ff;border-radius:14px;padding:5px 9px;font-size:11px;cursor:pointer}.spell-chip219.condition{border-color:#cd9b4c;background:#523a22;color:#fff0c9}.spell-chip219.trait{border-color:#9277cc;background:#3b2e54;color:#eee2ff}.spell-chip219.modifier,.spell-chip219.armour{border-color:#5aa489;background:#214639;color:#d8ffed}.spell-chip219.restriction{border-color:#ce7777;background:#562f32;color:#ffe5e5}.active-spell219{padding:8px 0;border-bottom:1px solid #6664}.active-spell219>small{display:block}#spellDatabaseDialog219,#spellVersionsDialog219{width:min(650px,94vw);max-height:90dvh;overflow:auto}#spellSearch219,#spellBook219{width:100%;box-sizing:border-box;margin:8px 0}#spellVersionsDialog219 .secondary-btn{width:100%;margin-bottom:16px}

.spell-filter220{display:block;margin:12px 0}.spell-filter220 select,#spellLoreFilter220{display:block;width:100%;box-sizing:border-box;margin:6px 0}.spell-learn-toast220{position:fixed;z-index:100000;bottom:calc(85px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:85vw;background:#203f32;color:#e5ffed;border:1px solid #72bb91;border-radius:12px;padding:12px 16px;box-shadow:0 4px 18px #0008;pointer-events:none;font-weight:bold}
/* Build 221: modifier explanations and persistent Channel results. */
.modifier-info221{background:transparent;color:var(--text,#eee);border:0;padding:8px 3px;font:inherit;white-space:nowrap}.channel-result221{font-size:12px;line-height:1.5;padding:10px;border:1px solid #80683c;border-radius:8px;background:#28241d}.learning-gate221{font-size:12px;line-height:1.5}.magic-pool-actions117 small{display:block;max-width:210px;line-height:1.4}.attribute-table th{font-size:11px}.attribute-table .modifier-info221{min-height:40px}
/* Build 222: memorised spells and book copies have separate groups. */
.spell-storage222{margin:16px 0;padding-top:12px;border-top:1px solid #625640}.spell-storage222 h3{margin:0 0 6px}.spell-storage222>p,.grimoire-note222{font-size:12px;line-height:1.5}.grimoire-note222{padding:9px;border:1px solid #887047;border-radius:8px;background:#28241d;color:#ead6ac}.spell-storage222>.empty{padding:10px}

.effect-facts226 {display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;} .effect-facts226 dt{font-size:.8rem;opacity:.7;} .effect-facts226 dd{margin:0;overflow-wrap:anywhere;} .effect-rule226{white-space:pre-line;}

.known-spell228{border:1px solid var(--line,#4b4651);border-radius:10px;margin:8px 0;background:var(--panel,#24212a)}
.known-spell228>summary{padding:14px 16px;cursor:pointer;font-weight:700;overflow-wrap:anywhere}
.known-spell228>div{padding:0 10px 12px}.known-spell228 .spell-card219{margin:0}
.entry-list228>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line,#4b4651)}
.entry-list228 span{overflow-wrap:anywhere;min-width:0}.entry-list228 button{flex-shrink:0}.manage-sheet228{margin-bottom:12px}

/* Compact actions must override the global full-width secondary button rule. */
.entry-list228>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:14px 0}
.entry-list228 span{width:auto;min-width:0;overflow-wrap:break-word;word-break:normal;line-height:1.45}
.entry-list228 button.secondary-btn{width:auto;min-width:76px;max-width:100%;padding:9px 12px;font-size:12px;justify-self:end}
#sheetManagementDialog228{width:min(560px,94vw);box-sizing:border-box;max-height:90dvh;overflow:auto}
#sheetManagementDialog228 [data-dialog-content219]>label{display:block;margin:12px 0}
#sheetManagementDialog228 select{width:100%;box-sizing:border-box}
.removal-help229{font-size:13px;line-height:1.45;margin-bottom:16px}.removal-help229 summary{cursor:pointer;color:var(--muted)}
.cant-panel229{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:12px}
.cant-panel229>summary{cursor:pointer;font-weight:700}.cant-panel229 p,.cant-card229 p{font-size:13px;line-height:1.5}
.cant-panel229>details>summary{padding:12px 0;cursor:pointer}.cant-card229{margin:8px 0;border:1px solid var(--line);border-radius:10px}
.cant-card229>summary{padding:12px;cursor:pointer;display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:space-between}
.cant-card229>summary span{font-weight:700}.cant-card229>summary small{color:var(--muted)}.cant-card229>div{padding:0 12px 12px}.cant-card229>div>small{display:block;margin-top:8px}
.cant-card229 button{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink)}
.cant-card229 button:disabled{opacity:.5}
@media(max-width:340px){.entry-list228>div{grid-template-columns:minmax(0,1fr)}.entry-list228 button.secondary-btn{justify-self:start}}

.height-units230{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;margin:8px 0}.height-values230{display:flex;gap:10px}.height-values230>label{flex:1;min-width:0}.height-units230 input,.height-units230 select{width:100%;box-sizing:border-box}.height-field230>b{display:block;font-size:13px}
.weapon-runtime230{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}.weapon-runtime230 small{width:100%}.weapon-runtime230 button{border:1px solid var(--line);background:transparent;color:var(--ink);padding:8px;border-radius:8px;font-size:11px}
