/* forja-core-styles */
:root {
  color-scheme: dark;
  --coal-950: #050403;
  --coal-900: #090807;
  --coal-850: #0d0b09;
  --coal-800: #12100e;
  --iron-700: #1a1a1a;
  --iron-600: #26231f;
  --iron-500: #36312a;
  --bronze-700: #6f3e1f;
  --bronze-600: #8d5a2b;
  --bronze-500: #a96e35;
  --gold-500: #c79a3b;
  --gold-400: #dbb45a;
  --gold-300: #efcf87;
  --forge-700: #6f1717;
  --forge-600: #a32621;
  --forge-500: #d04a28;
  --arcane-700: #24445c;
  --arcane-600: #356684;
  --arcane-500: #4a7fa7;
  --parchment-100: #f6f0e4;
  --parchment-200: #ece6d9;
  --parchment-300: #d8cdbb;
  --muted: #ac9f8c;
  --success: #4d8c69;
  --warning: #c88731;
  --danger: #b83b36;
  --discord: #5865f2;
  --line: rgba(199, 154, 59, .28);
  --line-soft: rgba(236, 230, 217, .11);
  --panel: rgba(16, 13, 11, .9);
  --panel-strong: #110e0c;
  --shadow-sm: 0 8px 22px rgba(0,0,0,.3);
  --shadow-lg: 0 28px 90px rgba(0,0,0,.58);
  --glow-gold: 0 0 26px rgba(199,154,59,.22);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 30px;
  --font-display: "Cinzel", Georgia, serif;
  --font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --container: min(1240px, calc(100% - 2rem));
  --topbar-height: 74px;
}

@media (max-width: 680px) {
  :root { --container: min(100% - 1.25rem, 1240px); }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--coal-900); }
body { margin: 0; min-height: 100vh; background: var(--coal-900); color: var(--parchment-200); font-family: var(--font-body); overflow-x: hidden; }
button, input, select, textarea { font: inherit; }
button, input, select, textarea, a { -webkit-tap-highlight-color: transparent; }
button, input, select, textarea { appearance: none; -webkit-appearance: none; }
button { border: 0; }
a { color: inherit; text-decoration: none; }
svg { display: block; }
[hidden] { display: none !important; }

.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.noscript { padding: 1rem; background: var(--forge-700); color: white; text-align: center; }
.eyebrow { margin: 0 0 .75rem; color: var(--gold-300); font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }

.btn {
  appearance: none;
  min-height: 48px;
  padding: .82rem 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  color: var(--parchment-100);
  font-family: var(--font-display);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .065em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, filter .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.btn:hover { transform: translateY(-2px); filter: brightness(1.08); }
.btn:active { transform: translateY(0); }
.btn:focus-visible, .icon-btn:focus-visible, .link-button:focus-visible, .auth-tab:focus-visible, input:focus-visible { outline: 3px solid rgba(74,127,167,.75); outline-offset: 3px; }
.btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.btn svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.btn-primary { background: linear-gradient(180deg, #c26b25 0%, #8a3714 58%, #6f260e 100%); border-color: #e5a04a; box-shadow: 0 10px 28px rgba(112,43,13,.34), inset 0 1px 0 rgba(255,233,183,.28); }
.btn-secondary { background: linear-gradient(180deg, #2e2924, #171411); border-color: var(--bronze-500); color: var(--gold-300); }
.btn-arcane { background: linear-gradient(180deg, #3b6c8c, #234257); border-color: #6fa3c5; box-shadow: 0 10px 28px rgba(24,65,91,.3), inset 0 1px 0 rgba(197,230,255,.18); }
.btn-gold { background: linear-gradient(180deg, #d0a84e, #90651f); border-color: #f3d48d; color: #1a1207; }
.btn-ghost { background: rgba(255,255,255,.025); border-color: var(--line); color: var(--parchment-300); box-shadow: none; }
.btn-danger { background: linear-gradient(180deg, #a93631, #6d1e1b); border-color: #d56e68; }
.btn-discord { background: linear-gradient(180deg, #6975ff, #4955d9); border-color: #8e98ff; }
.btn-google { background: linear-gradient(180deg, #2b2f38, #181b21); border-color: #6d778a; color: var(--parchment-100); box-shadow: 0 10px 28px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.06); }
.btn-google svg { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.btn-sm { min-height: 40px; padding: .65rem .95rem; font-size: .72rem; }
.btn-xl { min-height: 62px; padding: 1rem 1.75rem; font-size: .95rem; }
.btn-block { width: 100%; }

.icon-btn {
  appearance: none;
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
  color: var(--gold-300);
  cursor: pointer;
  transition: background .2s, border-color .2s, transform .2s;
}
.icon-btn:hover { transform: translateY(-1px); border-color: var(--gold-500); background: rgba(199,154,59,.09); }
.icon-btn svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-btn[aria-pressed="false"] { color: #766e64; }

.link-button {
  appearance: none;
  padding: .25rem .1rem;
  background: transparent;
  color: var(--gold-300);
  font-size: .84rem;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.link-button:hover { color: var(--parchment-100); }

.field { display: grid; gap: .45rem; color: var(--parchment-300); font-size: .88rem; font-weight: 600; }
.field > span:first-child { display: flex; gap: .4rem; align-items: baseline; }
.field small { color: var(--muted); font-weight: 400; }
.field input, .field select, .field textarea {
  width: 100%;
  min-height: 50px;
  padding: 0 .95rem;
  border: 1px solid rgba(141,90,43,.66);
  border-radius: var(--radius-sm);
  background: #0a0908;
  color: var(--parchment-100);
  outline: none;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.25);
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.field input::placeholder, .field textarea::placeholder { color: #756e65; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--bronze-500); }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold-500); box-shadow: 0 0 0 3px rgba(199,154,59,.12); background: #0d0b09; }
.field textarea { min-height: 120px; padding-top: .85rem; padding-bottom: .85rem; resize: vertical; line-height: 1.55; }
.field select { padding-right: 2.5rem; background-image: linear-gradient(45deg, transparent 50%, var(--gold-300) 50%), linear-gradient(135deg, var(--gold-300) 50%, transparent 50%); background-position: calc(100% - 18px) 21px, calc(100% - 13px) 21px; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.field input[type="date"] { color-scheme: dark; }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 108px; }
.field-action {
  appearance: none;
  position: absolute;
  right: 6px;
  top: 50%;
  min-height: 38px;
  padding: 0 .65rem;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  transform: translateY(-50%);
  border: 1px solid rgba(141,90,43,.52);
  border-radius: 6px;
  background: linear-gradient(180deg, #2a2119, #17120e);
  color: var(--gold-300);
  cursor: pointer;
  font-size: .76rem;
}
.field-action:hover { border-color: var(--gold-500); }
.field-action svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.check-option { display: inline-flex; align-items: center; gap: .65rem; color: var(--parchment-300); font-size: .84rem; cursor: pointer; }
.check-option input {
  appearance: none;
  flex: 0 0 21px;
  width: 21px;
  height: 21px;
  display: grid;
  place-items: center;
  border: 1px solid var(--bronze-500);
  border-radius: 5px;
  background: #0b0908;
  cursor: pointer;
}
.check-option input::after { content: ""; width: 10px; height: 6px; border-left: 2px solid #1c1307; border-bottom: 2px solid #1c1307; transform: rotate(-45deg) scale(0); transition: transform .15s ease; }
.check-option input:checked { background: var(--gold-500); border-color: var(--gold-300); }
.check-option input:checked::after { transform: rotate(-45deg) scale(1); }

.auth-message { margin: 1rem 0; padding: .8rem .9rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: rgba(255,255,255,.03); color: var(--parchment-300); font-size: .84rem; line-height: 1.5; }
.auth-message.error { border-color: rgba(184,59,54,.65); background: rgba(184,59,54,.1); color: #ffb8b5; }
.auth-message.warning { border-color: rgba(200,135,49,.65); background: rgba(200,135,49,.1); color: #f0c98b; }
.auth-message.success { border-color: rgba(77,140,105,.65); background: rgba(77,140,105,.1); color: #b9e0c8; }

.toast-region { position: fixed; right: 1rem; bottom: 1rem; z-index: 120; display: grid; gap: .65rem; pointer-events: none; }
.toast { min-width: min(360px, calc(100vw - 2rem)); padding: .85rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #15110e; color: var(--parchment-100); box-shadow: var(--shadow-lg); animation: toast-in .25s ease both; }
.toast.warning { border-color: var(--warning); }
.toast.success { border-color: var(--success); }
@keyframes toast-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

body::before { content: ""; position: fixed; inset: 0; z-index: -2; background: radial-gradient(circle at 50% -10%, rgba(132,70,26,.17), transparent 34%), linear-gradient(180deg, #0b0907, #080706 38%, #050403); }
body::after { content: ""; position: fixed; inset: 0; z-index: 150; pointer-events: none; opacity: .04; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E"); }

.arrival { position: fixed; inset: 0; z-index: 100; overflow: hidden; display: grid; place-items: center; background: #030202; isolation: isolate; transition: opacity .9s ease, visibility .9s ease; }
.arrival.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.arrival-world { position: absolute; inset: 0; overflow: hidden; }
.arrival-backdrop { position: absolute; inset: -3%; background-image: linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.3)), image-set(url('assets/images/forja-dos-mundos-cover.avif') type('image/avif'), url('assets/images/forja-dos-mundos-cover.webp') type('image/webp')); background-size: cover; background-position: center center; filter: brightness(.48) saturate(.76) contrast(1.08); transform: scale(1.05); transition: transform 3s ease, filter 2.2s ease; }
.arrival-glow { position: absolute; left: 50%; bottom: -12%; width: min(75vw, 900px); height: 55%; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(255,109,29,.5), rgba(145,42,10,.18) 38%, transparent 72%); filter: blur(28px); opacity: .65; animation: glow-breathe 2.8s ease-in-out infinite; }
.fog { position: absolute; width: 78vw; height: 38vh; border-radius: 50%; background: radial-gradient(ellipse, rgba(182,174,164,.17), transparent 70%); filter: blur(38px); opacity: .3; }
.fog-one { left: -20%; bottom: 2%; animation: fog-drift 18s ease-in-out infinite alternate; }
.fog-two { right: -25%; bottom: 15%; animation: fog-drift 22s ease-in-out infinite alternate-reverse; }
.embers { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.ember { position: absolute; bottom: -12px; width: var(--size); height: var(--size); border-radius: 50%; background: #ffd681; box-shadow: 0 0 11px #ff5c18; animation: ember-rise var(--duration) linear var(--delay) infinite; opacity: .78; }

.gate-frame { position: absolute; inset: 0; z-index: 4; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,.95) 0 5%, transparent 11% 89%, rgba(0,0,0,.95) 95% 100%), linear-gradient(180deg, rgba(0,0,0,.92), transparent 13% 84%, rgba(0,0,0,.92)); box-shadow: inset 0 0 130px #000; }
.gate { position: absolute; z-index: 5; top: 0; bottom: 0; width: 51%; background: linear-gradient(90deg, #080706, #28211b 16%, #11100e 45%, #2b2118 82%, #070605), repeating-linear-gradient(0deg, transparent 0 58px, rgba(210,164,93,.07) 59px 61px); box-shadow: inset 0 0 60px #000, 0 0 40px #000; transition: transform 2.4s cubic-bezier(.2,.75,.08,1); }
.gate::before { content: ""; position: absolute; inset: 2.5% 3%; border: 2px solid rgba(199,154,59,.22); box-shadow: inset 0 0 35px #000; }
.gate::after { content: ""; position: absolute; top: 0; bottom: 0; width: 24px; background: linear-gradient(90deg, #0a0807, #56412f 45%, #120f0c); box-shadow: 0 0 24px #000; }
.gate-left { left: 0; transform-origin: left center; }
.gate-left::after { right: -4px; }
.gate-right { right: 0; transform-origin: right center; }
.gate-right::after { left: -4px; }
.gate-rivets { position: absolute; inset: 7% 8%; opacity: .7; background-image: radial-gradient(circle, #6e5742 0 2px, transparent 3px); background-size: 72px 72px; }
.gate-seal { position: absolute; z-index: 8; left: 50%; top: 50%; width: clamp(90px, 12vw, 150px); aspect-ratio: 1; display: grid; place-items: center; transform: translate(-50%,-50%); border: 3px solid #6f4c2b; border-radius: 50%; background: radial-gradient(circle, #25170f, #080605 68%); color: var(--gold-300); box-shadow: 0 0 0 9px rgba(0,0,0,.45), 0 0 36px rgba(199,154,59,.2), inset 0 0 30px #000; transition: opacity .65s ease, transform .65s ease; }
.gate-seal svg { width: 45%; height: 45%; fill: none; stroke: currentColor; stroke-width: 1.7; }

.arrival-content { position: relative; z-index: 12; width: min(850px, calc(100% - 2rem)); padding: 2rem; text-align: center; text-shadow: 0 4px 22px #000; transition: opacity .55s ease, transform .55s ease; }
.arrival h1 { margin: 0; color: var(--parchment-100); font-family: var(--font-display); font-size: clamp(3rem, 8vw, 7rem); line-height: .9; text-transform: uppercase; letter-spacing: .03em; }
.arrival h1 span { display: block; margin-top: .16em; color: var(--gold-300); font-size: .45em; letter-spacing: .28em; padding-left: .28em; }
.arrival-slogan { max-width: 760px; margin: 1.2rem auto 1.7rem; color: var(--parchment-300); font-size: clamp(.95rem, 2vw, 1.18rem); line-height: 1.7; }
.arrival-hint { margin: .9rem 0 .2rem; color: var(--muted); font-size: .78rem; }
.arrival-caption { position: absolute; z-index: 12; left: 50%; bottom: 1.4rem; transform: translateX(-50%); color: rgba(236,230,217,.7); font-family: var(--font-display); font-size: .76rem; letter-spacing: .18em; text-transform: uppercase; }
.arrival.is-opening .gate-left { transform: translateX(-104%); }
.arrival.is-opening .gate-right { transform: translateX(104%); }
.arrival.is-opening .gate-seal { opacity: 0; transform: translate(-50%,-50%) scale(1.45) rotate(18deg); }
.arrival.is-opening .arrival-content { opacity: 0; transform: scale(.95); pointer-events: none; }
.arrival.is-opening .arrival-backdrop { transform: scale(1.14); filter: brightness(.78) saturate(.95) contrast(1.05); }

.app-shell { opacity: 0; visibility: hidden; transition: opacity .7s ease; }
.app-shell.is-ready { opacity: 1; visibility: visible; }
.topbar { position: sticky; top: 0; z-index: 60; min-height: var(--topbar-height); padding: 0 clamp(1rem,4vw,4rem); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid var(--line); background: rgba(8,7,6,.86); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; gap: .75rem; min-width: 245px; }
.brand-crest { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: radial-gradient(circle, rgba(199,154,59,.13), rgba(0,0,0,.4)); color: var(--gold-300); }
.brand-crest.large { width: 70px; height: 70px; }
.brand-crest svg { width: 54%; height: 54%; fill: none; stroke: currentColor; stroke-width: 1.8; }
.brand strong { display: block; font-family: var(--font-display); letter-spacing: .05em; }
.brand small { color: var(--muted); }
.desktop-nav { display: flex; align-items: center; gap: .3rem; }
.desktop-nav a { padding: .72rem .86rem; border-radius: var(--radius-sm); color: var(--muted); font-size: .88rem; transition: color .2s, background .2s; }
.desktop-nav a:hover, .desktop-nav a.active { color: var(--gold-300); background: rgba(199,154,59,.08); }
.topbar-actions { display: flex; align-items: center; gap: .6rem; }
.mobile-only { display: none; }
.mobile-menu { position: fixed; z-index: 55; top: var(--topbar-height); right: 0; width: min(330px,88vw); height: calc(100svh - var(--topbar-height)); padding: 1.2rem; display: grid; align-content: start; gap: .3rem; border-left: 1px solid var(--line); background: rgba(10,8,7,.98); transform: translateX(105%); transition: transform .28s ease; }
.mobile-menu.is-open { transform: none; }
.mobile-menu a { padding: 1rem; border-bottom: 1px solid var(--line-soft); color: var(--parchment-300); }

main { min-height: 72vh; }
.page { display: none; animation: page-in .4s ease both; }
.page.active { display: block; }
.hero { position: relative; width: var(--container); min-height: calc(100svh - var(--topbar-height)); margin: 0 auto; padding: clamp(3rem,7vw,6rem) 0; display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,560px); align-items: center; gap: clamp(2rem,5vw,5rem); }
.hero::before { content: ""; position: absolute; inset: 8% -15% 0; z-index: -1; background: radial-gradient(circle at 78% 35%, rgba(163,38,33,.11), transparent 25%), radial-gradient(circle at 24% 55%, rgba(199,154,59,.09), transparent 30%); }
.hero-copy h2, .section-heading h2, .page-heading h2, .discord-cta h2 { margin: 0; font-family: var(--font-display); }
.hero-copy h2 { font-size: clamp(2.8rem,6vw,5.7rem); line-height: .98; text-transform: uppercase; }
.hero-copy > p:not(.eyebrow) { max-width: 680px; color: var(--parchment-300); font-size: clamp(1rem,1.6vw,1.15rem); line-height: 1.78; }
.hero-actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.7rem; }
.hero-facts { margin-top: 1.8rem; display: flex; gap: .7rem; flex-wrap: wrap; }
.hero-facts span { padding: .45rem .7rem; border: 1px solid var(--line-soft); border-radius: 999px; background: rgba(255,255,255,.025); color: var(--muted); font-size: .76rem; }
.hero-art { margin: 0; padding: .65rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(199,154,59,.08), rgba(255,255,255,.015)); box-shadow: var(--shadow-lg); }
.hero-art img { width: 100%; height: auto; display: block; border-radius: calc(var(--radius-lg) - 7px); object-fit: contain; }
.hero-art figcaption { padding: .75rem .5rem .2rem; color: var(--muted); text-align: center; font-size: .78rem; }
.replay-button { position: absolute; right: 0; bottom: 1rem; appearance: none; padding: .55rem .8rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: rgba(0,0,0,.45); color: var(--muted); cursor: pointer; }

.hub-section, .inner-page { width: var(--container); margin: 0 auto; padding: 5rem 0; }
.section-heading, .page-heading { max-width: 780px; margin-bottom: 2rem; }
.section-heading h2, .page-heading h2 { font-size: clamp(2rem,4vw,3.5rem); }
.section-heading > p:last-child, .page-heading > p:last-child { color: var(--muted); line-height: 1.7; }
.hub-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.hub-card { appearance: none; min-height: 160px; padding: 1.3rem; display: flex; align-items: center; gap: 1rem; text-align: left; border: 1px solid var(--line); border-radius: var(--radius-md); background: linear-gradient(145deg, rgba(255,255,255,.04), rgba(255,255,255,.012)); color: var(--parchment-100); cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,.04); transition: transform .22s, border-color .22s, background .22s, box-shadow .22s; }
.hub-card:hover { transform: translateY(-5px); border-color: var(--accent, var(--gold-500)); background: linear-gradient(145deg, color-mix(in srgb, var(--accent, var(--gold-500)) 13%, transparent), rgba(255,255,255,.015)); box-shadow: 0 18px 45px rgba(0,0,0,.28); }
.hub-card > svg { flex: 0 0 58px; width: 58px; height: 58px; padding: 13px; border: 1px solid color-mix(in srgb, var(--accent, var(--gold-500)) 50%, transparent); border-radius: 14px; color: var(--accent, var(--gold-500)); fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.hub-card strong { display: block; margin-bottom: .45rem; font-family: var(--font-display); font-size: 1.05rem; }
.hub-card small { color: var(--muted); line-height: 1.55; }
.hub-card--ember { --accent: #d36b2a; }.hub-card--steel { --accent: #8191a0; }.hub-card--gold { --accent: #c79a3b; }.hub-card--arcane { --accent: #4a7fa7; }.hub-card--market { --accent: #7f9a58; }.hub-card--community { --accent: #8a69b8; }

.discord-cta { width: var(--container); margin: 0 auto 5rem; padding: clamp(1.5rem,4vw,3rem); display: flex; align-items: center; justify-content: space-between; gap: 2rem; border: 1px solid rgba(88,101,242,.38); border-radius: var(--radius-lg); background: radial-gradient(circle at 90% 50%, rgba(88,101,242,.2), transparent 35%), linear-gradient(135deg, rgba(28,25,49,.92), rgba(15,13,18,.96)); box-shadow: var(--shadow-lg); }
.discord-cta p { margin: .5rem 0 0; color: var(--muted); line-height: 1.65; }
.discord-cta.is-contained { width: 100%; margin: 1rem 0 0; }

.feature-grid, .product-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.feature-card, .product-card, .empty-state, .skill-card, .profile-panel { padding: 1.6rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); box-shadow: inset 0 1px 0 rgba(255,255,255,.03); }
.feature-card > svg, .empty-state > svg { width: 42px; height: 42px; color: var(--gold-300); fill: none; stroke: currentColor; stroke-width: 1.7; }
.feature-card h3, .product-card h3, .empty-state h3, .skill-card h3, .profile-panel h3 { font-family: var(--font-display); }
.feature-card p, .product-card p, .empty-state p, .skill-card p { color: var(--muted); line-height: 1.65; }
.empty-state { max-width: 720px; margin: 2rem auto; padding: 3.6rem 2rem; text-align: center; }
.empty-state > svg { margin: 0 auto; width: 58px; height: 58px; }
.product-cover { aspect-ratio: 4/5; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: radial-gradient(circle at 50% 24%, rgba(199,154,59,.24), transparent 26%), linear-gradient(145deg,#25170e,#0b0907); color: var(--gold-300); font-family: var(--font-display); letter-spacing: .16em; }
.card-showcase { display: flex; gap: 1rem; flex-wrap: wrap; }
.skill-card { width: min(300px,100%); text-align: center; }
.skill-card.is-locked { opacity: .55; }
.skill-art { aspect-ratio: 3/4; display: grid; place-items: center; border-radius: 12px; background: radial-gradient(circle, rgba(74,127,167,.28), transparent 48%), #0d1115; font-size: 4rem; }
.skill-art svg { width: 72px; height: 72px; color: var(--arcane-500); fill: none; stroke: currentColor; stroke-width: 1.5; }
.profile-panel { max-width: 980px; margin: 0 auto; }
.profile-banner { display: flex; align-items: center; gap: 1rem; padding-bottom: 1.4rem; border-bottom: 1px solid var(--line-soft); }
.profile-avatar { width: 78px; height: 78px; display: grid; place-items: center; border: 2px solid var(--gold-500); border-radius: 50%; background: linear-gradient(145deg,#3c2a1b,#12100e); color: var(--gold-300); font-family: var(--font-display); font-size: 1.6rem; }
.novice-badge { margin-left: auto; padding: .45rem .7rem; border: 1px solid var(--arcane-500); border-radius: 999px; color: #a8d6f3; font-size: .75rem; }
.profile-details { margin-top: 1.2rem; display: grid; grid-template-columns: repeat(2,1fr); gap: .8rem; }
.profile-details article { padding: 1rem; border: 1px solid var(--line-soft); border-radius: var(--radius-sm); background: rgba(255,255,255,.02); }
.profile-details small { display: block; margin-bottom: .35rem; color: var(--muted); }
.profile-shortcuts { margin-top: 1.1rem; display: grid; grid-template-columns: repeat(4,1fr); gap: .8rem; }
.shortcut-card { min-height: 104px; padding: 1rem; display: grid; align-content: start; gap: .35rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)); color: var(--parchment-100); text-align: left; cursor: pointer; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.shortcut-card:hover { transform: translateY(-2px); border-color: var(--gold-500); background: rgba(199,154,59,.08); }
.shortcut-card strong { font-family: var(--font-display); color: var(--gold-300); }
.shortcut-card small { color: var(--muted); line-height: 1.45; }
.profile-actions { margin-top: 1.2rem; display: flex; gap: .8rem; justify-content: flex-end; flex-wrap: wrap; }

footer { padding: 3rem clamp(1rem,5vw,5rem); display: grid; grid-template-columns: 1.2fr .8fr auto; gap: 2rem; align-items: end; border-top: 1px solid var(--line); background: #060504; }
footer strong { font-family: var(--font-display); }
footer p, footer small { color: var(--muted); }
.footer-links { display: flex; gap: 1rem; flex-wrap: wrap; }

.auth-dialog { width: min(940px, calc(100% - 2rem)); max-width: 940px; max-height: min(760px, 92svh); margin: auto; padding: 0; overflow: hidden; border: 1px solid rgba(199,154,59,.45); border-radius: var(--radius-lg); background: var(--panel-strong); color: var(--parchment-200); box-shadow: var(--shadow-lg); }
.auth-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(7px); }
.auth-layout { min-height: 620px; display: grid; grid-template-columns: .66fr 1.34fr; }
.auth-art { position: relative; overflow: hidden; background-image: image-set(url('assets/images/forja-dos-mundos-cover.avif') type('image/avif'), url('assets/images/forja-dos-mundos-cover.webp') type('image/webp')); background-size: cover; background-position: 42% center; }
.auth-art-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.86)), linear-gradient(90deg, transparent, rgba(10,8,7,.55)); }
.auth-art-copy { position: absolute; inset: auto 1.2rem 1.35rem; z-index: 2; max-width: 240px; }
.auth-art-copy h2 { margin: .85rem 0 .45rem; font-family: var(--font-display); font-size: 1.45rem; line-height: 1.05; }
.auth-art-copy p { color: var(--parchment-300); line-height: 1.55; font-size: .95rem; }
.auth-panel { position: relative; padding: 2rem 2.1rem 1.4rem; overflow: auto; scrollbar-color: var(--bronze-600) #0a0807; }
.dialog-close { position: absolute; top: 1rem; right: 1rem; z-index: 3; }
.auth-header { padding-right: 3rem; }
.auth-header h2 { margin: 0; font-family: var(--font-display); font-size: 2rem; }
.auth-header p:last-child { color: var(--muted); line-height: 1.55; }
.auth-tabs { margin: 1.1rem 0; padding: 4px; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #090706; }
.auth-tab { appearance: none; min-height: 40px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--muted); cursor: pointer; font-weight: 700; }
.auth-tab.active { background: linear-gradient(180deg,#34271d,#1d1712); border-color: rgba(199,154,59,.45); color: var(--gold-300); }
.auth-form { display: none; gap: .9rem; }
.auth-form.active { display: grid; }
.oauth-box { margin: .2rem 0 1rem; display: grid; gap: .5rem; }
.oauth-note { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.45; text-align: center; }
.register-social { margin-top: .35rem; }
.auth-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.auth-footnote, .auth-mode { color: var(--muted); font-size: .75rem; line-height: 1.55; }
.auth-mode { margin: 1rem 0 0; padding-top: .8rem; border-top: 1px solid var(--line-soft); text-align: center; }
.auth-mode.connected { color: #a6d7b7; }
.register-progress { margin-bottom: .4rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; }
.register-progress > span { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; background: #0a0807; color: var(--muted); font-weight: 700; position: relative; }
.register-progress > span small { position: absolute; top: 40px; white-space: nowrap; color: var(--muted); font-size: .65rem; font-weight: 500; }
.register-progress > span.active { border-color: var(--gold-500); background: rgba(199,154,59,.14); color: var(--gold-300); }
.register-progress > i { height: 1px; background: linear-gradient(90deg,var(--gold-500),var(--line)); }
.register-step { display: none; gap: .85rem; padding-top: 1.3rem; }
.register-step.active { display: grid; }
.role-picker { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; border: 0; }
.role-picker legend { grid-column: 1/-1; margin-bottom: .25rem; color: var(--parchment-300); font-size: .86rem; font-weight: 600; }
.role-picker label { cursor: pointer; }
.role-picker input { position: absolute; opacity: 0; pointer-events: none; }
.role-picker label > span { min-height: 94px; padding: .8rem; display: grid; align-content: center; gap: .25rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #0b0908; text-align: center; transition: border-color .2s, background .2s, transform .2s; }
.role-picker label:hover > span { transform: translateY(-2px); border-color: var(--bronze-500); }
.role-picker input:checked + span { border-color: var(--gold-500); background: rgba(199,154,59,.12); box-shadow: 0 0 0 2px rgba(199,154,59,.08); }
.role-picker strong { font-family: var(--font-display); color: var(--gold-300); }
.role-picker small { color: var(--muted); line-height: 1.35; }
.password-strength { display: grid; gap: .35rem; }
.password-strength > span { height: 5px; overflow: hidden; border-radius: 999px; background: #25211d; }
.password-strength i { display: block; width: 0; height: 100%; background: var(--danger); transition: width .2s, background .2s; }
.password-strength small { color: var(--muted); }
.check-option.terms { align-items: flex-start; line-height: 1.45; }
.register-actions { display: grid; grid-template-columns: .6fr 1fr; gap: .7rem; }

@keyframes glow-breathe { 0%,100% { opacity:.5; transform:translateX(-50%) scale(.96); } 50% { opacity:.72; transform:translateX(-50%) scale(1.04); } }
@keyframes fog-drift { from { transform: translate3d(-4%,2%,0) scale(.95); } to { transform: translate3d(18%,-8%,0) scale(1.15); } }
@keyframes ember-rise { from { transform: translate3d(0,0,0) scale(.8); opacity:0; } 12% { opacity:.9; } to { transform: translate3d(var(--drift), -105vh,0) scale(.1); opacity:0; } }
@keyframes page-in { from { opacity:0; transform: translateY(10px); } to { opacity:1; transform:none; } }

@media (max-width: 1020px) {
  .desktop-nav { display: none; }
  .mobile-only { display: inline-grid; }
  .hero { grid-template-columns: 1fr; padding-top: 4rem; }
  .hero-copy { text-align: center; }
  .hero-copy > p:not(.eyebrow) { margin-left: auto; margin-right: auto; }
  .hero-actions, .hero-facts { justify-content: center; }
  .hero-art { width: min(760px,100%); margin: 0 auto; }
  .hub-grid, .feature-grid, .product-grid, .profile-shortcuts { grid-template-columns: repeat(2,1fr); }
  footer { grid-template-columns: 1fr 1fr; }
  footer small { grid-column: 1/-1; }
}

@media (max-width: 760px) {
  .topbar { padding: 0 .75rem; gap: .5rem; }
  .brand { min-width: 0; }
  .brand strong { font-size: .78rem; }
  .brand small { display: none; }
  #loginButton span { display: none; }
  #loginButton { width: 42px; padding: 0; }
  .arrival-content { padding: 1rem; }
  .arrival h1 { font-size: clamp(2.7rem,14vw,5rem); }
  .arrival h1 span { font-size: .38em; letter-spacing: .2em; padding-left: .2em; }
  .arrival-slogan { font-size: .92rem; }
  .gate-seal { width: 86px; }
  .hero { min-height: auto; padding: 4rem 0 3.5rem; }
  .hero-copy h2 { font-size: clamp(2.4rem,12vw,4rem); }
  .hub-grid, .feature-grid, .product-grid, .profile-details, .profile-shortcuts { grid-template-columns: 1fr; }
  .hub-card { min-height: 132px; }
  .discord-cta { align-items: flex-start; flex-direction: column; }
  .auth-dialog { width: calc(100% - 1rem); max-height: 94svh; }
  .auth-layout { min-height: auto; grid-template-columns: 1fr; }
  .auth-art { display: none; }
  .auth-panel { padding: 1.35rem 1rem 1rem; }
  .form-grid, .role-picker { grid-template-columns: 1fr; }
  .role-picker label > span { min-height: 70px; }
  .auth-row { align-items: flex-start; flex-direction: column; }
  .register-actions { grid-template-columns: 1fr; }
  footer { grid-template-columns: 1fr; }
  footer small { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* ==============================
   PAINEL DO AVENTUREIRO — v0.6
   ============================== */
.dashboard-page {
  width: var(--container);
  margin: 0 auto;
  padding: 3.2rem 0 5rem;
}
.dashboard-hero {
  position: relative;
  overflow: hidden;
  min-height: 230px;
  padding: clamp(1.4rem, 4vw, 2.5rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(circle at 88% 18%, rgba(74,127,167,.18), transparent 28%),
    radial-gradient(circle at 8% 90%, rgba(208,74,40,.16), transparent 30%),
    linear-gradient(135deg, rgba(24,18,14,.98), rgba(9,8,7,.96));
  box-shadow: var(--shadow-lg);
}
.dashboard-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 0 58%, rgba(255,255,255,.025) 58.4% 58.8%, transparent 59.2%);
}
.dashboard-identity {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.dashboard-avatar {
  flex: 0 0 clamp(82px, 11vw, 112px);
  width: clamp(82px, 11vw, 112px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 2px solid var(--gold-500);
  border-radius: 50%;
  background: radial-gradient(circle at 30% 20%, rgba(239,207,135,.2), transparent 35%), linear-gradient(145deg, #2b2119, #0b0908);
  color: var(--gold-300);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.25rem);
  box-shadow: 0 0 0 6px rgba(199,154,59,.06), var(--glow-gold);
}
.dashboard-identity h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.6rem);
  line-height: 1.05;
}
.dashboard-identity h2 span { color: var(--gold-300); }
.dashboard-identity > div > p:not(.eyebrow) { margin: .65rem 0 0; max-width: 650px; color: var(--parchment-300); line-height: 1.65; }
.dashboard-badges { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: .55rem; }
.dashboard-badges > span { min-height: 30px; padding: .35rem .7rem; display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.03); color: var(--gold-300); font-size: .76rem; font-weight: 700; }

.dashboard-stats {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.dashboard-stats article {
  min-height: 136px;
  padding: 1.15rem;
  display: grid;
  align-content: center;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}
.dashboard-stats small { color: var(--muted); text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; }
.dashboard-stats strong { margin: .25rem 0; color: var(--gold-300); font-family: var(--font-display); font-size: 2.3rem; }
.dashboard-stats span { color: var(--parchment-300); font-size: .8rem; }

.dashboard-grid {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: 1rem;
}
.dashboard-panel {
  padding: clamp(1.15rem, 3vw, 1.7rem);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--panel);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
.dashboard-panel header h3 { margin: 0; font-family: var(--font-display); font-size: 1.45rem; }
.dashboard-actions {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .75rem;
}
.dashboard-action {
  min-height: 112px;
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: .85rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  color: var(--parchment-100);
  text-align: left;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.dashboard-action:hover { transform: translateY(-2px); border-color: var(--gold-500); background: rgba(199,154,59,.08); }
.dashboard-action svg { flex: 0 0 42px; width: 42px; height: 42px; padding: .55rem; border: 1px solid var(--line); border-radius: 10px; fill: none; stroke: var(--gold-300); stroke-width: 1.7; }
.dashboard-action strong { display: block; margin-bottom: .35rem; font-family: var(--font-display); color: var(--gold-300); }
.dashboard-action small { color: var(--muted); line-height: 1.4; }

.journey-progress { margin: 1rem 0; display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: center; }
.journey-progress > span { height: 8px; overflow: hidden; border-radius: 999px; background: #25211d; }
.journey-progress i { display: block; width: 25%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--bronze-500), var(--gold-300)); box-shadow: 0 0 15px rgba(199,154,59,.35); }
.journey-progress strong { color: var(--gold-300); }
.journey-list { margin: 0; padding: 0; display: grid; gap: .7rem; list-style: none; }
.journey-list li { display: grid; grid-template-columns: 34px 1fr; gap: .7rem; align-items: start; color: var(--muted); }
.journey-list li > span { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #0b0908; color: var(--muted); font-size: .75rem; font-weight: 700; }
.journey-list li.completed > span { border-color: var(--success); background: rgba(77,140,105,.15); color: #b9e0c8; }
.journey-list strong { display: block; color: var(--parchment-200); font-size: .88rem; }
.journey-list small { display: block; margin-top: .2rem; color: var(--muted); line-height: 1.4; }

.dashboard-empty { min-height: 230px; display: grid; place-items: center; align-content: center; text-align: center; }
.dashboard-empty > span { font-size: 2.5rem; }
.dashboard-empty strong { margin-top: .55rem; font-family: var(--font-display); color: var(--gold-300); }
.dashboard-empty p { max-width: 420px; color: var(--muted); line-height: 1.55; }
.activity-list { margin-top: 1rem; display: grid; gap: .75rem; }
.activity-list article { padding: .9rem; display: grid; grid-template-columns: 38px 1fr; gap: .75rem; align-items: center; border: 1px solid var(--line-soft); border-radius: var(--radius-sm); background: rgba(255,255,255,.018); }
.activity-icon { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: rgba(199,154,59,.06); }
.activity-list strong { display: block; color: var(--parchment-200); }
.activity-list small { display: block; margin-top: .2rem; color: var(--muted); line-height: 1.4; }

@media (max-width: 980px) {
  .dashboard-hero { align-items: flex-start; flex-direction: column; }
  .dashboard-stats { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .dashboard-page { padding-top: 1.3rem; }
  .dashboard-identity { align-items: flex-start; flex-direction: column; }
  .dashboard-avatar { width: 82px; flex-basis: 82px; }
  .dashboard-stats, .dashboard-actions { grid-template-columns: 1fr; }
  .dashboard-stats article { min-height: 110px; }
}

/* =========================================================
   v0.7 — Arsenal de Personagens
   ========================================================= */
.characters-page { padding-top: 3.5rem; }
.characters-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.characters-heading > div { max-width: 820px; }
.characters-toolbar { margin-bottom: 1.25rem; padding: 1rem; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(220px, .36fr); gap: 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.01)); }
.characters-empty { margin-top: 1.3rem; }
.characters-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.characters-no-results { grid-column: 1 / -1; min-height: 220px; padding: 2rem; display: grid; place-items: center; align-content: center; border: 1px dashed var(--line); border-radius: var(--radius-md); text-align: center; color: var(--muted); }
.characters-no-results strong { font-family: var(--font-display); color: var(--gold-300); }
.characters-no-results p { margin: .55rem 0 0; }
.character-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.035); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.character-card:hover { transform: translateY(-4px); border-color: rgba(199,154,59,.55); box-shadow: 0 18px 42px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.05); }
.character-card__banner { min-height: 112px; padding: 1rem; display: flex; align-items: flex-start; justify-content: space-between; background: radial-gradient(circle at 18% 34%, rgba(239,207,135,.28), transparent 20%), linear-gradient(135deg, #362113, #120e0a 70%); position: relative; overflow: hidden; }
.character-card__banner::after { content: ""; position: absolute; inset: 0; opacity: .35; background: repeating-linear-gradient(115deg, transparent 0 18px, rgba(255,255,255,.03) 18px 19px); pointer-events: none; }
.character-card--vampire .character-card__banner { background: radial-gradient(circle at 18% 34%, rgba(220,70,70,.27), transparent 22%), linear-gradient(135deg, #441517, #120809 72%); }
.character-card--paranormal .character-card__banner { background: radial-gradient(circle at 18% 34%, rgba(110,90,190,.32), transparent 22%), linear-gradient(135deg, #251842, #0d0914 72%); }
.character-card--eldritch .character-card__banner { background: radial-gradient(circle at 18% 34%, rgba(71,150,126,.3), transparent 22%), linear-gradient(135deg, #153a32, #08110f 72%); }
.character-card--storm .character-card__banner { background: radial-gradient(circle at 18% 34%, rgba(169,55,55,.3), transparent 22%), linear-gradient(135deg, #4d1718, #160909 72%); }
.character-card--arcane .character-card__banner { background: radial-gradient(circle at 18% 34%, rgba(74,127,167,.35), transparent 22%), linear-gradient(135deg, #17374b, #081017 72%); }
.character-card--forge .character-card__banner { background: radial-gradient(circle at 18% 34%, rgba(208,74,40,.33), transparent 22%), linear-gradient(135deg, #4f2112, #130a06 72%); }
.character-card__avatar { position: relative; z-index: 1; width: 68px; height: 68px; display: grid; place-items: center; border: 2px solid rgba(239,207,135,.55); border-radius: 50%; background: rgba(5,4,3,.78); color: var(--gold-300); font-family: var(--font-display); font-size: 1.45rem; font-weight: 700; box-shadow: 0 12px 28px rgba(0,0,0,.45); }
.character-card__system { position: relative; z-index: 1; max-width: 170px; padding: .38rem .65rem; border: 1px solid rgba(239,207,135,.35); border-radius: 999px; background: rgba(5,4,3,.62); color: var(--parchment-200); font-size: .69rem; font-weight: 700; text-align: right; }
.character-card__body { padding: 1.15rem; }
.character-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.character-card__heading h3 { margin: 0; font-family: var(--font-display); font-size: 1.34rem; line-height: 1.15; }
.character-card__heading .eyebrow { margin-bottom: .35rem; }
.character-menu-button { width: 36px; height: 36px; flex: 0 0 36px; }
.character-card__identity { margin: .75rem 0 .55rem; color: var(--gold-300); font-size: .82rem; font-weight: 700; }
.character-card__concept { min-height: 72px; margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.character-card__date { display: block; margin-top: .9rem; color: #7f7468; font-size: .7rem; }
.character-card__actions { margin-top: 1rem; display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.character-card__actions .btn-danger { grid-column: 1 / -1; }
.character-dialog { width: min(820px, calc(100% - 2rem)); max-width: 820px; max-height: 92svh; padding: 0; overflow: hidden; border: 1px solid rgba(199,154,59,.45); border-radius: var(--radius-lg); background: var(--panel-strong); color: var(--parchment-200); box-shadow: var(--shadow-lg); }
.character-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(7px); }
.character-form { position: relative; max-height: 92svh; padding: 2rem; overflow: auto; display: grid; gap: 1rem; scrollbar-color: var(--bronze-600) #0a0807; }
.character-dialog__header { padding-right: 3.5rem; }
.character-dialog__header h2 { margin: 0; font-family: var(--font-display); font-size: clamp(1.8rem, 4vw, 2.5rem); }
.character-dialog__header > p:last-child { margin-bottom: 0; color: var(--muted); line-height: 1.6; }
.character-form__triple { grid-template-columns: 1fr 1fr .38fr; }
.character-form__notice { padding: .85rem 1rem; border: 1px solid rgba(74,127,167,.35); border-radius: var(--radius-sm); background: rgba(74,127,167,.08); color: var(--parchment-300); font-size: .8rem; line-height: 1.55; }
.character-form__notice strong { color: #9fc8e6; }
.character-form__actions { display: flex; justify-content: flex-end; gap: .7rem; flex-wrap: wrap; }

@media (max-width: 1020px) {
  .characters-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .characters-page { padding-top: 1.5rem; }
  .characters-heading { align-items: stretch; flex-direction: column; }
  .characters-heading .btn { width: 100%; }
  .characters-toolbar { grid-template-columns: 1fr; }
  .characters-grid { grid-template-columns: 1fr; }
  .character-form { padding: 1.25rem 1rem; }
  .character-form__triple { grid-template-columns: 1fr; }
  .character-form__actions { display: grid; grid-template-columns: 1fr; }
  .character-card__concept { min-height: 0; }
}

/* Forge Character Engine — Fase 1: Forge UI, Grimório e ficha visual */
.grimorio-page { padding-top: 3.25rem; }
.grimorio-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.grimorio-heading > div { max-width: 850px; }
.grimorio-heading h2 { max-width: 760px; }
.grimorio-toolbar { margin-bottom: 1.35rem; padding: 1rem; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(220px, .36fr); gap: 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.008)); box-shadow: inset 0 1px 0 rgba(255,255,255,.035); }
.grimorio-empty { margin-top: 1.3rem; }
.grimorio-stage { position: relative; min-height: 520px; }
.grimorio-shelf { position: relative; overflow: hidden; padding: 1.1rem 1.2rem 2rem; border: 1px solid rgba(199,154,59,.28); border-radius: 24px; background: radial-gradient(circle at 50% 0%, rgba(199,154,59,.08), transparent 38%), linear-gradient(180deg, #15100c 0%, #090705 100%); box-shadow: 0 32px 80px rgba(0,0,0,.45), inset 0 0 80px rgba(0,0,0,.5); }
.grimorio-shelf::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .18; background: repeating-linear-gradient(90deg, transparent 0 48px, rgba(255,255,255,.025) 48px 49px), linear-gradient(115deg, rgba(255,255,255,.04), transparent 42%); }
.grimorio-shelf__ornament { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; color: var(--gold-300); font-family: var(--font-display); font-size: .78rem; letter-spacing: .18em; text-align: center; }
.grimorio-shelf__ornament span { height: 1px; background: linear-gradient(90deg, transparent, var(--line), transparent); }
.grimorio-books { position: relative; z-index: 1; min-height: 390px; padding: 2.4rem 1.2rem 1rem; display: flex; align-items: flex-end; justify-content: center; gap: clamp(.65rem, 1.5vw, 1.15rem); flex-wrap: wrap; perspective: 1100px; }
.grimorio-book { --book-a: #6f351c; --book-b: #2a1109; position: relative; width: clamp(86px, 9vw, 122px); height: clamp(280px, 31vw, 350px); padding: 0; border: 0; background: transparent; color: var(--parchment-100); cursor: pointer; transform-style: preserve-3d; transition: transform .28s ease, filter .28s ease; }
.grimorio-book:hover { transform: translateY(-14px) rotateY(-5deg); filter: brightness(1.12); }
.grimorio-book:focus-visible { outline: 3px solid rgba(74,127,167,.75); outline-offset: 6px; border-radius: 8px; }
.grimorio-book__spine { position: absolute; inset: 0 10px 26px 0; padding: 1rem .55rem; display: flex; align-items: center; flex-direction: column; justify-content: space-between; border: 1px solid color-mix(in srgb, var(--book-a), white 22%); border-radius: 7px 3px 3px 7px; background: linear-gradient(90deg, rgba(0,0,0,.28), transparent 18%, rgba(255,255,255,.09) 50%, transparent 77%, rgba(0,0,0,.4)), linear-gradient(180deg, var(--book-a), var(--book-b)); box-shadow: 9px 14px 22px rgba(0,0,0,.5), inset 0 0 0 3px rgba(0,0,0,.16); }
.grimorio-book__spine::before, .grimorio-book__spine::after { content: ""; position: absolute; left: 8px; right: 8px; height: 5px; border-top: 1px solid rgba(239,207,135,.42); border-bottom: 1px solid rgba(239,207,135,.25); }
.grimorio-book__spine::before { top: 54px; }
.grimorio-book__spine::after { bottom: 54px; }
.grimorio-book__top { position: absolute; top: -5px; left: 7px; right: 4px; height: 15px; border-radius: 4px 4px 0 0; background: linear-gradient(180deg, #efe3c6, #9b8b6c); transform: skewX(-18deg); transform-origin: left bottom; }
.grimorio-book__pages { position: absolute; right: 0; top: 8px; bottom: 33px; width: 13px; border-radius: 0 3px 3px 0; background: repeating-linear-gradient(180deg, #d7c6a5 0 2px, #aa9676 2px 3px); box-shadow: inset 3px 0 5px rgba(0,0,0,.28); }
.grimorio-book__sigil { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(239,207,135,.65); border-radius: 50%; background: rgba(0,0,0,.25); color: var(--gold-300); font-family: var(--font-display); font-size: 1.2rem; box-shadow: inset 0 0 12px rgba(0,0,0,.45); }
.grimorio-book__title { writing-mode: vertical-rl; transform: rotate(180deg); max-height: 170px; overflow: hidden; color: var(--parchment-100); font-family: var(--font-display); font-size: clamp(.73rem, 1.1vw, .9rem); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-shadow: 0 2px 4px rgba(0,0,0,.75); }
.grimorio-book__count { font-size: .58rem; line-height: 1.25; color: var(--parchment-300); text-align: center; }
.grimorio-book__last { position: absolute; left: 0; right: 10px; bottom: 0; overflow: hidden; color: #8e8373; font-size: .56rem; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.grimorio-book--vampire { --book-a: #7d2027; --book-b: #21070a; }
.grimorio-book--paranormal { --book-a: #4d337e; --book-b: #140b25; }
.grimorio-book--eldritch { --book-a: #236657; --book-b: #071c17; }
.grimorio-book--storm { --book-a: #8a2f2c; --book-b: #220908; }
.grimorio-book--arcane { --book-a: #275b7d; --book-b: #081a27; }
.grimorio-book--forge { --book-a: #9a431d; --book-b: #2a0e05; }
.grimorio-book--neutral { --book-a: #514b43; --book-b: #171411; }
.grimorio-shelf__base { position: relative; z-index: 1; height: 30px; display: flex; justify-content: space-around; border: 1px solid #6e431f; border-radius: 4px 4px 11px 11px; background: linear-gradient(180deg, #6a3c1c, #25130a); box-shadow: 0 15px 25px rgba(0,0,0,.5), inset 0 2px 0 rgba(255,255,255,.08); }
.grimorio-shelf__base i { width: 22%; border-left: 1px solid rgba(0,0,0,.32); border-right: 1px solid rgba(255,255,255,.035); }
.grimorio-chapter { padding: 1.1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(180deg, rgba(26,20,15,.94), rgba(8,7,6,.95)); box-shadow: var(--shadow-lg); }
.grimorio-chapter__header { margin-bottom: 1rem; padding: .4rem .4rem 1rem; display: flex; align-items: center; gap: 1rem; border-bottom: 1px solid var(--line-soft); }
.grimorio-chapter__header > div { flex: 1; }
.grimorio-chapter__header h3 { margin: 0; color: var(--gold-300); font-family: var(--font-display); font-size: clamp(1.45rem, 3vw, 2.25rem); }
.grimorio-chapter__header p { margin: .35rem 0 0; color: var(--muted); }
.character-folios { display: grid; gap: .9rem; }
.character-folio { --folio-accent: var(--gold-500); position: relative; padding: 1rem; display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; align-items: center; gap: 1rem; overflow: hidden; border: 1px solid color-mix(in srgb, var(--folio-accent), transparent 52%); border-radius: 13px; background: linear-gradient(105deg, color-mix(in srgb, var(--folio-accent), transparent 91%), rgba(255,255,255,.018) 34%, rgba(0,0,0,.22)); box-shadow: inset 0 1px 0 rgba(255,255,255,.035); }
.character-folio::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--folio-accent); box-shadow: 0 0 20px color-mix(in srgb, var(--folio-accent), transparent 35%); }
.character-folio--vampire { --folio-accent: #a9323b; }
.character-folio--paranormal { --folio-accent: #7452b5; }
.character-folio--eldritch { --folio-accent: #3c9b82; }
.character-folio--storm { --folio-accent: #b4443e; }
.character-folio--arcane { --folio-accent: #4a8fb9; }
.character-folio--forge { --folio-accent: #d05d2d; }
.character-folio__seal { width: 62px; height: 62px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--folio-accent), white 24%); border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--folio-accent), transparent 64%), rgba(4,3,3,.92) 72%); color: var(--parchment-100); font-family: var(--font-display); font-size: 1.18rem; font-weight: 700; }
.character-folio__heading { display: flex; justify-content: space-between; gap: 1rem; }
.character-folio__heading .eyebrow { margin-bottom: .3rem; }
.character-folio__heading h3 { margin: 0; font-family: var(--font-display); font-size: 1.35rem; }
.character-folio__tier { align-self: flex-start; padding: .3rem .55rem; border: 1px solid color-mix(in srgb, var(--folio-accent), transparent 45%); border-radius: 999px; color: var(--folio-accent); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.character-folio__identity { margin: .55rem 0 .3rem; color: var(--gold-300); font-size: .82rem; font-weight: 700; }
.character-folio__concept { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.45; }
.character-folio__date { display: block; margin-top: .55rem; color: #7f7468; font-size: .67rem; }
.character-folio__actions { width: 245px; display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.character-folio__actions .btn-danger { grid-column: 2; }

.fce-page { --fce-accent: var(--gold-500); padding-top: 2rem; }
.fce-page[data-sheet-theme="blood"] { --fce-accent: #a9323b; }
.fce-page[data-sheet-theme="violet"] { --fce-accent: #7752b7; }
.fce-page[data-sheet-theme="teal"] { --fce-accent: #3c9b82; }
.fce-page[data-sheet-theme="ember"] { --fce-accent: #d05d2d; }
.fce-commandbar { margin-bottom: 1rem; display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.fce-commandbar__actions { display: flex; gap: .65rem; flex-wrap: wrap; }
.fce-sheet { position: relative; overflow: hidden; border: 1px solid color-mix(in srgb, var(--fce-accent), transparent 48%); border-radius: 26px; background: radial-gradient(circle at 25% -10%, color-mix(in srgb, var(--fce-accent), transparent 84%), transparent 34%), linear-gradient(155deg, #16120f 0%, #090706 58%, #050403 100%); box-shadow: 0 38px 100px rgba(0,0,0,.62), inset 0 1px 0 rgba(255,255,255,.05); }
.fce-sheet::before { content: ""; position: absolute; inset: 10px; border: 1px solid color-mix(in srgb, var(--fce-accent), transparent 75%); border-radius: 19px; pointer-events: none; }
.fce-sheet__hero { position: relative; padding: 2rem; display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap: 1.6rem; align-items: center; border-bottom: 1px solid var(--line-soft); background: linear-gradient(90deg, color-mix(in srgb, var(--fce-accent), transparent 88%), transparent 42%); }
.fce-portrait { position: relative; width: 150px; aspect-ratio: 4 / 5; display: grid; place-items: center; border: 2px solid color-mix(in srgb, var(--fce-accent), white 15%); clip-path: polygon(14% 0, 86% 0, 100% 12%, 100% 88%, 86% 100%, 14% 100%, 0 88%, 0 12%); background: radial-gradient(circle, color-mix(in srgb, var(--fce-accent), transparent 52%), #080605 70%); box-shadow: 0 18px 38px rgba(0,0,0,.5), inset 0 0 36px rgba(0,0,0,.5); }
.fce-portrait::before { content: ""; position: absolute; inset: 8px; border: 1px solid color-mix(in srgb, var(--fce-accent), transparent 52%); clip-path: inherit; }
.fce-portrait strong { font-family: var(--font-display); font-size: 2.5rem; color: var(--parchment-100); text-shadow: 0 0 22px color-mix(in srgb, var(--fce-accent), transparent 40%); }
.fce-portrait small { position: absolute; bottom: 16px; color: var(--gold-300); font-size: .57rem; letter-spacing: .13em; text-transform: uppercase; }
.fce-identity .eyebrow { color: color-mix(in srgb, var(--fce-accent), white 28%); }
.fce-identity h2 { margin: 0; font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1; }
.fce-identity__meta { margin-top: .8rem; display: flex; gap: .55rem; flex-wrap: wrap; }
.fce-identity__meta span { padding: .34rem .58rem; border: 1px solid var(--line); border-radius: 999px; background: rgba(0,0,0,.22); color: var(--parchment-300); font-size: .7rem; }
.fce-identity__concept { max-width: 760px; margin: .9rem 0 0; color: var(--muted); line-height: 1.55; }
.fce-rank { min-width: 150px; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid color-mix(in srgb, var(--fce-accent), transparent 52%); border-radius: 16px; overflow: hidden; background: rgba(0,0,0,.28); }
.fce-rank div { padding: 1rem .7rem; display: grid; place-items: center; gap: .2rem; }
.fce-rank div + div { border-left: 1px solid var(--line-soft); }
.fce-rank small { color: var(--muted); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.fce-rank strong { font-family: var(--font-display); font-size: 1.5rem; color: var(--parchment-100); }
.fce-rank em { grid-column: 1 / -1; padding: .55rem; border-top: 1px solid var(--line-soft); color: color-mix(in srgb, var(--fce-accent), white 20%); font-size: .65rem; font-style: normal; text-align: center; }
.fce-resources { position: relative; z-index: 1; padding: 1rem 2rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; border-bottom: 1px solid var(--line-soft); }
.fce-resource { padding: .8rem; border: 1px solid var(--line-soft); border-radius: 10px; background: rgba(0,0,0,.22); }
.fce-resource__header { margin-bottom: .5rem; display: flex; justify-content: space-between; color: var(--parchment-300); font-size: .72rem; }
.fce-resource__header strong { color: var(--parchment-100); }
.fce-resource__track { position: relative; height: 13px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; background: #030302; box-shadow: inset 0 2px 6px rgba(0,0,0,.75); }
.fce-resource__track i { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: linear-gradient(90deg, #7e1d19, #d14b3d); box-shadow: 0 0 15px rgba(209,75,61,.38); }
.fce-resource--arcane .fce-resource__track i { background: linear-gradient(90deg, #204d6b, #4a91bd); box-shadow: 0 0 15px rgba(74,145,189,.38); }
.fce-resource--blood .fce-resource__track i { background: linear-gradient(90deg, #491116, #ae2832); }
.fce-resource--sanity .fce-resource__track i { background: linear-gradient(90deg, #154d41, #3ba58a); }
.fce-resource--progress .fce-resource__track i { background: linear-gradient(90deg, #6b4916, #d4a741); }
.fce-resource__track b { position: absolute; inset: 0; opacity: .26; background: repeating-linear-gradient(90deg, transparent 0 18px, rgba(255,255,255,.28) 18px 19px); }
.fce-tabs { position: relative; z-index: 1; padding: .75rem 2rem 0; display: flex; gap: .35rem; overflow-x: auto; }
.fce-tab { min-width: max-content; padding: .7rem 1rem; border: 1px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0; background: transparent; color: var(--muted); cursor: pointer; font-family: var(--font-display); font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.fce-tab.active { border-color: var(--line); background: rgba(255,255,255,.035); color: color-mix(in srgb, var(--fce-accent), white 25%); }
.fce-panels { position: relative; z-index: 1; padding: 1.2rem 2rem 2rem; border-top: 1px solid var(--line); }
.fce-panel { animation: fce-panel-in .24s ease both; }
@keyframes fce-panel-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.fce-overview-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 1rem; }
.fce-panel-card { padding: 1rem; border: 1px solid var(--line-soft); border-radius: 13px; background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.009)); }
.fce-panel-card__heading { margin-bottom: .85rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.fce-panel-card__heading h3 { margin: 0; font-family: var(--font-display); font-size: 1rem; }
.fce-panel-card__heading small { color: var(--muted); }
.fce-attributes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.fce-attribute { position: relative; min-height: 150px; padding: .85rem; display: grid; place-items: center; align-content: center; gap: .25rem; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: radial-gradient(circle at 50% 25%, color-mix(in srgb, var(--fce-accent), transparent 88%), transparent 50%), rgba(0,0,0,.25); color: var(--parchment-100); cursor: pointer; transition: transform .2s ease, border-color .2s ease; }
.fce-attribute:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--fce-accent), transparent 25%); }
.fce-attribute__rune { position: absolute; top: 8px; left: 9px; color: #6d6254; font-size: .54rem; }
.fce-attribute small { max-width: 100%; color: var(--gold-300); font-size: .62rem; font-weight: 800; letter-spacing: .07em; text-align: center; text-transform: uppercase; }
.fce-attribute strong { font-family: var(--font-display); font-size: 2.1rem; line-height: 1; }
.fce-attribute b { min-width: 36px; padding: .25rem .45rem; border: 1px solid color-mix(in srgb, var(--fce-accent), transparent 45%); border-radius: 999px; color: color-mix(in srgb, var(--fce-accent), white 25%); font-size: .72rem; }
.fce-attribute em { color: #776d61; font-size: .55rem; font-style: normal; }
.fce-summary-list { display: grid; gap: .65rem; }
.fce-summary-list article { padding: .75rem; display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line-soft); }
.fce-summary-list article:last-child { border-bottom: 0; }
.fce-summary-list small { color: var(--muted); }
.fce-summary-list strong { color: var(--parchment-100); }
.fce-prototype-note { margin-top: 1rem; padding: .75rem; border: 1px solid rgba(200,135,49,.5); border-radius: 9px; background: rgba(200,135,49,.07); color: #dfbd80; font-size: .72rem; line-height: 1.5; }
.fce-abilities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.fce-ability { min-height: 150px; padding: .85rem; display: grid; grid-template-columns: 62px 1fr; align-items: center; gap: .75rem; border: 1px solid var(--line); border-radius: 11px; background: linear-gradient(145deg, color-mix(in srgb, var(--fce-accent), transparent 91%), rgba(0,0,0,.28)); color: var(--parchment-100); text-align: left; cursor: pointer; }
.fce-ability.is-locked { opacity: .48; filter: grayscale(.4); }
.fce-ability__art { width: 58px; height: 86px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--fce-accent), transparent 45%); border-radius: 7px; background: radial-gradient(circle, color-mix(in srgb, var(--fce-accent), transparent 55%), #080605 72%); color: var(--gold-300); font-size: 1.3rem; }
.fce-ability span:last-child { display: grid; gap: .35rem; }
.fce-ability small { color: color-mix(in srgb, var(--fce-accent), white 25%); font-size: .62rem; text-transform: uppercase; }
.fce-ability strong { font-family: var(--font-display); font-size: .88rem; }
.fce-ability em { color: var(--muted); font-size: .65rem; font-style: normal; }
.fce-inventory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.fce-inventory-slot { padding: .8rem; display: grid; grid-template-columns: 42px 1fr 34px; align-items: center; gap: .7rem; border: 1px solid var(--line-soft); border-radius: 10px; background: rgba(0,0,0,.2); }
.fce-inventory-slot > span { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--gold-300); }
.fce-inventory-slot div { display: grid; gap: .15rem; }
.fce-inventory-slot small { color: var(--muted); font-size: .6rem; text-transform: uppercase; }
.fce-inventory-slot strong { font-size: .82rem; }
.fce-inventory-slot button { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.025); color: var(--gold-300); cursor: pointer; }
.fce-timeline { position: relative; display: grid; gap: .8rem; }
.fce-timeline::before { content: ""; position: absolute; top: 10px; bottom: 10px; left: 9px; width: 1px; background: var(--line); }
.fce-timeline__entry { position: relative; padding-left: 2rem; display: grid; grid-template-columns: 1fr; }
.fce-timeline__entry > span { position: absolute; top: 7px; left: 4px; width: 11px; height: 11px; border: 2px solid #080605; border-radius: 50%; background: var(--fce-accent); box-shadow: 0 0 10px color-mix(in srgb, var(--fce-accent), transparent 32%); }
.fce-timeline__entry div { padding: .75rem; border: 1px solid var(--line-soft); border-radius: 9px; background: rgba(0,0,0,.18); }
.fce-timeline__entry small { color: var(--muted); font-size: .62rem; }
.fce-timeline__entry strong { display: block; margin: .25rem 0; color: var(--gold-300); font-family: var(--font-display); font-size: .82rem; }
.fce-timeline__entry p { margin: 0; color: var(--muted); font-size: .73rem; line-height: 1.45; }

.evolution-dialog { width: min(720px, calc(100% - 2rem)); max-height: 92svh; padding: 0; overflow: hidden; border: 1px solid rgba(199,154,59,.5); border-radius: 22px; background: #100c09; color: var(--parchment-200); box-shadow: var(--shadow-lg); }
.evolution-dialog::backdrop { background: rgba(0,0,0,.86); backdrop-filter: blur(8px); }
.evolution-form { position: relative; padding: 1.5rem; overflow-y: auto; max-height: 92svh; }
.evolution-header { padding-right: 3rem; }
.evolution-header h2 { margin: 0; font-family: var(--font-display); font-size: clamp(1.6rem, 4vw, 2.45rem); }
.evolution-header p:last-child { color: var(--muted); }
.evolution-levels { margin: 1rem 0; display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; }
.evolution-levels article { min-height: 120px; display: grid; place-items: center; align-content: center; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.02); }
.evolution-levels small { color: var(--muted); font-size: .64rem; text-transform: uppercase; }
.evolution-levels strong { font-family: var(--font-display); font-size: 2.2rem; color: var(--gold-300); }
.evolution-levels > span { color: var(--forge-500); font-size: 1.5rem; }
.evolution-tier-notice { margin: 0 0 1rem; padding: .7rem; border: 1px solid rgba(74,127,167,.45); border-radius: 8px; background: rgba(74,127,167,.08); color: #9dc2dc; text-align: center; }
.evolution-gains { margin: 0; padding: 0; display: grid; gap: .65rem; list-style: none; }
.evolution-gains li { padding: .75rem; display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: .7rem; border: 1px solid var(--line-soft); border-radius: 9px; }
.evolution-gains li > span { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--gold-300); }
.evolution-gains div { display: grid; gap: .2rem; }
.evolution-gains small { color: var(--muted); line-height: 1.4; }
.evolution-actions { margin-top: 1rem; display: flex; justify-content: flex-end; gap: .6rem; }

@media (max-width: 980px) {
  .character-folio { grid-template-columns: 64px 1fr; }
  .character-folio__actions { grid-column: 1 / -1; width: 100%; grid-template-columns: repeat(4, 1fr); }
  .character-folio__actions .btn-danger { grid-column: auto; }
  .fce-sheet__hero { grid-template-columns: 130px 1fr; }
  .fce-portrait { width: 120px; }
  .fce-rank { grid-column: 1 / -1; width: 100%; }
  .fce-overview-grid { grid-template-columns: 1fr; }
  .fce-abilities { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .grimorio-page, .fce-page { padding-top: 1.25rem; }
  .grimorio-heading { align-items: stretch; flex-direction: column; }
  .grimorio-heading .btn { width: 100%; }
  .grimorio-toolbar { grid-template-columns: 1fr; }
  .grimorio-shelf { padding-inline: .45rem; }
  .grimorio-books { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding-inline: .75rem; scroll-snap-type: x mandatory; }
  .grimorio-book { flex: 0 0 96px; height: 300px; scroll-snap-align: center; }
  .grimorio-shelf__ornament { font-size: .62rem; }
  .grimorio-chapter { padding: .75rem; }
  .grimorio-chapter__header { align-items: flex-start; flex-direction: column; }
  .character-folio { padding: .85rem; grid-template-columns: 54px 1fr; gap: .7rem; }
  .character-folio__seal { width: 48px; height: 48px; font-size: .9rem; }
  .character-folio__heading { flex-direction: column; gap: .45rem; }
  .character-folio__tier { align-self: flex-start; }
  .character-folio__actions { grid-template-columns: 1fr 1fr; }
  .fce-commandbar { align-items: stretch; flex-direction: column; }
  .fce-commandbar__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .fce-commandbar__actions .btn { width: 100%; }
  .fce-sheet__hero { padding: 1.4rem 1rem; grid-template-columns: 1fr; text-align: center; }
  .fce-portrait { margin-inline: auto; }
  .fce-identity__meta { justify-content: center; }
  .fce-resources { padding: 1rem; grid-template-columns: 1fr; }
  .fce-tabs { padding-inline: 1rem; }
  .fce-panels { padding: 1rem; }
  .fce-attributes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fce-abilities, .fce-inventory { grid-template-columns: 1fr; }
  .evolution-levels { grid-template-columns: 1fr; }
  .evolution-levels > span { transform: rotate(90deg); }
  .evolution-actions { flex-direction: column-reverse; }
  .evolution-actions .btn { width: 100%; }
}

/* ========================================================================== */
/* v0.9 — FCE Core e primeiro motor individual                                */
/* ========================================================================== */

.fce-engine-banner {
  margin: 0 1rem 1rem;
  padding: .9rem 1rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  border: 1px solid rgba(104, 127, 143, .34);
  border-radius: 12px;
  background: linear-gradient(100deg, rgba(50, 72, 86, .16), rgba(0, 0, 0, .22));
}
.fce-engine-banner.is-active {
  border-color: color-mix(in srgb, var(--fce-accent), transparent 45%);
  background: linear-gradient(100deg, color-mix(in srgb, var(--fce-accent), transparent 91%), rgba(0, 0, 0, .24));
}
.fce-engine-banner.is-pending {
  border-color: rgba(200, 135, 49, .58);
  box-shadow: 0 0 22px rgba(200, 135, 49, .08);
}
.fce-engine-banner__copy { min-width: 0; display: grid; gap: .22rem; }
.fce-engine-banner__heading { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.fce-engine-banner strong { color: var(--gold-300); font-family: var(--font-display); font-size: .88rem; }
.fce-engine-banner span { padding: .2rem .5rem; border: 1px solid var(--line); border-radius: 999px; color: #c5b393; font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fce-engine-banner.is-active span { color: #f0c97f; border-color: rgba(200, 135, 49, .44); background: rgba(200, 135, 49, .08); }
.fce-engine-banner p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.45; }

.fce-prototype-note.is-live {
  border-color: rgba(77, 140, 105, .58);
  background: rgba(77, 140, 105, .08);
  color: #a9d8bb;
}

.fce-empty-module {
  grid-column: 1 / -1;
  min-height: 170px;
  padding: 1.2rem;
  display: grid;
  place-items: center;
  align-content: center;
  gap: .55rem;
  border: 1px dashed var(--line);
  border-radius: 12px;
  background: rgba(0,0,0,.18);
  text-align: center;
}
.fce-empty-module strong { color: var(--gold-300); font-family: var(--font-display); }
.fce-empty-module p { max-width: 520px; margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }

.character-engine-guide {
  margin: .85rem 0;
  padding: 1rem;
  border: 1px solid rgba(200, 135, 49, .46);
  border-radius: 13px;
  background: linear-gradient(145deg, rgba(200, 135, 49, .08), rgba(0,0,0,.2));
}
.character-engine-guide__heading { display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; margin-bottom: .8rem; }
.character-engine-guide__heading div { display: grid; gap: .2rem; }
.character-engine-guide__heading strong { color: var(--gold-300); font-family: var(--font-display); }
.character-engine-guide__heading small { color: var(--muted); line-height: 1.4; }
.character-engine-badge { padding: .25rem .55rem; border: 1px solid rgba(77, 140, 105, .5); border-radius: 999px; color: #9dd3b2; background: rgba(77, 140, 105, .08); font-size: .6rem; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.character-engine-guide .field small { display: block; margin-top: .35rem; color: #8f8272; font-size: .62rem; line-height: 1.4; }
#manualRaceField.is-engine-controlled,
#manualClassField.is-engine-controlled { display: none; }

.engine-dialog {
  width: min(980px, calc(100% - 1.5rem));
  max-height: 94svh;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(199,154,59,.52);
  border-radius: 22px;
  background: #0f0c0a;
  color: var(--parchment-200);
  box-shadow: var(--shadow-lg);
}
.engine-dialog::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(9px); }
.engine-setup-form { position: relative; max-height: 94svh; padding: 1.35rem; overflow-y: auto; }
.engine-setup-header { padding-right: 3rem; display: grid; gap: .35rem; }
.engine-setup-header h2 { margin: 0; font-family: var(--font-display); font-size: clamp(1.45rem, 4vw, 2.2rem); }
.engine-setup-header p:last-child { margin: 0; color: var(--muted); line-height: 1.5; }
.engine-setup-grid { margin-top: 1rem; display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.engine-choice-info {
  min-height: 92px;
  margin-top: .45rem;
  padding: .7rem;
  display: grid;
  align-content: start;
  gap: .2rem;
  border: 1px solid var(--line-soft);
  border-radius: 9px;
  background: rgba(0,0,0,.2);
}
.engine-choice-info strong { color: var(--gold-300); font-family: var(--font-display); font-size: .78rem; }
.engine-choice-info small { color: var(--muted); line-height: 1.4; }
.engine-choice-info span { color: #d9ba7b; font-size: .65rem; line-height: 1.35; }
.engine-setup-section { margin-top: 1rem; padding: 1rem; border: 1px solid var(--line-soft); border-radius: 13px; background: rgba(255,255,255,.015); }
.engine-setup-section__header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .85rem; }
.engine-setup-section__header div { display: grid; gap: .2rem; }
.engine-setup-section__header h3 { margin: 0; color: var(--parchment-100); font-family: var(--font-display); font-size: .95rem; }
.engine-setup-section__header p { margin: 0; color: var(--muted); font-size: .68rem; }
.engine-points { min-width: 94px; padding: .55rem .7rem; display: grid; place-items: center; border: 1px solid rgba(200,135,49,.44); border-radius: 9px; background: rgba(200,135,49,.06); }
.engine-points small { color: var(--muted); font-size: .56rem; text-transform: uppercase; }
.engine-points strong { color: var(--gold-300); font-family: var(--font-display); font-size: 1.25rem; }
.engine-points strong.is-complete { color: #8ed0a7; }
.engine-points strong.is-invalid { color: #ef7f78; }
.engine-attribute-builder-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.engine-attribute-builder { padding: .75rem; display: grid; gap: .6rem; border: 1px solid var(--line-soft); border-radius: 10px; background: rgba(0,0,0,.2); }
.engine-attribute-builder > div:first-child { display: grid; gap: .08rem; }
.engine-attribute-builder small { color: var(--gold-300); font-size: .58rem; font-weight: 800; }
.engine-attribute-builder strong { font-family: var(--font-display); font-size: .78rem; }
.engine-attribute-builder em { color: #a9cbb3; font-size: .62rem; font-style: normal; }
.engine-attribute-builder p { margin: 0; color: #7f7467; font-size: .57rem; }
.engine-stepper { display: grid; grid-template-columns: 34px minmax(38px, 1fr) 34px; align-items: center; gap: .35rem; }
.engine-stepper button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 7px; background: rgba(199,154,59,.08); color: var(--gold-300); cursor: pointer; }
.engine-stepper button:hover:not(:disabled) { border-color: var(--gold-500); background: rgba(199,154,59,.16); }
.engine-stepper button:disabled { opacity: .28; cursor: not-allowed; }
.engine-stepper b { display: grid; place-items: center; min-height: 34px; border: 1px solid var(--line-soft); border-radius: 7px; font-family: var(--font-display); }
.engine-choice-grid,
.evolution-ability-grid,
.evolution-specialization-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.engine-choice-card { position: relative; min-height: 88px; display: block; cursor: pointer; }
.engine-choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.engine-choice-card span { height: 100%; padding: .75rem; display: grid; align-content: center; gap: .2rem; border: 1px solid var(--line-soft); border-radius: 10px; background: rgba(0,0,0,.2); transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.engine-choice-card:hover span { transform: translateY(-2px); border-color: var(--line); }
.engine-choice-card.is-selected span,
.engine-choice-card input:checked + span { border-color: rgba(199,154,59,.72); background: rgba(199,154,59,.09); box-shadow: inset 3px 0 0 var(--gold-500); }
.engine-choice-card input:disabled + span { opacity: .38; cursor: not-allowed; }
.engine-choice-card small { color: var(--gold-300); font-size: .57rem; font-weight: 800; text-transform: uppercase; }
.engine-choice-card strong { font-family: var(--font-display); font-size: .76rem; }
.engine-choice-card em { color: var(--muted); font-size: .61rem; font-style: normal; line-height: 1.35; }
.engine-choice-empty { grid-column: 1 / -1; padding: 1rem; border: 1px dashed var(--line); border-radius: 9px; color: var(--muted); text-align: center; font-size: .7rem; }
.engine-setup-validation,
.evolution-validation { margin: 1rem 0 0; padding: .7rem .8rem; border: 1px solid rgba(184,59,54,.42); border-radius: 8px; background: rgba(184,59,54,.07); color: #eaa29e; font-size: .68rem; line-height: 1.45; }
.engine-setup-validation.is-valid,
.evolution-validation.is-valid { border-color: rgba(77,140,105,.5); background: rgba(77,140,105,.08); color: #a4d8b8; }
.engine-dialog-actions { margin-top: 1rem; display: flex; justify-content: flex-end; gap: .6rem; }

.attribute-dialog {
  width: min(480px, calc(100% - 1.5rem));
  padding: 0;
  border: 1px solid rgba(199,154,59,.52);
  border-radius: 20px;
  background: #100d0a;
  color: var(--parchment-200);
  box-shadow: var(--shadow-lg);
}
.attribute-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(7px); }
.attribute-dialog__inner { position: relative; padding: 1.3rem; }
.attribute-dialog__header { padding-right: 2.8rem; }
.attribute-dialog__header h2 { margin: 0; font-family: var(--font-display); }
.attribute-dialog__score { margin: 1rem 0; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.attribute-dialog__score article { min-height: 92px; display: grid; place-items: center; align-content: center; border: 1px solid var(--line); border-radius: 10px; background: rgba(0,0,0,.2); }
.attribute-dialog__score small { color: var(--muted); text-transform: uppercase; font-size: .58rem; }
.attribute-dialog__score strong { color: var(--gold-300); font-family: var(--font-display); font-size: 1.8rem; }
.attribute-breakdown-list { margin: 0; padding: 0; display: grid; gap: .45rem; list-style: none; }
.attribute-breakdown-list li { padding: .65rem .75rem; display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line-soft); }
.attribute-breakdown-list li span { color: var(--muted); }
.attribute-breakdown-list li strong { color: var(--parchment-100); }

.evolution-choices { margin-top: 1rem; display: grid; gap: .85rem; }
.evolution-choice-group { margin: 0; padding: .9rem; border: 1px solid var(--line-soft); border-radius: 11px; }
.evolution-choice-group legend { padding: 0 .4rem; color: var(--gold-300); font-family: var(--font-display); font-size: .78rem; }
.evolution-choice-group legend span { color: var(--muted); font-family: var(--font-body); font-size: .62rem; }
.evolution-choice-note { padding: .8rem; border: 1px solid rgba(74,127,167,.4); border-radius: 9px; background: rgba(74,127,167,.07); color: #a8c9df; font-size: .7rem; line-height: 1.45; }
.evolution-choice-note.is-complete { border-color: rgba(77,140,105,.45); background: rgba(77,140,105,.08); color: #a4d8b8; }
.evolution-attribute-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.evolution-attribute-grid article { padding: .7rem; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .7rem; border: 1px solid var(--line-soft); border-radius: 9px; background: rgba(0,0,0,.18); }
.evolution-attribute-grid article > div:first-child { display: grid; gap: .1rem; }
.evolution-attribute-grid small { color: var(--gold-300); font-size: .56rem; }
.evolution-attribute-grid strong { font-family: var(--font-display); font-size: .72rem; }
.evolution-attribute-grid em { color: var(--muted); font-size: .6rem; font-style: normal; }

@media (max-width: 760px) {
  .fce-engine-banner { margin-inline: .6rem; grid-template-columns: 1fr; }
  .fce-engine-banner .btn { width: 100%; }
  .character-engine-guide__heading { flex-direction: column; }
  .engine-setup-grid { grid-template-columns: 1fr; }
  .engine-attribute-builder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .engine-choice-grid,
  .evolution-ability-grid,
  .evolution-specialization-grid,
  .evolution-attribute-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .engine-dialog { width: calc(100% - .5rem); border-radius: 16px; }
  .engine-setup-form { padding: 1rem .75rem; }
  .engine-setup-section { padding: .75rem; }
  .engine-setup-section__header { align-items: flex-start; flex-direction: column; }
  .engine-points { width: 100%; grid-template-columns: 1fr auto; justify-items: start; }
  .engine-attribute-builder-grid { grid-template-columns: 1fr; }
  .engine-dialog-actions { flex-direction: column-reverse; }
  .engine-dialog-actions .btn { width: 100%; }
}

/* --------------------------------------------------------------------------
   FCE v1.1 — Equipamentos, carga, moedas e Arsenal
   -------------------------------------------------------------------------- */

.fce-summary-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.fce-inventory {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
}

.inventory-dashboard {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: .75rem;
  align-items: stretch;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(199,154,59,.08), rgba(0,0,0,.18));
}
.inventory-dashboard.is-overloaded { border-color: rgba(184,59,54,.72); box-shadow: inset 0 0 30px rgba(184,59,54,.08); }
.inventory-stat {
  min-width: 0;
  padding: .7rem .8rem;
  display: grid;
  gap: .24rem;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: rgba(0,0,0,.22);
}
.inventory-stat small, .inventory-section-heading p { color: var(--muted); }
.inventory-stat small { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
.inventory-stat strong { color: var(--gold-300); font-family: var(--font-display); font-size: 1rem; }
.inventory-stat span { overflow: hidden; color: var(--parchment-300); font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.inventory-dashboard.is-overloaded .inventory-stat:first-child strong,
.inventory-dashboard.is-overloaded .inventory-stat:first-child span { color: #ef8b82; }

.inventory-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  padding-top: .15rem;
}
.inventory-section-heading h4 { margin: 0 0 .18rem; color: var(--parchment-100); font-family: var(--font-display); font-size: .92rem; }
.inventory-section-heading p { margin: 0; font-size: .72rem; }
.inventory-section-heading > span { color: var(--gold-300); font-family: var(--font-display); font-size: .78rem; }

.equipment-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .7rem;
}
.equipment-slot {
  min-height: 132px;
  padding: .8rem;
  position: relative;
  display: grid;
  align-content: start;
  justify-items: center;
  gap: .55rem;
  overflow: hidden;
  border: 1px dashed rgba(199,154,59,.28);
  border-radius: 12px;
  background: rgba(0,0,0,.2);
  text-align: center;
}
.equipment-slot::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 50% 15%, rgba(199,154,59,.12), transparent 58%); }
.equipment-slot.is-filled { border-style: solid; border-color: rgba(199,154,59,.5); background: linear-gradient(180deg, rgba(122,77,34,.17), rgba(0,0,0,.22)); }
.equipment-slot > span {
  width: 42px;
  height: 42px;
  z-index: 1;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(0,0,0,.35);
  color: var(--gold-300);
  font-size: 1.18rem;
  box-shadow: 0 0 22px rgba(199,154,59,.08);
}
.equipment-slot > div { z-index: 1; display: grid; gap: .16rem; }
.equipment-slot small { color: var(--muted); font-size: .58rem; letter-spacing: .09em; text-transform: uppercase; }
.equipment-slot strong { color: var(--parchment-100); font-size: .72rem; line-height: 1.25; }
.equipment-slot em { color: var(--muted); font-size: .58rem; font-style: normal; line-height: 1.3; }
.equipment-slot > button {
  width: 26px;
  height: 26px;
  position: absolute;
  top: .38rem;
  right: .38rem;
  z-index: 2;
  display: grid;
  place-items: center;
  border: 1px solid rgba(184,59,54,.45);
  border-radius: 6px;
  background: rgba(99,21,19,.45);
  color: #efaaa5;
  cursor: pointer;
}

.inventory-currency { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.inventory-coin {
  padding: .7rem .8rem;
  display: grid;
  grid-template-columns: 34px 1fr auto;
  align-items: center;
  gap: .65rem;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: rgba(0,0,0,.2);
}
.inventory-coin > span { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--gold-300); }
.inventory-coin > div:nth-child(2) { display: grid; gap: .1rem; }
.inventory-coin small { color: var(--muted); font-size: .58rem; letter-spacing: .09em; text-transform: uppercase; }
.inventory-coin strong { color: var(--parchment-100); font-family: var(--font-display); }
.inventory-coin > div:last-child { display: flex; gap: .25rem; }
.inventory-coin button { width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 6px; background: rgba(255,255,255,.025); color: var(--gold-300); cursor: pointer; }

.inventory-list { display: grid; gap: .55rem; }
.inventory-item {
  padding: .68rem;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: .7rem;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: rgba(0,0,0,.18);
}
.inventory-item.is-equipped { border-color: rgba(199,154,59,.4); background: linear-gradient(90deg, rgba(141,90,43,.13), rgba(0,0,0,.17)); }
.inventory-item__symbol { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: rgba(0,0,0,.3); color: var(--gold-300); font-size: 1.08rem; }
.inventory-item__copy { min-width: 0; display: grid; gap: .12rem; }
.inventory-item__copy small { color: var(--muted); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.inventory-item__copy strong { overflow: hidden; color: var(--parchment-100); font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.inventory-item__copy em { overflow: hidden; color: var(--muted); font-size: .64rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.inventory-item__actions { display: flex; flex-wrap: wrap; justify-content: end; gap: .35rem; }
.inventory-item__actions button { min-height: 32px; padding: .4rem .55rem; border: 1px solid var(--line); border-radius: 6px; background: rgba(255,255,255,.03); color: var(--gold-300); font-size: .62rem; font-weight: 700; cursor: pointer; }
.inventory-item__actions button:hover { border-color: var(--gold-500); }
.inventory-item__actions button.is-danger { border-color: rgba(184,59,54,.34); color: #de8b84; }
.inventory-manual-row { padding: .55rem; display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line-soft); color: var(--parchment-300); font-size: .76rem; }

.arsenal-dialog {
  width: min(1140px, calc(100% - 1rem));
  max-height: min(90vh, 900px);
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #100d0b;
  color: var(--parchment-200);
  box-shadow: var(--shadow-lg), 0 0 90px rgba(199,154,59,.1);
}
.arsenal-dialog::backdrop { background: rgba(2,2,2,.84); backdrop-filter: blur(5px); }
.arsenal-dialog__inner { max-height: min(90vh, 900px); display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; }
.arsenal-header { padding: 1.25rem 1.35rem .9rem; border-bottom: 1px solid var(--line-soft); background: linear-gradient(135deg, rgba(141,90,43,.18), rgba(0,0,0,.05)); }
.arsenal-header h2 { margin: 0 0 .35rem; color: var(--parchment-100); font-family: var(--font-display); font-size: clamp(1.35rem, 3vw, 2rem); }
.arsenal-header p:last-child { margin: 0; color: var(--muted); font-size: .8rem; }
.arsenal-toolbar { padding: .8rem 1.35rem; display: grid; grid-template-columns: minmax(240px, 1fr) 180px 190px auto; gap: .65rem; align-items: end; border-bottom: 1px solid var(--line-soft); }
.arsenal-toolbar .field { margin: 0; }
.arsenal-summary { padding: .55rem 1.35rem; display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .68rem; border-bottom: 1px solid var(--line-soft); }
.arsenal-summary span:last-child { color: var(--gold-300); }
.arsenal-grid { padding: 1rem 1.35rem 1.35rem; overflow-y: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; align-content: start; }
.arsenal-item { min-width: 0; position: relative; display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 13px; background: linear-gradient(180deg, rgba(32,27,22,.96), rgba(13,11,9,.96)); }
.arsenal-item.is-locked { opacity: .72; }
.arsenal-item__art { min-height: 78px; padding: .7rem; display: flex; align-items: center; justify-content: space-between; background: radial-gradient(circle at 20% 20%, rgba(199,154,59,.2), transparent 55%), rgba(0,0,0,.18); border-bottom: 1px solid var(--line-soft); }
.arsenal-item__art span { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--gold-300); font-size: 1.35rem; }
.arsenal-item__art small { color: var(--gold-300); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.arsenal-item__copy { min-width: 0; padding: .78rem; display: grid; align-content: start; gap: .3rem; }
.arsenal-item__copy small { color: var(--muted); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.arsenal-item__copy h3 { margin: 0; color: var(--parchment-100); font-family: var(--font-display); font-size: .86rem; line-height: 1.25; }
.arsenal-item__copy p { margin: 0; color: var(--parchment-300); font-size: .68rem; line-height: 1.45; }
.arsenal-item__copy em { color: var(--gold-300); font-size: .62rem; font-style: normal; line-height: 1.35; }
.arsenal-item footer { padding: .7rem .78rem; display: flex; align-items: center; justify-content: space-between; gap: .5rem; border-top: 1px solid var(--line-soft); }
.arsenal-item footer > span { color: var(--muted); font-size: .62rem; }
.arsenal-item__lock { position: absolute; top: .52rem; left: .55rem; max-width: calc(100% - 5.4rem); padding: .28rem .42rem; border: 1px solid rgba(184,59,54,.4); border-radius: 5px; background: rgba(75,17,15,.86); color: #efaaa5; font-size: .55rem; }
.arsenal-dialog__footer { padding: .75rem 1.35rem; display: flex; justify-content: end; border-top: 1px solid var(--line-soft); background: rgba(0,0,0,.2); }

@media (max-width: 1050px) {
  .inventory-dashboard { grid-template-columns: repeat(3, 1fr); }
  .inventory-dashboard .btn { grid-column: 1 / -1; }
  .equipment-grid { grid-template-columns: repeat(3, 1fr); }
  .arsenal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .fce-summary-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inventory-dashboard { grid-template-columns: 1fr; }
  .inventory-dashboard .btn { grid-column: auto; }
  .equipment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inventory-currency { grid-template-columns: 1fr; }
  .inventory-item { grid-template-columns: 40px minmax(0, 1fr); }
  .inventory-item__actions { grid-column: 1 / -1; justify-content: stretch; }
  .inventory-item__actions button { flex: 1 1 auto; }
  .arsenal-toolbar { grid-template-columns: 1fr 1fr; }
  .arsenal-toolbar .field:first-child { grid-column: 1 / -1; }
  .arsenal-grid { grid-template-columns: 1fr; }
}

@media (max-width: 460px) {
  .equipment-grid { grid-template-columns: 1fr; }
  .equipment-slot { min-height: 105px; grid-template-columns: 40px 1fr; align-items: center; justify-items: stretch; text-align: left; }
  .equipment-slot > span { width: 38px; height: 38px; }
  .inventory-section-heading { align-items: start; }
  .arsenal-toolbar { grid-template-columns: 1fr; }
  .arsenal-toolbar .field:first-child { grid-column: auto; }
  .arsenal-summary { display: grid; }
}

/* ========================================================================== */
/* v1.0 — Galeria de Cartas vinculada ao FCE                                 */
/* ========================================================================== */

.cards-page { --card-accent: #c79a3b; }
.cards-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.cards-heading__seal { min-width: 185px; padding: .75rem 1rem; display: grid; gap: .2rem; border: 1px solid rgba(199,154,59,.38); border-radius: 12px; background: linear-gradient(145deg, rgba(199,154,59,.08), rgba(0,0,0,.18)); text-align: right; }
.cards-heading__seal small { color: var(--muted); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cards-heading__seal strong { color: var(--gold-300); font-family: var(--font-display); font-size: 1rem; }

.cards-context { margin: 1.1rem 0; padding: .9rem; display: grid; grid-template-columns: minmax(210px, 300px) 1fr; align-items: end; gap: 1rem; border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(105deg, rgba(74,127,167,.09), rgba(0,0,0,.22)); }
.cards-context__note { min-height: 44px; padding: .75rem .9rem; border-left: 2px solid rgba(74,127,167,.65); color: var(--muted); font-size: .72rem; line-height: 1.5; }
.cards-context__note strong { color: #a9cce5; }

.cards-toolbar { margin-bottom: 1rem; padding: .8rem; display: grid; grid-template-columns: minmax(220px, 1.45fr) repeat(4, minmax(125px, .7fr)) auto; gap: .65rem; border: 1px solid var(--line-soft); border-radius: 14px; background: rgba(0,0,0,.18); }
.cards-toolbar .field { margin: 0; }
.cards-toolbar .field span { font-size: .58rem; }
.cards-toolbar .btn { min-height: 43px; align-self: end; }

.cards-catalog-summary { margin: 0 0 .85rem; display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .7rem; }
.cards-catalog-summary strong { color: var(--gold-300); }
.cards-catalog-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }

.forge-card-tile { position: relative; min-width: 0; padding: .55rem; border: 1px solid var(--line-soft); border-radius: 16px; background: linear-gradient(155deg, rgba(255,255,255,.035), rgba(0,0,0,.32)); box-shadow: 0 12px 34px rgba(0,0,0,.24); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.forge-card-tile:hover { transform: translateY(-4px); border-color: rgba(199,154,59,.48); box-shadow: 0 18px 40px rgba(0,0,0,.38); }
.forge-card-tile.is-learned { border-color: rgba(88,168,119,.65); box-shadow: 0 0 0 1px rgba(88,168,119,.12), 0 14px 38px rgba(0,0,0,.34); }
.forge-card-tile.is-available { border-color: rgba(74,127,167,.55); }
.forge-card-tile.is-locked { opacity: .62; filter: saturate(.72); }
.forge-card-tile.is-pending { opacity: .72; }
.forge-card-tile__open { width: 100%; padding: 0; display: block; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; }
.forge-card-tile__copy { padding: .7rem .28rem .2rem; display: grid; gap: .45rem; }
.forge-card-tile__copy p { min-height: 3.6em; margin: 0; color: var(--muted); font-size: .66rem; line-height: 1.45; }
.card-favorite { position: absolute; top: .7rem; right: .7rem; z-index: 4; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; background: rgba(7,6,5,.82); color: #d1b98d; font-size: 1.05rem; cursor: pointer; box-shadow: 0 4px 15px rgba(0,0,0,.35); }
.card-favorite.is-saved { color: #f0c56d; border-color: rgba(240,197,109,.48); background: rgba(77,48,11,.86); }

.card-state { width: fit-content; padding: .22rem .48rem; border: 1px solid var(--line); border-radius: 999px; color: #c6b79c; background: rgba(255,255,255,.025); font-size: .55rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.card-state--learned { color: #aee1bf; border-color: rgba(88,168,119,.55); background: rgba(88,168,119,.1); }
.card-state--available { color: #acd0e8; border-color: rgba(74,127,167,.58); background: rgba(74,127,167,.1); }
.card-state--locked { color: #a7988a; border-color: rgba(141,90,43,.45); background: rgba(90,54,30,.08); }
.card-state--saved { color: #f1cb83; border-color: rgba(199,154,59,.5); background: rgba(199,154,59,.09); }
.card-state--pending { color: #dfb778; border-color: rgba(199,154,59,.38); }
.card-state--catalog { color: #c5b393; }

.forge-card-mini { --tone-a: #9a3f22; --tone-b: #28110d; position: relative; aspect-ratio: 2 / 3; padding: .72rem; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto; border: 2px solid #a77b2c; border-radius: 12px; background: radial-gradient(circle at 50% 27%, color-mix(in srgb, var(--tone-a), transparent 15%), var(--tone-b) 54%, #090706 100%); box-shadow: inset 0 0 0 3px #1c140b, inset 0 0 0 5px rgba(199,154,59,.55), 0 8px 24px rgba(0,0,0,.45); isolation: isolate; }
.forge-card-mini::before, .forge-card-full::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(115deg, transparent 0 18px, rgba(255,255,255,.015) 19px 20px), radial-gradient(circle at 50% 65%, transparent 0 28%, rgba(0,0,0,.36) 70%); }
.forge-card-mini__frame { position: absolute; inset: 9px; border: 1px solid rgba(234,196,111,.52); border-radius: 7px; pointer-events: none; }
.forge-card-mini header { position: relative; z-index: 2; padding: .4rem .35rem .55rem; display: grid; gap: .18rem; text-align: center; }
.forge-card-mini header small { color: #e7c879; font-size: .49rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.forge-card-mini header strong { color: #f4ead8; font-family: var(--font-display); font-size: clamp(.68rem, 1vw, .88rem); line-height: 1.15; text-shadow: 0 2px 8px #000; }
.forge-card-mini__art { position: relative; margin: .2rem .25rem .45rem; min-height: 0; display: grid; place-items: center; border: 1px solid rgba(232,196,112,.48); border-radius: 7px; background: radial-gradient(circle, color-mix(in srgb, var(--tone-a), white 10%) 0 4%, transparent 5% 18%, rgba(0,0,0,.12) 19% 27%, transparent 28%), linear-gradient(145deg, rgba(255,255,255,.08), rgba(0,0,0,.4)); overflow: hidden; }
.forge-card-mini__art span { position: relative; z-index: 2; color: #f4d382; font-size: clamp(2rem, 4vw, 3.15rem); text-shadow: 0 0 18px color-mix(in srgb, var(--tone-a), white 20%); }
.forge-card-mini__art i, .forge-card-mini__art b { position: absolute; width: 76%; aspect-ratio: 1; border: 1px solid rgba(240,205,123,.28); transform: rotate(45deg); }
.forge-card-mini__art b { width: 48%; transform: rotate(0deg); border-radius: 50%; }
.forge-card-mini footer { position: relative; z-index: 2; padding: .42rem .35rem; display: flex; justify-content: space-between; gap: .4rem; border-top: 1px solid rgba(232,196,112,.32); color: #d5c39d; font-size: .48rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.forge-card-mini footer em { color: #e8c86f; font-style: normal; }

.forge-card-mini--iron, .forge-card-full--iron { --tone-a: #6d7d86; --tone-b: #11181b; }
.forge-card-mini--arcane, .forge-card-full--arcane { --tone-a: #426e9a; --tone-b: #0d1428; }
.forge-card-mini--ember, .forge-card-full--ember { --tone-a: #a83f20; --tone-b: #2a100a; }
.forge-card-mini--veil, .forge-card-full--veil { --tone-a: #5b4b8c; --tone-b: #160f2a; }
.forge-card-mini--shadow, .forge-card-full--shadow { --tone-a: #464454; --tone-b: #0c0b11; }
.forge-card-mini--gold, .forge-card-full--gold { --tone-a: #a47a25; --tone-b: #241706; }
.forge-card-mini--storm, .forge-card-full--storm { --tone-a: #337a9a; --tone-b: #071a25; }

.cards-empty { margin-top: 1rem; padding: 2rem; border: 1px dashed var(--line); border-radius: 14px; color: var(--muted); text-align: center; }
.cards-empty strong { display: block; margin-bottom: .35rem; color: var(--gold-300); font-family: var(--font-display); }

.card-dialog { width: min(950px, calc(100% - 2rem)); max-height: 94svh; padding: 0; overflow: hidden; border: 1px solid rgba(199,154,59,.5); border-radius: 22px; background: #0f0c09; color: var(--parchment-200); box-shadow: var(--shadow-lg); }
.card-dialog::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(9px); }
.card-dialog__layout { position: relative; max-height: 94svh; padding: 1.4rem; overflow-y: auto; display: grid; grid-template-columns: minmax(270px, 360px) 1fr; gap: 1.5rem; }
.forge-card-full { --tone-a: #a83f20; --tone-b: #2a100a; position: relative; aspect-ratio: 2 / 3; padding: 1.15rem; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto; border: 3px solid #a77b2c; border-radius: 18px; background: radial-gradient(circle at 50% 29%, color-mix(in srgb, var(--tone-a), transparent 12%), var(--tone-b) 55%, #080605 100%); box-shadow: inset 0 0 0 4px #1b1208, inset 0 0 0 7px rgba(199,154,59,.52), 0 24px 60px rgba(0,0,0,.55); isolation: isolate; }
.forge-card-full__frame { position: absolute; inset: 13px; border: 1px solid rgba(240,205,123,.58); border-radius: 11px; }
.forge-card-full header { position: relative; z-index: 2; padding: .65rem .6rem; display: grid; gap: .28rem; text-align: center; }
.forge-card-full header small { color: #edcc7a; font-size: .65rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.forge-card-full header strong { color: #fff4df; font-family: var(--font-display); font-size: clamp(1.25rem, 3vw, 1.8rem); line-height: 1.15; text-shadow: 0 3px 12px #000; }
.forge-card-full__art { position: relative; margin: .35rem .45rem .75rem; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(240,205,123,.52); border-radius: 10px; background: radial-gradient(circle, color-mix(in srgb, var(--tone-a), white 12%) 0 5%, transparent 6% 22%, rgba(0,0,0,.1) 23% 30%, transparent 31%), linear-gradient(145deg, rgba(255,255,255,.09), rgba(0,0,0,.44)); }
.forge-card-full__art span { position: relative; z-index: 2; color: #f6d786; font-size: clamp(4rem, 10vw, 7rem); text-shadow: 0 0 32px color-mix(in srgb, var(--tone-a), white 25%); }
.forge-card-full__art i, .forge-card-full__art b, .forge-card-full__art em { position: absolute; width: 76%; aspect-ratio: 1; border: 1px solid rgba(244,210,130,.27); transform: rotate(45deg); }
.forge-card-full__art b { width: 52%; transform: rotate(0); border-radius: 50%; }
.forge-card-full__art em { width: 32%; transform: rotate(22deg); }
.forge-card-full footer { position: relative; z-index: 2; padding: .65rem .6rem; display: flex; justify-content: space-between; gap: .6rem; border-top: 1px solid rgba(240,205,123,.35); color: #d7c39a; font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.forge-card-full footer em { color: #edcc7a; font-style: normal; }

.card-dialog__content { min-width: 0; padding: .8rem .5rem .5rem 0; display: flex; flex-direction: column; }
.card-dialog__content .eyebrow { margin-bottom: .3rem; }
.card-dialog__content h2 { margin: 0; color: var(--parchment-100); font-family: var(--font-display); font-size: clamp(1.7rem, 4vw, 2.5rem); }
.card-dialog-state { margin: .75rem 0 1rem; width: fit-content; padding: .34rem .65rem; border: 1px solid var(--line); border-radius: 999px; font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.card-dialog__summary { margin: 0 0 1rem; color: #d7cbb6; font-size: .88rem; line-height: 1.65; }
.card-dialog__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.card-dialog__facts article { padding: .8rem; display: grid; gap: .25rem; border: 1px solid var(--line-soft); border-radius: 10px; background: rgba(255,255,255,.025); }
.card-dialog__facts small { color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.card-dialog__facts strong { color: var(--gold-300); font-size: .82rem; }
.card-dialog__classes { margin-top: 1rem; }
.card-dialog__classes > small { display: block; margin-bottom: .45rem; color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.card-dialog__classes div { display: flex; flex-wrap: wrap; gap: .4rem; }
.card-dialog__classes span { padding: .35rem .58rem; border: 1px solid rgba(199,154,59,.34); border-radius: 999px; color: #d4bd8e; background: rgba(199,154,59,.06); font-size: .66rem; }
.card-dialog__notice { margin: 1rem 0 0; padding: .75rem; border: 1px solid rgba(74,127,167,.4); border-radius: 9px; background: rgba(74,127,167,.07); color: #a9c8dc; font-size: .68rem; line-height: 1.5; }
.card-dialog__actions { margin-top: auto; padding-top: 1.1rem; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
#cardDialogFavorite.is-saved { color: #f0c56d; border-color: rgba(240,197,109,.45); }

@media (max-width: 1180px) {
  .cards-catalog-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cards-toolbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cards-toolbar .cards-search { grid-column: span 2; }
}

@media (max-width: 900px) {
  .cards-catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .card-dialog__layout { grid-template-columns: minmax(240px, 320px) 1fr; gap: 1rem; }
  .card-dialog__facts { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .cards-heading { align-items: stretch; flex-direction: column; }
  .cards-heading__seal { text-align: left; }
  .cards-context { grid-template-columns: 1fr; }
  .cards-toolbar { grid-template-columns: 1fr 1fr; }
  .cards-toolbar .cards-search { grid-column: 1 / -1; }
  .cards-toolbar .btn { width: 100%; }
  .cards-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .forge-card-tile { padding: .4rem; border-radius: 12px; }
  .forge-card-tile__copy p { min-height: 0; font-size: .61rem; }
  .card-dialog__layout { grid-template-columns: 1fr; padding: 1rem; }
  .forge-card-full { width: min(360px, 100%); margin-inline: auto; }
  .card-dialog__content { padding: .2rem; }
  .card-dialog__actions { flex-direction: column-reverse; }
  .card-dialog__actions .btn { width: 100%; }
}

@media (max-width: 430px) {
  .cards-toolbar { grid-template-columns: 1fr; }
  .cards-toolbar .cards-search { grid-column: auto; }
  .cards-catalog-grid { grid-template-columns: 1fr 1fr; }
  .forge-card-mini { padding: .55rem; }
  .forge-card-mini header strong { font-size: .64rem; }
  .forge-card-mini footer { padding-inline: .15rem; font-size: .42rem; }
  .card-favorite { width: 29px; height: 29px; top: .55rem; right: .55rem; }
}

/* --------------------------------------------------------------------------
   FCE v1.2 · Câmara de Partilha
   -------------------------------------------------------------------------- */
.share-manager-dialog,
.share-access-dialog {
  width: min(940px, calc(100% - 2rem));
  max-height: 94svh;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(199,154,59,.52);
  border-radius: 22px;
  background: #0f0c09;
  color: var(--parchment-200);
  box-shadow: var(--shadow-lg);
}
.share-manager-dialog::backdrop,
.share-access-dialog::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(9px); }
.share-manager {
  position: relative;
  max-height: 94svh;
  padding: 1.5rem;
  overflow-y: auto;
}
.share-manager__header {
  padding: .45rem 3.4rem 1.25rem 0;
  display: grid;
  gap: .35rem;
  border-bottom: 1px solid var(--line-soft);
}
.share-manager__header h2,
.shared-page-heading h2,
.shared-sheet__identity h2 { margin: 0; color: var(--parchment-100); font-family: var(--font-display); }
.share-manager__header p:last-child { margin: 0; max-width: 720px; color: var(--muted); line-height: 1.6; }
.share-character-chip {
  margin: 1rem 0;
  padding: .9rem 1rem;
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) auto;
  gap: .8rem;
  align-items: center;
  border: 1px solid var(--line-soft);
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(141,90,43,.13), rgba(0,0,0,.15));
}
.share-character-chip__seal {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold-500);
  border-radius: 50%;
  background: #130d08;
  color: var(--gold-300);
  font-family: var(--font-display);
  font-weight: 800;
}
.share-character-chip div { min-width: 0; display: grid; gap: .18rem; }
.share-character-chip strong { overflow: hidden; color: var(--parchment-100); text-overflow: ellipsis; white-space: nowrap; }
.share-character-chip small { color: var(--muted); }
.share-status-pill {
  padding: .34rem .62rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--gold-300);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.share-status-pill.is-active { border-color: rgba(77,140,105,.65); color: #a8d8ba; background: rgba(77,140,105,.1); }
.share-status-pill.is-revoked { border-color: rgba(184,59,54,.6); color: #efa49f; background: rgba(184,59,54,.1); }
.share-status-pill.is-draft { color: var(--muted); }
.share-code-panel {
  padding: 1rem;
  display: grid;
  grid-template-columns: minmax(210px,.7fr) minmax(0,1.3fr);
  gap: 1rem;
  border: 1px solid rgba(199,154,59,.32);
  border-radius: 14px;
  background: radial-gradient(circle at 12% 0%, rgba(199,154,59,.13), transparent 38%), rgba(0,0,0,.22);
}
.share-code-display {
  min-height: 112px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: .25rem;
  border: 1px dashed rgba(199,154,59,.42);
  border-radius: 10px;
  background: rgba(0,0,0,.24);
  text-align: center;
}
.share-code-display small { color: var(--muted); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
.share-code-display strong { color: var(--gold-300); font-family: var(--font-display); font-size: clamp(1.25rem,4vw,2rem); letter-spacing: .09em; }
.share-code-display span { color: var(--muted); font-size: .68rem; }
.share-link-tools { display: grid; gap: .65rem; align-content: center; }
.share-link-tools label { display: grid; gap: .35rem; color: var(--parchment-300); font-size: .72rem; font-weight: 700; }
.share-link-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
.share-link-row input {
  min-width: 0;
  min-height: 44px;
  padding: 0 .8rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #090706;
  color: var(--parchment-300);
}
.share-link-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.share-permissions { margin-top: 1rem; }
.share-section-heading { margin-bottom: .7rem; display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.share-section-heading h3 { margin: 0; color: var(--parchment-100); font-family: var(--font-display); font-size: 1rem; }
.share-section-heading p { margin: .2rem 0 0; color: var(--muted); font-size: .72rem; }
.share-permission-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.share-permission {
  padding: .72rem .8rem;
  display: grid;
  grid-template-columns: 22px minmax(0,1fr);
  gap: .65rem;
  align-items: start;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: rgba(255,255,255,.022);
  cursor: pointer;
}
.share-permission:hover { border-color: rgba(199,154,59,.38); }
.share-permission input {
  appearance: none;
  width: 21px;
  height: 21px;
  display: grid;
  place-items: center;
  border: 1px solid var(--bronze-500);
  border-radius: 5px;
  background: #080706;
  cursor: pointer;
}
.share-permission input::after { content: ""; width: 10px; height: 6px; border-left: 2px solid #211405; border-bottom: 2px solid #211405; transform: rotate(-45deg) scale(0); transition: transform .15s ease; }
.share-permission input:checked { background: var(--gold-500); border-color: var(--gold-300); }
.share-permission input:checked::after { transform: rotate(-45deg) scale(1); }
.share-permission input:disabled { opacity: .65; cursor: not-allowed; }
.share-permission span { display: grid; gap: .14rem; }
.share-permission strong { color: var(--parchment-100); font-size: .78rem; }
.share-permission small { color: var(--muted); font-size: .66rem; line-height: 1.45; }
.share-options-row {
  margin-top: .75rem;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(220px,.5fr);
  gap: .75rem;
}
.share-live-option,
.share-expiration {
  padding: .75rem .8rem;
  border: 1px solid var(--line-soft);
  border-radius: 10px;
  background: rgba(255,255,255,.022);
}
.share-live-option { display: flex; gap: .65rem; align-items: center; }
.share-live-option input { width: 20px; height: 20px; accent-color: var(--gold-500); }
.share-live-option span { display: grid; gap: .1rem; }
.share-live-option strong { color: var(--parchment-100); font-size: .78rem; }
.share-live-option small { color: var(--muted); font-size: .65rem; }
.share-expiration { display: grid; gap: .35rem; color: var(--parchment-300); font-size: .7rem; font-weight: 700; }
.share-expiration select {
  min-height: 40px;
  padding: 0 .75rem;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #090706;
  color: var(--parchment-100);
}
.share-manager__meta { margin-top: .8rem; display: flex; flex-wrap: wrap; gap: .45rem 1rem; color: var(--muted); font-size: .66rem; }
.share-manager__actions { margin-top: 1rem; display: flex; justify-content: space-between; gap: .7rem; align-items: center; }
.share-manager__actions > div { display: flex; flex-wrap: wrap; gap: .55rem; }

/* Página pública / controlada */
.shared-character-page { min-height: calc(100vh - var(--topbar-height)); }
.shared-page-heading {
  margin-bottom: 1rem;
  padding: 1.3rem;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 1rem;
  align-items: center;
  border: 1px solid var(--line-soft);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(141,90,43,.12), rgba(8,7,6,.86));
}
.shared-page-heading p { margin: .35rem 0 0; color: var(--muted); }
.shared-page-heading .btn { white-space: nowrap; }
.shared-access-panel {
  margin: 0 auto 1.1rem;
  width: min(760px,100%);
  padding: 1rem;
  border: 1px solid rgba(199,154,59,.34);
  border-radius: 14px;
  background: rgba(0,0,0,.22);
}
.shared-access-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .6rem; }
.shared-access-form input {
  min-height: 50px;
  padding: 0 1rem;
  border: 1px solid var(--bronze-500);
  border-radius: 8px;
  background: #090706;
  color: var(--parchment-100);
  font-family: var(--font-display);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.shared-access-hint { margin: .55rem 0 0; color: var(--muted); font-size: .7rem; text-align: center; }
.shared-viewer-empty {
  padding: 2.4rem 1rem;
  display: grid;
  place-items: center;
  gap: .55rem;
  border: 1px dashed var(--line);
  border-radius: 16px;
  color: var(--muted);
  text-align: center;
}
.shared-viewer-empty span { font-size: 2rem; color: var(--gold-300); }
.shared-viewer-empty h3 { margin: 0; color: var(--parchment-100); font-family: var(--font-display); }
.shared-viewer-empty p { margin: 0; max-width: 560px; line-height: 1.6; }
.shared-sheet {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(199,154,59,.5);
  border-radius: 24px;
  background: radial-gradient(circle at 25% -15%, rgba(199,154,59,.13), transparent 34%), linear-gradient(155deg,#16120f,#090706 58%,#050403);
  box-shadow: 0 35px 90px rgba(0,0,0,.56);
}
.shared-sheet::before { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(199,154,59,.18); border-radius: 17px; pointer-events: none; }
.shared-sheet__hero {
  position: relative;
  padding: 1.5rem;
  display: grid;
  grid-template-columns: 92px minmax(0,1fr) auto;
  gap: 1rem;
  align-items: center;
  border-bottom: 1px solid var(--line-soft);
  background: linear-gradient(90deg,rgba(199,154,59,.09),transparent 48%);
}
.shared-sheet__seal { width: 88px; height: 88px; display: grid; place-items: center; border: 1px solid var(--gold-500); border-radius: 20px 4px 20px 4px; background: #100b07; color: var(--gold-300); font-family: var(--font-display); font-size: 1.6rem; font-weight: 900; box-shadow: var(--glow-gold); }
.shared-sheet__identity { min-width: 0; }
.shared-sheet__identity .eyebrow { margin-bottom: .3rem; }
.shared-sheet__identity h2 { overflow: hidden; font-size: clamp(1.45rem,4vw,2.35rem); text-overflow: ellipsis; white-space: nowrap; }
.shared-sheet__identity p:last-child { margin: .45rem 0 0; color: var(--muted); }
.shared-sheet__rank { display: grid; gap: .45rem; text-align: right; }
.shared-sheet__rank span { padding: .4rem .65rem; border: 1px solid var(--line); border-radius: 999px; color: var(--gold-300); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.shared-sheet__notice { position: relative; padding: .65rem 1.5rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; border-bottom: 1px solid var(--line-soft); color: var(--muted); font-size: .68rem; }
.shared-sheet__notice strong { color: #a8d8ba; }
.shared-sheet__body { position: relative; padding: 1rem 1.5rem 1.5rem; display: grid; gap: 1rem; }
.shared-section { padding: 1rem; border: 1px solid var(--line-soft); border-radius: 13px; background: rgba(255,255,255,.022); }
.shared-section__heading { margin-bottom: .75rem; display: flex; justify-content: space-between; gap: .8rem; align-items: end; }
.shared-section__heading h3 { margin: 0; color: var(--parchment-100); font-family: var(--font-display); font-size: .98rem; }
.shared-section__heading small { color: var(--muted); }
.shared-concept { margin: 0; color: #d5c9b7; line-height: 1.7; }
.shared-resource-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; }
.shared-resource { padding: .7rem; border: 1px solid var(--line-soft); border-radius: 9px; background: rgba(0,0,0,.24); }
.shared-resource__head { display: flex; justify-content: space-between; gap: .6rem; color: var(--parchment-300); font-size: .7rem; }
.shared-resource__head strong { color: var(--parchment-100); }
.shared-resource__track { margin-top: .55rem; height: 8px; overflow: hidden; border-radius: 999px; background: #050403; }
.shared-resource__track i { display: block; height: 100%; background: linear-gradient(90deg,var(--bronze-600),var(--gold-400)); box-shadow: 0 0 14px rgba(199,154,59,.3); }
.shared-attribute-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: .55rem; }
.shared-attribute { padding: .7rem .45rem; display: grid; place-items: center; gap: .18rem; border: 1px solid var(--line-soft); border-radius: 9px; background: rgba(0,0,0,.22); text-align: center; }
.shared-attribute small { color: var(--muted); font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.shared-attribute strong { color: var(--parchment-100); font-family: var(--font-display); font-size: 1.25rem; }
.shared-attribute span { color: var(--gold-300); font-size: .68rem; }
.shared-combat-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: .55rem; }
.shared-combat-grid article { padding: .68rem; display: grid; gap: .18rem; border: 1px solid var(--line-soft); border-radius: 9px; background: rgba(0,0,0,.2); }
.shared-combat-grid small { color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.shared-combat-grid strong { color: var(--gold-300); font-family: var(--font-display); }
.shared-ability-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .6rem; }
.shared-ability { padding: .78rem; display: grid; gap: .2rem; border: 1px solid var(--line-soft); border-radius: 9px; background: rgba(0,0,0,.22); }
.shared-ability small { color: var(--gold-300); font-size: .6rem; text-transform: uppercase; }
.shared-ability strong { color: var(--parchment-100); }
.shared-ability span { color: var(--muted); font-size: .64rem; }
.shared-inventory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.shared-inventory-item { padding: .65rem .75rem; display: flex; justify-content: space-between; gap: .8rem; border: 1px solid var(--line-soft); border-radius: 8px; background: rgba(0,0,0,.2); }
.shared-inventory-item strong { color: var(--parchment-100); font-size: .75rem; }
.shared-inventory-item span { color: var(--muted); font-size: .66rem; text-align: right; }
.shared-history { display: grid; gap: .55rem; }
.shared-history article { padding: .7rem .8rem; border-left: 2px solid var(--gold-500); background: rgba(0,0,0,.18); }
.shared-history strong { display: block; color: var(--parchment-100); font-size: .76rem; }
.shared-history p { margin: .25rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.55; }
.shared-history time { color: var(--gold-300); font-size: .58rem; }
.shared-permission-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.shared-permission-tags span { padding: .28rem .5rem; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.shared-loading { opacity: .65; pointer-events: none; }

@media (max-width: 900px) {
  .share-code-panel { grid-template-columns: 1fr; }
  .shared-attribute-grid { grid-template-columns: repeat(3,1fr); }
  .shared-combat-grid { grid-template-columns: repeat(3,1fr); }
  .shared-ability-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 680px) {
  .share-manager-dialog { width: calc(100% - .5rem); border-radius: 16px; }
  .share-manager { padding: 1rem; }
  .share-character-chip { grid-template-columns: 44px minmax(0,1fr); }
  .share-character-chip .share-status-pill { grid-column: 1 / -1; width: fit-content; }
  .share-permission-grid, .share-options-row { grid-template-columns: 1fr; }
  .share-link-row { grid-template-columns: 1fr; }
  .share-manager__actions { align-items: stretch; flex-direction: column-reverse; }
  .share-manager__actions > div { display: grid; }
  .share-manager__actions .btn { width: 100%; }
  .shared-page-heading { grid-template-columns: 1fr; }
  .shared-access-form { grid-template-columns: 1fr; }
  .shared-sheet__hero { padding: 1.2rem 1rem; grid-template-columns: 72px minmax(0,1fr); }
  .shared-sheet__seal { width: 68px; height: 68px; }
  .shared-sheet__rank { grid-column: 1 / -1; grid-template-columns: repeat(2,1fr); text-align: center; }
  .shared-sheet__notice, .shared-sheet__body { padding-left: 1rem; padding-right: 1rem; }
  .shared-resource-grid, .shared-ability-grid, .shared-inventory-grid { grid-template-columns: 1fr; }
  .shared-attribute-grid, .shared-combat-grid { grid-template-columns: repeat(2,1fr); }
}

/* Salão das Mesas — v1.3 */
.tables-page{position:relative}.tables-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}.tables-heading__actions{display:flex;gap:10px;flex-wrap:wrap}.tables-toolbar{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(170px,.7fr));gap:14px;margin:24px 0}.tables-section{margin-top:30px}.tables-section__head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:14px}.tables-section__head h3{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.15rem);margin:0}.tables-section__head p{margin:5px 0 0;color:var(--text-muted)}.campaign-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.campaign-card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:330px;padding:20px;border:1px solid rgba(199,154,59,.24);border-radius:18px;background:linear-gradient(145deg,rgba(31,25,20,.96),rgba(12,11,10,.97));box-shadow:0 18px 55px rgba(0,0,0,.26)}.campaign-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--gold),var(--ember),transparent)}.campaign-card--mine{border-color:rgba(74,127,167,.52);box-shadow:0 18px 55px rgba(21,66,93,.17)}.campaign-card--mine::before{background:linear-gradient(90deg,var(--arcane),#70a7c9,transparent)}.campaign-card__top{display:flex;justify-content:space-between;gap:12px;align-items:start}.campaign-system{display:inline-flex;padding:5px 9px;border:1px solid rgba(199,154,59,.3);border-radius:999px;color:var(--gold-light);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.campaign-role{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.campaign-card h4{font-family:var(--font-display);font-size:1.55rem;margin:18px 0 8px}.campaign-card__description{color:var(--text-muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.campaign-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.campaign-meta div{padding:10px;border:1px solid rgba(236,230,217,.08);background:rgba(255,255,255,.025);border-radius:10px}.campaign-meta small{display:block;color:var(--text-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.campaign-meta strong{display:block;margin-top:4px;font-size:.9rem}.campaign-card__footer{display:flex;gap:9px;margin-top:auto;flex-wrap:wrap}.campaign-card__footer .btn{flex:1;min-width:110px}.campaign-occupancy{height:8px;border:1px solid rgba(236,230,217,.12);border-radius:999px;overflow:hidden;background:#080706;margin-top:2px}.campaign-occupancy span{display:block;height:100%;background:linear-gradient(90deg,var(--arcane),var(--gold));border-radius:inherit}.tables-empty{padding:34px;text-align:center;border:1px dashed rgba(199,154,59,.3);border-radius:16px;color:var(--text-muted)}.tables-empty h4{color:var(--text-main);font-family:var(--font-display);font-size:1.45rem;margin:8px 0}.table-dialog{width:min(760px,calc(100vw - 28px));border:1px solid rgba(199,154,59,.36);border-radius:18px;padding:0;background:#11100e;color:var(--text-main);box-shadow:0 30px 100px rgba(0,0,0,.65)}.table-dialog::backdrop{background:rgba(2,2,2,.82);backdrop-filter:blur(6px)}.table-dialog__inner{padding:24px}.table-dialog__header{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:18px}.table-dialog__header h3{font-family:var(--font-display);font-size:2rem;margin:3px 0}.table-dialog__close{border:0;background:transparent;color:var(--text-muted);font-size:1.65rem;cursor:pointer}.table-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.table-form .field--wide{grid-column:1/-1}.table-form textarea{min-height:105px;resize:vertical}.table-form__actions{display:flex;justify-content:flex-end;gap:10px;grid-column:1/-1;margin-top:8px}.join-code-box{display:flex;gap:10px}.join-code-box input{text-transform:uppercase;letter-spacing:.12em}.campaign-detail{display:grid;gap:18px}.campaign-detail__hero{padding:18px;border:1px solid rgba(199,154,59,.2);border-radius:14px;background:linear-gradient(130deg,rgba(141,90,43,.12),rgba(74,127,167,.08))}.campaign-detail__hero h4{font-family:var(--font-display);font-size:2rem;margin:8px 0}.campaign-detail__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.campaign-detail__stats article{padding:13px;border:1px solid rgba(236,230,217,.09);border-radius:12px;background:rgba(255,255,255,.025)}.campaign-detail__stats small{display:block;color:var(--text-muted)}.campaign-detail__players{display:grid;gap:8px}.campaign-player{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;border:1px solid rgba(236,230,217,.08);border-radius:11px}.campaign-code{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid rgba(74,127,167,.35);border-radius:9px;font-family:monospace;letter-spacing:.12em;color:#9bc7df}.linked-character{color:var(--gold-light);font-size:.82rem}.table-toast{position:fixed;right:20px;bottom:20px;z-index:9999;max-width:360px;padding:13px 16px;border:1px solid rgba(199,154,59,.4);border-radius:12px;background:#17130f;color:var(--text-main);box-shadow:0 20px 55px rgba(0,0,0,.5);transform:translateY(25px);opacity:0;pointer-events:none;transition:.25s}.table-toast.is-visible{transform:none;opacity:1}
@media(max-width:980px){.campaign-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tables-toolbar{grid-template-columns:1fr 1fr}.tables-toolbar .field:first-child{grid-column:1/-1}}
@media(max-width:650px){.tables-heading{align-items:stretch;flex-direction:column}.tables-heading__actions .btn{flex:1}.tables-toolbar,.campaign-grid,.table-form{grid-template-columns:1fr}.tables-toolbar .field:first-child,.table-form .field--wide{grid-column:auto}.campaign-meta{grid-template-columns:1fr}.campaign-detail__stats{grid-template-columns:1fr}.join-code-box{flex-direction:column}.table-form__actions{grid-column:auto;flex-direction:column-reverse}.table-form__actions .btn{width:100%}}


/* Painel interno das campanhas — v1.4 */
.campaign-workspace-page{padding-bottom:4rem}.workspace-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.workspace-heading h2{margin:.2rem 0 .35rem;font-family:var(--font-display,serif);font-size:clamp(1.8rem,4vw,3.2rem)}.workspace-heading__actions{display:flex;gap:.6rem;flex-wrap:wrap}.workspace-shell{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:1rem}.workspace-main,.workspace-side{display:grid;gap:1rem;align-content:start}.workspace-banner,.workspace-card{border:1px solid rgba(199,154,59,.22);background:linear-gradient(145deg,rgba(26,26,26,.96),rgba(9,8,7,.98));box-shadow:0 20px 50px rgba(0,0,0,.28);border-radius:18px}.workspace-banner{padding:1.2rem;position:relative;overflow:hidden}.workspace-banner:after{content:"";position:absolute;inset:auto -10% -65% 25%;height:180px;background:radial-gradient(circle,rgba(163,38,33,.24),transparent 70%);pointer-events:none}.workspace-banner__top{display:flex;align-items:center;justify-content:space-between;gap:.8rem;position:relative;z-index:1}.workspace-banner h3{font-size:clamp(1.45rem,3vw,2.35rem);margin:.6rem 0 .35rem;position:relative;z-index:1}.workspace-banner p{max-width:760px;color:var(--text-muted,#b8b0a2);position:relative;z-index:1}.workspace-code{font-family:monospace;border:1px solid rgba(199,154,59,.35);background:rgba(0,0,0,.35);padding:.45rem .65rem;border-radius:10px;color:#e8c875}.workspace-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;margin-top:1rem;position:relative;z-index:1}.workspace-stats article,.workspace-mini-stat{padding:.75rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);border-radius:12px}.workspace-stats small,.workspace-mini-stat small{display:block;color:var(--text-muted,#aaa);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.workspace-stats strong,.workspace-mini-stat strong{display:block;margin-top:.28rem}.workspace-tabs{display:flex;gap:.45rem;overflow:auto;padding:.4rem;border:1px solid rgba(199,154,59,.18);background:rgba(10,9,8,.72);border-radius:14px}.workspace-tab{border:0;background:transparent;color:var(--text-muted,#aaa);padding:.7rem .9rem;border-radius:10px;white-space:nowrap;cursor:pointer}.workspace-tab.active{background:linear-gradient(135deg,rgba(141,90,43,.55),rgba(163,38,33,.32));color:#fff}.workspace-panel{display:none}.workspace-panel.active{display:grid;gap:1rem}.workspace-card{padding:1rem}.workspace-card__heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.85rem}.workspace-card__heading h4{margin:0;font-size:1.05rem}.workspace-list{display:grid;gap:.65rem}.workspace-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:.8rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);border-radius:12px}.workspace-row strong{display:block}.workspace-row small,.workspace-row p{display:block;color:var(--text-muted,#aaa);margin:.2rem 0 0}.workspace-row__actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.workspace-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(199,154,59,.4);background:rgba(199,154,59,.12);font-weight:800;color:#e8c875;flex:0 0 auto}.workspace-member{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem}.workspace-member__sheet{font-size:.78rem;padding:.3rem .5rem;border-radius:999px;background:rgba(74,127,167,.16);color:#9ac2e0}.workspace-form{display:grid;gap:.7rem}.workspace-form textarea{min-height:100px}.workspace-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.workspace-note{border-left:3px solid #c79a3b;padding:.75rem .85rem;background:rgba(199,154,59,.07);border-radius:0 10px 10px 0}.workspace-note--private{border-left-color:#a32621;background:rgba(163,38,33,.08)}.workspace-note__meta{display:flex;justify-content:space-between;gap:.5rem;color:var(--text-muted,#aaa);font-size:.78rem;margin-top:.45rem}.workspace-session{position:relative;padding-left:1.1rem}.workspace-session:before{content:"";position:absolute;left:0;top:.35rem;width:8px;height:8px;border-radius:50%;background:#c79a3b;box-shadow:0 0 0 4px rgba(199,154,59,.12)}.workspace-invite-box{display:grid;grid-template-columns:1fr auto;gap:.5rem}.workspace-invite-box input{font-family:monospace}.workspace-empty{padding:1rem;text-align:center;color:var(--text-muted,#aaa);border:1px dashed rgba(255,255,255,.12);border-radius:12px}.workspace-danger{border-color:rgba(163,38,33,.28)}.workspace-side .workspace-card{position:relative}.workspace-status{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:#9ed6b5}.workspace-status:before{content:"";width:7px;height:7px;border-radius:50%;background:#4caf75;box-shadow:0 0 10px rgba(76,175,117,.7)}
@media(max-width:900px){.workspace-shell{grid-template-columns:1fr}.workspace-side{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.workspace-heading{display:grid}.workspace-heading__actions{width:100%}.workspace-heading__actions .btn{flex:1}.workspace-side{grid-template-columns:1fr}.workspace-stats,.workspace-form__grid{grid-template-columns:1fr}.workspace-member{grid-template-columns:auto 1fr}.workspace-member__sheet{grid-column:2}.workspace-row{display:grid}.workspace-row__actions{justify-content:flex-start}.workspace-banner__top{align-items:flex-start;flex-direction:column}.workspace-invite-box{grid-template-columns:1fr}}

  
/* Fase 10 — Biblioteca de criaturas e encontros v1.7 */
.encounter-dialog{width:min(1180px,calc(100vw - 24px));height:min(860px,calc(100vh - 24px));padding:0;border:1px solid rgba(199,154,59,.35);border-radius:22px;background:#0b0908;color:var(--parchment-200);box-shadow:0 30px 100px rgba(0,0,0,.75)}
.encounter-dialog::backdrop{background:rgba(2,2,2,.82);backdrop-filter:blur(7px)}
.encounter-shell{min-height:100%;display:grid;grid-template-rows:auto 1fr;overflow:hidden}
.encounter-head{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,rgba(111,23,23,.32),rgba(36,68,92,.2))}
.encounter-head__mark{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;background:rgba(199,154,59,.1);font-size:1.35rem}
.encounter-head h2{margin:2px 0 0;font:700 1.35rem var(--font-display)}
.encounter-head small{color:var(--gold-300);letter-spacing:.12em;text-transform:uppercase}.encounter-head .btn{margin-left:auto}
.encounter-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.8fr);min-height:0}
.encounter-library,.encounter-builder{padding:20px;overflow:auto}.encounter-library{border-right:1px solid var(--line-soft)}
.encounter-tools{display:grid;grid-template-columns:1fr 180px auto;gap:10px;margin-bottom:14px}.encounter-tools input,.encounter-tools select,.encounter-builder input,.encounter-builder select,.encounter-builder textarea{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:9px;background:#15110f;color:var(--parchment-100)}
.creature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.creature-card{padding:14px;border:1px solid var(--line-soft);border-radius:14px;background:linear-gradient(155deg,rgba(29,24,20,.96),rgba(13,11,9,.96));display:grid;gap:9px}.creature-card__top{display:flex;justify-content:space-between;gap:8px}.creature-card h4{margin:0;font:700 1rem var(--font-display)}.creature-card p{margin:0;color:var(--muted);font-size:.83rem;line-height:1.45}.creature-tags{display:flex;gap:6px;flex-wrap:wrap}.creature-tags span,.threat-chip{padding:4px 8px;border:1px solid var(--line-soft);border-radius:999px;background:rgba(255,255,255,.035);font-size:.7rem;color:var(--parchment-300)}
.creature-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.creature-stats span{padding:7px;border-radius:8px;background:rgba(0,0,0,.25);text-align:center;font-size:.72rem}.creature-stats b{display:block;color:var(--gold-300);font-size:.9rem}.creature-card__actions{display:flex;gap:8px}.creature-card__actions .btn{flex:1;min-height:36px;padding:.55rem .7rem}
.encounter-builder{background:rgba(0,0,0,.16)}.encounter-builder__title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.encounter-builder h3{margin:0;font:700 1.1rem var(--font-display)}.encounter-builder__title p{margin:5px 0 0;color:var(--muted);font-size:.8rem}.encounter-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.encounter-summary article{padding:10px;border:1px solid var(--line-soft);border-radius:10px;background:rgba(255,255,255,.025)}.encounter-summary small{display:block;color:var(--muted);font-size:.68rem}.encounter-summary strong{font:700 1rem var(--font-display);color:var(--gold-300)}
.encounter-list{display:grid;gap:8px}.encounter-row{display:grid;grid-template-columns:1fr 70px 40px;gap:8px;align-items:center;padding:10px;border:1px solid var(--line-soft);border-radius:11px;background:rgba(255,255,255,.025)}.encounter-row strong{display:block}.encounter-row small{color:var(--muted)}.encounter-row input{min-height:34px;padding:6px 8px}.encounter-empty{padding:22px;border:1px dashed var(--line);border-radius:12px;text-align:center;color:var(--muted)}
.encounter-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.encounter-actions .btn-primary{grid-column:1/-1}.saved-encounters{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft)}.saved-encounters h4{margin:0 0 10px;font:700 .9rem var(--font-display)}.saved-encounter{display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px;border-radius:9px;background:rgba(255,255,255,.025);margin-bottom:7px}.saved-encounter small{display:block;color:var(--muted)}.saved-encounter__actions{display:flex;gap:5px}.saved-encounter__actions button{min-height:32px;padding:5px 8px}
.custom-creature-panel{margin:14px 0;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:rgba(74,127,167,.06)}.custom-creature-panel h4{margin:0 0 10px;font:700 .9rem var(--font-display)}.custom-creature-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px}.custom-creature-grid .wide{grid-column:1/-1}
@media(max-width:900px){.encounter-body{grid-template-columns:1fr}.encounter-library{border-right:0;border-bottom:1px solid var(--line-soft);max-height:48vh}.encounter-builder{max-height:44vh}.creature-grid{grid-template-columns:1fr}}
@media(max-width:600px){.encounter-dialog{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}.encounter-head{padding:12px}.encounter-head__mark{display:none}.encounter-tools{grid-template-columns:1fr 130px}.encounter-tools button{grid-column:1/-1}.encounter-library,.encounter-builder{padding:12px}.encounter-summary{grid-template-columns:1fr 1fr 1fr}.custom-creature-grid{grid-template-columns:1fr 1fr}.custom-creature-grid .wide{grid-column:1/-1}}


/* v2.3 — Forge Engine Creator: equipamentos */
.fec-row--equipment-slot,.fec-row--currency{grid-template-columns:1.2fr 1fr 1.4fr auto}
.fec-preview article.is-item{border-color:rgba(74,127,167,.45);background:linear-gradient(180deg,rgba(74,127,167,.12),rgba(0,0,0,.18))}
[data-fec-panel="equipment"]>.fec-section+ .fec-section{margin-top:1rem}
@media(max-width:760px){.fec-row--equipment-slot,.fec-row--currency{grid-template-columns:1fr}.fec-row--equipment-slot .fec-remove,.fec-row--currency .fec-remove{width:100%}}


/* inline */
/* Painel de Combate Avançado — v1.6 */
.live-session-dialog{width:min(1580px,98vw);height:min(96vh,1040px);max-width:none;padding:0;border:1px solid rgba(199,154,59,.45);border-radius:22px;background:#0c0b09;color:#ece6d9;overflow:hidden}.live-session-dialog::backdrop{background:rgba(2,2,2,.9);backdrop-filter:blur(8px)}.live-shell{height:100%;display:grid;grid-template-rows:auto 1fr;background:radial-gradient(circle at 15% 0%,rgba(163,38,33,.18),transparent 34%),radial-gradient(circle at 90% 10%,rgba(74,127,167,.14),transparent 28%),#0c0b09}.live-head{display:flex;align-items:center;gap:18px;padding:18px 22px;border-bottom:1px solid rgba(199,154,59,.24);background:rgba(9,8,7,.94)}.live-head__mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#a32621,#5f1613);font-size:24px;box-shadow:0 0 30px rgba(163,38,33,.3)}.live-head__text{min-width:0;flex:1}.live-head__text small{display:block;text-transform:uppercase;letter-spacing:.16em;color:#c79a3b;font-size:.72rem}.live-head__text h2{margin:2px 0 0;font-size:clamp(1.1rem,2vw,1.65rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-clock{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.025)}.live-clock strong{font-family:monospace;font-size:1rem;letter-spacing:.05em}.live-dot{width:8px;height:8px;border-radius:50%;background:#777}.live-dot.running{background:#48c879;box-shadow:0 0 13px #48c879}.live-close{margin-left:4px}.live-body{min-height:0;display:grid;grid-template-columns:minmax(650px,1.75fr) minmax(340px,.85fr);gap:14px;padding:14px;overflow:hidden}.live-main,.live-side{min-height:0;display:flex;flex-direction:column;gap:12px;overflow:auto;padding-right:3px}.live-panel{border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(255,255,255,.025);padding:14px}.live-panel__head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:11px}.live-panel__head h3{margin:0;font-size:1rem}.live-panel__head span{font-size:.76rem;color:#aaa}.live-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.live-round{margin-left:auto;text-align:right}.live-round span{display:block;color:#c9c0ae;font-size:.8rem}.live-round strong{color:#c79a3b;font-size:.86rem}.live-form-row{display:grid;grid-template-columns:1.5fr 105px 1fr 72px 72px 66px auto;gap:7px;margin-bottom:12px}.live-form-row input,.live-form-row select,.dice-controls input,.dice-controls select,.live-notes textarea,.hp-exact input{min-width:0;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#11100e;color:#ece6d9;padding:.58rem .62rem}.initiative-list{display:grid;gap:8px;max-height:55vh;overflow:auto}.initiative-row{display:grid;grid-template-columns:38px minmax(145px,1fr) 62px minmax(235px,1.25fr) auto;align-items:center;gap:8px;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(0,0,0,.18);transition:.18s}.initiative-row.active{border-color:rgba(199,154,59,.8);box-shadow:inset 3px 0 #c79a3b,0 0 20px rgba(199,154,59,.08)}.initiative-row.is-down{opacity:.68;background:rgba(163,38,33,.08)}.initiative-order{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:rgba(199,154,59,.12);color:#d8b866;font-weight:700}.initiative-name strong{display:block}.initiative-name small{display:block;color:#999;font-size:.72rem;margin-top:2px}.group-badge{color:#9ac2e0}.initiative-score span{display:block;font-size:.58rem;color:#888;text-align:center}.initiative-score input{width:56px;text-align:center;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#111;color:#fff;padding:.42rem}.hp-control{display:grid;gap:5px}.hp-value{display:grid;grid-template-columns:65px 1fr;align-items:center;gap:7px}.hp-value strong{font-size:.82rem}.hp-bar{height:7px;background:#251211;border-radius:999px;overflow:hidden}.hp-bar span{display:block;height:100%;background:linear-gradient(90deg,#7e1d19,#d34a3f)}.hp-exact{display:flex;gap:4px}.hp-exact input{width:52px;padding:.34rem;text-align:center}.initiative-actions{display:flex;gap:4px}.condition-list{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.condition-chip{border:0;border-radius:999px;background:rgba(163,38,33,.18);color:#e5aaa6;padding:.2rem .42rem;font-size:.64rem;cursor:pointer}.condition-chip.temp{background:rgba(74,127,167,.18);color:#acd3ef;cursor:default}.dice-controls{display:grid;grid-template-columns:.8fr .8fr 1.2fr;gap:8px}.dice-controls .field span{font-size:.68rem}.dice-purpose{margin-top:8px}.dice-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:10px 0}.dice-button{border:1px solid rgba(199,154,59,.25);border-radius:10px;background:linear-gradient(145deg,#17130e,#0e0d0b);color:#d8b866;padding:.62rem .25rem;font-weight:700;cursor:pointer}.dice-button:hover{border-color:#c79a3b;transform:translateY(-1px)}.dice-result{text-align:center;padding:11px;border-radius:12px;background:rgba(199,154,59,.07);border:1px solid rgba(199,154,59,.14)}.dice-result strong{display:block;font-size:2rem;color:#d8b866}.dice-result span{font-size:.72rem;color:#aaa}.dice-history{display:grid;gap:5px;margin-top:9px;max-height:160px;overflow:auto}.dice-history>div{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.025);font-size:.73rem}.dice-history span{min-width:0;overflow-wrap:anywhere}.dice-history small{display:block;color:#888}.combat-log{display:grid;gap:5px;max-height:210px;overflow:auto}.combat-log__entry{display:grid;grid-template-columns:28px 1fr auto;gap:6px;align-items:start;padding:6px 7px;border-left:2px solid #6f6a60;background:rgba(255,255,255,.024);border-radius:0 7px 7px 0}.combat-log__entry.damage{border-color:#c44}.combat-log__entry.heal{border-color:#4aaf72}.combat-log__entry.roll{border-color:#4a7fa7}.combat-log__entry.condition{border-color:#9b65be}.combat-log__entry.round{border-color:#c79a3b}.combat-log__entry>span,.combat-log__entry time{font-size:.62rem;color:#888}.combat-log__entry p{margin:0;font-size:.72rem;color:#d3ccbf}.live-notes textarea{width:100%;min-height:105px;resize:vertical}.live-notes__status{display:flex;justify-content:space-between;color:#888;font-size:.68rem;margin-top:5px}.live-quick{display:flex;gap:6px;flex-wrap:wrap}.live-empty{text-align:center;color:#888;padding:18px;border:1px dashed rgba(255,255,255,.1);border-radius:10px}
@media(max-width:1100px){.live-body{grid-template-columns:1fr 360px}.live-form-row{grid-template-columns:1.4fr 95px 1fr 65px 65px}.live-form-row button{grid-column:1/-1}.initiative-row{grid-template-columns:34px 1fr 56px}.hp-control{grid-column:2/4}.initiative-actions{grid-column:4;grid-row:1/3}}
@media(max-width:900px){.live-session-dialog{width:100vw;height:100vh;border-radius:0}.live-body{grid-template-columns:1fr;overflow:auto}.live-main,.live-side{display:block;overflow:visible}.live-panel{margin-bottom:12px}.initiative-list{max-height:none}.live-head{padding:12px}.live-clock{display:none}.live-form-row{grid-template-columns:1fr 1fr}.live-form-row button{grid-column:1/-1}.initiative-row{grid-template-columns:34px 1fr 56px}.hp-control{grid-column:2/4}.initiative-actions{grid-column:1/-1;justify-content:flex-end}.dice-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:520px){.live-head__mark{display:none}.live-close{padding:.45rem}.live-toolbar .btn{flex:1}.live-round{width:100%;text-align:left;margin:2px 0 0}.live-form-row{grid-template-columns:1fr}.live-form-row button{grid-column:auto}.initiative-row{grid-template-columns:30px 1fr}.initiative-score{grid-column:1}.hp-control{grid-column:2}.initiative-actions{grid-column:1/-1}.hp-exact{flex-wrap:wrap}.dice-controls{grid-template-columns:1fr 1fr}.dice-controls .field:last-child{grid-column:1/-1}}


/* bestiary-v18-styles */
/* Codex Bestiário — v1.8 */
.bestiary-dialog{width:min(1460px,calc(100vw - 24px));height:min(920px,calc(100vh - 24px));max-width:none;max-height:none;padding:0;border:1px solid rgba(199,154,59,.4);border-radius:20px;background:#0d0c0b;color:var(--text-main);box-shadow:0 35px 120px rgba(0,0,0,.75)}.bestiary-dialog::backdrop{background:rgba(0,0,0,.86);backdrop-filter:blur(8px)}.bestiary-shell{height:100%;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.bestiary-head{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid rgba(199,154,59,.2);background:linear-gradient(90deg,rgba(141,90,43,.2),rgba(11,10,9,.96))}.bestiary-head__mark{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(199,154,59,.45);border-radius:14px;background:rgba(199,154,59,.09);font-size:1.55rem}.bestiary-head h2{margin:2px 0 0;font-family:var(--font-display);font-size:clamp(1.45rem,3vw,2.35rem)}.bestiary-head small{color:var(--text-muted)}.bestiary-head__actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.bestiary-body{min-height:0;display:grid;grid-template-columns:300px minmax(0,1fr) 430px}.bestiary-sidebar,.bestiary-list,.bestiary-detail{min-height:0;overflow:auto}.bestiary-sidebar{padding:16px;border-right:1px solid rgba(199,154,59,.16);background:#0a0908}.bestiary-list{padding:16px}.bestiary-detail{border-left:1px solid rgba(199,154,59,.16);background:linear-gradient(180deg,rgba(28,21,15,.75),#0b0a09);padding:16px}.bestiary-section-title{font-family:var(--font-display);margin:0 0 10px;font-size:1.15rem}.bestiary-search{display:grid;gap:10px}.bestiary-search input,.bestiary-search select{width:100%}.collection-list{display:grid;gap:7px;margin:14px 0}.collection-button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.025);color:var(--text-main);cursor:pointer;text-align:left}.collection-button:hover,.collection-button.active{border-color:rgba(199,154,59,.45);background:rgba(199,154,59,.1)}.collection-button span:last-child{color:var(--text-muted);font-size:.78rem}.bestiary-statbox{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.bestiary-statbox article{padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.025)}.bestiary-statbox small{display:block;color:var(--text-muted)}.bestiary-statbox strong{display:block;margin-top:3px;font-size:1.2rem}.bestiary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bestiary-card{position:relative;padding:15px;border:1px solid rgba(199,154,59,.2);border-radius:15px;background:linear-gradient(145deg,rgba(31,25,20,.95),rgba(12,11,10,.96));cursor:pointer;transition:.2s}.bestiary-card:hover,.bestiary-card.active{transform:translateY(-2px);border-color:rgba(199,154,59,.55);box-shadow:0 15px 36px rgba(0,0,0,.3)}.bestiary-card__top{display:flex;justify-content:space-between;gap:10px}.bestiary-card h4{font-family:var(--font-display);font-size:1.22rem;margin:0}.bestiary-card p{color:var(--text-muted);line-height:1.45;min-height:42px;margin:8px 0}.bestiary-badges{display:flex;gap:6px;flex-wrap:wrap}.bestiary-badges span{padding:4px 8px;border:1px solid rgba(255,255,255,.1);border-radius:999px;font-size:.69rem;color:#d3cabd}.favorite-toggle{position:absolute;top:12px;right:12px;border:0;background:transparent;color:#777;font-size:1.25rem;cursor:pointer}.favorite-toggle.active{color:#e7bd4c}.bestiary-card__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.bestiary-card__stats span{padding:7px;border-radius:8px;background:rgba(255,255,255,.025);text-align:center;font-size:.67rem;color:var(--text-muted)}.bestiary-card__stats b{display:block;color:var(--text-main);font-size:.96rem}.bestiary-empty{grid-column:1/-1;padding:35px;text-align:center;border:1px dashed rgba(199,154,59,.25);border-radius:14px;color:var(--text-muted)}.bestiary-detail-empty{height:100%;display:grid;place-items:center;text-align:center;color:var(--text-muted);padding:30px}.creature-sheet{display:grid;gap:14px}.creature-sheet__hero{position:relative;overflow:hidden;padding:18px;border:1px solid rgba(199,154,59,.28);border-radius:17px;background:radial-gradient(circle at 85% 0,rgba(163,38,33,.2),transparent 45%),linear-gradient(145deg,rgba(55,38,22,.75),rgba(13,12,11,.97))}.creature-sheet__hero small{color:var(--gold-light);text-transform:uppercase;letter-spacing:.08em}.creature-sheet__hero h3{font-family:var(--font-display);font-size:2rem;margin:5px 0}.creature-sheet__hero p{color:var(--text-muted);line-height:1.55}.creature-sheet__actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.creature-core-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.creature-core-stats article{padding:10px 6px;text-align:center;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.025)}.creature-core-stats small{display:block;color:var(--text-muted);font-size:.65rem;text-transform:uppercase}.creature-core-stats strong{font-size:1.2rem}.creature-sheet-section{padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.02)}.creature-sheet-section h4{margin:0 0 9px;font-family:var(--font-display)}.creature-ability,.creature-loot{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 0;border-top:1px solid rgba(255,255,255,.06)}.creature-ability:first-of-type,.creature-loot:first-of-type{border-top:0}.creature-ability small,.creature-loot small{display:block;color:var(--text-muted);margin-top:2px}.creature-form-dialog{width:min(820px,calc(100vw - 28px));padding:0;border:1px solid rgba(199,154,59,.36);border-radius:18px;background:#11100e;color:var(--text-main)}.creature-form-dialog::backdrop{background:rgba(0,0,0,.8)}.creature-form-shell{padding:22px}.creature-form-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.creature-form-head h3{font-family:var(--font-display);font-size:1.8rem;margin:3px 0 16px}.creature-edit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.creature-edit-grid .wide{grid-column:1/-1}.creature-edit-grid textarea{min-height:90px;resize:vertical}.creature-form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.ability-card-mini{padding:12px;border:1px solid rgba(74,127,167,.25);border-radius:12px;background:linear-gradient(145deg,rgba(18,35,45,.5),rgba(11,10,9,.8))}.ability-card-mini h5{margin:0 0 5px;font-size:1rem}.ability-card-mini p{margin:0;color:var(--text-muted);line-height:1.5}.ability-card-mini footer{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.ability-card-mini footer span{font-size:.68rem;padding:4px 7px;border-radius:999px;background:rgba(74,127,167,.13);border:1px solid rgba(74,127,167,.22)}
@media(max-width:1150px){.bestiary-body{grid-template-columns:250px minmax(0,1fr)}.bestiary-detail{grid-column:1/-1;border-left:0;border-top:1px solid rgba(199,154,59,.16);max-height:52vh}.bestiary-dialog{height:calc(100vh - 16px)}}
@media(max-width:720px){.bestiary-head{align-items:flex-start}.bestiary-head__actions{margin-left:0}.bestiary-body{display:block;overflow:auto}.bestiary-sidebar,.bestiary-list,.bestiary-detail{overflow:visible;border:0}.bestiary-grid{grid-template-columns:1fr}.creature-core-stats{grid-template-columns:repeat(3,1fr)}.creature-edit-grid{grid-template-columns:1fr}.creature-edit-grid .wide{grid-column:auto}.bestiary-head__mark{display:none}.bestiary-dialog{width:100vw;height:100vh;border-radius:0}.bestiary-head{flex-wrap:wrap}.bestiary-head__actions{width:100%}.bestiary-head__actions .btn{flex:1}}


/* inline */
.codex-dialog{width:min(1480px,96vw);height:min(900px,94vh);padding:0;border:1px solid rgba(199,154,59,.35);background:#0b0908;color:#ece6d9;border-radius:20px;overflow:hidden}.codex-shell{display:grid;grid-template-columns:260px 1fr 390px;height:100%}.codex-sidebar{padding:22px;background:linear-gradient(180deg,#15110e,#0a0908);border-right:1px solid rgba(199,154,59,.18);overflow:auto}.codex-main{padding:22px;overflow:auto}.codex-detail{padding:22px;background:#100d0b;border-left:1px solid rgba(199,154,59,.18);overflow:auto}.codex-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.codex-head h2{margin:0;font-family:var(--font-display,serif);color:#f2d48a}.codex-kicker{display:block;color:#c79a3b;text-transform:uppercase;letter-spacing:.15em;font-size:.72rem}.codex-close{border:0;background:transparent;color:#ece6d9;font-size:1.5rem;cursor:pointer}.codex-searchbar{display:grid;grid-template-columns:1fr 180px auto;gap:10px;margin-bottom:16px}.codex-searchbar input,.codex-searchbar select{background:#0b0908;border:1px solid rgba(199,154,59,.25);color:#ece6d9;border-radius:10px;padding:11px}.codex-nav{display:grid;gap:8px}.codex-nav button{display:flex;justify-content:space-between;gap:10px;width:100%;padding:11px 12px;border-radius:10px;border:1px solid transparent;background:transparent;color:#cfc5b4;text-align:left;cursor:pointer}.codex-nav button.active,.codex-nav button:hover{background:rgba(199,154,59,.1);border-color:rgba(199,154,59,.25);color:#f2d48a}.codex-statbox{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.codex-statbox article{padding:10px;border:1px solid rgba(199,154,59,.14);border-radius:10px;background:#0c0a09}.codex-statbox strong{display:block;font-size:1.25rem;color:#f2d48a}.codex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.codex-card{position:relative;padding:16px;border:1px solid rgba(199,154,59,.18);border-radius:14px;background:linear-gradient(160deg,#17120f,#0d0b09);cursor:pointer;transition:.2s}.codex-card:hover,.codex-card.active{transform:translateY(-2px);border-color:rgba(199,154,59,.55);box-shadow:0 10px 28px rgba(0,0,0,.3)}.codex-card h4{margin:0 0 6px;color:#f2d48a}.codex-card p{margin:8px 0 0;color:#bdb2a3;font-size:.9rem;line-height:1.45}.codex-badges{display:flex;flex-wrap:wrap;gap:6px}.codex-badges span{font-size:.7rem;padding:4px 7px;border-radius:999px;background:rgba(74,127,167,.13);border:1px solid rgba(74,127,167,.28)}.knowledge-track{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:14px 0}.knowledge-track span{height:7px;border-radius:999px;background:#2a2420}.knowledge-track span.on{background:linear-gradient(90deg,#8d5a2b,#c79a3b)}.codex-detail-empty{display:grid;place-items:center;height:100%;text-align:center;color:#887e72}.codex-sheet h3{margin:.25rem 0;color:#f2d48a;font-size:1.65rem}.codex-sheet section{padding:14px 0;border-top:1px solid rgba(199,154,59,.14)}.codex-sheet section:first-of-type{border-top:0}.codex-sheet p{white-space:pre-wrap;line-height:1.55;color:#c9bfb0}.codex-sheet-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.codex-reveal{padding:12px;border-left:3px solid #c79a3b;background:rgba(199,154,59,.06);border-radius:0 10px 10px 0}.codex-timeline{display:grid;gap:10px}.codex-event{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:12px;border:1px solid rgba(199,154,59,.16);border-radius:12px;background:#0c0a09}.codex-event time{color:#c79a3b;font-size:.8rem}.codex-event strong{display:block}.codex-form-dialog{width:min(760px,94vw);max-height:92vh;border:1px solid rgba(199,154,59,.35);border-radius:18px;background:#100d0b;color:#ece6d9;padding:0}.codex-form{padding:22px;display:grid;gap:14px}.codex-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.codex-form-actions{display:flex;justify-content:flex-end;gap:10px}.codex-empty{grid-column:1/-1;padding:36px;text-align:center;border:1px dashed rgba(199,154,59,.2);border-radius:14px;color:#8f8578}@media(max-width:1050px){.codex-shell{grid-template-columns:210px 1fr}.codex-detail{grid-column:1/-1;border-left:0;border-top:1px solid rgba(199,154,59,.18);min-height:420px}.codex-dialog{height:96vh}.codex-searchbar{grid-template-columns:1fr 150px}}@media(max-width:720px){.codex-shell{display:block;overflow:auto}.codex-sidebar,.codex-main,.codex-detail{overflow:visible}.codex-dialog{height:96vh}.codex-searchbar{grid-template-columns:1fr}.codex-form-grid{grid-template-columns:1fr}.codex-event{grid-template-columns:1fr}.codex-grid{grid-template-columns:1fr}}


/* Forge Engine Creator — v2.1 */
.fec-page{padding-bottom:80px}.fec-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:24px;align-items:stretch}.fec-hero__panel,.fec-summary,.fec-editor,.fec-list{border:1px solid rgba(199,154,59,.2);background:linear-gradient(160deg,rgba(24,19,15,.96),rgba(10,9,8,.96));border-radius:18px;box-shadow:0 16px 50px rgba(0,0,0,.25)}.fec-hero__panel{padding:28px}.fec-hero__panel h2{margin:.25rem 0;color:#f2d48a;font-family:var(--font-display,serif);font-size:clamp(2rem,4vw,3.4rem)}.fec-hero__panel p{max-width:760px;color:#bfb4a4;line-height:1.6}.fec-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.fec-summary{padding:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.fec-summary article{padding:14px;border:1px solid rgba(199,154,59,.12);border-radius:12px;background:#0d0b09}.fec-summary small{display:block;color:#9f9486}.fec-summary strong{display:block;margin-top:4px;color:#f2d48a;font-size:1.4rem}.fec-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;margin-top:22px}.fec-list{padding:18px;height:max-content}.fec-list h3,.fec-editor h3{margin:.2rem 0 1rem;color:#f2d48a}.fec-system-list{display:grid;gap:9px}.fec-system-card{width:100%;padding:13px;border:1px solid rgba(199,154,59,.14);border-radius:12px;background:#0d0b09;color:#d7ccbd;text-align:left;cursor:pointer}.fec-system-card.active,.fec-system-card:hover{border-color:rgba(199,154,59,.55);background:rgba(199,154,59,.08)}.fec-system-card strong{display:block;color:#f0d28a}.fec-system-card small{display:block;margin-top:4px}.fec-editor{padding:22px;min-width:0}.fec-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 14px;margin-bottom:10px;border-bottom:1px solid rgba(199,154,59,.14)}.fec-tabs button{white-space:nowrap;border:1px solid rgba(199,154,59,.16);background:#0d0b09;color:#bdb1a1;padding:9px 12px;border-radius:10px;cursor:pointer}.fec-tabs button.active{color:#f5d986;border-color:rgba(199,154,59,.6);background:rgba(199,154,59,.1)}.fec-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fec-section{margin-top:22px;padding-top:20px;border-top:1px solid rgba(199,154,59,.14)}.fec-section:first-child{margin-top:0;border-top:0;padding-top:0}.fec-section__head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.fec-section__head h4{margin:0;color:#f2d48a}.fec-builder-list{display:grid;gap:10px}.fec-row{display:grid;grid-template-columns:minmax(150px,1.4fr) repeat(3,minmax(90px,.7fr)) auto;gap:8px;align-items:center;padding:11px;border:1px solid rgba(199,154,59,.14);border-radius:12px;background:#0b0908}.fec-row--resource{grid-template-columns:minmax(150px,1.3fr) repeat(2,minmax(100px,.8fr)) minmax(120px,1fr) auto}.fec-row--tier{grid-template-columns:minmax(150px,1.3fr) minmax(100px,.7fr) minmax(180px,1.4fr) auto}.fec-row--skill{grid-template-columns:minmax(160px,1.2fr) minmax(150px,1fr) 100px auto}.fec-row input,.fec-row select,.fec-complex input,.fec-complex select,.fec-complex textarea{width:100%;background:#11100e;border:1px solid rgba(199,154,59,.22);color:#ece6d9;border-radius:9px;padding:9px}.fec-complex{padding:14px;border:1px solid rgba(199,154,59,.14);border-radius:14px;background:#0b0908}.fec-complex__head{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:12px}.fec-complex__head>strong{color:#dfc27f}.fec-complex__head input[type=number]{max-width:110px}.fec-complex__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fec-complex__grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.fec-complex label{display:grid;gap:5px;color:#a99d8d;font-size:.78rem}.fec-complex label.wide{grid-column:1/-1}.fec-complex textarea{min-height:72px;resize:vertical}.fec-remove{border:1px solid rgba(163,38,33,.35);background:rgba(163,38,33,.12);color:#f0aaa5;border-radius:9px;padding:9px 11px;cursor:pointer}.fec-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.fec-preview article{padding:14px;border:1px solid rgba(74,127,167,.2);border-radius:12px;background:rgba(74,127,167,.07)}.fec-preview article.is-class{border-color:rgba(199,154,59,.25);background:rgba(199,154,59,.07)}.fec-preview article.is-ability{border-color:rgba(143,88,190,.25);background:rgba(143,88,190,.07)}.fec-preview strong{display:block;color:#d9eafa;font-size:1.15rem}.fec-empty{padding:24px;text-align:center;color:#897f73;border:1px dashed rgba(199,154,59,.2);border-radius:12px}.fec-json{width:100%;min-height:340px;background:#070605;border:1px solid rgba(199,154,59,.2);color:#d9d2c7;border-radius:12px;padding:14px;font-family:monospace;font-size:.82rem;line-height:1.5}.fec-badge{display:inline-flex;padding:4px 8px;border-radius:999px;border:1px solid rgba(199,154,59,.25);background:rgba(199,154,59,.08);color:#e8c875;font-size:.72rem}.fec-validation{margin:14px 0;padding:13px;border:1px solid rgba(163,38,33,.28);border-radius:12px;background:rgba(163,38,33,.08);color:#e9b0aa}.fec-validation.ok{border-color:rgba(78,151,100,.3);background:rgba(78,151,100,.08);color:#bce3c6}.fec-publish{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:20px;padding:16px;border:1px solid rgba(74,127,167,.2);border-radius:14px;background:rgba(74,127,167,.06)}@media(max-width:1100px){.fec-complex__grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.fec-hero,.fec-layout{grid-template-columns:1fr}.fec-list{position:static}.fec-form-grid{grid-template-columns:1fr}}@media(max-width:680px){.fec-row,.fec-row--resource,.fec-row--tier,.fec-row--skill,.fec-complex__grid,.fec-complex__grid--4{grid-template-columns:1fr}.fec-summary{grid-template-columns:repeat(2,1fr)}.fec-publish{align-items:flex-start;flex-direction:column}.fec-complex label.wide{grid-column:auto}.fec-editor{padding:16px}}


/* inline */
.fec-preview article.is-condition{border-color:rgba(163,38,33,.55);box-shadow:inset 0 0 24px rgba(163,38,33,.08)}.fec-condition-guide{background:linear-gradient(135deg,rgba(163,38,33,.08),rgba(74,127,167,.05))}


/* forja-v26-styles */
.fec-preview article.is-derived{border-color:rgba(78,151,100,.4);background:linear-gradient(180deg,rgba(78,151,100,.12),rgba(0,0,0,.18))}.fec-preview article.is-derived.has-error{border-color:rgba(163,38,33,.55)}
    .fec-formula-lab{padding:18px;border:1px solid rgba(74,127,167,.24);border-radius:14px;background:linear-gradient(135deg,rgba(74,127,167,.08),rgba(199,154,59,.04))}.fec-level-test{display:grid;gap:5px;color:#a99d8d;font-size:.78rem}.fec-level-test input{width:110px;background:#11100e;border:1px solid rgba(199,154,59,.22);color:#ece6d9;border-radius:9px;padding:9px}.fec-formula-help{color:#9f9486;line-height:1.6}.fec-formula-help code{color:#e8c875}.fec-formula-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.fec-formula-result{display:grid;grid-template-columns:42px 1fr;gap:10px;padding:13px;border:1px solid rgba(78,151,100,.25);border-radius:12px;background:#0b0908}.fec-formula-result>span{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:rgba(199,154,59,.1);font-size:1.35rem}.fec-formula-result small,.fec-formula-result strong,.fec-formula-result code,.fec-formula-result b,.fec-formula-result em{display:block}.fec-formula-result small{color:#8f8577}.fec-formula-result strong{color:#f2d48a}.fec-formula-result code{margin:.25rem 0;color:#a8cce8;white-space:normal;word-break:break-word}.fec-formula-result b{color:#bce3c6;font-size:1.2rem}.fec-formula-result.has-error{border-color:rgba(163,38,33,.45)}.fec-formula-result em{color:#e9b0aa}.fec-derived-row [data-k="formula"]{font-family:monospace;color:#cfe8ff}
    .fce-summary-list{align-items:stretch}.fce-derived-card{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"icon label value" "icon category value";gap:2px 9px;align-items:center;width:100%;padding:.8rem;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:inherit;text-align:left;cursor:pointer}.fce-derived-card:hover{background:rgba(199,154,59,.06)}.fce-derived-card>span{grid-area:icon;font-size:1.1rem}.fce-derived-card small{grid-area:label;color:var(--muted)}.fce-derived-card strong{grid-area:value;color:var(--parchment-100);font-size:1.08rem}.fce-derived-card em{grid-area:category;color:#8f8577;font-size:.68rem;font-style:normal}.derived-formula-box{margin:1rem 0;padding:1rem;border:1px solid rgba(74,127,167,.25);border-radius:12px;background:rgba(74,127,167,.07)}.derived-formula-box small,.derived-formula-box code{display:block}.derived-formula-box small{color:#8f8577}.derived-formula-box code{margin:.4rem 0;color:#cfe8ff;white-space:normal;word-break:break-word}.derived-formula-box p{margin:.5rem 0 0;color:#bdb1a1}.derived-dialog__inner h3{color:#e8c875;font-size:1rem}
    @media(max-width:680px){.fec-formula-results{grid-template-columns:1fr}.fec-level-test input{width:100%}.fce-derived-card{grid-template-columns:auto 1fr auto}}


/* forja-v27-styles */
/* v2.7 — Testes, rolagens e dificuldades */
.fec-row--difficulty{grid-template-columns:1.15fr .9fr .55fr 1.5fr auto}.fec-preview article.is-check{border-color:rgba(143,88,190,.42);background:linear-gradient(180deg,rgba(143,88,190,.12),rgba(0,0,0,.18))}.fec-check-row [data-k="diceFormula"],.fec-check-row [data-k="modifierFormula"],.fec-check-row [data-k="targetFormula"],.fec-check-row [data-k="opposedFormula"]{font-family:monospace;color:#cfe8ff}.fec-roll-guide{padding:16px;border:1px solid rgba(143,88,190,.25);border-radius:14px;background:linear-gradient(135deg,rgba(143,88,190,.08),rgba(74,127,167,.05));color:#bdb1a1;line-height:1.6}.fec-roll-guide code{color:#e8c875}.fec-roll-lab{padding:18px;border:1px solid rgba(199,154,59,.22);border-radius:14px;background:radial-gradient(circle at 100% 0,rgba(143,88,190,.12),transparent 35%),#0b0908}.fec-roll-lab__controls{display:grid;grid-template-columns:1.4fr 1fr .6fr .9fr .8fr auto;gap:10px;align-items:end}.fec-roll-lab__controls label{display:grid;gap:5px;color:#a99d8d;font-size:.78rem}.fec-roll-lab__controls input,.fec-roll-lab__controls select{width:100%;background:#11100e;border:1px solid rgba(199,154,59,.22);color:#ece6d9;border-radius:9px;padding:9px}.fec-roll-result{margin-top:14px}.fec-roll-outcome{display:grid;gap:5px;padding:16px;border:1px solid rgba(74,127,167,.3);border-radius:13px;background:rgba(74,127,167,.07)}.fec-roll-outcome small{color:#9f9486}.fec-roll-outcome strong{color:#e8c875;font-size:1.35rem}.fec-roll-outcome span{color:#d7ccbd}.fec-roll-outcome code{color:#a8cce8;white-space:normal;word-break:break-word}.fec-roll-outcome.is-success{border-color:rgba(78,151,100,.45);background:rgba(78,151,100,.08)}.fec-roll-outcome.is-failure{border-color:rgba(163,38,33,.45);background:rgba(163,38,33,.08)}.fec-roll-history{display:grid;gap:6px;margin-top:10px}.fec-roll-history>div{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.025);font-size:.76rem}.fec-roll-history span{color:#958b7e}.fec-roll-history strong{color:#d8c9ad;text-align:right}@media(max-width:1100px){.fec-roll-lab__controls{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.fec-row--difficulty,.fec-roll-lab__controls{grid-template-columns:1fr}.fec-roll-history>div{align-items:flex-start;flex-direction:column}.fec-roll-history strong{text-align:left}}


/* forja-v28-skills-styles */
/* v2.8 — Perícias, proficiências, especializações e resistências */
.fec-skills-rules{background:linear-gradient(135deg,rgba(74,127,167,.08),rgba(199,154,59,.04))}.fec-skills-rules .fec-form-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.fec-skill-advanced{border-color:rgba(74,127,167,.38);background:linear-gradient(180deg,rgba(74,127,167,.09),rgba(0,0,0,.16))}.fec-proficiency{border-color:rgba(199,154,59,.38)}.fec-specialization{border-color:rgba(143,88,190,.42);background:linear-gradient(180deg,rgba(143,88,190,.08),rgba(0,0,0,.16))}.fec-resistance{border-color:rgba(163,38,33,.42);background:linear-gradient(180deg,rgba(163,38,33,.08),rgba(0,0,0,.16))}.fec-skill-lab{padding:18px;border:1px solid rgba(78,151,100,.28);border-radius:14px;background:radial-gradient(circle at 100% 0,rgba(78,151,100,.11),transparent 38%),#0b0908}.fec-skill-lab__controls{display:grid;grid-template-columns:1.3fr .65fr 1.2fr .65fr .65fr .75fr .75fr;gap:10px;align-items:end}.fec-skill-lab__controls label{display:grid;gap:5px;color:#a99d8d;font-size:.78rem}.fec-skill-lab__controls input,.fec-skill-lab__controls select{width:100%;background:#11100e;border:1px solid rgba(199,154,59,.22);color:#ece6d9;border-radius:9px;padding:9px}.fec-skill-result{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,1fr);gap:16px;margin-top:14px;padding:16px;border:1px solid rgba(78,151,100,.38);border-radius:13px;background:rgba(78,151,100,.07)}.fec-skill-result small,.fec-skill-result strong,.fec-skill-result code{display:block}.fec-skill-result small{color:#9f9486}.fec-skill-result strong{margin:.2rem 0;color:#d8efde;font-size:1.35rem}.fec-skill-result code{color:#a8cce8;white-space:normal;word-break:break-word}.fec-skill-result.is-locked{border-color:rgba(163,38,33,.45);background:rgba(163,38,33,.08)}.fec-skill-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.fec-skill-breakdown span{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.035);color:#a99d8d;font-size:.78rem}.fec-skill-breakdown b{color:#e8c875}.fec-skill-guide{padding:14px;border:1px solid rgba(74,127,167,.22);border-radius:12px;background:rgba(74,127,167,.055);color:#a99d8d;line-height:1.6}.fec-skill-guide code{color:#e8c875}@media(max-width:1180px){.fec-skills-rules .fec-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fec-skill-lab__controls{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.fec-skills-rules .fec-form-grid,.fec-skill-lab__controls,.fec-skill-result{grid-template-columns:1fr}.fec-skill-breakdown{grid-template-columns:1fr}}


/* forja-progression-styles */
.fec-progression-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fec-progression-lab{background:linear-gradient(145deg,rgba(35,28,18,.94),rgba(11,10,9,.98))}.fec-progression-result{display:grid;gap:14px;margin-top:16px}.fec-progression-card{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.fec-progression-card>div{padding:16px;border:1px solid rgba(199,154,59,.22);border-radius:14px;background:#0c0a08}.fec-progression-card small{display:block;color:#9f9486}.fec-progression-card strong{display:block;margin-top:6px;color:#f2d48a;font:700 1.45rem var(--font-display)}.fec-progression-gains{display:grid;gap:9px;margin:0;padding:0;list-style:none}.fec-progression-gains li{display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid rgba(199,154,59,.14);border-radius:12px;background:#0d0b09}.fec-progression-gains li strong{color:#efcf87}.fec-progression-gains li span,.fec-progression-gains li small{color:#bfb4a4}.fec-progression-gains li small{text-align:right}.fec-progression-badge{display:inline-flex;padding:.25rem .55rem;border:1px solid rgba(74,127,167,.4);border-radius:999px;color:#9cc7e3;font-size:.72rem}.fec-complex [data-k="resourceGrowth"]{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
@media(max-width:900px){.fec-progression-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fec-progression-card{grid-template-columns:1fr}.fec-progression-gains li{grid-template-columns:1fr}.fec-progression-gains li small{text-align:left}}
@media(max-width:580px){.fec-progression-grid{grid-template-columns:1fr}}


/* forge-runtime-inline */
.frt-panel{display:grid;gap:1rem}.frt-toolbar{display:grid;grid-template-columns:2fr 2fr 1fr auto;gap:.75rem;align-items:end}.frt-toolbar label{display:grid;gap:.35rem;color:var(--parchment,#ece6d9);font-size:.82rem}.frt-toolbar select,.frt-toolbar input,.frt-output{width:100%;border:1px solid rgba(199,154,59,.28);background:rgba(9,8,7,.78);color:#ece6d9;border-radius:.7rem;padding:.75rem}.frt-status{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.1rem;border:1px solid rgba(199,154,59,.25);border-radius:1rem;background:linear-gradient(135deg,rgba(141,90,43,.2),rgba(9,8,7,.86))}.frt-status strong{font-family:Georgia,serif;font-size:1.15rem}.frt-status span{color:rgba(236,230,217,.7);font-size:.85rem}.frt-status.is-valid{box-shadow:inset 4px 0 0 #6ca56c}.frt-status.is-invalid{box-shadow:inset 4px 0 0 #a32621}.frt-summary,.frt-modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.frt-summary article,.frt-modules article{display:grid;gap:.28rem;padding:.85rem;border:1px solid rgba(199,154,59,.2);border-radius:.85rem;background:rgba(26,26,26,.72)}.frt-summary small,.frt-modules small{color:rgba(236,230,217,.58);text-transform:uppercase;letter-spacing:.08em}.frt-summary strong,.frt-modules strong{font-size:1.2rem;color:#f1c45c}.frt-summary span,.frt-modules span{font-size:.78rem;color:rgba(236,230,217,.68)}.frt-modules .is-ready{color:#8fc88f}.frt-modules .is-empty{color:#a79d8c}.frt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:1rem}.frt-card{border:1px solid rgba(199,154,59,.2);border-radius:1rem;background:rgba(9,8,7,.64);padding:1rem}.frt-card h5{margin:0 0 .7rem;color:#e8c16a}.frt-warning-list{display:grid;gap:.45rem;list-style:none;padding:0;margin:0}.frt-warning-list li{display:grid;grid-template-columns:140px 1fr;gap:.6rem;padding:.6rem;border-radius:.6rem;background:rgba(26,26,26,.7)}.frt-warning-list li.warning strong{color:#f0c55c}.frt-warning-list li.error strong{color:#d86e65}.frt-warning-list li.success strong{color:#8fc88f}.frt-warning-list span{color:rgba(236,230,217,.72)}.frt-output{min-height:360px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;line-height:1.45}.frt-rollbar{display:grid;grid-template-columns:1fr auto;gap:.65rem}.frt-roll-result{display:flex;align-items:center;gap:.7rem;margin-top:.7rem;min-height:48px;padding:.6rem .75rem;border-radius:.65rem;background:rgba(26,26,26,.7)}.frt-roll-result strong{font-size:1.45rem;color:#f1c45c}.frt-roll-result span{flex:1;color:rgba(236,230,217,.75)}.frt-roll-result code{font-size:.7rem;color:#9bbbd0}@media(max-width:900px){.frt-toolbar{grid-template-columns:1fr 1fr}.frt-summary,.frt-modules{grid-template-columns:repeat(2,minmax(0,1fr))}.frt-grid{grid-template-columns:1fr}}@media(max-width:560px){.frt-toolbar,.frt-summary,.frt-modules{grid-template-columns:1fr}.frt-status{align-items:flex-start;flex-direction:column}.frt-warning-list li{grid-template-columns:1fr}.frt-rollbar{grid-template-columns:1fr}}


/* runtime-integration-inline-style */
.runtime-integration-panel{margin:0 0 18px;padding:18px;border:1px solid rgba(74,127,167,.32);border-radius:16px;background:radial-gradient(circle at 100% 0,rgba(74,127,167,.13),transparent 38%),linear-gradient(145deg,rgba(14,19,24,.96),rgba(12,9,8,.98));box-shadow:inset 0 1px rgba(255,255,255,.025)}.runtime-integration-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.runtime-integration-panel__head small{color:#8bb6d8;text-transform:uppercase;letter-spacing:.12em}.runtime-integration-panel__head h3{margin:.2rem 0;color:#ece6d9}.runtime-integration-panel__head p{margin:0;color:#a99d8d}.runtime-status{display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:999px;border:1px solid rgba(255,255,255,.12);font-size:.75rem;font-weight:800}.runtime-status.is-ready{color:#bce7c8;background:rgba(61,139,83,.14);border-color:rgba(61,139,83,.38)}.runtime-status.is-warning{color:#f1d68b;background:rgba(199,154,59,.13);border-color:rgba(199,154,59,.38)}.runtime-status.is-error{color:#f2aca8;background:rgba(163,38,33,.15);border-color:rgba(163,38,33,.42)}.runtime-integration-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.runtime-integration-stats article{padding:12px;border:1px solid rgba(255,255,255,.075);border-radius:12px;background:rgba(255,255,255,.025)}.runtime-integration-stats small,.runtime-integration-stats strong,.runtime-integration-stats span{display:block}.runtime-integration-stats small{color:#938878}.runtime-integration-stats strong{margin:.15rem 0;color:#e8c875;font-size:1.25rem}.runtime-integration-stats span{color:#a99d8d;font-size:.76rem}.runtime-integration-actions{display:flex;gap:9px;flex-wrap:wrap}.runtime-resource-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:9px}.runtime-resource-actions button{border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.25);color:#ece6d9;border-radius:7px;padding:5px 8px;cursor:pointer}.runtime-resource-actions button:hover{border-color:rgba(199,154,59,.55);color:#e8c875}.runtime-folio-status{position:absolute;right:14px;bottom:12px;padding:5px 8px;border-radius:999px;font-size:.68rem;font-weight:800;z-index:4}.runtime-folio-status.is-ready{color:#bde9c9;background:rgba(38,91,52,.9);border:1px solid rgba(99,184,122,.45)}.runtime-folio-status.is-pending{color:#f1d38a;background:rgba(88,65,23,.92);border:1px solid rgba(199,154,59,.42)}.character-folio{position:relative}.runtime-checks-dialog{width:min(900px,calc(100vw - 24px));max-height:90vh;border:1px solid rgba(74,127,167,.38);border-radius:18px;background:#0c0a09;color:#ece6d9;padding:0}.runtime-checks-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(5px)}.runtime-checks-shell{padding:22px}.runtime-checks-shell>header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}.runtime-checks-shell header small{color:#8bb6d8;text-transform:uppercase;letter-spacing:.12em}.runtime-checks-shell h2,.runtime-checks-shell h3{margin:.25rem 0}.runtime-checks-shell p{margin:0;color:#a99d8d}.runtime-checks-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:18px;padding-top:18px}.runtime-check-result{display:grid;gap:5px;margin-top:14px;padding:18px;border:1px solid rgba(74,127,167,.28);border-radius:14px;background:rgba(74,127,167,.07)}.runtime-check-result strong{font-size:2rem;color:#e8c875}.runtime-check-result span{color:#c9c0b4}.runtime-check-result code{color:#9dc6e4;white-space:normal;word-break:break-word}.runtime-check-history{display:grid;gap:8px;max-height:350px;overflow:auto}.runtime-check-history article{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.025)}.runtime-check-history span small,.runtime-check-history span strong,.runtime-check-history em{display:block}.runtime-check-history small{color:#817669}.runtime-check-history b{color:#e8c875;font-size:1.15rem}.runtime-check-history em{grid-column:1/-1;color:#a99d8d;font-size:.75rem}.live-runtime-tools{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:end;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.live-runtime-tools label{display:grid;gap:4px;color:#a99d8d;font-size:.75rem}.live-runtime-tools select{width:100%;background:#11100e;border:1px solid rgba(199,154,59,.22);color:#ece6d9;border-radius:8px;padding:8px}@media(max-width:900px){.runtime-integration-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.runtime-checks-layout{grid-template-columns:1fr}}@media(max-width:620px){.runtime-integration-panel__head{display:grid}.runtime-integration-stats{grid-template-columns:1fr 1fr}.runtime-integration-actions{display:grid}.runtime-checks-shell{padding:16px}.runtime-checks-shell>header{display:grid}.live-runtime-tools{grid-template-columns:1fr}}


/* cloud-sync-inline-style */
.cloud-sync-button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;border:1px solid rgba(236,230,217,.13);border-radius:999px;background:rgba(8,7,6,.72);color:#b8aea0;cursor:pointer;font-size:.72rem;white-space:nowrap}.cloud-sync-button strong{font-weight:750}.cloud-sync-button i{width:7px;height:7px;border-radius:50%;background:#80776b;box-shadow:0 0 0 3px rgba(128,119,107,.12)}.cloud-sync-button.is-synced{border-color:rgba(77,159,101,.38);color:#bde8c9}.cloud-sync-button.is-synced i{background:#59aa70;box-shadow:0 0 10px rgba(89,170,112,.75)}.cloud-sync-button.is-syncing{border-color:rgba(74,127,167,.5);color:#acd0e8}.cloud-sync-button.is-syncing i{background:#6ba4c8;animation:cloudPulse 1s infinite}.cloud-sync-button.is-pending{border-color:rgba(199,154,59,.45);color:#ecd17f}.cloud-sync-button.is-pending i{background:#c79a3b}.cloud-sync-button.is-error,.cloud-sync-button.is-offline{border-color:rgba(163,38,33,.45);color:#efa9a5}.cloud-sync-button.is-error i,.cloud-sync-button.is-offline i{background:#a32621}@keyframes cloudPulse{50%{transform:scale(1.6);opacity:.45}}
.cloud-sync-dialog{width:min(1080px,calc(100vw - 24px));max-height:92vh;border:1px solid rgba(74,127,167,.42);border-radius:20px;padding:0;background:#0d0b0a;color:#ece6d9;box-shadow:0 34px 110px rgba(0,0,0,.72)}.cloud-sync-dialog::backdrop{background:rgba(0,0,0,.8);backdrop-filter:blur(7px)}.cloud-sync-shell{padding:24px}.cloud-sync-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.cloud-sync-head small{color:#86b5d3;text-transform:uppercase;letter-spacing:.12em}.cloud-sync-head h2{font-family:var(--font-display);font-size:2.1rem;margin:.25rem 0}.cloud-sync-head p,.cloud-sync-card p{margin:0;color:#a99d8d;line-height:1.55}.cloud-sync-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.cloud-sync-summary article{padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012))}.cloud-sync-summary small,.cloud-sync-summary strong,.cloud-sync-summary span{display:block}.cloud-sync-summary small{color:#8f8375;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.cloud-sync-summary strong{margin:.28rem 0;color:#e8c875;font-size:1.15rem}.cloud-sync-summary span{color:#9f9588;font-size:.76rem}.cloud-sync-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:14px}.cloud-sync-card{padding:18px;border:1px solid rgba(255,255,255,.085);border-radius:15px;background:rgba(255,255,255,.024)}.cloud-sync-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.cloud-sync-card h3{margin:0 0 5px;font-size:1.1rem}.cloud-sync-modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}.cloud-sync-modules article{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid rgba(255,255,255,.065);border-radius:11px;background:rgba(0,0,0,.16)}.cloud-sync-modules article>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(255,255,255,.05);color:#746b60}.cloud-sync-modules article.is-present>span{background:rgba(61,139,83,.18);color:#aee2bc}.cloud-sync-modules strong,.cloud-sync-modules small{display:block}.cloud-sync-modules small{margin-top:2px;color:#8e8478;font-size:.7rem}.cloud-sync-actions{display:flex;gap:8px;flex-wrap:wrap}.cloud-file-label{cursor:pointer}.cloud-sync-setup{display:grid;align-content:start;gap:12px}.cloud-sync-setup .field{margin:0}.cloud-sync-note{color:#8e8478;line-height:1.45}.cloud-sync-note code{color:#91bed9}.cloud-sync-conflicts{margin-top:14px;padding:18px;border:1px solid rgba(163,38,33,.28);border-radius:15px;background:rgba(92,22,19,.08)}.cloud-sync-conflicts #cloudConflictList{display:grid;gap:8px;margin-top:14px}.cloud-sync-conflicts article{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px;border:1px solid rgba(255,255,255,.07);border-radius:11px}.cloud-sync-conflicts strong,.cloud-sync-conflicts small,.cloud-sync-conflicts code{display:block}.cloud-sync-conflicts small{color:#bda5a2}.cloud-sync-conflicts code{margin-top:4px;color:#8e8478;font-size:.68rem}
@media(max-width:920px){.cloud-sync-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cloud-sync-layout{grid-template-columns:1fr}}@media(max-width:700px){.cloud-sync-button strong{display:none}.cloud-sync-shell{padding:16px}.cloud-sync-head{display:grid}.cloud-sync-summary{grid-template-columns:1fr 1fr}.cloud-sync-modules{grid-template-columns:1fr}.cloud-sync-card__head{display:grid}.cloud-sync-conflicts article{align-items:flex-start;display:grid}}@media(max-width:430px){.cloud-sync-summary{grid-template-columns:1fr}.cloud-sync-actions{display:grid}.cloud-sync-actions .btn{width:100%}}


/* access-control-inline-style */
.forge-security-button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;border:1px solid rgba(199,154,59,.24);border-radius:999px;background:rgba(8,7,6,.72);color:#d8c28b;cursor:pointer;font-size:.72rem;white-space:nowrap}.forge-security-button:hover{border-color:rgba(199,154,59,.55);color:#f2d887}.forge-security-button i{width:7px;height:7px;border-radius:50%;background:#6da67b;box-shadow:0 0 9px rgba(109,166,123,.55)}.forge-security-button.is-locked i{background:#b64b45;box-shadow:0 0 9px rgba(182,75,69,.6)}
.forge-security-dialog{width:min(1160px,calc(100vw - 24px));max-height:93vh;border:1px solid rgba(199,154,59,.32);border-radius:20px;padding:0;background:#0d0b0a;color:#ece6d9;box-shadow:0 34px 110px rgba(0,0,0,.76)}.forge-security-dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}.forge-security-shell{padding:24px}.forge-security-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.forge-security-head small{color:#d3ae55;text-transform:uppercase;letter-spacing:.12em}.forge-security-head h2{margin:.25rem 0;font-family:var(--font-display);font-size:2rem}.forge-security-head p{margin:0;color:#a99d8d;line-height:1.5}.forge-security-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.forge-security-summary article{padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012))}.forge-security-summary small,.forge-security-summary strong,.forge-security-summary span{display:block}.forge-security-summary small{color:#8f8375;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.forge-security-summary strong{margin:.28rem 0;color:#e8c875;font-size:1.1rem}.forge-security-summary span{color:#9f9588;font-size:.75rem}.forge-security-resource{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-bottom:14px;padding:14px;border:1px solid rgba(74,127,167,.22);border-radius:14px;background:rgba(74,127,167,.055)}.forge-security-resource label{display:grid;gap:6px;color:#a99d8d;font-size:.78rem}.forge-security-resource select{width:100%;padding:11px 12px;border:1px solid rgba(236,230,217,.14);border-radius:10px;background:#11100e;color:#ece6d9}.forge-security-role{display:inline-grid;place-items:center;min-width:130px;padding:10px 14px;border:1px solid rgba(199,154,59,.3);border-radius:999px;background:rgba(199,154,59,.08);color:#e8c875;font-weight:800}.forge-security-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:14px;padding-bottom:4px}.forge-security-tabs button{appearance:none;padding:9px 13px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.025);color:#9f9588;cursor:pointer;white-space:nowrap}.forge-security-tabs button.active{border-color:rgba(199,154,59,.38);background:rgba(199,154,59,.1);color:#f0d685}.forge-security-panel{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.75fr);gap:14px}.forge-security-card{padding:17px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:rgba(255,255,255,.022)}.forge-security-card h3{margin:0 0 4px;font-size:1.05rem}.forge-security-card>p{margin:0 0 14px;color:#948a7e;line-height:1.5}.forge-security-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.forge-security-list{display:grid;gap:8px;max-height:420px;overflow:auto}.forge-security-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px;border:1px solid rgba(255,255,255,.065);border-radius:11px;background:rgba(0,0,0,.15)}.forge-security-row strong,.forge-security-row small,.forge-security-row code{display:block}.forge-security-row small{margin-top:3px;color:#8f8478}.forge-security-row code{margin-top:4px;color:#8cb9d4;font-size:.68rem;word-break:break-all}.forge-security-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.forge-security-empty{padding:24px;border:1px dashed rgba(255,255,255,.1);border-radius:12px;color:#8e8376;text-align:center}.forge-security-form{display:grid;gap:10px}.forge-security-form .field{margin:0}.forge-security-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.forge-security-permissions{display:flex;gap:6px;flex-wrap:wrap}.forge-security-permissions span{padding:5px 8px;border:1px solid rgba(109,166,123,.2);border-radius:999px;background:rgba(109,166,123,.07);color:#b8d9c0;font-size:.68rem}.forge-security-lock{display:grid;gap:12px;padding:15px;border:1px solid rgba(163,38,33,.2);border-radius:13px;background:rgba(163,38,33,.055)}.forge-security-lock.is-open{border-color:rgba(109,166,123,.22);background:rgba(109,166,123,.045)}.forge-security-lock strong{color:#e8c875}.forge-security-lock p{margin:0;color:#9f9588;line-height:1.5}.forge-security-audit{display:grid;gap:7px;max-height:480px;overflow:auto}.forge-security-audit article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px;border:1px solid rgba(255,255,255,.06);border-radius:10px}.forge-security-audit b{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:rgba(199,154,59,.1);color:#d9b85f}.forge-security-audit strong,.forge-security-audit small{display:block}.forge-security-audit small{margin-top:3px;color:#8f8478}.forge-security-audit time{color:#786f65;font-size:.68rem}.forge-security-version-badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:rgba(74,127,167,.12);color:#9cc7e0;font-size:.68rem}.forge-security-warning{position:fixed;z-index:150;right:18px;bottom:18px;max-width:390px;padding:13px 15px;border:1px solid rgba(163,38,33,.48);border-radius:12px;background:#25100e;color:#f2c4c1;box-shadow:0 18px 55px rgba(0,0,0,.5);animation:securityToast .25s ease both}.forge-security-readonly{position:relative}.forge-security-readonly::before{content:'Somente leitura';position:sticky;z-index:5;top:calc(var(--topbar-height) + 8px);float:right;margin:8px;padding:6px 9px;border:1px solid rgba(199,154,59,.3);border-radius:999px;background:#16110b;color:#e4c873;font-size:.68rem}.forge-security-disabled{opacity:.48;filter:saturate(.55)}@keyframes securityToast{from{transform:translateY(12px);opacity:0}}
@media(max-width:920px){.forge-security-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.forge-security-panel{grid-template-columns:1fr}}@media(max-width:700px){.forge-security-button span{display:none}.forge-security-shell{padding:16px}.forge-security-head{display:grid}.forge-security-resource{grid-template-columns:1fr}.forge-security-summary{grid-template-columns:1fr 1fr}.forge-security-form-grid{grid-template-columns:1fr}.forge-security-row{grid-template-columns:1fr}.forge-security-row-actions{justify-content:flex-start}}@media(max-width:430px){.forge-security-summary{grid-template-columns:1fr}.forge-security-card-head{display:grid}.forge-security-actions{display:grid}.forge-security-actions .btn{width:100%}}


/* forge-live-sharing-v41-style */
/* Forja dos Mundos v4.1 — Ficha Viva compartilhada e sincronizada */
.shared-character-page{--fvs-accent:#c79a3b;--fvs-accent-rgb:199,154,59}
.fvs-viewer{display:grid;gap:.8rem}
.fvs-toolbar{position:sticky;top:calc(var(--topbar-height,64px) + .4rem);z-index:35;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.72rem .85rem;border:1px solid rgba(199,154,59,.24);border-radius:14px;background:rgba(10,9,8,.9);backdrop-filter:blur(16px);box-shadow:0 12px 32px rgba(0,0,0,.28)}
.fvs-toolbar__status,.fvs-toolbar__actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.fvs-toolbar__status i{width:8px;height:8px;border-radius:50%;background:#4db77b;box-shadow:0 0 12px rgba(77,183,123,.7)}.fvs-toolbar__status i.is-local{background:#d2a34c;box-shadow:0 0 12px rgba(210,163,76,.5)}.fvs-toolbar__status i.is-offline{background:#a32621;box-shadow:0 0 12px rgba(163,38,33,.55)}.fvs-toolbar__status strong{color:var(--parchment-100);font-size:.78rem}.fvs-toolbar__status small{color:var(--muted);font-size:.65rem}.fvs-readonly{margin:0}.fvs-readonly .fvl-module{pointer-events:auto}.fvs-readonly .fvl-module__body{scrollbar-width:thin}.fvs-readonly .fvl-stat{cursor:default}.fvs-readonly .fvl-stat:hover{transform:none}.fvs-readonly .fvl-list-row:hover{border-color:rgba(255,255,255,.055)}
.fvs-permission-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .48rem;border:1px solid rgba(199,154,59,.22);border-radius:999px;background:rgba(199,154,59,.07);color:#d7c49a;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.fvs-portrait{height:100%;min-height:170px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 32%,rgba(var(--fvl-accent-rgb),.38),rgba(0,0,0,.82) 64%)}.fvs-portrait img{width:100%;height:100%;object-fit:cover}.fvs-portrait span{font:800 clamp(2.2rem,6vw,5rem) Cinzel,serif;color:rgba(255,255,255,.82);text-shadow:0 8px 26px #000}
.fvs-concept{margin:0;color:#d8d0c3;line-height:1.65;font-size:.74rem}.fvs-readonly-note{white-space:pre-wrap;color:#d8d0c3;font-size:.72rem;line-height:1.62}.fvs-module-note{padding:.7rem;border:1px solid rgba(255,255,255,.06);border-radius:10px;background:rgba(0,0,0,.16)}
.fvs-card-action{border:1px solid rgba(var(--fvl-accent-rgb),.32);background:rgba(var(--fvl-accent-rgb),.08);color:var(--fvl-text);border-radius:8px;padding:.32rem .5rem;font:600 .62rem Inter,sans-serif;cursor:pointer}.fvs-card-action:hover{border-color:var(--fvl-accent);background:rgba(var(--fvl-accent-rgb),.16)}
.fvs-shared-meta{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap;padding:.58rem .8rem;border-top:1px solid rgba(255,255,255,.06);color:var(--fvl-muted);font-size:.62rem}.fvs-shared-meta div{display:flex;gap:.4rem;flex-wrap:wrap}
.share-manager__header .v41-mark{display:inline-flex;margin-left:.45rem;padding:.2rem .45rem;border:1px solid rgba(74,127,167,.36);border-radius:999px;background:rgba(74,127,167,.09);color:#9bc0dc;font-size:.58rem;vertical-align:middle}
.workspace-member__sheet-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:.38rem;flex-wrap:wrap}.workspace-member__sheet-actions .workspace-member__sheet{margin-left:0}
@media(max-width:700px){.fvs-toolbar{position:relative;top:auto;align-items:flex-start;flex-direction:column}.fvs-toolbar__actions{width:100%}.fvs-toolbar__actions .btn{flex:1}.workspace-member__sheet-actions{width:100%;justify-content:flex-start;margin-left:47px}.fvs-portrait{min-height:250px}}
@media print{.fvs-toolbar,.shared-page-heading,.shared-access-panel,.share-manager__meta{display:none!important}.shared-character-page{padding:0!important}.fvs-viewer{display:block}.fvs-readonly{border:0!important}}

