/* Generato da dev/build-theme.php. Modificare i sorgenti in css/theme/. */

/* === tokens === */
/* Riferimento: gothik_chat_redesign_interattivo.html. Regole visive uniche, indipendenti dai layout. */
:root {
  --map-glow:rgba(255,225,142,.55);
  color-scheme: dark;
  --bg: #07111e;
  --panel: #0c1829;
  --panel-soft: #0d1b2e;
  --panel-2: #101f34;
  --gold: #d0a95f;
  --gold-2: #efcd84;
  --line: rgba(209,163,87,.28);
  --text: #f3ead9;
  --muted: #a0acc2;
  --muted-2: #72839a;
  --accent: #70b7fd;
  --character-female: #71387c;
  --character-male: #243d5f;
  --typing-ink: #76684e;
  --danger: #e24d5f;
  --notification-background: #b83245;
  --notification-ink: #fff;
  --ok: #92c978;
  --danger-surface: rgba(226, 77, 95, .12);
  --ok-surface: rgba(126, 203, 111, .1);
  --hover: #1a2939;
  --shadow-color: #0005;
  --shadow: 0 20px 40px #0005;
  --page-background: radial-gradient(ellipse at 55% 0%,#172943 0%,#091321 45%,#050a13 100%);
  --button-background: linear-gradient(#16253a,#0d1a2a);
  --brand-background: radial-gradient(circle,#374052,#0b1829);
  --reading-background: radial-gradient(ellipse at 45% 12%,#f7e8c7,#ead6b0 78%,#d8c098);
  --reading-ink: #2f2b2a;
  --reading-stripe: #ffffff1a;
  --reading-hover: #fff6;
  --reading-line: #a989574e;
  --reading-link: #243d5f;
  --reading-shadow: none;
  --parchment: #f0e1bf;
  --parchment-ink: #2f2b2a;
  --parchment-line: #caa87a;
  --speech-good: #29303b;
  --speech-neutral: #29303b;
  --speech-evil: #29303b;
  --font-body: Georgia, 'Times New Roman', serif;
  --font-ui: system-ui, sans-serif;
  --radius: 15px;
  --radius-sm: 9px;
  --gap: 12px;
  --sidebar-w: 360px;
  --header-h: 80px;
  --footer-h: 50px;
  --font-base: 16px;
  --transition: .18s ease;
  --blur: 12px;
  --icon: #d6af66;
  --nav-ink: #d7d2c7;
  --balance-background: #14283f;
  --balance-line: #394356;
  --select-background: #102338;
  --select-line: #39465b;
  --select-ink: #e2d6c0;
  --scrollbar: #97794c;
  --paper-scrollbar: #ac8a4c;
  --paper-scrollbar-track: #d6c7aa;
  --master-title: #f6d995;
  --master-inset: #c7a96b40;
  --icon-on-paper: #785a35;
  --icon-nav: #d4af70;
  --icon-hover: #f9dfa5;
  --button-ink: #cdbb99;
  --button-hover: linear-gradient(#27394c,#17283a);
  --button-active-line: #d0a35b;
  --field-background: #0e1a2b;
  --field-line: #354358;
  --field-ink: #f4e9d4;
  --heading-background: linear-gradient(90deg,#11233a,#0b1a2c 60%,#101d30);
  --topbar-background: linear-gradient(180deg,#0a1627,#07111d);
  --sidebar-background: linear-gradient(#0e1c2f,#091626);
  --modal-background: linear-gradient(135deg,#132740,#091525);
  --modal-header-background: #14253b;
  --modal-ink: #cad4e3;
  --composer-background: linear-gradient(180deg,#101f33,#0b192a);
  --send-background: linear-gradient(#d5b572,#a97f43);
  --send-line: #ebce90;
  --send-ink: #122033;
  --health-background: linear-gradient(90deg,#719b59,#92c978);
  --prose-ink: #29303b;
  --action-male: #23364b;
  --chat-line: #a989574e;
  --content-space: 17px;
  /* Nomi semantici condivisi dai componenti, senza preferenze individuali. */
  --header-bg: var(--panel);
  --panel-bg: var(--panel);
  --news-bg: var(--panel);
  --grad: linear-gradient(180deg,#0b182a,#081320);
  --glass-bg: var(--panel-soft);
  --shadow-soft: var(--shadow);
  --shadow-glow: 0 0 0 2px var(--line);
  --map-bg: none;
  --master-background: linear-gradient(120deg,#15273a,#102034);
  --master-ink: #e9d8b5;
  --master-line: #b28a48;
}

/* === base === */
*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); scrollbar-color:var(--scrollbar) var(--bg); }
body { margin: 0; min-height: 100vh; padding: 18px; background: var(--page-background); color: var(--text); font: 1rem/1.65 var(--font-body); }
h1, h2, h3, h4, h5, h6 { color: var(--gold-2); line-height: 1.2; letter-spacing: .025em; }
h1 { font-size: clamp(1.5rem, 3vw, 2rem); }
h2 { font-size: 1.35rem; }
h3 { font-size: 1.1rem; }
a { color: var(--gold-2); text-decoration: none; }
a:hover { color: var(--text); text-decoration: underline; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--gold-2); outline-offset: 3px; }
img { max-width: 100%; vertical-align: middle; }
iframe { border: 0; display: block; }
hr { border: 0; border-top: 1px solid var(--line); margin-block: 1rem; }
small, .muted, .meta, .Descrizione { color: var(--muted); }
.Valore { color: var(--text); }
pre, code { white-space: pre-wrap; overflow-wrap: anywhere; }
button, input, select, textarea { font: inherit; }
button, [type=submit], [type=button], [type=reset], .btn, .action-btn, .btn-submit { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: .65rem 1rem; background: var(--button-background); color: var(--button-ink); cursor: pointer; transition: border-color var(--transition), background var(--transition), box-shadow var(--transition); }
button:hover, [type=submit]:hover, .btn:hover, .action-btn:hover { border-color: var(--button-active-line); background: var(--button-hover); color: var(--gold-2); box-shadow: inset 0 -2px var(--gold); text-decoration: none; }
button:disabled, input:disabled { opacity: .5; cursor: not-allowed; }
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]), select, textarea { min-width: 0; max-width: 100%; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: 10px; background: var(--field-background); border-color:var(--field-line); color: var(--field-ink); }
textarea { width: 100%; resize: vertical; min-height: 5rem; }
input::placeholder, textarea::placeholder { color: var(--muted-2); }
input[type=checkbox], input[type=radio] { accent-color: var(--gold); }
input[readonly], textarea[readonly] { color: var(--muted); }
fieldset { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 1rem; margin: 0 0 1rem; min-width: 0; }
legend { color: var(--gold-2); padding-inline: .4rem; }
label { color: var(--text); }
table { max-width: 100%; border-collapse: collapse; color: var(--text); }
th, td { padding: .65rem .75rem; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--gold-2); background: var(--panel-2); }
tbody tr:hover { background: var(--hover); }
[hidden] { display: none !important; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background:var(--scrollbar); border-radius: 8px; }
@media (max-width: 600px) { body { padding: 12px; font-size: .95rem; } th, td { padding: .45rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

/* === components === */
.panel, .card, .cardbox { background:var(--sidebar-background); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding:13px 15px; border-bottom:1px solid var(--line); background:var(--panel-2); }
.panel-header h2, .panel-header h3 { margin:0; font-size:14px; letter-spacing:.4px; }
.panel-body { padding:14px; }
.page-header { padding: 16px 18px; color: var(--gold-2); background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: var(--gap); }
.center { text-align: center; }
.actions, .button-row { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.error, .alert-error, .danger { color: var(--danger); }
.success, .alert-success { color: var(--ok); }
.flash { padding: .75rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel-2); color: var(--text); }
#toast { position: fixed; inset: auto 16px 16px auto; display: block; width: max-content; height: auto; min-height: 0; max-width: min(420px, calc(100vw - 32px)); max-height: min(160px, 35dvh); overflow: auto; margin: 0; background: var(--panel-2); color: var(--text); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: .75rem 1rem; box-shadow: var(--shadow); z-index: 10000; opacity: 0; visibility: hidden; transform: none; white-space: normal; overflow-wrap: anywhere; line-height: 1.45; pointer-events: none; transition: opacity var(--transition); }
#toast.show { opacity: 1; visibility: visible; }
.icon-btn { min-width: 42px; min-height: 42px; display: inline-flex; justify-content: center; align-items: center; padding: .5rem; text-decoration: none; color: var(--gold-2); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--button-background); }
.quiet-btn { border-color: transparent; background: transparent; padding: .2rem .5rem; color: var(--muted); }
.count-badge { display: inline-flex; min-width: 1.6rem; justify-content: center; padding: .1rem .45rem; border: 1px solid var(--line); border-radius: 999px; color: var(--gold-2); font-size: .8rem; }
.ql-toolbar.ql-snow, .ql-container.ql-snow { border-color: var(--line); }
.ql-toolbar.ql-snow { background: var(--panel-2); border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
.ql-snow .ql-picker { color: var(--text); }
.ql-snow .ql-picker-options { background: var(--panel-2); }
.ql-snow .ql-stroke { stroke: var(--text); }
.ql-snow .ql-fill { fill: var(--text); }
.ql-snow .ql-editor { color: var(--text); background: var(--panel); }
.ql-snow .ql-tooltip { background: var(--panel-2); color: var(--text); border-color: var(--line); }
/* Aspetto comune dei moduli, indipendente dai loro controlli di disposizione. */
:where(.header, .hdr, .message-header, .panel-title, .card-header) { background: var(--panel-2); border-bottom: 1px solid var(--line); color: var(--gold-2); }
:where(.nav-panel, .sidebar:not(.right-col)) { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-sm); }
:where(.nav-panel li.active, .tab.active, .tabs button.active) { color: var(--gold-2); background: var(--hover); }
:where(.card, .cardbox, .panel, .modal-content, .modal-window) { border-radius: var(--radius); }
:where(.btn, .btn-sm, .action-btn, .btn-submit, .btn-secondary, .btn-mod) { border-radius: var(--radius-sm); }
body[data-styles~=master-detail] { display: flex; flex-direction: column; height: 100dvh; min-height: 0; }
body[data-styles~=master-detail] .page-header { flex: 0 0 auto; height: auto; margin: 0; }
body[data-styles~=master-detail] > .wrap { min-height: 0; }
body[data-view=private-room] > .wrap { height: 100%; min-height: 0; }
#toast[data-state=error] { border-color: var(--danger); background: var(--panel-2); }
#toast[data-state=success] { border-color: var(--ok); background: var(--panel-2); }
.hdr.active { background: var(--hover); color: var(--gold-2); }
.message-page { padding: 2rem; text-align: center; }
.mail-result { display: flex; flex-wrap: wrap; gap: 2rem; text-align: left; }
.is-blocked { background: var(--danger-surface); color: var(--danger); border: 1px solid var(--danger); }
.password-help { margin-top: .75rem; }
.password-help summary { color: var(--gold-2); cursor: pointer; }
.password-help iframe { width: 100%; height: 260px; border: 1px solid var(--line); border-radius: var(--radius-sm); margin-top: .75rem; }
/* Variante condivisa delle finestre del template per gli avvisi, anche dalle viste in iframe. */
dialog.ui-notice-dialog.modal-window { width:min(560px,calc(100vw - 32px)); height:fit-content; min-width:0; min-height:0; max-height:calc(100dvh - 32px); margin:auto; padding:0; resize:none; color:var(--text); background:var(--modal-background); }
dialog.ui-notice-dialog:not([open]) { display:none; }
.ui-notice-dialog::backdrop { background:rgba(0,0,0,.7); backdrop-filter:blur(5px); }
.ui-notice-dialog .modal-header { padding:20px 22px; gap:16px; background:var(--modal-header-background); }
.ui-notice-heading { display:flex; align-items:center; gap:14px; min-width:0; }
.ui-notice-heading > .ui-icon { flex:0 0 38px; width:38px; height:38px; padding:7px; border:1px solid var(--line); border-radius:10px; color:var(--gold-2); }
.ui-notice-heading .ui-eyebrow { margin:0 0 5px; color:var(--gold); font:600 .65rem/1.5 var(--font-ui); letter-spacing:.13em; text-transform:uppercase; }
.ui-notice-heading h2 { margin:0; color:var(--gold-2); font-size:1.35rem; line-height:1.25; text-align:left; }
.ui-notice-dialog .ui-notice-close { display:grid; place-items:center; width:36px; height:36px; flex:0 0 36px; padding:0; font-size:1.4rem; }
.ui-notice-dialog .modal-body { flex:0 1 auto; padding:22px; }
.ui-notice-message { margin:0; font:14px/1.65 var(--font-ui); color:var(--modal-ink); }
.ui-notice-order { margin-top:20px; border:1px solid var(--parchment-line); border-radius:10px; overflow:hidden; background:var(--parchment); color:var(--parchment-ink); }
.ui-notice-order h3 { margin:0; padding:12px 16px; border-bottom:1px solid var(--parchment-line); font:600 .72rem/1.5 var(--font-ui); color:inherit; text-transform:uppercase; letter-spacing:.06em; text-align:left; }
.ui-notice-order ol { margin:0; padding:0; list-style:none; counter-reset:notice-turn; }
.ui-notice-order li { display:grid; grid-template-columns:26px minmax(0,1fr) auto; gap:12px; align-items:center; padding:12px 16px; counter-increment:notice-turn; }
.ui-notice-order li+li { border-top:1px solid var(--parchment-line); }
.ui-notice-order li::before { content:counter(notice-turn); display:grid; place-items:center; width:26px; height:26px; border:1px solid var(--parchment-line); border-radius:50%; font:.75rem var(--font-ui); }
.ui-notice-order strong { color:inherit; overflow-wrap:anywhere; }
.ui-notice-order li span { font:.7rem/1.5 var(--font-ui); }
.ui-notice-detail { margin:16px 0 0; color:var(--muted); font:.78rem/1.6 var(--font-ui); }
.ui-notice-dialog .modal-footer { display:flex; justify-content:flex-end; padding:16px 22px; border-top:1px solid var(--line); background:var(--panel-2); }
.ui-notice-accept { min-width:120px; }
@media(max-width:480px){.ui-notice-dialog .modal-header,.ui-notice-dialog .modal-body { padding:16px; }.ui-notice-heading h2 { font-size:1.15rem; }.ui-notice-order li { grid-template-columns:26px minmax(0,1fr); gap:6px 10px; }.ui-notice-order li span { grid-column:2; }.ui-notice-dialog .modal-footer { padding:14px 16px; }}

/* === modules === */
/* Operative controllers with a shared navigation and active-panel contract. */
body[data-styles~="master-detail"] *,
body[data-styles~="master-detail"] *::before,
body[data-styles~="master-detail"] *::after { box-sizing: border-box; margin: 0; padding: 0; }
body[data-styles~="master-detail"] { width: 100%; height: 100%; overflow: hidden; }
body[data-styles~="master-detail"] h1 { font-size: 1.75rem; margin-bottom: var(--gap); }
body[data-styles~="master-detail"] h2 { font-size: 1.5rem; }
body[data-styles~="master-detail"] h3 { padding: .3em .8em; font-size: 1rem; }
body[data-styles~="master-detail"] .page-header { height: var(--header-h); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; font-weight: bold; flex: 0 0 var(--header-h); }
body[data-styles~="master-detail"] .wrap { display: flex; flex: 1 1 auto; height: calc(100% - var(--header-h)); overflow: hidden; }
body[data-styles~="master-detail"] .nav-panel { flex: 0 0 30%; max-width: 30%; overflow-y: auto; }
body[data-styles~="master-detail"] .nav-panel h2 { padding: 1rem; text-align: center; }
body[data-styles~="master-detail"] .nav-panel ul { list-style: none; }
body[data-styles~="master-detail"] .nav-panel li { padding: .75rem 1rem; cursor: pointer; transition: background .2s; }
body[data-styles~="master-detail"] .main-panel { flex: 1 1 auto; display: flex; flex-direction: column; overflow: hidden; }
body[data-styles~="master-detail"] .panel-header { flex: 0 0 50px; display: flex; align-items: center; padding: 0 1rem; font-size: 1.25rem; }
body[data-styles~="master-detail"] .panel-container { flex: 1 1 auto; overflow-y: auto; padding: var(--gap); }
body[data-styles~="master-detail"] .panel { display: none; }
body[data-styles~="master-detail"] .panel.active { display: block; }
body[data-styles~="master-detail"] .session-details p { margin: .5rem 0; }
body[data-styles~="master-detail"] .session-details label { display: inline-block; width: 120px; }
body[data-styles~="master-detail"] .action-btn { padding: .5rem 1rem; font-size: 1rem; cursor: pointer; transition: background .2s; display: inline-block; }
@media (max-width: 600px) {
body[data-styles~="master-detail"] .wrap { flex-direction: column; }
body[data-styles~="master-detail"] .nav-panel,
body[data-styles~="master-detail"] .main-panel { flex: 0 0 auto; max-width: 100%; }
body[data-styles~="master-detail"] .nav-panel ul { display: flex; flex-wrap: nowrap; overflow-x: auto; padding: 0 var(--gap); }
body[data-styles~="master-detail"] .nav-panel li { flex: 0 0 auto; margin: 0 .5rem; text-align: center; }
body[data-styles~="master-detail"] .nav-panel li:first-child { margin-left: var(--gap); }
body[data-styles~="master-detail"] .nav-panel li:last-child { margin-right: var(--gap); }
}
body[data-styles~="master-detail"] .api-output { margin-top: 1rem; padding: 1rem; font-size: 0.9rem; }
body[data-styles~="master-detail"] .api-output dl dt { margin-top: 0.5rem; }
body[data-styles~="master-detail"] .api-output dl dd { margin: 0.25rem 0 0.5rem 0; padding-left: 1rem; }

/* Embedded private-room and message-composer controllers. The application shell is in layout.css. */
body[data-styles~="workspace"] { width:100%; min-width:0; }
body[data-styles~="workspace"] .container { width:100%; min-width:0; }

/* Document controllers: ordinary data, forms and dialogs. */
body[data-styles~="document"] { height: 100%; width: 100%; font-size: var(--font-base); line-height: 1.5; display: flex; flex-direction: column; overflow: auto; min-height: 100vh; }
body[data-styles~="document"] ::-webkit-scrollbar { width: 8px; height: 8px; }
body[data-styles~="document"] * { scrollbar-width: thin; }
body[data-styles~="document"] .modal-body,
body[data-styles~="document"] .main,
body[data-styles~="document"] .ris-wrapper,
body[data-styles~="document"] .contenitore-mail { scrollbar-width: thin; }
body[data-styles~="document"] .modal-body::-webkit-scrollbar,
body[data-styles~="document"] .main::-webkit-scrollbar,
body[data-styles~="document"] .ris-wrapper::-webkit-scrollbar,
body[data-styles~="document"] .contenitore-mail::-webkit-scrollbar { width: 8px; height: 8px; }
body[data-styles~="document"] a { text-decoration: none; }
body[data-styles~="document"] a:hover { text-decoration: underline; }
body[data-styles~="document"] header { flex-shrink: 0; }

body[data-styles~="document"] main { flex:1; min-width:0; }

body[data-styles~="document"] h2,
body[data-styles~="document"] h3 { margin-top: var(--gap); margin-bottom: calc(var(--gap) / 2); }
body[data-styles~="document"] .tabs { display: flex; }
body[data-styles~="document"] .tabs button { flex: 1; padding: 0.75rem; cursor: pointer; font-size: 1rem; }
body[data-styles~="document"] .tab-content { display: none; padding: var(--gap); }
body[data-styles~="document"] .tab-content.active { display: block; }
body[data-styles~="document"] table { width: 100%; border-collapse: collapse; margin-bottom: var(--gap); }
body[data-styles~="document"] th,
body[data-styles~="document"] td { padding: 0.5rem; }
body[data-styles~="document"] .Descrizione { font-size: 0.9rem; }
body[data-styles~="document"] .panel-button { padding: 0.5rem 1rem; cursor: pointer; font-size: 1rem; }
body[data-styles~="document"] form.inline { display: inline; }
body[data-styles~="document"] .wrapper { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: var(--gap); }
body[data-styles~="document"] .card { padding: var(--gap); }
body[data-styles~="document"] .card h2 { margin-bottom: 0.75rem; font-size: 1.25rem; }
body[data-styles~="document"] .flash { display: inline-block; padding: 0.5rem 1rem; margin-top: 0.5rem; }
body[data-styles~="document"] .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
body[data-styles~="document"] .form-grid .full { grid-column: 1 / -1; }
body[data-styles~="document"] .form-grid label { display: flex; flex-direction: column; font-size: 0.9rem; }
body[data-styles~="document"] .form-grid input,
body[data-styles~="document"] .form-grid select,
body[data-styles~="document"] .form-grid textarea { margin-top: 0.25rem; padding: 0.5rem; font-size: 1rem; }
body[data-styles~="document"] .btn { padding: 0.5rem 1rem; cursor: pointer; font-size: 1rem; transition: background 0.2s, color 0.2s; }
body[data-styles~="document"] .results { margin-top: var(--gap); display: flex; flex-direction: column; gap: var(--gap); }
body[data-styles~="document"] .result { padding: var(--gap); }
body[data-styles~="document"] .r-header { display: flex; justify-content: space-between; font-size: 0.85rem; margin-bottom: 0.5rem; }
body[data-styles~="document"] .r-desc { margin-bottom: 0.5rem; white-space: pre-wrap; }
body[data-styles~="document"] .r-meta { display: flex; gap: 1rem; font-size: 0.8rem; }
body[data-styles~="document"] .inline { display: inline; }
@media (max-width: 600px) {

body[data-styles~="document"] .form-grid { grid-template-columns: 1fr; }
}
body[data-styles~="document"] .modal-backdrop { position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: none; align-items: center; justify-content: center; z-index: 2000; }
body[data-styles~="document"] .modal { max-width: 90%; max-height: 90%; overflow: auto; padding: var(--gap); position: relative; }
body[data-styles~="document"] .modal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--gap); }
body[data-styles~="document"] .modal-title { font-size: 1.25rem; font-weight: bold; }
body[data-styles~="document"] .modal-close { font-size: 1.5rem; cursor: pointer; }
body[data-styles~="document"] .modal-body { margin-bottom: var(--gap); line-height: 1.6; }
body[data-styles~="document"] .modal-footer { display: flex; justify-content: flex-end; gap: var(--gap); }
body[data-styles~="document"] .modal-backdrop.show { display: flex; }
/* Public account-recovery documents use the same base typography. */
body[data-styles~="article"] h1 { font-size:1.75em; }
body[data-styles~="article"] h2 { font-size:1.25em; }
body[data-styles~="article"] h3 { font-size:1.1em; }

/* === home === */
/* Homepage: faithful reference, scoped to the public landing page. */

body[data-view="homepage"]{--ink:#07111c;--night:#081522;--navy:#0b1c2d;--navy2:#10273b;--navy3:#173148;--gold:#d3ad71;--gold-hi:#f2d8a6;--gold-low:#95784e;--silver:#d7d8d3;--white:#f0ebe3;--muted:#a8b0be;--red:#923c48;--red2:#d16c65;--green:#77968d;--line:rgba(211,173,113,.26);--hero:url('/images/homepage/92386abb4dcb7aa2.webp');--world:url('/images/homepage/6e7a8a178983eaa6.webp');--vamp:url('/images/homepage/5ea4258eb90d0d55.webp');--wolf:url('/images/homepage/947920e40b5c379a.webp')}
body[data-view="homepage"] *{box-sizing:border-box}
html:has(body[data-view="homepage"]){scroll-behavior:smooth;scroll-padding-top:100px}
body[data-view="homepage"]{margin:0;background:var(--ink);color:var(--white);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
body[data-view="homepage"]:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 6% 20%,#19324733,transparent 37%),radial-gradient(ellipse at 85% 75%,#5f29301b,transparent 37%);z-index:0}
body[data-view="homepage"] a{color:inherit;text-decoration:none}
body[data-view="homepage"] button{font:inherit}
body[data-view="homepage"] button,body[data-view="homepage"] a{ -webkit-tap-highlight-color:transparent }
body[data-view="homepage"] button:focus-visible,body[data-view="homepage"] a:focus-visible{outline:2px solid var(--gold-hi);outline-offset:4px}
body[data-view="homepage"] svg{display:block}
body[data-view="homepage"] .icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
body[data-view="homepage"] section,body[data-view="homepage"] footer{position:relative;z-index:1}
body[data-view="homepage"] .container{width:min(1480px,calc(100% - 88px));margin-inline:auto}
body[data-view="homepage"] .eyebrow{font-size:11px;font-weight:700;letter-spacing:.29em;text-transform:uppercase;color:var(--gold)}
body[data-view="homepage"] .serif{font-family:Georgia,"Times New Roman",serif}
body[data-view="homepage"] .section-head{text-align:center;margin:0 auto 33px;max-width:850px}
body[data-view="homepage"] .section-head h2{font:400 clamp(31px,3.6vw,52px)/1.12 Georgia,"Times New Roman",serif;letter-spacing:.015em;color:var(--gold-hi);margin:12px 0 14px}
body[data-view="homepage"] .section-head p{font:400 16px/1.7 Georgia,serif;color:#bdc5d1;margin:0}
body[data-view="homepage"] .flourish{display:flex;gap:14px;justify-content:center;align-items:center;color:var(--gold-low);margin-top:20px}
body[data-view="homepage"] .flourish:before,body[data-view="homepage"] .flourish:after{content:"";height:1px;width:78px;background:linear-gradient(90deg,transparent,var(--gold-low))}
body[data-view="homepage"] .flourish:after{transform:rotate(180deg)}
body[data-view="homepage"] .header{position:fixed;top:0;left:0;right:0;z-index:100;border-bottom:1px solid #d5aa6438;background:#07111de8;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 30px #0006}
body[data-view="homepage"] .header-inner{width:min(1530px,calc(100% - 56px));margin:auto;height:80px;display:flex;align-items:center;gap:36px}
body[data-view="homepage"] .logo{display:flex;align-items:center;gap:12px;min-width:206px}
body[data-view="homepage"] .logo-mark{width:36px;height:36px;border:1px solid #b9955a;background:linear-gradient(135deg,#182d3d,#07121b);transform:rotate(45deg);display:grid;place-items:center;box-shadow:0 0 0 4px #bd925020}
body[data-view="homepage"] .logo-mark span{transform:rotate(-45deg);font:25px Georgia;color:var(--gold-hi)}
body[data-view="homepage"] .logo-text strong{display:block;font:700 32px/.95 Georgia,serif;letter-spacing:.025em;color:#f3d59d;text-shadow:0 2px 18px #c39a5542}
body[data-view="homepage"] .logo-text small{display:block;margin-top:4px;color:#9ea7b3;font-size:9px;letter-spacing:.29em;text-transform:uppercase}
body[data-view="homepage"] .site-nav{display:flex;align-items:center;justify-content:center;gap:7px;flex:1}
body[data-view="homepage"] .site-nav a{padding:14px 15px;color:#c3c9d0;font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:.16em;border-bottom:1px solid transparent;transition:.2s}
body[data-view="homepage"] .site-nav a:hover,body[data-view="homepage"] .site-nav a.active{color:#f0d8a9;border-bottom-color:var(--gold)}
body[data-view="homepage"] .nav-cta{display:flex;align-items:center;gap:10px}
body[data-view="homepage"] .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--gold-low);padding:14px 21px;border-radius:9px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;cursor:pointer;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}
body[data-view="homepage"] .btn:hover{transform:translateY(-2px);border-color:var(--gold-hi);box-shadow:0 12px 28px #0006}
body[data-view="homepage"] .btn-primary{background:linear-gradient(115deg,#672a31,#9a4048 55%,#662731);color:#fff3e0;box-shadow:0 8px 24px #421e2160,inset 0 1px #d27f7770}
body[data-view="homepage"] .btn-secondary{background:#0d1d2ed9;color:var(--gold-hi)}
body[data-view="homepage"] .menu-toggle{display:none;border:1px solid var(--line);border-radius:8px;background:#102439;color:var(--gold-hi);width:45px;height:44px;place-items:center;cursor:pointer}
body[data-view="homepage"] .hero{min-height:min(840px,100vh);padding-top:80px;display:flex;align-items:center;position:relative;isolation:isolate;background:#0c1b2b;overflow:hidden}
body[data-view="homepage"] .hero:before{content:"";position:absolute;inset:0;background-image:var(--hero);background-size:cover;background-position:center 48%;filter:saturate(.92) brightness(.8);z-index:-2}
body[data-view="homepage"] .hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#07111b44,#06101c99 35%,#06101cc4 49%,#06101c83 63%,#07111b35),linear-gradient(180deg,#07111b29 0%,transparent 33%,#07111cbd 100%);z-index:-1}
body[data-view="homepage"] .hero-inner{text-align:center;width:min(740px,calc(100% - 32px));margin:0 auto;padding:75px 16px 132px}
body[data-view="homepage"] .hero-symbol{width:56px;height:56px;margin:0 auto 20px;border:1px solid #caa1668a;display:grid;place-items:center;transform:rotate(45deg);background:#07132080}
body[data-view="homepage"] .hero-symbol span{transform:rotate(-45deg);font-size:26px;color:#e6c692}
body[data-view="homepage"] .hero .eyebrow{color:#ead09c;font-size:13px}
body[data-view="homepage"] .hero h1{font:400 clamp(56px,8vw,116px)/.95 Georgia,serif;letter-spacing:.055em;color:#fae3b1;margin:24px 0 19px;text-shadow:0 5px 35px #000,0 1px 2px #120d0d}
body[data-view="homepage"] .hero h1 span{display:block;font:400 clamp(19px,2.2vw,28px)/1.2 Georgia,serif;letter-spacing:.21em;text-transform:uppercase;color:#e8dbc6;margin-bottom:12px}
body[data-view="homepage"] .hero-lead{font:400 clamp(18px,2vw,24px)/1.55 Georgia,serif;color:#ece0ce;text-shadow:0 2px 10px #000c;margin:0 auto;max-width:560px}
body[data-view="homepage"] .hero-actions{display:flex;gap:15px;justify-content:center;flex-wrap:wrap;margin-top:35px}
body[data-view="homepage"] .hero-badges{display:flex;justify-content:center;align-items:center;gap:20px;color:#c8c4bc;margin-top:31px;font-size:10px;letter-spacing:.22em;text-transform:uppercase}
body[data-view="homepage"] .hero-badges i{display:inline-block;width:5px;height:5px;border:1px solid var(--gold);transform:rotate(45deg)}
body[data-view="homepage"] .hero-bottom{position:absolute;bottom:0;left:0;right:0;border-top:1px solid #d4ab6c46;background:#07131ec4;backdrop-filter:blur(14px);display:flex;justify-content:center;gap:7vw;min-height:70px;align-items:center;padding:12px 24px}
body[data-view="homepage"] .hero-bottom span{font:13px Georgia;color:#e6d4b7}
body[data-view="homepage"] .hero-bottom span strong{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font:700 10px system-ui;margin-right:8px}
body[data-view="homepage"] .intro{padding:100px 0 80px;background:radial-gradient(ellipse at 90% 45%,#18334b55,transparent 44%),#071421}
body[data-view="homepage"] .intro-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
body[data-view="homepage"] .intro-text{max-width:650px}
body[data-view="homepage"] .intro-text h2{font:400 clamp(37px,4.4vw,66px)/1.09 Georgia,serif;color:var(--gold-hi);margin:16px 0 25px}
body[data-view="homepage"] .intro-text h2 em{font-style:italic;color:#d7b16d}
body[data-view="homepage"] .intro-text p{font:17px/1.85 Georgia,serif;color:#c5c9cf;margin:0 0 19px}
body[data-view="homepage"] .intro-text strong{color:#f0d6a7;font-weight:400}
body[data-view="homepage"] .text-link{display:inline-flex;gap:10px;align-items:center;color:var(--gold-hi);border-bottom:1px solid #ad8a5655;padding:0 0 9px;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.14em;margin-top:16px}
body[data-view="homepage"] .text-link:hover{color:#fff;border-bottom-color:var(--gold-hi)}
body[data-view="homepage"] .intro-image{height:510px;position:relative;border-radius:18px;overflow:hidden;background-image:linear-gradient(180deg,transparent 50%,#051120aa),var(--world);background-size:cover;background-position:center;box-shadow:0 22px 70px #0008;border:1px solid var(--line)}
body[data-view="homepage"] .intro-image:after{content:"";position:absolute;inset:10px;border:1px solid #d0ab6142;border-radius:11px;pointer-events:none}
body[data-view="homepage"] .image-caption{position:absolute;bottom:28px;left:30px;right:25px;font:italic 18px Georgia,serif;color:#e8d8bf;text-shadow:0 3px 14px #000}
body[data-view="homepage"] .people{padding:84px 0 110px;background:linear-gradient(180deg,#081522,#081726 75%,#081624)}
body[data-view="homepage"] .people-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px}
body[data-view="homepage"] .figure-card{cursor:pointer;text-align:left;border:1px solid #bd965d56;border-radius:14px;background:#0f2233;overflow:hidden;padding:0;position:relative;min-width:0;color:inherit;transition:transform .22s,border-color .22s,box-shadow .22s}
body[data-view="homepage"] .figure-card:hover{transform:translateY(-9px);border-color:#dfb777;box-shadow:0 18px 44px #0009}
body[data-view="homepage"] .figure-card:focus-visible{outline:2px solid var(--gold-hi)}
body[data-view="homepage"] .figure-img{width:100%;height:345px;display:block;object-fit:cover;object-position:center top;filter:saturate(.8);transition:transform .4s,filter .4s}
body[data-view="homepage"] .figure-card:hover .figure-img{transform:scale(1.035);filter:saturate(1.05)}
body[data-view="homepage"] .figure-image-wrap{height:345px;position:relative;overflow:hidden}
body[data-view="homepage"] .figure-image-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 51%,#091520f2 100%);pointer-events:none}
body[data-view="homepage"] .figure-card:before,body[data-view="homepage"] .place-card:before{content:"";position:absolute;inset:8px;border:1px solid #e3bd7f42;border-radius:9px;pointer-events:none;z-index:3}
body[data-view="homepage"] .figure-number{position:absolute;z-index:3;top:19px;left:19px;border-radius:6px;padding:7px 9px;background:#081623bb;border:1px solid var(--line);font:10px Georgia;color:var(--gold-hi)}
body[data-view="homepage"] .figure-content{padding:0 17px 20px;margin-top:-15px;position:relative;z-index:4;min-height:113px}
body[data-view="homepage"] .figure-content h3{font:400 clamp(18px,1.75vw,25px)/1.04 Georgia,serif;color:#f2dbad;margin:0 0 9px}
body[data-view="homepage"] .figure-content .figure-label{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.17em;color:#bc8d63;line-height:1.5}
body[data-view="homepage"] .figure-content .figure-place{display:block;margin-top:12px;color:#b9c1ca;font:12px Georgia,serif}
body[data-view="homepage"] .people-tip{text-align:center;color:#8c9aaa;font:12px Georgia,serif;margin-top:22px}
body[data-view="homepage"] .fracture{padding:80px 0 105px;background:#060e19}
body[data-view="homepage"] .faction-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:38px}
body[data-view="homepage"] .faction{position:relative;min-height:435px;border-radius:18px;border:1px solid #c6a06a58;overflow:hidden;isolation:isolate;display:flex;align-items:end;padding:32px;text-align:left;cursor:pointer;color:inherit;box-shadow:0 16px 40px #0007;transition:transform .2s,border-color .2s}
body[data-view="homepage"] .faction:hover{transform:translateY(-5px);border-color:var(--gold-hi)}
body[data-view="homepage"] .faction:before{content:"";position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center 28%;transition:transform .5s}
body[data-view="homepage"] .faction:hover:before{transform:scale(1.045)}
body[data-view="homepage"] .faction.vampire:before{background-image:var(--vamp)}
body[data-view="homepage"] .faction.lycan:before{background-image:var(--wolf)}
body[data-view="homepage"] .faction:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#07111df7 0%,#07111dbd 22%,#07111d16 70%)}
body[data-view="homepage"] .faction.vampire{border-bottom:2px solid #b65961}
body[data-view="homepage"] .faction.lycan{border-bottom:2px solid #87b1ab}
body[data-view="homepage"] .faction-symbol{font:48px Georgia,serif;color:#e5c28d;margin-bottom:8px}
body[data-view="homepage"] .faction h3{font:400 42px Georgia,serif;margin:0 0 10px;color:#f7dfb3}
body[data-view="homepage"] .faction p{font:15px/1.65 Georgia,serif;color:#d3d5d3;max-width:430px;margin:0}
body[data-view="homepage"] .faction-badge{display:inline-block;color:#e5c395;text-transform:uppercase;letter-spacing:.2em;font-size:10px;font-weight:700;margin-top:16px}
body[data-view="homepage"] .philosophy{max-width:1000px;margin:38px auto 0;border:1px solid var(--line);border-radius:13px;background:linear-gradient(110deg,#142238,#0c2031);padding:22px 30px;text-align:center;color:#d9d2c5;font:italic 17px/1.65 Georgia,serif}
body[data-view="homepage"] .philosophy strong{color:var(--gold-hi);font-weight:400}
body[data-view="homepage"] .places{padding:98px 0;background:linear-gradient(180deg,#091a2a,#0c1d2b)}
body[data-view="homepage"] .places-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
body[data-view="homepage"] .place-card{position:relative;min-height:335px;border:1px solid #b48b5b75;border-radius:14px;overflow:hidden;background:#0c2331;cursor:pointer;color:inherit;padding:0;text-align:left;transition:transform .23s,border-color .23s}
body[data-view="homepage"] .place-card:hover{transform:translateY(-6px);border-color:var(--gold-hi)}
body[data-view="homepage"] .place-card img{width:100%;height:335px;object-fit:cover;display:block;transition:transform .5s}
body[data-view="homepage"] .place-card:hover img{transform:scale(1.06)}
body[data-view="homepage"] .place-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#07111df5 0%,#07111d88 30%,transparent 65%)}
body[data-view="homepage"] .place-content{position:absolute;z-index:2;left:28px;bottom:25px;right:25px}
body[data-view="homepage"] .place-content h3{font:400 clamp(25px,2.5vw,36px) Georgia,serif;color:#f4dab0;margin:4px 0 5px}
body[data-view="homepage"] .place-content span{font-size:10px;letter-spacing:.19em;font-weight:700;color:#e1b884;text-transform:uppercase}
body[data-view="homepage"] .place-content p{font:14px/1.45 Georgia,serif;margin:8px 0 0;color:#c9cfda}
body[data-view="homepage"] .play{padding:96px 0 100px;background:radial-gradient(ellipse at 50% 12%,#263d4e5b,transparent 60%),#06111d}
body[data-view="homepage"] .feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}
body[data-view="homepage"] .feature{border:1px solid var(--line);background:linear-gradient(160deg,#122839,#0c1d2d);border-radius:14px;padding:26px 22px;min-height:229px;position:relative;overflow:hidden}
body[data-view="homepage"] .feature:before{content:"";position:absolute;top:0;left:25px;right:25px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
body[data-view="homepage"] .feature-icon{width:55px;height:55px;border-radius:14px;border:1px solid #c19c638a;display:grid;place-items:center;color:var(--gold-hi);background:#d1a76711}
body[data-view="homepage"] .feature-icon .icon{width:29px;height:29px}
body[data-view="homepage"] .feature h3{font:400 24px Georgia,serif;color:#e9d2ab;margin:21px 0 10px}
body[data-view="homepage"] .feature p{font:14px/1.65 Georgia,serif;color:#aebbc8;margin:0}
body[data-view="homepage"] .pathway{margin-top:34px;border:1px solid var(--line);background:#0d2032;border-radius:14px;display:flex;align-items:center;justify-content:space-evenly;gap:12px;padding:22px;flex-wrap:wrap}
body[data-view="homepage"] .pathway b{color:#f0d2a0;font:400 19px Georgia,serif}
body[data-view="homepage"] .pathway i{font-style:normal;color:#b59d79}
body[data-view="homepage"] .pathway small{display:block;color:#a9b7c9;margin-top:4px;font-size:11px;letter-spacing:.06em}
body[data-view="homepage"] .chapters{padding:92px 0 98px;background:linear-gradient(#091726,#0b1b29)}
body[data-view="homepage"] .chapter-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
body[data-view="homepage"] .chapter{border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#10263a,#0a1929);padding:28px;min-height:260px;display:flex;flex-direction:column;justify-content:space-between}
body[data-view="homepage"] .chapter h3{font:400 31px Georgia,serif;color:var(--gold-hi);margin:9px 0 13px}
body[data-view="homepage"] .chapter p{font:15px/1.7 Georgia,serif;color:#bac4cf;margin:0 0 17px}
body[data-view="homepage"] .chapter button{color:var(--gold-hi);font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-weight:800;cursor:pointer;border:0;border-bottom:1px solid var(--gold-low);align-self:flex-start;background:transparent;padding:0 0 7px}
body[data-view="homepage"] .chapter button:hover{color:#fff}
body[data-view="homepage"] .ending{padding:110px 0;min-height:540px;display:flex;align-items:center;isolation:isolate;background:#071522}
body[data-view="homepage"] .ending:before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--world);background-size:cover;background-position:center 44%;opacity:.63}
body[data-view="homepage"] .ending:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#07111ee8,#07111ebf 56%,#07111e89),linear-gradient(0deg,#07111e,transparent 50%,#07111e)}
body[data-view="homepage"] .ending-copy{max-width:840px}
body[data-view="homepage"] .ending h2{font:400 clamp(34px,4vw,58px)/1.15 Georgia,serif;color:#f2d4a1;margin:16px 0 22px}
body[data-view="homepage"] .ending p{font:18px/1.75 Georgia,serif;color:#d0d6d9;margin:0 0 25px;max-width:630px}
body[data-view="homepage"] .footer{background:#050c14;border-top:1px solid var(--line);padding:32px 0 38px}
body[data-view="homepage"] .footer-inner{display:flex;gap:24px;align-items:center;justify-content:space-between}
body[data-view="homepage"] .footer .logo{min-width:0}
body[data-view="homepage"] .footer-nav{display:flex;gap:18px;flex-wrap:wrap}
body[data-view="homepage"] .footer-nav a{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#afb6c0}
body[data-view="homepage"] .footer-nav a:hover{color:var(--gold-hi)}
body[data-view="homepage"] .legal{font:11px/1.6 Georgia,serif;color:#778495;max-width:400px;text-align:right}
body[data-view="homepage"] .modal-layer{position:fixed;z-index:300;inset:0;background:#02070dd9;backdrop-filter:blur(12px);display:none;align-items:center;justify-content:center;padding:22px}
body[data-view="homepage"] .modal-layer.open{display:flex}
body[data-view="homepage"] .modal{width:min(850px,100%);max-height:min(87vh,900px);border:1px solid #bd9761;border-radius:17px;background:#0c1d2e;box-shadow:0 24px 90px #000c;display:grid;grid-template-columns:minmax(0,310px) 1fr;overflow:hidden;position:relative}
body[data-view="homepage"] .modal-image{width:100%;height:100%;min-height:460px;object-fit:cover;background:#172a3a}
body[data-view="homepage"] .modal-body{padding:40px 35px;overflow:auto}
body[data-view="homepage"] .modal-body h2{font:400 40px/1.08 Georgia,serif;color:var(--gold-hi);margin:12px 0 13px}
body[data-view="homepage"] .modal-body p{font:15px/1.8 Georgia,serif;color:#d0d4d8}
body[data-view="homepage"] .modal-body .mini{font-size:12px;color:#c0a06c;text-transform:uppercase;letter-spacing:.13em}
body[data-view="homepage"] .modal-close{position:absolute;top:14px;right:14px;border:1px solid #cbab774d;border-radius:9px;background:#071420ea;color:#f4d39d;width:43px;height:43px;font-size:25px;cursor:pointer;z-index:3}
body[data-view="homepage"] .modal-close:hover{background:#21394a}
body[data-view="homepage"] .modal:has(.modal-image[hidden]){grid-template-columns:1fr;width:min(730px,100%)}
body[data-view="homepage"] .modal-image[hidden]{display:none}
@media(max-width:1180px){
body[data-view="homepage"] .header-inner{gap:15px}
body[data-view="homepage"] .site-nav a{padding-inline:8px}
body[data-view="homepage"] .logo{min-width:180px}
body[data-view="homepage"] .people-grid{grid-template-columns:repeat(3,1fr)}
body[data-view="homepage"] .figure-img,body[data-view="homepage"] .figure-image-wrap{height:360px}
body[data-view="homepage"] .feature-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){
body[data-view="homepage"] .container{width:min(100% - 36px,680px)}
body[data-view="homepage"] .header-inner{height:67px;width:calc(100% - 32px)}
body[data-view="homepage"] .logo{min-width:0;flex:1}
body[data-view="homepage"] .logo-text strong{font-size:27px}
body[data-view="homepage"] .logo-text small{font-size:8px}
body[data-view="homepage"] .nav-cta{order:2}
body[data-view="homepage"] .nav-cta .btn{padding:12px 14px}
body[data-view="homepage"] .menu-toggle{display:grid;order:3}
body[data-view="homepage"] .site-nav{display:none;position:absolute;top:67px;left:0;right:0;background:#081827f8;padding:13px 20px 22px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0}
body[data-view="homepage"] .site-nav.open{display:flex}
body[data-view="homepage"] .site-nav a{font-size:12px;padding:15px 13px;border-bottom:1px solid #c2a16d20}
body[data-view="homepage"] .hero{padding-top:67px;min-height:750px}
body[data-view="homepage"] .hero:before{background-position:55% center}
body[data-view="homepage"] .hero-inner{padding-bottom:130px}
body[data-view="homepage"] .hero h1{font-size:clamp(49px,10vw,78px)}
body[data-view="homepage"] .hero-bottom{gap:15px;flex-wrap:wrap}
body[data-view="homepage"] .hero-bottom span{font-size:10px}
body[data-view="homepage"] .intro{padding:75px 0}
body[data-view="homepage"] .intro-grid{grid-template-columns:1fr;gap:34px}
body[data-view="homepage"] .intro-image{height:380px}
body[data-view="homepage"] .people-grid{grid-template-columns:repeat(2,1fr)}
body[data-view="homepage"] .faction-grid,body[data-view="homepage"] .chapter-grid{grid-template-columns:1fr}
body[data-view="homepage"] .faction{min-height:390px}
body[data-view="homepage"] .places-grid{grid-template-columns:1fr}
body[data-view="homepage"] .place-card,body[data-view="homepage"] .place-card img{height:320px;min-height:320px}
body[data-view="homepage"] .footer-inner{flex-direction:column;align-items:flex-start}
body[data-view="homepage"] .legal{text-align:left}
body[data-view="homepage"] .modal{grid-template-columns:210px 1fr}
body[data-view="homepage"] .modal-image{min-height:400px}
body[data-view="homepage"] .modal-body{padding:29px 23px}
body[data-view="homepage"] .modal-body h2{font-size:32px}}
@media(max-width:540px){
body[data-view="homepage"] .nav-cta .btn{font-size:9px;padding:12px}
body[data-view="homepage"] .hero{min-height:750px}
body[data-view="homepage"] .hero:before{background-position:50% center}
body[data-view="homepage"] .hero:after{background:linear-gradient(90deg,#07111b75,#06101cda 37%,#06101ce5 63%,#07111b72),linear-gradient(0deg,#07111cee,transparent 50%)}
body[data-view="homepage"] .hero-inner{padding:55px 5px 140px}
body[data-view="homepage"] .hero h1{letter-spacing:.02em;font-size:clamp(43px,12vw,66px)}
body[data-view="homepage"] .hero h1 span{font-size:18px}
body[data-view="homepage"] .hero-lead{font-size:18px}
body[data-view="homepage"] .hero-actions{flex-direction:column;align-items:stretch}
body[data-view="homepage"] .hero-bottom{padding:15px 8px}
body[data-view="homepage"] .hero-bottom span strong{display:none}
body[data-view="homepage"] .hero-badges{gap:9px;letter-spacing:.08em;font-size:8px}
body[data-view="homepage"] .intro-text h2{font-size:42px}
body[data-view="homepage"] .people-grid{gap:12px}
body[data-view="homepage"] .figure-img,body[data-view="homepage"] .figure-image-wrap{height:255px}
body[data-view="homepage"] .figure-content{padding:0 11px 16px;min-height:120px}
body[data-view="homepage"] .figure-content h3{font-size:21px}
body[data-view="homepage"] .figure-content .figure-label{font-size:9px}
body[data-view="homepage"] .faction{min-height:365px}
body[data-view="homepage"] .faction h3{font-size:36px}
body[data-view="homepage"] .feature-grid{grid-template-columns:1fr}
body[data-view="homepage"] .section-head h2{font-size:35px}
body[data-view="homepage"] .modal{display:block;max-height:90vh;overflow:auto}
body[data-view="homepage"] .modal-image{height:230px;min-height:230px;object-position:center 28%}
body[data-view="homepage"] .modal-body{padding:25px 23px}
body[data-view="homepage"] .modal:has(.modal-image[hidden]){display:block}
body[data-view="homepage"] .ending{padding:80px 0}}
@media(prefers-reduced-motion:reduce){
html:has(body[data-view="homepage"]){scroll-behavior:auto}
body[data-view="homepage"] *,body[data-view="homepage"] *:before,body[data-view="homepage"] *:after{transition:none!important;animation:none!important}}

/* Production additions: viewport hero, access, account creation and accessible dialogs. */
body[data-view="homepage"]{padding:0;min-width:0;line-height:normal;background:#07111c}
body[data-view="homepage"] main{max-width:none;margin:0;padding:0;display:block}
body[data-view="homepage"] .hero{min-height:100svh;min-height:100dvh;padding-bottom:70px}
body[data-view="homepage"] .hero-inner{padding:45px 16px 55px}
body[data-view="homepage"] .hero-bottom{flex-wrap:nowrap}
body[data-view="homepage"] .hero-bottom span{white-space:nowrap}
body[data-view="homepage"] .home-sprite{position:absolute;overflow:hidden;pointer-events:none}
body[data-view="homepage"] .home-skip{position:fixed;top:-100px;left:20px;z-index:400;background:#10273b;padding:14px;border:1px solid var(--gold)}
body[data-view="homepage"] .home-skip:focus{top:10px}
body[data-view="homepage"] .home-legal-links{display:flex;flex-wrap:wrap;gap:18px;padding-top:25px;color:var(--muted);font-size:12px}
body[data-view="homepage"] .home-legal-links button{background:none;border:0;padding:0;color:inherit;cursor:pointer}
body[data-view="homepage"] .home-legal-links a:hover,body[data-view="homepage"] .home-legal-links button:hover{color:var(--gold-hi)}
body[data-view="homepage"] .home-dialog{padding:0;border:1px solid #bd9761;border-radius:17px;background:#0c1d2e;color:var(--white);width:min(850px,calc(100% - 32px));max-width:850px;max-height:90dvh;box-shadow:0 24px 90px #000c;margin:auto;overflow:auto}
body[data-view="homepage"] .home-dialog::backdrop{background:#02070dd9;backdrop-filter:blur(12px)}
body[data-view="homepage"] .home-dialog .modal{border:0;border-radius:0;width:100%;max-height:none;box-shadow:none}
body[data-view="homepage"] .home-dialog .modal-image{min-height:460px;height:100%;max-height:80dvh}
body[data-view="homepage"]:has(dialog[open]){overflow:hidden}
body[data-view="homepage"] .home-auth[open]{display:grid;grid-template-columns:250px minmax(0,1fr);width:min(960px,calc(100% - 32px));max-width:960px}
body[data-view="homepage"] .home-auth-art{background:linear-gradient(0deg,#07111de6,transparent),var(--world) center/cover;display:flex;align-items:flex-end;padding:26px;border-right:1px solid var(--line);font:italic 25px/1.3 Georgia;color:var(--gold-hi)}
body[data-view="homepage"] .home-auth-content{position:relative;padding:38px 34px;min-width:0}
body[data-view="homepage"] .home-auth h2{font:400 36px/1.1 Georgia;color:var(--gold-hi);margin:12px 35px 23px 0}
body[data-view="homepage"] .home-auth-tabs{display:flex;border-bottom:1px solid var(--line);gap:22px;margin-bottom:22px}
body[data-view="homepage"] .home-auth-tabs button{padding:10px 0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer}
body[data-view="homepage"] .home-auth-tabs [aria-selected="true"]{color:var(--gold-hi);border-bottom-color:var(--gold)}
body[data-view="homepage"] .home-auth label{display:grid;gap:7px;color:#d7d8d3;font-size:13px;margin-bottom:16px}
body[data-view="homepage"] .home-auth :is(input:not([type="checkbox"]),select){width:100%;min-width:0;min-height:45px;border:1px solid #95784e88;border-radius:8px;background:#071522;color:#f0ebe3;padding:11px 12px;font:15px system-ui}
body[data-view="homepage"] .home-auth input:focus,body[data-view="homepage"] .home-auth select:focus{outline:2px solid var(--gold);outline-offset:2px}
body[data-view="homepage"] .home-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
body[data-view="homepage"] .home-full{grid-column:1/-1}
body[data-view="homepage"] .home-acceptances{border-block:1px solid var(--line);padding:16px 0 3px;margin:14px 0 20px}
body[data-view="homepage"] .home-acceptances label{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6}
body[data-view="homepage"] .home-acceptances input{flex:0 0 17px;width:17px;height:17px;margin:3px 0;accent-color:#923c48}
body[data-view="homepage"] .home-acceptances a,body[data-view="homepage"] .home-recovery{color:var(--gold-hi);text-decoration:underline;text-underline-offset:3px}
body[data-view="homepage"] .home-auth-intro,body[data-view="homepage"] .home-field-help{color:var(--muted);font:12px/1.6 system-ui;margin:0 0 16px}
body[data-view="homepage"] .home-recovery{display:inline-block;font-size:12px;margin-top:18px}
body[data-view="homepage"] .home-auth-status{padding:12px 15px;background:#18352f;border:1px solid #77968d;border-radius:8px;font:13px/1.6 system-ui;color:#f0ebe3}
body[data-view="homepage"] .home-auth-status.is-error{background:#42232b;border-color:#d16c65}
body[data-view="homepage"] .home-auth button:disabled{opacity:.55;cursor:wait;transform:none}
body[data-view="homepage"] [hidden]{display:none!important}
body[data-view="homepage"] .home-noscript{position:fixed;bottom:0;padding:15px;background:#10273b;z-index:110;color:#f2d8a6}
@media(max-width:800px){body[data-view="homepage"] .hero{min-height:100svh;min-height:100dvh}body[data-view="homepage"] .hero-inner{padding:45px 5px}body[data-view="homepage"] .home-auth[open]{grid-template-columns:1fr}body[data-view="homepage"] .home-auth-art{display:none}}
@media(max-width:540px){body[data-view="homepage"] .hero{padding-bottom:62px}body[data-view="homepage"] .hero-symbol{width:40px;height:40px;margin-bottom:18px}body[data-view="homepage"] .hero .eyebrow{font-size:10px;letter-spacing:.18em}body[data-view="homepage"] .hero h1{font-size:clamp(43px,12vw,66px)}body[data-view="homepage"] .hero-actions{flex-direction:row;gap:10px;margin-top:25px}body[data-view="homepage"] .hero-actions .btn{padding:14px 23px}body[data-view="homepage"] .hero-bottom{gap:12px;padding:12px 8px;min-height:62px}body[data-view="homepage"] .hero-bottom span{font-size:9px;white-space:normal;text-align:center}body[data-view="homepage"] .hero-bottom span strong{display:inline;font-size:9px;margin-right:3px}body[data-view="homepage"] .home-auth-content{padding:30px 20px}body[data-view="homepage"] .home-auth h2{font-size:29px}body[data-view="homepage"] .home-form-grid{grid-template-columns:1fr}body[data-view="homepage"] .home-dialog .modal-image{height:230px;min-height:230px}}
@media(max-height:650px) and (min-width:801px){body[data-view="homepage"] .hero-inner{padding:25px 16px}body[data-view="homepage"] .hero-symbol{display:none}body[data-view="homepage"] .hero h1{font-size:75px}body[data-view="homepage"] .hero-actions{margin-top:20px}body[data-view="homepage"] .hero-badges{margin-top:20px}}
@media(min-width:801px){body[data-view="homepage"] .hero-inner{padding:30px 16px 40px}}

/* === maps === */
/* Cartografia e pan/zoom: solo trasformazioni e misure rimangono nel JavaScript. */
body[data-view="map"],
body[data-view="map"] { margin: 0; width: 100%; height: 100%; overflow: hidden; color: inherit; font-family: var(--font-body); }
body[data-view="map"] img[data-fullcover] { position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none; z-index: 0; }
body[data-view="map"] svg[data-fullcover-overlay] { position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; z-index: 1; overflow: hidden; color: inherit; }
body[data-view="map"] .map-area { fill: transparent; pointer-events: all; transition: fill .3s, filter .3s; cursor: pointer; }
body[data-view="map"] .map-area:hover,
body[data-view="map"] .map-area.active { fill: var(--map-glow); filter: blur(18px); stroke:none; }
body[data-view="map"] .map-dot { r: 6; fill: currentColor; pointer-events: none; }
body[data-view="map"] .map-label { font-size: 40px; fill: var(--panel-2); stroke: var(--text); stroke-width: 1px; paint-order: stroke; pointer-events: all; cursor: pointer; user-select: none; }
body[data-view="map"] .kinetic-container { position: fixed; top: 0; left: 0; right: 0; bottom: 0; overflow: hidden; cursor: grab; touch-action: none; z-index: 0; }
body[data-view="map"] .kinetic-container.kinetic-active { cursor: grabbing; }
body[data-view="map"] .back-button { position: fixed; left: 50%; transform: translateX(-50%); padding: 8px 16px; font-size: 16px; background: var(--panel); color: var(--text); border: none; border-radius: 4px; cursor: pointer; z-index: 9999; display: flex; align-items: center; }
body[data-view="map"] .back-button:hover { background: var(--panel); }
body[data-view="map"] .back-button .arrow { margin-right: 8px; font-size: 18px; line-height: 1; }
body .pan-wrapper { position: relative; width: 100%; height: 100%; overflow: hidden; user-select: none; -webkit-user-select: none; touch-action: none; }
body .pan-wrapper.grab { cursor: grab; cursor: -webkit-grab; }
body .pan-wrapper.grabbed { cursor: grabbing; cursor: -webkit-grabbing; }
body .pan-wrapper img { pointer-events: none; -webkit-user-drag: none; -webkit-touch-callout: none; will-change: transform; }
body .pan-ctrl { position: absolute; top: .5rem; right: .5rem; z-index: 15; display: flex; flex-direction: column; gap: .3rem; filter: drop-shadow(0 0 3px rgba(0,0,0,.65)); }
body .pan-ctrl button { width: 36px; height: 36px; font: 700 20px/32px monospace; color: var(--text); background: var(--panel); border: 2px solid var(--line); border-radius: 4px; padding: 0; cursor: pointer; transition: background .2s,transform .1s; }
body .pan-ctrl button:hover { background: var(--panel); transform: scale(1.08); }
body .pan-ctrl button:active { transform: scale(.9); }
body[data-view=map] .map-label { fill: var(--text); stroke: var(--bg); }
/* Atlas 2026: the image and hit areas share one coordinate system, never cover/slice. */
body[data-view="map"]{padding:0;margin:0;width:100%;height:100dvh;overflow:hidden;background:#07111c}
body[data-view="map"] img[data-fullcover]{object-fit:contain!important;background:#07111c}
body[data-view="map"] img[data-fullcover][hidden]{display:none}
body[data-view="map"] .map-atlas{position:fixed;inset:0;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#172b3d,#07111c 80%);isolation:isolate}
body[data-view="map"] .map-atlas>svg[data-fullcover-overlay]{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:1;touch-action:none}
body[data-view="map"] .map-art{filter:brightness(1.1) saturate(.94);transition:filter 3s ease}
body[data-view="map"] .map-atlas[data-period="night"] .map-art{filter:brightness(.70) saturate(.82)}
body[data-view="map"] .map-atlas[data-period="twilight"] .map-art{filter:brightness(.92) sepia(.10) saturate(.9)}
body[data-view="map"] .map-area{fill:transparent;stroke:none;pointer-events:all;transition:fill .2s,filter .2s}
body[data-view="map"] .map-link:hover .map-area,body[data-view="map"] .map-link:focus .map-area{fill:#e5c38830;filter:blur(12px)}
body[data-view="map"] .map-link:focus{outline:none}
body[data-view="map"] .map-pin{fill:#e6c78c;stroke:#0a1727;stroke-width:3;pointer-events:none}
body[data-view="map"] .map-label{font:500 24px Georgia,serif;fill:#f5e3bd;stroke:#07111c;stroke-width:5;paint-order:stroke;pointer-events:none;filter:drop-shadow(0 2px 3px #000a)}
body[data-view="map"] .map-weather{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
body[data-view="map"] .map-toolbar{position:absolute;top:12px;left:50%;right:auto;transform:translateX(-50%);width:max-content;z-index:5;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 24px);padding:7px;border:1px solid #95784e77;border-radius:12px;background:#071522dc;backdrop-filter:blur(12px);box-shadow:0 4px 25px #0006}
body[data-view="map"] .map-toolbar button,body[data-view="map"] .map-tool-link{display:grid;place-items:center;width:35px;height:35px;min-height:35px;padding:7px;border:1px solid #95784e55;border-radius:8px;background:#10273b;color:#d3ad71;cursor:pointer}
body[data-view="map"] .map-toolbar .ui-icon{width:20px;height:20px;margin:0;stroke:currentColor;fill:none}
body[data-view="map"] .map-toolbar [aria-pressed="true"]{border-color:#d3ad71;background:#69533355}
body[data-view="map"] .map-atmosphere-status{font:11px/1.3 var(--font-ui);color:#d8c8aa;padding:0 8px;white-space:nowrap}
body[data-view="map"] .map-destinations{position:relative;min-width:68px;font:12px var(--font-ui);color:#d3ad71;align-self:stretch}
body[data-view="map"] .map-destinations summary{padding:11px;cursor:pointer;list-style:none}
body[data-view="map"] .map-destinations[open]{background:#10273b;border-radius:8px}
body[data-view="map"] .map-destinations>a{display:block;padding:10px 13px;white-space:nowrap;background:#10273b;border-bottom:1px solid #95784e55;color:#f2d8a6}
body[data-view="map"] .map-feedback{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:8px 14px;z-index:6;background:#0b1c2df2;border:1px solid #95784e;border-radius:8px;font:12px var(--font-ui);color:#f2d8a6}
body[data-view="map"] .map-feedback[hidden]{display:none}
@media(max-width:600px){body[data-view="map"] .map-toolbar{top:7px;right:auto;gap:4px;padding:5px;max-width:calc(100% - 14px)}body[data-view="map"] .map-toolbar button,body[data-view="map"] .map-tool-link{width:31px;height:31px;min-height:31px;padding:6px}body[data-view="map"] .map-atmosphere-status{font-size:10px;flex-basis:100%;text-align:center;padding:1px 5px}body[data-view="map"] .map-label{font-size:29px}body[data-view="map"] .map-destinations{min-width:54px}body[data-view="map"] .map-destinations summary{padding:9px}}
@media(prefers-reduced-motion:reduce){body[data-view="map"] .map-art{transition:none}}
body[data-view="map"] .map-link .map-label{pointer-events:all;cursor:pointer}
body[data-view="map"] .map-link .map-label{font-size:var(--map-label-size,24px)}

/* === layout === */
/* Cornice unica: barra superiore, area centrale e colonna destra. */
body[data-view=main] { padding: 0; height: 100dvh; overflow: hidden; }
.game-shell { height: 100%; }
/* Medaglioni e panorama originali del template Gothik_Header_Medaglioni_Leggeri. */
.topbar { --header-ivory:#eae3da; --header-bronze:#c0ae92; display:flex; align-items:center; justify-content:center; gap:clamp(13px,2vw,32px); padding:7px clamp(12px,1.5vw,30px); min-height:108px; background:#071626; position:relative; flex:0 0 auto; border:0; border-bottom:1px solid #a6b2bd1f; border-radius:0; z-index:20; box-shadow:0 10px 35px #0007; isolation:isolate; }
.topbar::before { content:""; position:absolute; z-index:-2; inset:0; background-image:linear-gradient(90deg,#040f198c,#040f1908 48%,#040e1899),linear-gradient(180deg,#06152322,#061523db 84%,#061523),url('/images/interface/header/panorama.jpg'); background-position:center,center,center 45%; background-size:cover; opacity:.95; pointer-events:none; }
.topbar::after { content:""; position:absolute; inset:auto 0 0; height:1px; background:linear-gradient(90deg,transparent,#8a98a56e 35%,#9c8a704f 60%,transparent); pointer-events:none; }
.game-navigation { flex:1; min-width:0; max-width:100%; }
.game-navigation .tabs { display:flex; align-items:center; justify-content:safe center; flex-wrap:nowrap; gap:clamp(3px,.42vw,12px); overflow-x:auto; scrollbar-width:none; overscroll-behavior-inline:contain; padding:2px 0 3px; }
.game-navigation .tabs::-webkit-scrollbar { display:none; }
.game-navigation .tab { position:relative; display:flex; justify-content:center; flex:1 0 auto; max-width:130px; min-width:70px; }
.game-navigation .tab-btn { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:5px; width:100%; min-width:66px; border:0; background:none; color:var(--header-ivory); padding:4px 4px 2px; border-radius:12px; position:relative; transition:background .2s,transform .2s; box-shadow:none; }
.game-navigation .menu-text { display:inline-flex; align-items:center; gap:5px; font:400 clamp(11px,.9vw,15px)/1.2 Georgia,serif; white-space:nowrap; text-shadow:0 1px 4px #000; letter-spacing:.05px; }
.game-navigation .nav-medallion { display:block; width:clamp(46px,4vw,60px); height:clamp(46px,4vw,60px); object-fit:cover; max-width:none; border-radius:50%; border:1px solid #bcbdb873; box-shadow:inset 0 1px #e6e1d53d,0 3px 13px #0009; filter:saturate(.83) contrast(1.07); transition:filter .2s,box-shadow .2s,border-color .2s; flex:none; }
.game-navigation .tab-btn .ui-icon { color:var(--header-bronze); width:50px; height:50px; }
.game-navigation .tab-btn:is(:hover,.active,[aria-expanded=true]) { background:#a1b4c812; transform:translateY(-2px); color:var(--header-ivory); box-shadow:none; }
.game-navigation .tab-btn:is(:hover,.active,[aria-expanded=true]) .nav-medallion { filter:saturate(1.05) contrast(1.06); border-color:#e7cfa1d9; box-shadow:0 0 0 3px #b9a2781c,0 4px 20px #c1a57b2c; }
.game-navigation .tab-btn:focus-visible { outline:2px solid var(--gold-2); outline-offset:-2px; }
.game-navigation .tab-list { display:none; position:fixed; top:var(--menu-top,150px); left:var(--menu-left,12px); width:270px; min-width:0; max-width:calc(100vw - 24px); max-height:min(60dvh,calc(100dvh - var(--menu-top,150px) - 14px)); overflow-y:auto; margin:0; padding:10px; list-style:none; background:linear-gradient(160deg,#122740f5,#081727fa); border:1px solid #c6b3994a; border-radius:16px; box-shadow:0 17px 50px #000b,inset 0 0 0 1px #ffffff0c; backdrop-filter:blur(18px); z-index:100; }
.game-navigation .tab-list.show { display:block; }
.game-navigation .tab-list a { display:block; padding:11px 12px; border-radius:9px; color:#e2e8f0; font:14px/1.4 var(--font-ui); }
.game-navigation .tab-list a:is(:hover,:focus-visible) { background:#ffffff15; color:#ffe3aa; text-decoration:none; }
.top-actions,.quicklinks-box { display:flex; gap:8px; align-items:center; flex:none; }
.top-actions { padding-left:clamp(14px,1.6vw,28px); border-left:1px solid #e8e4df24; }
.topbar .top-actions .icon-btn { height:42px; width:42px; min-height:42px; min-width:42px; display:grid; place-items:center; padding:0; border:1px solid #b9b09e3d; color:#d8d5c8; background:#0a1b2bc9; border-radius:12px; box-shadow:none; }
.topbar .top-actions .icon-btn:is(:hover,:focus-visible) { background:#193249; border-color:#bda783a0; }
.topbar .top-actions .ui-icon { width:21px; height:21px; margin:0; color:inherit; }
@media(min-width:901px) and (max-width:1250px) { .topbar {gap:10px;padding:6px 12px;} .game-navigation .tabs {justify-content:flex-start;} .game-navigation .tab {flex:0 0 82px;} .top-actions {gap:5px;padding-left:10px;} .topbar .top-actions .icon-btn {width:39px;min-width:39px;height:39px;min-height:39px;} }
.game-content { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) var(--sidebar-w); gap: var(--gap); padding: var(--gap); height: 100%; min-height: 0; overflow: hidden; align-items: stretch; }
.main-col { min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.map-area { flex: 1; margin-top: var(--gap); min-height: 0; position: relative; overflow: hidden; }
.map-area > iframe { width: 100%; height: 100%; }
.sidebar.right-col { height: 100%; min-height: 0; display: flex; flex-direction: column; gap: var(--gap); overflow-y: auto; padding-right: 4px; }
.right-col > .panel { flex-shrink: 0; overflow: hidden; }
/* Pannello personaggio: identità, risorse e sorte sullo stesso fondale di stirpe. */
.profile-card { position:relative;isolation:isolate;padding:20px 20px 16px;border-radius:21px;background:linear-gradient(158deg,var(--panel-2),var(--panel));box-shadow:0 18px 38px #0003,inset 0 1px #f6e2b00d; }
.profile-card::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background-image:linear-gradient(90deg,#081827eb,#081827a6),linear-gradient(0deg,#081827 5%,#08182745 85%),var(--profile-card-art,none);background-size:cover;background-position:center,center,72% top;opacity:.78}
.profile-card::after{content:"";position:absolute;inset:8px 12px auto;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);pointer-events:none}
.profile-card-eyebrow{font:750 10px/1.4 var(--font-ui);letter-spacing:.17em;text-transform:uppercase;color:var(--gold);margin-bottom:15px}
.character-top { display:grid;grid-template-columns:100px minmax(0,1fr);gap:15px;align-items:center; }
.profile-card .portrait { width:100px;height:100px;padding:3px;object-fit:cover;border-radius:50%;border:1px solid var(--gold);background:var(--brand-background);box-shadow:0 8px 23px #0008,0 0 0 4px #142b3db0; }
.prof-info{min-width:0}
.prof-name { color:var(--gold-2);font:700 30px/1.1 Georgia,serif;cursor:pointer;overflow-wrap:anywhere; }
.prof-name img { width:19px;height:19px;vertical-align:middle; }
.profile-card-race{margin-top:8px;color:var(--text);font:12px/1.4 var(--font-ui)}
.prof-sub { display:block;font:12px/1.5 var(--font-ui);color:var(--muted);margin-top:6px; }
.profile-stats { margin-top:19px;padding-top:16px;border-top:1px solid var(--line);display:grid;gap:14px; }
.profile-card .coins-row { display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0;border:0;background:none;font:13px/1.5 var(--font-ui); }
.profile-card .coins-row strong { color:var(--gold-2);font:700 23px/1 Georgia,serif;font-variant-numeric:tabular-nums; }
.profile-card .health-row{display:block}
.profile-health-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font:13px/1.4 var(--font-ui);color:var(--muted)}
.profile-health-heading>span:first-child,.coins-row>span{display:inline-flex;align-items:center;gap:8px}
.profile-card :is(.profile-health-heading,.coins-row) .ui-icon{width:16px;height:16px;color:var(--gold);margin:0}
#profile-health-label{font-size:11px}
.profile-card-footer{margin-top:13px;color:var(--muted-2);font:9px/1.4 var(--font-ui);letter-spacing:.06em;text-transform:uppercase}
.bar { height:9px; border-radius:999px; overflow: hidden; background: var(--panel-2); border: 1px solid var(--line); }
.bar-inner, .bar { min-width: 0; }
.bar-inner { height: 100%; transition: width var(--transition); background: var(--danger); }
.bar-inner.green { background:var(--health-background); }.bar-inner.orange, .bar-inner.yellow { background: var(--gold); }.bar-inner.gray { background: var(--muted-2); }
.weather-wrap { display: grid; gap: 10px; }
.weather-icons { display: flex; justify-content: center; gap: 18px; }
.wi { position: relative; width: 32px; height: 32px; }
.wi img { width: 100%; height: 100%; }
.wi:hover::after { content: attr(data-tooltip); position: absolute; z-index: 3; bottom: 110%; left: 50%; transform: translateX(-50%); background: var(--panel-2); border: 1px solid var(--line); border-radius: 8px; padding: .35rem .55rem; white-space: nowrap; font-size: .8rem; }
.weather-time, .weather-moon { text-align: center; }
.weather-moon small { display: block; }
.right-col ul { margin: 0; list-style: none; }
#presenti-list, #news-list { display: grid; gap: 10px; max-height: 260px; overflow-y: auto; padding-inline: 0; }
#presenti-list li { display: flex; align-items: center; gap: 10px; }
#presenti-list li + li, #news-list li + li { padding-top: 10px; border-top: 1px solid var(--line); }
#presenti-list .posta-btn { padding: .25rem .4rem; }
.razza-icon { width: 16px; height: 16px; }
.presenti-name { color: var(--text); }
.news-box > #news-list { padding-inline: 18px; }
#news-list { font-size: .9rem; color: var(--muted); line-height: 1.5; }
.sidebar-toggle { display: none; }
/* Ogni modulo usa la stessa finestra, senza ricreare la colonna personaggio. */
.modal-overlay { position: fixed; inset: 0; padding: 18px; background: var(--shadow-color); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; z-index: 1000; }
.modal-window { display: flex; flex-direction: column; width: min(var(--mw, 900px), 96vw); height: min(var(--mh, 750px), 92dvh); min-width: 280px; min-height: 240px; max-width: 96vw; max-height: 94dvh; resize: both; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); background: var(--bg); }
.modal-header { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 10px 18px; border-bottom: 1px solid var(--line); background: var(--panel-2); }
.modal-header h3 { margin: 0; font-size: 1.05rem; }
.modal-header button { padding: .2rem .65rem; font-size: 1.4rem; }
.modal-body { min-height: 0; flex: 1; padding: 0; overflow: auto; }
.modal-body iframe { width: 100%; height: 100%; }
body[data-view=map] { padding: 0; overflow: hidden; height: 100dvh; }
body[data-view=map] > img[data-fullcover] { display: block; }
@media (max-width: 1280px) { :root { --sidebar-w: 310px; } .profile-card{padding:17px 16px 14px} .character-top { grid-template-columns: 82px minmax(0,1fr);gap:12px; } .profile-card .portrait { width:82px; height:82px; } .prof-name{font-size:24px} }
@media (max-width: 900px) { .topbar { flex-wrap: wrap; } .top-actions { margin-left: auto; } .game-navigation { order: 2; flex-basis: 100%; } .game-navigation .tabs { gap: 5px; } .game-navigation .tab-btn { font-size: .8rem; } .game-content { grid-template-columns: 1fr; padding: 12px; gap: 12px; } .sidebar-toggle { display: inline-flex; } .sidebar.right-col { position: absolute; right: 12px; top: 12px; bottom: 12px; height: auto; width: min(360px, calc(100vw - 24px)); z-index: 30; background: var(--bg); padding: 12px; border: 1px solid var(--line); border-radius: var(--radius); transform: translateX(calc(100% + 24px)); transition: transform var(--transition); } .sidebar.right-col.active { transform: translateX(0); } .modal-overlay { padding: 6px; } .modal-window { width: 98vw; max-width: 98vw; height: 94dvh; max-height: 94dvh; } }
.workspace { position: absolute; inset: 0; display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--bg); }
.workspace-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--line); background: var(--panel-2); }
.workspace-header h1 { font-size: 1.1rem; margin: 0; }
.workspace-header button { font-size: .85rem; padding: .45rem .75rem; }
.workspace-frame { flex: 1; min-height: 0; width: 100%; }
.workspace.has-inner-heading > .workspace-header { display:none; }
.ui-page-heading .ui-return-location { display:inline-flex; align-items:center; gap:7px; margin-left:auto; flex-shrink:0; padding:8px 11px; font-size:.8rem; }
@media(max-width:600px) { .ui-page-heading .ui-return-location { max-width:110px; white-space:normal; } }
.weather-icons img { mix-blend-mode: screen; }
@media (max-width: 900px) {
  .sidebar.right-col { visibility: hidden; z-index: 10; }
  .sidebar.right-col.active { visibility: visible; }
}

/* Il triangolo identifica ogni gruppo come menu espandibile. */
.game-navigation .menu-text::after { content:"⌄"; margin:0; color:var(--header-bronze); opacity:.7; font:14px/1 system-ui,sans-serif; transition:transform .2s; }
.game-navigation .tab-btn[aria-expanded=true] .menu-text::after { transform:rotate(180deg); }

.right-col .panel-header h2 > .ui-icon { width:16px; height:16px; margin-right:8px; }

.game-content.chat-wide { grid-template-columns:minmax(0,1fr); }
.game-content.chat-wide > .right-col { display:none; }

.mobile-return-chat{display:none}
@media(max-width:760px){
 body[data-view=main].has-focused-chat:not(.mobile-game-menu) .topbar{display:none}
 body[data-view=main].has-focused-chat .game-content{padding:0;gap:0}
 body[data-view=main].has-focused-chat .map-area{margin:0;border-radius:0;border:0}
 body[data-view=main].has-focused-chat:not(.mobile-game-menu) .right-col{display:none}
 body[data-view=main].has-focused-chat.mobile-game-menu .topbar{position:absolute;inset:0 0 auto;max-height:75dvh;overflow:visible;z-index:100;padding:14px;box-shadow:0 20px 80px #000c}
 body[data-view=main].has-focused-chat.mobile-game-menu .mobile-return-chat{display:inline-flex}
 body[data-view=main].has-focused-chat.mobile-game-menu .game-navigation{order:0}.mobile-game-menu .game-navigation .tabs{display:grid;grid-template-columns:1fr 1fr}
}

/* Quattro medaglioni su una sola riga; descrizioni disponibili sulle immagini. */
.weather-icons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.weather-icons .wi{position:relative;display:flex;align-items:center;flex-direction:column;width:auto;height:auto;margin:0;min-width:0}
.weather-icons .wi img{width:100%;height:auto;aspect-ratio:1;max-width:100px;object-fit:contain;mix-blend-mode:normal;filter:none}
.weather-temperature{text-align:center;font:700 20px Georgia,serif;color:var(--gold-2)}
.weather-time{font:12px/1.7 var(--font-ui);color:var(--muted)}
.scene-container{position:absolute;inset:0;min-width:0;min-height:0;display:flex;flex-direction:column}.scene-container>.scene-frame{width:100%;height:100%;flex:1;min-height:0}

/* The lineage action belongs to the character name, on desktop and mobile. */
.profile-name-row{display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 25px);vertical-align:middle}
.profile-name-text{min-width:0;overflow-wrap:anywhere}
.profile-transform{flex:none;display:inline-grid;place-items:center;vertical-align:middle;width:34px;height:34px;min-height:34px;padding:7px;margin-left:0;border-radius:50%;color:var(--gold);border:1px solid var(--line);background:var(--button-background)}
.profile-transform .ui-icon{width:20px;height:20px;margin:0}
.profile-transform[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 12px #cba45e38}
@media(max-width:900px){.profile-transform{width:44px;height:44px;min-height:44px}}
/* Profile quick actions share existing identity space; desktop medals adapt to the available column. */
.profile-card-tools.top-actions{display:flex;justify-content:flex-start;gap:6px;padding:0;margin:8px 0;border:0}
.profile-card-tools .quicklinks-box{display:flex}
.profile-card-tools .icon-btn{display:grid;place-items:center;width:34px;height:32px;min-width:34px;min-height:32px;padding:6px;border-radius:9px;background:var(--panel);border:1px solid var(--line);color:var(--gold-2)}
.profile-card-tools .ui-icon{width:17px;height:17px;margin:0}
@media(min-width:901px){.game-navigation{container-type:inline-size}.game-navigation .tabs{display:grid;grid-template-columns:repeat(var(--menu-count,11),minmax(0,1fr));gap:3px;overflow:visible;justify-content:stretch}.game-navigation .tab{min-width:0;max-width:none;width:100%}.game-navigation .tab-btn{min-width:0;width:100%;padding:4px 2px 2px}.game-navigation .nav-medallion{width:clamp(29px,calc(75cqw / var(--menu-count,11)),60px);height:clamp(29px,calc(75cqw / var(--menu-count,11)),60px)}.game-navigation .menu-text{max-width:100%;font-size:clamp(10px,calc(13cqw / var(--menu-count,11)),15px);gap:2px;letter-spacing:-.15px}.game-navigation .menu-text::after{font-size:9px;flex:none}.topbar{min-height:94px;padding-left:10px;padding-right:10px}}
.game-navigation .menu-text{min-width:0}.game-navigation .menu-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.profile-card .profile-name-row{display:flex;flex-wrap:wrap;max-width:100%;gap:7px}.profile-card .profile-name-text{max-width:100%}.profile-card .profile-transform{width:28px;height:28px;min-height:28px;padding:5px}.profile-card .profile-transform .ui-icon{width:17px;height:17px}
@media(max-width:900px){.profile-card-tools .icon-btn{width:40px;height:40px;min-width:40px;min-height:40px}.profile-card .profile-transform{width:36px;height:36px;min-height:36px}}
/* Entry medallions and direct destinations share the central header navigation. */
.game-navigation .nav-direct{text-decoration:none;cursor:pointer}.game-navigation .nav-direct .menu-text::after{display:none}
.game-navigation .tab-list a{display:flex;align-items:center;gap:12px;padding:8px 10px;min-height:66px}.game-navigation .nav-item-medallion{display:block;flex:0 0 50px;width:50px;height:50px;max-width:none;object-fit:cover;border-radius:50%;border:1px solid #b89a617d;box-shadow:0 2px 7px #0008;background:#091827}.game-navigation .nav-item-label{flex:1;min-width:0;overflow-wrap:anywhere}.game-navigation .tab-list .notification-badge{flex:none}

/* Navigation destinations are not character identities, including cached decorations. */
.game-navigation .character-markers{display:none}

/* === chat === */
/* Riferimento interattivo: soli componenti della chat, senza dati dimostrativi. */
:is(body[data-view=chat-index],body.session-replay) .scene-toolbar{min-height:63px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 15px;background:linear-gradient(90deg,#11233a,#0b1a2c 60%,#101d30);border-bottom:1px solid var(--line)}
:is(body[data-view=chat-index],body.session-replay) .scene-id{display:flex;align-items:center;gap:10px;min-width:0}
:is(body[data-view=chat-index],body.session-replay) .scene-id .scene-round-icon{width:39px;height:39px;border:1px solid #846634;background:linear-gradient(155deg,#263247,#0d1c30);display:grid;place-items:center;border-radius:50%;color:var(--gold-2)}
:is(body[data-view=chat-index],body.session-replay) .scene-id strong{display:block;font-size:17px;font-weight:600;letter-spacing:.3px;color:#eecd89;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(body[data-view=chat-index],body.session-replay) .scene-id small{display:block;color:#9eabc0;font:11px system-ui,sans-serif;margin-top:5px;white-space:nowrap}
:is(body[data-view=chat-index],body.session-replay) .scene-actions{display:flex;gap:6px;overflow-x:auto;min-width:0;scrollbar-width:none}
:is(body[data-view=chat-index],body.session-replay) .scene-actions::-webkit-scrollbar{display:none}
:is(body[data-view=chat-index],body.session-replay) .scene-tool{border:1px solid rgba(210,175,107,.22);background:linear-gradient(#16253a,#0d1a2a);color:#cdbb99;border-radius:9px;padding:9px 11px;display:flex;align-items:center;gap:7px;font-size:13px;white-space:nowrap;min-height:38px}
:is(body[data-view=chat-index],body.session-replay) .scene-tool svg{color:#d6af66;width:17px;height:17px}
:is(body[data-view=chat-index],body.session-replay) .scene-tool:hover,:is(body[data-view=chat-index],body.session-replay) .scene-tool.active{background:linear-gradient(#27394c,#17283a);color:#ffdf9d;border-color:#d0a35b;box-shadow:inset 0 -2px #ac8746}
:is(body[data-view=chat-index],body.session-replay) .scene-tool span{display:inline}
:is(body[data-view=chat-index],body.session-replay) .scene-tool.icon-only{padding:9px 10px}
:is(body[data-view=chat-index],body.session-replay) .chat-message{position:relative;display:grid;grid-template-columns:118px minmax(0,1fr);gap:21px;margin:0 0 15px;padding:12px 14px 15px 8px;border-bottom:1px solid #a989574e;min-height:154px}
:is(body[data-view=chat-index],body.session-replay) .chat-message:last-child{border-bottom:0}
:is(body[data-view=chat-index],body.session-replay) .chat-message-content{padding:5px 0 2px}
:is(body[data-view=chat-index],body.session-replay) .chat-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}
:is(body[data-view=chat-index],body.session-replay) .chat-meta time{font:12px system-ui,sans-serif;color:#76684e}
:is(body[data-view=chat-index],body.session-replay) .chat-meta .chat-persona{font:700 16px Georgia;color:#243d5f;text-decoration:underline;text-decoration-color:#ac8d55;cursor:default}
:is(body[data-view=chat-index],body.session-replay) .chat-meta .chat-location{font:700 11px system-ui,sans-serif;background:#f5e9d2;color:#884a33;padding:4px 7px;border:1px solid #caa87a;border-radius:6px}
:is(body[data-view=chat-index],body.session-replay) .chat-meta .chat-persona-badge{font:700 10px system-ui,sans-serif;letter-spacing:.5px;text-transform:uppercase;color:#776547}
:is(body[data-view=chat-index],body.session-replay) .chat-prose{font-size:var(--chat-font,16px);line-height:1.68;color:#29303b;max-width:100%;white-space:normal;overflow-wrap:anywhere}
:is(body[data-view=chat-index],body.session-replay) .chat-prose strong{font-weight:750;color:#23364b}
:is(body[data-view=chat-index],body.session-replay) .chat-prose em{font-style:italic;color:#5f4836}
:is(body[data-view=chat-index],body.session-replay) .chat-prose blockquote{border-left:3px solid #ae8b56;padding-left:11px;margin:6px 0;color:#564736}
:is(body[data-view=chat-index],body.session-replay) .chat-prose p{margin:0 0 11px}
:is(body[data-view=chat-index],body.session-replay) .chat-prose p:last-child{margin-bottom:0}
:is(body[data-view=chat-index],body.session-replay) .chat-master{margin:16px 0;padding:13px 17px;border-radius:11px;border:1px solid #b28a48;box-shadow:inset 0 0 0 1px #c7a96b40;background:linear-gradient(120deg,#15273a,#102034);color:#e9d8b5;display:flex;align-items:center;gap:12px}
:is(body[data-view=chat-index],body.session-replay) .chat-master-mark{width:36px;height:36px;border:1px solid #866d4c;border-radius:50%;display:grid;place-items:center;color:#d3ac64}
:is(body[data-view=chat-index],body.session-replay) .chat-master strong{font-size:13px;display:block;color:#f6d995}
:is(body[data-view=chat-index],body.session-replay) .chat-master span{display:block;margin-top:5px;font-size:14px}
:is(body[data-view=chat-index],body.session-replay) .chat-master:after{content:'✧';font-size:26px;opacity:.35;margin-left:auto}
:is(body[data-view=chat-index],body.session-replay) .composer{padding:11px 13px;display:flex;gap:9px;align-items:center;border-top:1px solid var(--line);background:linear-gradient(180deg,#101f33,#0b192a);min-height:71px}
:is(body[data-view=chat-index],body.session-replay) .composer textarea{font:14px/1.3 system-ui,sans-serif;min-height:42px;max-height:120px;resize:none;border:0;outline:0;box-shadow:none!important;background:none;color:#f4e9d4;width:100%;padding:11px 12px}
:is(body[data-view=chat-index],body.session-replay) .composer textarea::placeholder{color:#72839a}
:is(body[data-view=chat-index],body.session-replay) .composer select{background:#102338;border:1px solid #39465b;border-radius:9px;padding:11px 9px;color:#e2d6c0;font:12px system-ui;max-width:118px;cursor:pointer}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-backdrop{position:absolute;z-index:11;inset:63px 0 0;background:#03101e99;backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .22s}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-backdrop.open{opacity:1;pointer-events:auto}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer{position:absolute;z-index:12;top:67px;right:13px;width:min(510px,calc(100% - 26px));max-height:calc(100% - 85px);overflow:auto;background:linear-gradient(135deg,#132740,#091525);border:1px solid #b39052;border-radius:12px;box-shadow:0 25px 60px #000a,inset 0 0 0 4px #ffffff07;transform:translateY(-10px) scale(.98);opacity:0;pointer-events:none;transition:transform .25s,opacity .25s}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer.open{transform:translateY(0) scale(1);opacity:1;pointer-events:auto}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-head{padding:15px 17px;border-bottom:1px solid #a584463e;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;background:#14253b;z-index:2}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-head h2{font-size:18px;letter-spacing:.4px;margin:0;color:#f3cf87}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-head button{width:30px;height:30px;border:1px solid var(--line);color:#d3b47b;border-radius:7px;background:#0b192a;display:grid;place-items:center}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body{padding:17px;font:14px/1.65 system-ui,sans-serif;color:#cad4e3}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body h3{font:700 18px Georgia;color:#ecd29b;margin:0 0 11px}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body p{margin:0 0 13px}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .rowline{padding:11px 0;border-bottom:1px solid #ffffff13}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .rowline:last-child{border-bottom:none}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body strong{color:#f1d8a3}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body button.selectable{padding:10px 12px;margin:5px 5px 5px 0;border:1px solid #526073;border-radius:8px;background:#172e45;color:#ead6b5;cursor:pointer}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body button.selectable:hover,:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body button.selectable.picked{border-color:#d6ab66;background:#34445a}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .toggleline{display:flex;align-items:center;gap:11px;border-bottom:1px solid #ffffff16;padding:9px 0}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body label{cursor:pointer}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body input[type=range]{accent-color:#d4ae6a;width:100%;margin:11px 0}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body input[type=checkbox]{accent-color:#b99158}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .hint{color:#8294a9;font:12px/1.6 system-ui}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .mini-people{display:flex;gap:10px;align-items:center;margin:10px 0;padding:9px 12px;background:#0d1e30;border:1px solid #ffffff16;border-radius:9px}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .key{color:#b4c3d3;font-size:12px}
:is(body[data-view=chat-index],body.session-replay).chat-compact .chat-message{grid-template-columns:86px 1fr;min-height:110px}
:is(body[data-view=chat-index],body.session-replay).chat-compact .chat-message{padding-top:5px;padding-bottom:8px}
:is(body[data-view=chat-index],body.session-replay).chat-noport .chat-message{grid-template-columns:minmax(0,1fr)}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .feed{background:linear-gradient(160deg,#182439,#0b1a2d);color:#e1dbd0}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .feed-header{color:#ac915e}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-message{border-color:#ffffff1e}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-meta time,:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-meta .chat-persona-badge{color:#9ba9bb}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-meta .chat-persona{color:#a7c9f5}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-prose,:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-prose strong{color:#e5e1d5}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-prose em{color:#cfb38d}
@media(max-width:1360px){:is(body[data-view=chat-index],body.session-replay) .scene-tool span{display:none}
:is(body[data-view=chat-index],body.session-replay) .scene-id strong{font-size:15px}
:is(body[data-view=chat-index],body.session-replay) .scene-actions{gap:4px}}
@media(max-width:980px){:is(body[data-view=chat-index],body.session-replay) .chat-message{grid-template-columns:99px 1fr;gap:13px}
:is(body[data-view=chat-index],body.session-replay) .scene-toolbar{padding:7px 10px}}
@media(max-width:760px){:is(body[data-view=chat-index],body.session-replay) .scene-id small{font-size:9px}
:is(body[data-view=chat-index],body.session-replay) .scene-actions{max-width:58%;gap:4px}
:is(body[data-view=chat-index],body.session-replay) .composer{flex-wrap:wrap}
:is(body[data-view=chat-index],body.session-replay) .scene-toolbar{min-height:58px}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer{top:61px}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-backdrop{inset:60px 0 0}}
@media(max-width:500px){:is(body[data-view=chat-index],body.session-replay) .scene-tool{padding:7px}
:is(body[data-view=chat-index],body.session-replay) .chat-message{grid-template-columns:76px 1fr;gap:10px;padding:8px 2px 12px}
:is(body[data-view=chat-index],body.session-replay) .chat-meta .chat-persona{font-size:14px}
:is(body[data-view=chat-index],body.session-replay) .chat-meta time{font-size:10px}
:is(body[data-view=chat-index],body.session-replay) .chat-prose{line-height:1.55}
:is(body[data-view=chat-index],body.session-replay) .scene-id strong{font-size:12px}
:is(body[data-view=chat-index],body.session-replay) .scene-id .scene-round-icon{width:30px;height:30px}
:is(body[data-view=chat-index],body.session-replay) .scene-id .scene-round-icon svg{width:17px}
:is(body[data-view=chat-index],body.session-replay) .scene-actions{max-width:55%}}
/* Scena di gioco: geometria del riferimento e colori del tema centrale. */
:is(body[data-view=chat-index],body.session-replay){display:flex;flex-direction:column;height:100dvh;min-height:0;overflow:hidden;padding:0;background:var(--grad);position:relative;isolation:isolate}
:is(body[data-view=chat-index],body.session-replay) #chat{display:flex;flex-direction:column;flex:1;min-height:0;padding:0}
:is(body[data-view=chat-index],body.session-replay) #chatbox{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-color:var(--paper-scrollbar) var(--paper-scrollbar-track);scrollbar-width:thin;background:var(--reading-background);color:var(--parchment-ink);padding:16px 19px 25px;margin:0;border:0;border-radius:0;font-size:var(--chat-font,16px)}
:is(body[data-view=chat-index],body.session-replay) .riga{padding:8px 0;margin:0;line-height:1.68;overflow-wrap:anywhere}
:is(body[data-view=chat-index],body.session-replay) .riga.has-scene-view{padding:0}
:is(body[data-view=chat-index],body.session-replay) .scene-id h1{margin:0;font-size:17px;color:#eecd89;line-height:1.3}
:is(body[data-view=chat-index],body.session-replay) .scene-id p{margin:5px 0 0;font:11px/1.5 var(--font-ui);color:var(--muted)}
:is(body[data-view=chat-index],body.session-replay) .scene-round-icon{display:grid;place-items:center;width:39px;height:39px;border:1px solid #846634;border-radius:50%;background:linear-gradient(155deg,#263247,#0d1c30);color:var(--gold-2);flex:none}
:is(body[data-view=chat-index],body.session-replay) .scene-actions{flex-shrink:1}
:is(body[data-view=chat-index],body.session-replay) .scene-tool .ui-icon{width:17px;height:17px;color:var(--icon)}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer[hidden],:is(body[data-view=chat-index],body.session-replay) .chat-drawer-backdrop[hidden]{display:none}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer{transform:none;opacity:1;pointer-events:auto;top:67px}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-backdrop{transform:none;opacity:1;pointer-events:auto;border:0;border-radius:0;padding:0}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-head h2{padding:0}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body>section{min-width:0}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body #descrizione :is(.descr-content,.scene-world,.scene-cast){padding:0;margin:0 0 18px;border:0;border-radius:0;background:transparent;color:inherit;box-shadow:none}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body #descrizione .descr-content :is(h2,h3){color:var(--gold-2);font:600 18px/1.4 var(--font-body);margin:0 0 14px}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body #descrizione .descr-content a{color:var(--gold-2);text-decoration:none}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body #descrizione .descr-content a:hover{color:var(--text);text-decoration:underline}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body #descrizione .npc-profile-link{font:600 17px/1.4 var(--font-body)}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .scene-person{grid-template-columns:55px minmax(0,1fr);gap:12px;padding:12px 0}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .npc-portrait{display:block;width:55px;height:55px;aspect-ratio:1;object-fit:cover;border:1px solid var(--gold);border-radius:50%;background:transparent}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .opzioni{display:block;font:12px/1.6 var(--font-ui)}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .opzione{display:block;padding:9px 0;border-bottom:1px solid var(--line)}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .opzione.header{display:none}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .opzione>div:first-child{color:var(--gold-2);font-weight:700}
:is(body[data-view=chat-index],body.session-replay) .chat-drawer-body .opzione>div:nth-child(2){float:right;color:var(--gold)}
:is(body[data-view=chat-index],body.session-replay) .chat-persona.chat-female{color:var(--character-female)}
:is(body[data-view=chat-index],body.session-replay) .chat-race-icon{width:20px;height:20px;object-fit:contain}
:is(body[data-view=chat-index],body.session-replay) .chat-meta{margin-bottom:10px}
:is(body[data-view=chat-index],body.session-replay) .chat-prose .chat-female.chat-action{color:var(--character-female)}
:is(body[data-view=chat-index],body.session-replay) .chat-prose .chat-male.chat-action{color:var(--action-male)}
:is(body[data-view=chat-index],body.session-replay) .chat-master{font-size:14px;text-align:left;margin:14px 0}
:is(body[data-view=chat-index],body.session-replay) .chat-master-mark{flex:none}
:is(body[data-view=chat-index],body.session-replay) .chat-master>div{min-width:0;flex:1}
:is(body[data-view=chat-index],body.session-replay) .chat-master p{margin:5px 0 0;line-height:1.65}
:is(body[data-view=chat-index],body.session-replay) .composer{flex:0 0 auto;margin:0;border-radius:0;flex-wrap:nowrap}
:is(body[data-view=chat-index],body.session-replay) .composer #comodo{flex:1;min-width:0;min-height:42px;max-height:120px;resize:none;border:1px solid var(--field-line);background:var(--field-background);border-radius:9px;color:var(--field-ink);padding:11px 12px;font:14px/1.3 var(--font-ui);width:100%}
:is(body[data-view=chat-index],body.session-replay) .composer select{flex:0 1 118px;min-width:0;max-width:140px;padding:11px 9px;background:var(--select-background);border:1px solid var(--select-line);border-radius:9px;color:var(--select-ink);font:12px var(--font-ui)}
:is(body[data-view=chat-index],body.session-replay) .composer button{flex:none;padding:11px 12px;min-height:42px;font:13px var(--font-ui)}
:is(body[data-view=chat-index],body.session-replay) #sendBtn{display:inline-flex;align-items:center;gap:9px;background:var(--send-background);color:var(--send-ink);border:1px solid var(--send-line);box-shadow:inset 0 1px #fff7;font-weight:700}
:is(body[data-view=chat-index],body.session-replay) #sendBtn .ui-icon{color:inherit}
:is(body[data-view=chat-index],body.session-replay) #moodSelect{max-width:85px}
:is(body[data-view=chat-index],body.session-replay) #umoreBtn{display:none}
:is(body[data-view=chat-index],body.session-replay) .composer #comodo.is-your-turn{border:2px solid #a73558;animation:your-turn-emphasis 1.6s ease-in-out infinite}
@keyframes your-turn-emphasis{0%,100%{box-shadow:0 0 0 1px #9f284b50}50%{box-shadow:0 0 0 4px #9f284b80,0 0 18px #9f284b66}}
:is(body[data-view=chat-index],body.session-replay) .quest-countdown{flex:none;font:600 12px/1.4 var(--font-ui);color:var(--gold-2);white-space:nowrap}
:is(body[data-view=chat-index],body.session-replay) .quest-countdown.is-urgent{color:#f09ba5}
:is(body[data-view=chat-index],body.session-replay) .chat-reading-options{display:grid;gap:12px;margin-bottom:22px}
:is(body[data-view=chat-index],body.session-replay) .chat-reading-options label{display:flex;align-items:center;gap:10px;font:13px/1.6 var(--font-ui)}
:is(body[data-view=chat-index],body.session-replay) .chat-reading-options label:last-child{flex-wrap:wrap}
:is(body[data-view=chat-index],body.session-replay) .chat-reading-options input[type=range]{width:100%;accent-color:var(--gold)}
:is(body[data-view=chat-index],body.session-replay) .scene-detail-list{display:grid;grid-template-columns:1fr;gap:5px;margin:0 0 18px}
:is(body[data-view=chat-index],body.session-replay) .scene-detail-list dt{color:var(--muted);font:12px var(--font-ui);margin-top:8px}
:is(body[data-view=chat-index],body.session-replay) .scene-detail-list dd{margin:0}
:is(body[data-view=chat-index],body.session-replay) .scene-mini-person{display:flex;gap:12px;padding:12px 0;align-items:center;border-bottom:1px solid var(--line)}
:is(body[data-view=chat-index],body.session-replay) .scene-mini-person img{width:24px;height:24px;object-fit:contain}
:is(body[data-view=chat-index],body.session-replay) .scene-mini-person small{display:block;font:12px/1.5 var(--font-ui);color:var(--muted)}
:is(body[data-view=chat-index],body.session-replay) .scene-map-image{width:100%;max-height:220px;object-fit:contain;border:1px solid var(--line);border-radius:10px;margin:8px 0 16px}
#sessionModalOverlay.session-manager-dialog{width:min(980px,96vw);height:min(820px,94dvh);max-width:96vw;max-height:94dvh;padding:0;border:1px solid var(--gold);border-radius:var(--radius);background:var(--panel);color:var(--text);box-shadow:var(--shadow);overflow:hidden}
#sessionModalOverlay.session-manager-dialog[open]{display:flex;flex-direction:column}#sessionModalOverlay::backdrop{background:#020912ba;backdrop-filter:blur(4px)}
.session-manager-dialog>.modal-header{display:flex;align-items:center;gap:12px;flex:none;padding:10px 16px;border-bottom:1px solid var(--line)}.session-manager-dialog>.modal-header h2{flex:1;margin:0;font-size:18px;color:var(--gold-2)}.session-manager-dialog iframe{display:block;flex:1;width:100%;min-height:0;border:0;background:var(--panel)}

@media(max-width:760px){:is(body[data-view=chat-index],body.session-replay) .composer{flex-wrap:wrap}:is(body[data-view=chat-index],body.session-replay) .composer #comodo{flex-basis:100%;order:0}:is(body[data-view=chat-index],body.session-replay) .scene-toolbar{gap:6px}:is(body[data-view=chat-index],body.session-replay) .scene-id h1{font-size:14px}:is(body[data-view=chat-index],body.session-replay) .scene-id p{font-size:9px}:is(body[data-view=chat-index],body.session-replay) .scene-tool{padding:8px}:is(body[data-view=chat-index],body.session-replay) .scene-tool span{display:none}:is(body[data-view=chat-index],body.session-replay) .scene-actions{max-width:58%}:is(body[data-view=chat-index],body.session-replay) #chatbox{padding:12px 9px}:is(body[data-view=chat-index],body.session-replay) .quest-chat-status{padding:8px 12px}}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper #chatbox{background:linear-gradient(160deg,#182439,#0b1a2d);color:#e1dbd0}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-prose :is(.chat-action,.chat-speech){color:#e5e1d5}
@media(prefers-reduced-motion:reduce){:is(body[data-view=chat-index],body.session-replay) .composer #comodo.is-your-turn{animation:none;box-shadow:0 0 0 3px #9f284b70}}

/* Schede leggibili anche quando la colonna destra riduce la scena. */
:is(body[data-view=chat-index],body.session-replay) .chat-message{grid-template-columns:142px minmax(0,1fr);gap:22px}
:is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master{text-align:left}
:is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master>div{text-align:left}
:is(body[data-view=chat-index],body.session-replay) #chatbox:before{content:'Scena di gioco · trascrizione';display:block;text-align:center;text-transform:uppercase;letter-spacing:.2em;color:#a3834c;font:600 10px var(--font-ui);padding:3px 0 20px}
:is(body[data-view=chat-index],body.session-replay).chat-compact .chat-message{grid-template-columns:86px minmax(0,1fr)}
:is(body[data-view=chat-index],body.session-replay).chat-noport .chat-message{grid-template-columns:minmax(0,1fr)}
@media(max-width:500px){:is(body[data-view=chat-index],body.session-replay) .chat-message{grid-template-columns:88px minmax(0,1fr);gap:10px}}

:is(body[data-view=chat-index],body.session-replay) .quest-details-button{flex:none;background:none;border:0;color:var(--gold);padding:6px;font:12px var(--font-ui);white-space:nowrap}
@media(max-width:500px){
 :is(body[data-view=chat-index],body.session-replay) .scene-toolbar{flex-wrap:wrap;padding:9px 10px;gap:8px}
 :is(body[data-view=chat-index],body.session-replay) .scene-id{width:100%;min-width:0;flex:1 1 100%}
 :is(body[data-view=chat-index],body.session-replay) .scene-id h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 :is(body[data-view=chat-index],body.session-replay) .scene-actions{max-width:100%;width:100%;justify-content:space-between;gap:4px}
 :is(body[data-view=chat-index],body.session-replay) .scene-tool{flex:1;justify-content:center;padding:8px 4px}
 :is(body[data-view=chat-index],body.session-replay) .chat-drawer{top:111px;right:0;left:0;width:100%;max-height:calc(100% - 111px);bottom:0;border-radius:0}
 :is(body[data-view=chat-index],body.session-replay) .chat-drawer-backdrop{inset:110px 0 0}
 :is(body[data-view=chat-index],body.session-replay) .quest-chat-status{gap:5px}
 :is(body[data-view=chat-index],body.session-replay) .quest-chat-copy{flex-basis:100%;font-size:12px}
 :is(body[data-view=chat-index],body.session-replay) .quest-chat-status small{font-size:10px}
 :is(body[data-view=chat-index],body.session-replay) .chat-master{align-items:flex-start;gap:8px;padding:12px}
 :is(body[data-view=chat-index],body.session-replay) .chat-master:after{display:none}
 :is(body[data-view=chat-index],body.session-replay) .chat-master-mark{width:27px;height:27px}
}

:is(body[data-view=chat-index],body.session-replay) #ai-chat-status{position:absolute;z-index:15;right:20px;bottom:84px;max-width:min(480px,calc(100% - 40px));padding:11px 15px;margin:0;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text);font:13px/1.5 var(--font-ui);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s}
:is(body[data-view=chat-index],body.session-replay) #ai-chat-status.is-visible{opacity:1}
:is(body[data-view=chat-index],body.session-replay) #ai-chat-status:empty{display:none}
@media(max-width:760px){:is(body[data-view=chat-index],body.session-replay) #ai-chat-status{bottom:170px}}

:is(body[data-view=chat-index],body.session-replay) .chat-master{align-items:flex-start}

/* One header row, one reading column. Detailed state lives in the scene drawer. */
:is(body[data-view=chat-index],body.session-replay){--chat-card-column:142px;--chat-column-gap:22px;--chat-master-indent:calc(var(--chat-card-column) + var(--chat-column-gap) + 8px)}
:is(body[data-view=chat-index],body.session-replay) .chat-message{grid-template-columns:var(--chat-card-column) minmax(0,1fr);gap:var(--chat-column-gap)}
:is(body[data-view=chat-index],body.session-replay) .scene-toolbar{flex-wrap:nowrap;gap:12px;min-height:70px}
:is(body[data-view=chat-index],body.session-replay) .scene-id{flex:0 1 auto}.scene-id>div{min-width:0}
:is(body[data-view=chat-index],body.session-replay) .scene-id h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(body[data-view=chat-index],body.session-replay) .quest-header-slot{flex:1;min-width:0;max-width:430px;margin-left:auto}
:is(body[data-view=chat-index],body.session-replay) .quest-header-slot:empty{display:none}
:is(body[data-view=chat-index],body.session-replay) .quest-header-slot .quest-chat-status{padding:0 0 0 12px;margin:0;display:flex;flex-wrap:wrap;gap:3px 10px;border:0;border-left:1px solid #b18d4b55;background:transparent;min-width:0;box-shadow:none}
:is(body[data-view=chat-index],body.session-replay) .quest-header-button{display:block;max-width:100%;padding:0;border:0;background:transparent;color:#edce92;box-shadow:none;border-radius:0;font:600 12px/1.4 var(--font-ui);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:is(body[data-view=chat-index],body.session-replay) .quest-header-eta{width:100%;font:10px/1.35 var(--font-ui);color:#9cabbe;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(body[data-view=chat-index],body.session-replay) .quest-header-eta:empty{display:none}
:is(body[data-view=chat-index],body.session-replay) .quest-header-slot .quest-countdown{flex:0 1 auto;font:11px/1.4 var(--font-ui);margin:0;color:#d5ae65}
:is(body[data-view=chat-index],body.session-replay) .scene-actions{flex:none;max-width:none}
:is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master{margin:14px 14px 14px var(--chat-master-indent);padding:16px;gap:13px;align-items:flex-start}
:is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master .chat-master-mark{display:grid;place-items:center;flex:none;width:36px;height:36px;margin:0;padding:0;line-height:1;box-sizing:border-box}
:is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master .chat-master-mark svg{display:block;width:21px;height:21px;margin:0;transform:none}
:is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master .chat-master-mark>span{display:contents;margin:0}
:is(body[data-view=chat-index],body.session-replay) .chat-type-action,:is(body[data-view=chat-index],body.session-replay) .chat-type-whisper,:is(body[data-view=chat-index],body.session-replay) .chat-type-animal,:is(body[data-view=chat-index],body.session-replay) .chat-type-ooc{min-height:100px}
:is(body[data-view=chat-index],body.session-replay) .chat-type-action.is-male .chat-prose{font-weight:700;color:#243d5f}
:is(body[data-view=chat-index],body.session-replay) .chat-type-action.is-female .chat-prose{font-weight:700;color:#793b83}
:is(body[data-view=chat-index],body.session-replay) .chat-type-action .chat-prose .chat-speech{font-weight:400;color:#31281e}
:is(body[data-view=chat-index],body.session-replay) .chat-type-whisper .chat-prose{font-style:italic;color:#68446d;background:#ac6a9c12;border-left:2px solid #94618b;padding:10px 14px}
:is(body[data-view=chat-index],body.session-replay) .chat-type-ooc .chat-prose{font:13px/1.65 var(--font-ui);color:#5a554d;background:#182b3e0d;border:1px dashed #80663b66;border-radius:7px;padding:10px 14px}
:is(body[data-view=chat-index],body.session-replay) .chat-type-animal .chat-prose{font-style:italic;border-left:2px solid #778b52;padding-left:14px}
:is(body[data-view=chat-index],body.session-replay) .scene-mobile-menu{display:none}
:is(body[data-view=chat-index],body.session-replay) .scene-mobile-links{display:grid;gap:10px}
:is(body[data-view=chat-index],body.session-replay).chat-compact{--chat-card-column:88px;--chat-column-gap:15px}
:is(body[data-view=chat-index],body.session-replay).chat-noport{--chat-master-indent:8px}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-type-action .chat-prose{color:#b7ccec}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-type-action.is-female .chat-prose{color:#e4b2ea}
:is(body[data-view=chat-index],body.session-replay).chat-darkpaper .chat-prose .chat-speech{color:#e9dfcb}
@media(max-width:1360px){:is(body[data-view=chat-index],body.session-replay) .scene-id .scene-round-icon{width:32px;height:32px;flex:none}:is(body[data-view=chat-index],body.session-replay) .scene-id h1{font-size:16px}:is(body[data-view=chat-index],body.session-replay) .scene-id p{font-size:10px}:is(body[data-view=chat-index],body.session-replay) .quest-header-slot{max-width:290px}:is(body[data-view=chat-index],body.session-replay) .scene-actions .scene-tool{padding:8px}}
@media(max-width:760px){
 :is(body[data-view=chat-index],body.session-replay){--chat-card-column:64px;--chat-column-gap:10px;--chat-master-indent:82px}
 :is(body[data-view=chat-index],body.session-replay) .scene-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:8px 10px;min-height:62px}
 :is(body[data-view=chat-index],body.session-replay) .scene-id{grid-column:1;grid-row:1;max-width:100%}:is(body[data-view=chat-index],body.session-replay) .scene-id p{display:none}:is(body[data-view=chat-index],body.session-replay) .scene-id .scene-round-icon{width:25px;height:25px}:is(body[data-view=chat-index],body.session-replay) .scene-id h1{font-size:15px;margin:0}
 :is(body[data-view=chat-index],body.session-replay) .quest-header-slot{grid-column:1;grid-row:2;margin:0;width:100%;max-width:none}
 :is(body[data-view=chat-index],body.session-replay) .quest-header-slot .quest-chat-status{padding:0;border:0;flex-wrap:nowrap;gap:8px}
 :is(body[data-view=chat-index],body.session-replay) .quest-header-button{font-size:10px;flex:1;min-width:0}
 :is(body[data-view=chat-index],body.session-replay) .quest-header-eta{display:none}:is(body[data-view=chat-index],body.session-replay) .quest-header-slot .quest-countdown{font-size:10px;white-space:nowrap}
 :is(body[data-view=chat-index],body.session-replay) .scene-actions{grid-column:2;grid-row:1/3;width:auto;max-width:none;overflow:visible}
 :is(body[data-view=chat-index],body.session-replay) .scene-actions>.scene-tool{display:none}:is(body[data-view=chat-index],body.session-replay) .scene-actions>.scene-mobile-menu{display:flex;width:38px;height:38px;justify-content:center}
 :is(body[data-view=chat-index],body.session-replay) #chatbox{padding:8px 6px}:is(body[data-view=chat-index],body.session-replay) .chat-message{padding:9px 4px;gap:10px;min-height:90px}
 :is(body[data-view=chat-index],body.session-replay) .chat-meta{gap:5px;margin-bottom:6px}:is(body[data-view=chat-index],body.session-replay) .chat-meta .chat-location,:is(body[data-view=chat-index],body.session-replay) .chat-persona-badge{display:none}
 :is(body[data-view=chat-index],body.session-replay) .chat-meta .chat-persona{font-size:14px}:is(body[data-view=chat-index],body.session-replay) .chat-prose{font-size:14px;line-height:1.65}
 :is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master{margin:10px 4px 10px var(--chat-master-indent);padding:11px;gap:8px}
 :is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master .chat-master-mark{width:25px;height:25px}:is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master .chat-master-mark svg{width:16px;height:16px}
 :is(body[data-view=chat-index],body.session-replay) .chat-master:after{display:none}:is(body[data-view=chat-index],body.session-replay) .composer{display:grid;grid-template-columns:80px minmax(0,1fr) 40px 72px;gap:6px;padding:8px}
 :is(body[data-view=chat-index],body.session-replay) .composer #comodo{grid-column:1/-1;grid-row:1;order:0;width:100%;min-width:0;font-size:16px;height:45px}
 :is(body[data-view=chat-index],body.session-replay) .composer #messageType{grid-column:1;grid-row:2;width:100%}:is(body[data-view=chat-index],body.session-replay) .composer #ai-chat-npc{grid-column:2;grid-row:2;width:100%}
 :is(body[data-view=chat-index],body.session-replay) .composer #diceBtn{grid-column:3;grid-row:2;padding:6px}:is(body[data-view=chat-index],body.session-replay) .composer #sendBtn{grid-column:4;grid-row:2;padding:6px}
 :is(body[data-view=chat-index],body.session-replay) .composer :is(#moodSelect,#recordBtn,#sessionBtn){display:none}
 :is(body[data-view=chat-index],body.session-replay) .chat-drawer{width:100%;max-width:100%;top:0;bottom:0;border-radius:0}
 :is(body[data-view=chat-index],body.session-replay).chat-noport{--chat-master-indent:4px}
}
@media(prefers-reduced-motion:reduce){:is(body[data-view=chat-index],body.session-replay) #comodo.is-your-turn{animation:none;outline:2px solid #9e4155}}
@media(max-width:760px){
 :is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master{position:relative;display:block}
 :is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master .chat-master-mark{position:absolute;top:11px;left:11px}
 :is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master>div>strong:first-child{padding-left:33px;min-height:25px;display:flex;align-items:center}
 :is(body[data-view=chat-index],body.session-replay) #chatbox .chat-master p{line-height:1.7}
}

/* Illustrazione del luogo e un'unica intestazione, anche dentro il workspace. */
:is(body[data-view=chat-index],body.session-replay) .scene-location-image{flex:none;position:relative;display:block;width:76px;height:58px;padding:3px;border:2px solid #ad8748;border-radius:8px;background:linear-gradient(135deg,#ecd49b,#65502d);box-shadow:inset 0 0 0 1px #f5dfad,0 3px 9px #0005}
:is(body[data-view=chat-index],body.session-replay) .scene-location-image img{display:block;width:100%;height:100%;object-fit:cover;border:1px solid #4d391d;border-radius:4px}
:is(body[data-view=chat-index],body.session-replay) .scene-controls{flex:none;display:flex;flex-direction:column;gap:4px;align-items:flex-end}
:is(body[data-view=chat-index],body.session-replay) .scene-actions .scene-tool{width:38px;height:38px;padding:9px;justify-content:center}
:is(body[data-view=chat-index],body.session-replay) .scene-actions .scene-tool>span:not(.ui-icon){display:none}
:is(body[data-view=chat-index],body.session-replay) .scene-return-row{display:flex;justify-content:flex-end}
:is(body[data-view=chat-index],body.session-replay) .scene-return{display:grid;place-items:center;width:30px;height:23px;min-height:0;padding:3px;border:1px solid #8b6e3c66;border-radius:5px;background:#0d1c2d;color:#d5ae65}
:is(body[data-view=chat-index],body.session-replay) .scene-return svg{width:15px;height:15px}
:is(body[data-view=chat-index],body.session-replay) .scene-illustration{margin:0 0 18px;border:1px solid #b18d4b77;padding:5px;border-radius:11px;background:#071523}
:is(body[data-view=chat-index],body.session-replay) .scene-illustration img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;border-radius:7px}
:is(body[data-view=chat-index],body.session-replay) .scene-illustration figcaption{padding:8px 5px 4px;font:12px var(--font-ui);color:var(--gold-2)}
@media(max-width:760px){:is(body[data-view=chat-index],body.session-replay) .scene-controls{grid-column:2;grid-row:1/3}:is(body[data-view=chat-index],body.session-replay) .scene-controls .scene-actions{display:flex}:is(body[data-view=chat-index],body.session-replay) .scene-return-row{display:none}:is(body[data-view=chat-index],body.session-replay) .scene-location-image{width:48px;height:37px}:is(body[data-view=chat-index],body.session-replay) .scene-id{grid-row:1;align-items:center;padding-bottom:0}:is(body[data-view=chat-index],body.session-replay) .scene-id h1{font-size:14px}:is(body[data-view=chat-index],body.session-replay) .quest-header-slot{grid-column:1;grid-row:2;position:static;padding-top:0;pointer-events:auto}:is(body[data-view=chat-index],body.session-replay) .quest-header-slot button{pointer-events:auto}:is(body[data-view=chat-index],body.session-replay) .scene-toolbar{min-height:72px;gap:0 8px}}
#sessionModalOverlay.session-manager-dialog:not([open]){display:none}

/* === utilities === */
/* Dichiarazioni strutturali condivise, rimosse dai template. */
.u-008a31c6f { margin-bottom: 2rem; }
.u-0bc69d14b { width: 100%; border-collapse: collapse; }
.u-0bf5b514b { width: 1.3em; display: inline-block; }
.u-0c26507b4 { margin-bottom: .5rem; display: flex; align-items: center; justify-content: center; }
.u-0f939f36b { max-width: 150px; border-radius: 4px; }
.u-118a0d8c2 { padding: .5rem; margin: .5rem; cursor: pointer; }
.u-13cbe03b9 { text-align: right; }
.u-1a96f4c6d { width: 3ch; }
.u-1ac13a3d3 { list-style: none; padding: 0; margin: 8px 0 0 0; }
.u-1b08402f4 { max-height: 40px; display: block; margin: .25rem 0; }
.u-21716f5bd { flex: 80px; align-self: flex-end; }
.u-254b77fc4 { width: 100%; border: none; }
.u-26161947e { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.u-2824a174a { text-align: center; padding: .5em 0; }
.u-29ab538dd { vertical-align: top; }
.u-2dbfafd4c { flex: 1 1 100%; padding: .5rem; border: 1px solid var(--line); }
.u-30b7e95cf { background: var(--panel-2); }
.u-34e197701 { max-width: 150px; max-height: 120px; }
.u-362b5171e { display: flex; gap: 1rem; margin-top: 2rem; flex-wrap: wrap; }
.u-36699024f { display: flex; gap: 1rem; }
.u-3a4ab9e60 { font-size: .8rem; }
.u-3e06b323c { color: var(--text); }
.u-434fc32ec { display: inline; }
.u-4ae7557d5 { flex: 150px; }
.u-55475ae7d { flex: 80px; }
.u-559371d6e { width: 100%; height: 100%; }
.u-5f6fe1c69 { display: flex; gap: 20px; margin-top: 20px; }
.u-5fa693f3d { margin-top: 20px; }
.u-5fb9edaa1 { display: inline-block; margin-right: 1rem; }
.u-659827ad9 { display: inline-block; vertical-align: middle; margin-right: 4px; }
.u-681b32bdd { background: none; border: none; color: var(--gold); cursor: pointer; }
.u-69d66e5b2 { width: 100%; }
.u-6b82cf24a { display: flex; }
.u-6c467482a { background: var(--panel-2); color: var(--text); padding: .75rem 1.5rem; border: none; border-radius: var(--radius); font-weight: bold; }
.u-6eaf1c755 { background: var(--bg); color: var(--text); }
.u-72a68ac34 { text-align: center; }
.u-745ac6697 { text-align: center; margin-bottom: .5rem; }
.u-7670f08f9 { color: var(--text); font-weight: bold; text-decoration: none; }
.u-79f300168 { width: 100%; margin-bottom: 1em; }
.u-8410c989c { cursor: pointer; }
.u-86366d3e4 { color: var(--text); text-decoration: none; font-weight: bold; }
.u-885ca2788 { margin-top: 1em; padding: 1em; border: 1px solid var(--line); }
.u-8d1f4ab85 { max-width: 200px; }
.u-9548f4c53 { display: inline-block; }
.u-96524d740 { background: var(--panel-2); padding: 10px; border-radius: 4px; margin: 10px 0; }
.u-97c21ea8e { max-height: 4em; overflow: auto; }
.u-a015d81c9 { width: 4em; }
.u-a053cda31 { width: 5ch; }
.u-a54de8d6a { width: 33%; }
.u-aabb9be3a { display: flex; gap: 1rem; flex-wrap: wrap; }
.u-b4c4c046c { border: none; text-align: center; }
.u-b65551544 { margin-top: .5rem; }
.u-b9326a177 { background: var(--panel-2); color: var(--text); padding: .75rem 1.5rem; border-radius: var(--radius); font-weight: bold; text-decoration: none; }
.u-c267d9cb9 { width: 50%; vertical-align: top; }
.u-c3369f2c7 { background: var(--panel-2); color: var(--text); padding: .75rem 1.5rem; border: none; border-radius: var(--radius); font-weight: bold; }
.u-c3400183f { text-align: center; white-space: nowrap; }
.u-c497072bd { margin: .5rem 0; }
.u-c94f3cf97 { color: var(--text); text-decoration: none; }
.u-ce335bd47 { margin-bottom: .5rem; }
.u-e0c8870df { padding: 1rem; background: var(--gold); color: var(--text); text-align: center; margin: 1rem; border-radius: 4px; }
.u-e3818d0a3 { width: 100%; height: 100%; border: 0; display: block; }
.u-e8d2d0f9e { color: var(--text); text-decoration: underline; }
.u-e9a0cdfa2 { flex: 0 0 150px; }
.u-eca1aa8a9 { display: flex; gap: 10px; margin-top: 10px; }
.u-ee3d55bf9 { flex: 1; }
.u-f267e3ca6 { margin-bottom: 1rem; }
.u-f2892a2e8 { display: none; }
.u-f3e26fadb { display: flex; gap: 10px; flex-wrap: wrap; }
.u-f4214b080 { margin-top: 0.5em; }
.u-f63e01396 { border-color: var(--panel); }
.u-f75d63c1e { color: var(--danger); }
.u-f932c5a58 { margin-top: 1em; }
.u-ff227d063 { margin: 0; }

.u-3e06b323c { color: var(--text); }
.u-e0b98047e { color:var(--text); }

/* === experience === */
/* Struttura dei moduli: intestazione → schede → contenuto → azioni. */
.ui-icon { width: 1.15em; height: 1.15em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.75; color:var(--icon); stroke-linecap: round; stroke-linejoin: round; vertical-align: -.15em; }
body.ui-page { padding: 0; margin: 0; width: 100%; min-width: 0; line-height: 1.55; }
.ui-page-heading { display: flex; align-items: center; gap: 16px; margin: 0; padding: 14px 16px; border-bottom: 1px solid var(--line); max-width: none; }
.ui-page-heading > .ui-icon { width: 46px; height: 46px; padding: 10px; color: var(--gold-2); background: var(--hover); border: 1px solid var(--line); border-radius: 12px; }
.ui-page-heading h1 { text-align: left; font-size: clamp(1.35rem, 2.4vw, 1.8rem); margin: 4px 0 6px; }
.ui-page-heading p { font-size: .9rem; color: var(--muted); margin: 0; }
.ui-eyebrow { color: var(--gold); font: 600 .65rem/1.4 system-ui,sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.ui-replaced-heading { display: none !important; }
body.ui-page > .container, body.ui-page > .grid, body.ui-page > .content, body.ui-page > #form, body.ui-page > .profile, body.ui-page > .ui-tablist, body.ui-page > .ui-tabpanel { max-width: none; width: 100%; margin: 0; }
body.ui-page .container { padding: 0; }
.ui-tablist { display: flex; gap: 6px; padding: 8px; overflow-x: auto; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-sm); margin-bottom: 16px; scrollbar-width: thin; }
.ui-tablist [role=tab] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; border-color: transparent; background: transparent; white-space: nowrap; font: 500 .85rem/1.4 system-ui,sans-serif; }
.ui-tablist [aria-selected=true] { color: var(--gold-2); border-color: var(--line); background: var(--panel-2); box-shadow: inset 0 -2px var(--gold); }
body.ui-page .ui-tab-host { display: block; }
body.ui-page .ui-tabpanel { width: 100%; max-width: none; padding: 16px; margin: 0; border: 0; border-radius: 0; background: var(--panel); box-shadow: none; }
body.ui-page form.ui-tabpanel { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 10px; max-width: none; }
body.ui-page .ui-tabpanel > :is(header,h2,h3,h4,.title) { margin: 0 0 16px; font-size: 1.2rem; color: var(--gold-2); padding-bottom: 12px; border-bottom: 1px solid var(--line); background: transparent; font-weight: bold; }
body.ui-page .ui-tabpanel label { display: block; font-size: .88rem; margin: 4px 0 0; }
body.ui-page .ui-tabpanel input:not([type=hidden]):not([type=checkbox]):not([type=radio]), body.ui-page .ui-tabpanel select, body.ui-page .ui-tabpanel textarea { width: 100%; }
body.ui-page .ui-tabpanel button { justify-self: start; margin-top: 8px; min-width: 130px; }
body.ui-page .ui-tabpanel form + form { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
body.ui-page .tabs:not(.schede-posta) { display: flex; align-items: center; gap: 6px; padding: 8px; list-style: none; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); margin-block: 0; }
body.ui-page .tabs > :is(button,.tab,li), body.ui-page .tabs > li > a { flex: 0 0 auto; white-space: nowrap; border-radius: 8px; padding: 10px 14px; font: 500 .85rem/1.4 system-ui,sans-serif; }
body.ui-page .tabs > li { padding: 0; }
body.ui-page .tabs > li > a { display: flex; gap: 8px; align-items: center; }
body.ui-page .tabs .ui-icon { margin-right: 5px; }
body.ui-page .actions { padding-top: 16px; gap: 8px; }
body.ui-page .actions > .button { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--button-background); }
.ui-table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; margin-block: 12px 18px; }
.ui-table-scroll > table { width: 100%; margin: 0; }
.ui-table-scroll th { white-space: nowrap; }
.ui-page td { line-height: 1.45; }
/* Carta di lettura: narrazione, missive, forum, statuti e manuali. */
.ui-reading, .scene-note { color: var(--reading-ink); background: var(--reading-background); border: 1px solid var(--reading-line); border-radius: 14px; padding: clamp(18px, 2.3vw, 28px); box-shadow: var(--reading-shadow); line-height: 1.75; overflow-wrap: anywhere; }
body.ui-page .ui-reading { font-size: 1.04rem; margin-block: 12px 18px; }
.ui-reading :is(h1,h2,h3,h4,h5,h6,strong,small,.muted,.meta,.Descrizione,.Valore), .scene-note :is(strong,h2) { color: var(--reading-ink); }
.ui-reading a, .scene-note a { color: var(--reading-link); text-decoration: underline; }
.ui-reading a:hover, .scene-note a:hover { color: var(--reading-ink); }
.ui-reading p { margin-block: 0 1em; }
.ui-reading p:last-child { margin-bottom: 0; }
.ui-reading blockquote { margin-inline: 0; padding: 8px 18px; border-left: 3px solid var(--reading-line); }
.ui-reading table, .ui-reading td { color: var(--reading-ink); border-color: var(--reading-line); }
.ui-reading th { background: transparent; color: var(--reading-ink); }
.ui-reading hr { border-color: var(--reading-line); }
.ui-reading :focus-visible { outline-color: var(--reading-ink); }
.scene-note { --reading-ink: var(--parchment-ink); --reading-line: var(--parchment-line); flex: 0 0 auto; margin-bottom: 12px; padding: 14px 18px; max-height: 24vh; overflow: auto; background: var(--parchment); color: var(--parchment-ink); border-color: var(--parchment-line); box-shadow: none; }
.scene-note > strong { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; }
.scene-note p { margin: 0; }
body[data-view=chat-index] .descr-content { color: var(--parchment-ink); background: var(--parchment); border: 1px solid var(--parchment-line); border-radius: 14px; padding: 24px; }
/* Elenchi di comunità compatti, con dati e comandi separati. */
/* I pannelli operativi esistenti mantengono il proprio controller, con navigazione compatta. */
body.ui-page[data-styles~=master-detail] { gap: 0; }
body.ui-page[data-styles~=master-detail] .ui-page-heading { width: 100%; flex: 0 0 auto; }
body.ui-page[data-styles~=master-detail] .nav-panel { flex-basis: 230px; max-width: 230px; }
body.ui-page[data-styles~=master-detail] .nav-panel h2 { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; text-align: left; padding: 14px; margin: 0; }
body.ui-page[data-styles~=master-detail] .nav-panel ul { margin: 0; padding: 6px; }
body.ui-page[data-styles~=master-detail] .nav-panel li { padding: 10px 12px; border-radius: 8px; font-size: .9rem; }
body.ui-page[data-styles~=master-detail] .panel-header { min-height: 54px; height: auto; flex: 0 0 auto; padding: 10px 16px; font-size: 1rem; }
body.ui-page[data-styles~=master-detail] .panel-header button { font-size: .85rem; }
body.ui-page[data-view=admin-utenti] .wrap { flex-direction: column; }
body.ui-page[data-view=admin-utenti] .nav-panel { max-width: 100%; flex: 0 0 auto; }
body.ui-page[data-view=admin-utenti] .nav-panel h2 { display: none; }
body.ui-page[data-view=admin-utenti] .nav-panel ul { display: flex; flex-wrap: wrap; gap: 4px; max-height: 160px; overflow: auto; }
body.ui-page[data-view=admin-utenti] .main-panel { margin-top: 14px; }
body[data-view=regole-index] #panel-content.ui-reading { margin: 0; }
.workspace-header { padding: 10px 16px; min-height: 52px; }
.workspace-header h1 { font-size: .95rem; color: var(--muted); }
@media (max-width: 720px) {
  body.ui-page { padding: 0; }
  .ui-page-heading { gap: 10px; margin-bottom: 14px; padding-bottom: 12px; }
  .ui-page-heading > .ui-icon { width: 38px; height: 38px; padding: 8px; }
  .ui-page-heading p { font-size: .8rem; }
  .ui-tablist { gap: 2px; padding: 5px; }.ui-tablist [role=tab] { padding: 9px 10px; }
  body.ui-page .ui-tabpanel { padding: 16px; }
  body.ui-page[data-styles~=master-detail] .wrap { flex-direction: column; }
  body.ui-page[data-styles~=master-detail] .nav-panel { max-width: 100%; flex: 0 0 auto; max-height: 140px; overflow: auto; }
  body.ui-page[data-styles~=master-detail] .main-panel { flex: 1 1 auto; min-height: 180px; }
  body.ui-page[data-styles~=master-detail] .nav-panel ul { display: flex; overflow-x: auto; }
  body.ui-page[data-styles~=master-detail] .nav-panel li { flex: 0 0 auto; }
  .scene-note { max-height: 20vh; padding: 12px; font-size: .9rem; }
}
/* La gerarchia dei titoli prevale sulle vecchie misure di ciascun modulo. */
body.ui-page .ui-page-heading { margin: 0; padding: 14px 16px; }
body.ui-page .ui-page-heading h1 { margin: 3px 0 5px; padding: 0; text-align: left; line-height: 1.2; }
body.ui-page .ui-page-heading p { line-height: 1.4; margin: 0; }
body.ui-page .ui-page-heading > .ui-icon { width: 40px; height: 40px; padding: 9px; }
body.ui-page form.ui-tabpanel { gap: 10px; padding: 16px; }
body.ui-page form.ui-tabpanel > header { margin-bottom: 8px; padding-bottom: 8px; }
body.ui-page .ui-tabgroup > .ui-fieldgroup { box-shadow: none; margin: 0 0 18px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; }
body.ui-page .ui-tabgroup > .ui-fieldgroup:last-child { margin-bottom: 0; }
body.ui-page .ui-tabgroup > .ui-fieldgroup > :is(h2,header) { margin: 0 0 14px; font-size: 1.1rem; color: var(--gold-2); }
body.ui-page .ui-tabgroup > form.ui-fieldgroup { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; align-content: start; }
body.ui-page .ui-tabgroup > form.ui-fieldgroup label { margin: 4px 0 0; }
body.ui-page .ui-tabgroup > form.ui-fieldgroup :is(input,select) { width: 100%; }
body.ui-page .ui-tabgroup > form.ui-fieldgroup button { width: fit-content; }
@media (max-width: 720px) {
}
body.ui-page[data-view=statistiche-index] .container { display: block; height: auto; }
body.ui-page[data-view=statistiche-index] .nav { display: none; }
body.ui-page[data-view=statistiche-index] .content { padding: 0; overflow: visible; }
body.ui-page[data-view=statistiche-index] .ui-tabgroup h2 { margin: 0 0 12px; font-size: 1.2rem; }
body.ui-page[data-view=bacheche-index] .board-row { grid-template-columns: minmax(0,1fr) 64px 64px minmax(140px, .45fr); }
body.ui-page[data-view=bacheche-index] .board-row > div { padding: 12px; min-width: 0; }
body.ui-page[data-view=bacheche-index] .board-row .col-name { font-size: 1rem; }
body.ui-page[data-view=bacheche-index] .board-row .desc { font-size: .82rem; color: var(--muted); line-height: 1.5; }
body.ui-page[data-view=bacheche-index] .forum-category.ui-tabpanel { padding: 18px; }
body.ui-page[data-view=bacheche-index] .panel-container { padding: 12px 0; }
body.ui-page[data-view=bacheche-index] .main-panel { padding: 0; }
body.ui-page[data-view=admin-blocco] .ui-tabpanel form { padding-block: 8px; line-height: 2; }
body.ui-page[data-view=sondaggi-adminsondaggi] > hr { display: none; }
@media (max-width: 720px) {
  body.ui-page[data-view=bacheche-index] .board-row { grid-template-columns: minmax(0,1fr) 48px 48px; }
  body.ui-page[data-view=bacheche-index] .col-lastpost { display: none; }
  body.ui-page[data-view=bacheche-index] .board-row > div { padding: 8px; }
}
body.ui-page .ui-tablist { padding: 8px 12px; margin: 0; border-width: 0 0 1px; border-radius: 0; }
body.ui-page .ui-reading { padding: clamp(18px,2.3vw,28px); line-height: 1.75; font-size: 1.04rem; }
body.ui-page .ui-icon { display: inline-block; }
body.ui-page[data-view=city-assembly] .wrap { height: auto; }
body.ui-page[data-view=private-room] { display: flex; flex-direction: column; height: 100dvh; }
body.ui-page[data-view=private-room] .wrap { flex: 1; height: auto; min-height: 0; }
body.ui-page[data-view=private-room] iframe.chat { flex: 1; min-height: 400px; }
body.ui-page[data-view=bacheche-index] .modal:not(.open), body.ui-page[data-view=discussioni-index] .modal:not(.open) { visibility: hidden; }
body.ui-page[data-view=bacheche-index] .modal.open, body.ui-page[data-view=discussioni-index] .modal.open { visibility: visible; }
/* Le modali della posta usano un contenitore .show, senza classe .open. */
body.ui-page .modal-backdrop.show .modal { visibility: visible; }
body.ui-page .ui-fieldgroup > h5 { font-size: 1rem; margin: 0 0 12px; }
body.ui-page .ui-reading .ui-table-scroll { border-color: var(--reading-line); }
body.ui-page .ui-reading .ui-table-scroll table { background: transparent; }
body.ui-page .tabs :is(a,button,.tab).active { color: var(--gold-2); background: var(--panel-2); box-shadow: inset 0 -2px var(--gold); border-color: var(--line); }
body[data-view=chat-index] .tabs .ui-icon { margin-right: 6px; }
body.ui-page .tabs [role=tab] { cursor: pointer; }
@media (max-width: 900px) {
  .game-navigation .tabs { flex-wrap:nowrap; overflow-x:auto; padding-bottom:5px; scrollbar-width:none; }
  .game-navigation .tab { flex: 0 0 auto; }
  .game-navigation .tab-list { position: fixed; left: var(--menu-left,12px); top: var(--menu-top,120px); width: min(248px,calc(100vw - 24px)); min-width: 0; max-height: 55dvh; }
  .workspace-header { padding: 8px 12px; }
  .workspace-header h1 { font-size: .82rem; line-height: 1.35; }
  body.ui-page .ui-page-heading p { display: none; }
  body.ui-page .ui-page-heading h1 { font-size: 1.25rem; }
}
.game-shell { grid-template-columns: minmax(0,1fr); min-width: 0; }
.topbar { min-width: 0; }
.ui-page-heading > div { min-width: 0; }
body.ui-page .ui-action { display: inline-flex; align-items: center; gap: 6px; width: auto; height: auto; padding: 9px 12px; margin: 4px; border: 1px solid var(--line); border-radius: 8px; background: var(--button-background); color: var(--text); font-size: .85rem; }
body[data-view=posta-showmsg] .message-box { white-space: normal; }
@media (min-width: 721px) {
  body.ui-page form.ui-tabpanel:has(> label) { grid-template-columns: 150px minmax(0,1fr); gap: 14px 20px; align-items: center; }
  body.ui-page form.ui-tabpanel:has(> label) > :is(header,h2,.message) { grid-column: 1 / -1; }
  body.ui-page form.ui-tabpanel:has(> label) > label { grid-column: 1; margin: 0; }
  body.ui-page form.ui-tabpanel:has(> label) > :is(input:not([type=hidden]),select,textarea,button) { grid-column: 2; margin: 0; }
}

/* Ricerca: alfabeto e filtri responsive, risultati con scorrimento locale. */
.search-alphabet { display:flex; flex-wrap:wrap; gap:4px; padding:16px; border-bottom:1px solid var(--line); }
.search-alphabet a { display:inline-flex; justify-content:center; min-width:30px; padding:5px 7px; border:1px solid var(--line); border-radius:6px; font:500 .78rem/1.4 system-ui,sans-serif; }
.search-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding:20px; }
.search-filter { display:block; min-width:0; font: .82rem/1.5 system-ui,sans-serif; color:var(--muted); }
.search-filter :is(input,select) { display:block; width:100%; margin-top:8px; }
.search-filter br { display:none; }.search-actions { grid-column:1 / -1; }
.search-results { max-width:100%; overflow:auto; padding:0 20px 20px; }
.search-results > table { min-width:680px; }
@media(max-width:640px) { .search-filters { grid-template-columns:1fr; padding:16px; gap:14px; }.search-results { padding:0 16px 16px; } }

/* L’oro si scurisce sulla pergamena: stessa famiglia cromatica, contrasto leggibile. */
:is(.ui-reading,.forum-post,.manual-reading,.character-fields,.ui-data-table tbody,.ui-data-list .ui-data-row) .ui-icon { color:var(--icon-on-paper); }
:is(.ui-reading,.forum-post,.manual-reading,.character-fields,.ui-data-table tbody,.ui-data-list .ui-data-row) :is(button,.action-btn) .ui-icon { color:var(--icon); }

.ui-tablist { scrollbar-width:none; }
.ui-tablist::-webkit-scrollbar,.game-navigation .tabs::-webkit-scrollbar { display:none; }

/* === workspace === */
/* I moduli utilizzano l'intera cornice: lo spazio appartiene ai contenuti interni. */
body.ui-page > :is(.wrap,.container,.content,.profile,#form,.moderation-sections,.community-grid) { width: 100%; max-width: none; min-width: 0; margin: 0; }
body.ui-page > .container, body.ui-page > #form, body.ui-page > .container > :is(main,.content) { padding: 0; margin: 0; max-width: none; }
body.ui-page .ui-tab-host { gap: 0; }
body.ui-page .main-panel { min-width: 0; min-height: 0; margin: 0; padding: 0; }
body.ui-page[data-styles~=master-detail] { height: 100dvh; min-height: 0; padding: 0; }
body.ui-page[data-styles~=master-detail] > .wrap { width: 100%; flex: 1 1 auto; min-height: 0; height: auto; margin: 0; }
body.ui-page[data-styles~=master-detail] .panel-container { min-height: 0; padding: 0; }
body.ui-page[data-styles~=master-detail] .panel-container > iframe { width: 100%; height: 100%; min-height: 0; flex: 1; border: 0; }
body[data-view=vari-menuvarie] .panel-container { display: flex; flex-direction: column; overflow: hidden; }
body.ui-page .ui-tabpanel { width: 100%; max-width: none; margin: 0; }
body.ui-page .ui-tabgroup { padding: 0; }
body.ui-page .ui-tabgroup > .ui-fieldgroup { width: 100%; margin: 0; border: 0; padding: 20px; }
body.ui-page .ui-tablist, body.ui-page .tabs:not(.schede-posta) { margin: 0; border-radius: 0; border-width: 0 0 1px; }
body[data-view=bacheche-index] .main-panel { padding: 0; }
body[data-view=bacheche-index] .panel-container { padding: 0; }
body[data-view=bacheche-index] .forum-category.ui-tabpanel { padding: 16px; }
/* Superfici operative scure; la pergamena appartiene soltanto ai testi narrativi. */
body.ui-page .ui-page-heading { background:var(--heading-background); color:var(--text); }
body.ui-page .ui-surface { background: var(--panel); border-color: var(--line); }
body.ui-page .modal-content { position: relative; width: min(680px,calc(100vw - 24px)); max-width: calc(100vw - 24px); max-height: calc(100dvh - 32px); overflow: auto; padding: 20px; background: var(--panel-2); border: 1px solid var(--line); box-shadow: var(--shadow); }
body.ui-page .modal.open { background: var(--shadow-color); }
body.ui-page .modal-title { padding-right: 32px; }
body.ui-page .modal-form :is(input,textarea,select) { width: 100%; }
body.ui-page .modal-form p { margin: 12px 0; }
/* Archivio sessioni: vere righe e colonne, con scorrimento locale sui dispositivi stretti. */
body.ui-page[data-view=sessione-viewlog] { display: flex; flex-direction: column; height: 100dvh; min-height: 0; overflow: hidden; }
body[data-view=sessione-viewlog] .ui-page-heading { flex: 0 0 auto; }
body[data-view=sessione-viewlog] .session-archive { display: flex; flex-direction: column; flex: 1; width: 100%; min-width: 0; min-height: 0; }
body[data-view=sessione-viewlog] .session-table-scroll { margin: 0; width: 100%; max-width: 100%; min-height: 0; flex: 1; overflow: auto; border: 0; border-radius: 0; }
.session-table { width: 100%; margin: 0; table-layout: fixed; }
.session-table caption { text-align: left; padding: 10px 16px; color: var(--muted); font-size: .85rem; }
.session-table .session-name-col { width: 26%; }.session-table .session-location-col { width: 27%; }.session-table .session-date-col { width: 16%; }.session-table .session-actions-col { width: 15%; }
.session-table :is(th,td) { padding: 12px 16px; vertical-align: middle; overflow-wrap: anywhere; }
.session-table thead { position: sticky; top: 0; z-index: 1; }
.session-table th { font: 600 .78rem/1.4 system-ui,sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.session-table .session-name { display: block; font-weight: bold; color: var(--reading-ink); }
.session-table .session-state { display: block; width: fit-content; margin-top: 5px; color: var(--reading-ink); font: .73rem/1.4 system-ui,sans-serif; }
.session-table .session-state.is-open { font-weight: bold; }
.session-table .session-actions { display: flex; gap: 6px; flex-wrap: nowrap; align-items: center; }
.session-table .action-btn { display: inline-flex; align-items: center; gap: 5px; padding: 7px 10px; font-size: .8rem; white-space: nowrap; }
.session-table .session-empty { padding: 28px 16px; text-align: center; }
@media (max-width: 720px) {
  body.ui-page .ui-page-heading { padding: 12px; }
  body.ui-page .ui-tabpanel, body.ui-page .ui-tabgroup > .ui-fieldgroup { padding: 12px; }
  body[data-view=profili-modifyuser] .ui-tabgroup { padding: 0; }
  .session-table { min-width: 680px; }
  .session-table :is(th,td) { padding: 10px 12px; }
  .session-table caption { position: sticky; left: 0; width: min(100vw,680px); }
}

/* === ai === */
/* Master IA: usa la palette e i componenti comuni, senza stili inline o temi per utente. */
.ai-game-order { padding-left:24px; }
.ai-game-order li { display:flex; gap:8px; flex-wrap:wrap; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.ai-game-order li span { flex:1 1 180px; }
.ai-game-order button { padding:6px 12px; }
.ai-admin { width:100%; min-width:0; padding:var(--gap); }
.ai-heading { padding:20px; background:var(--reading-background); color:var(--reading-ink); border-radius:var(--radius-sm); margin-bottom:var(--gap); }
.ai-heading h1,.ai-heading p { color:inherit; margin:0 0 8px; }
.ai-heading p:last-child { margin-bottom:0; }
.ai-toolbar,.ai-tabs { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:var(--gap); }
.ai-toolbar select { flex:1; min-width:180px; }
.ai-tabs { border-bottom:1px solid var(--line); padding-bottom:12px; }
.ai-tabs [aria-selected="true"] { color:var(--gold-2); background:var(--panel-2); box-shadow:inset 0 -3px var(--gold); }
.ai-form { display:grid; gap:18px; padding:18px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel); margin-bottom:var(--gap); }
.ai-form label { display:flex; flex-direction:column; gap:8px; min-width:0; }
.ai-form label:has(input[type="checkbox"]) { flex-direction:row; align-items:center; align-self:center; }
.ai-form-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:18px; }
.ai-form input:not([type="checkbox"]),.ai-form select,.ai-form textarea { width:100%; min-width:0; box-sizing:border-box; }
.ai-form textarea { resize:vertical; }
.ai-form input[type="checkbox"] { width:auto; }
.ai-form button[type="submit"] { justify-self:start; }
.ai-help { margin:0; color:var(--muted); line-height:1.5; }
#ai-feedback:empty { display:none; }
#ai-feedback { padding:12px; background:var(--reading-background); color:var(--reading-ink); border-radius:var(--radius-sm); }
#ai-preview,#ai-chronicle { white-space:pre-wrap; line-height:1.65; }
.ai-table-scroll { overflow:auto; max-width:100%; }
.ai-table-scroll table { width:100%; border-collapse:collapse; }
.ai-table-scroll th,.ai-table-scroll td { text-align:left; padding:12px; border-bottom:1px solid var(--line); }
.ai-chat-tools { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:10px 0; }
.ai-chat-tools [role="status"] { color:var(--muted); flex:1 1 200px; font-size:.9rem; }
.ai-chat-tools [role="status"]:empty { display:none; }
.ai-chat-tools[hidden],.ai-admin [hidden] { display:none !important; }
.ai-narration.scene-note { margin:8px 0; padding:12px 0; line-height:1.65; max-height:none; overflow:visible; border:0; border-top:1px solid var(--parchment-line); border-radius:0; }
.chat-character-header { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.chat-character-header time { color:var(--typing-ink); font:12px/1.4 var(--font-ui); }
.chat-character-name,.npc-profile-link { font:700 16px var(--font-body); text-decoration:underline; text-decoration-color:var(--gold); }
.chat-female.chat-action,.chat-female.chat-character-name,.chat-female.npc-profile-link { color:var(--character-female); }
.chat-male.chat-action { color:var(--action-male); }
.chat-male.chat-character-name,.chat-male.npc-profile-link { color:var(--character-male); }
.chat-action { font-weight:700; }
.ai-narration .chat-action { display:inline; margin:0; }
.chat-speech { font-weight:400; color:var(--prose-ink); }
.npc-typing { font-style:italic; color:var(--typing-ink); padding:10px 8px; border-top:1px solid var(--parchment-line); }
.npc-typing::after { content:' ● ● ●'; font-size:.6em; letter-spacing:3px; }
#ai-chat-status { margin:6px 0 0; font-size:.9rem; }
#ai-chat-status:empty { display:none; }
.scene-world,.scene-cast,.scene-description-editor,body[data-view=chat-index] .descr-content { margin-bottom:18px; }
.scene-description-editor summary { cursor:pointer; color:var(--gold-2); padding:10px 0; }
body[data-view=chat-index] #descrizione .descr-content :is(h2,h3) { color:var(--parchment-ink); }
body[data-view=chat-index] #descrizione .descr-content a:not(.npc-profile-link) { color:var(--parchment-ink); text-decoration:underline; }
.scene-person { display:grid; grid-template-columns:90px minmax(0,1fr); gap:20px; padding:20px 0; border-bottom:1px solid var(--parchment-line); }
.scene-person:last-child { border-bottom:0; }
.scene-person h3,.scene-person p { margin:0 0 10px; }
.npc-portrait { width:90px; height:110px; object-fit:cover; border:1px solid var(--line); border-radius:10px; }
.ai-profile-editor { display:grid; gap:18px; border:1px solid var(--line); padding:18px; border-radius:var(--radius-sm); }
.ai-profile-editor > * { margin-bottom:14px; }
.ai-profile-editor summary { cursor:pointer; font-weight:700; color:var(--gold-2); }
.ai-profile-group { padding:12px 0; border-bottom:1px solid var(--line); }
.ai-profile-group summary { cursor:pointer; font-weight:700; color:var(--gold-2); margin-bottom:12px; }
.ai-profile-group label { margin:12px 0; }
.ai-portrait-editor { display:grid; grid-template-columns:90px minmax(0,1fr); gap:18px; }
.ai-detail-row { display:grid; grid-template-columns:minmax(100px,1fr) minmax(150px,3fr) auto; gap:12px; margin-bottom:12px; align-items:start; }
@media(max-width:600px) { .ai-detail-row { grid-template-columns:1fr; }.scene-person { grid-template-columns:65px minmax(0,1fr); gap:12px; }.scene-person .npc-portrait { width:65px; height:80px; } }
@media(max-width:600px) { .ai-admin { padding:10px; } .ai-form { padding:12px; } .ai-tabs button { flex:1 1 40%; } }

/* Dati personali dei PNG: componenti del tema, senza regole locali nelle viste. */
.npc-relations-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px 24px; padding:18px 20px; }
.npc-relation-metric { display:grid; grid-template-columns:1fr 45px; gap:7px; align-items:center; font:.84rem/1.5 var(--font-ui); }
.npc-relation-metric label { grid-column:1/-1; color:var(--gold-2); }
.npc-relation-metric meter { width:100%; height:14px; accent-color:var(--gold); }
.npc-relation-metric output { text-align:right; }
.npc-relationship-section { padding:18px 20px; border-top:1px solid var(--line); }
.npc-relationship-section summary,.npc-admin-section > summary { padding:10px 0; color:var(--gold-2); cursor:pointer; font-weight:600; }
.npc-relationship-section .ui-form { max-width:650px; padding:14px 0; }
.npc-memories { list-style:none; padding:0; margin:0; }
.npc-memories li { margin-bottom:12px; padding:14px 16px; border-left:2px solid var(--gold); background:var(--panel-2); }
.npc-memories time { display:block; color:var(--muted); font:.72rem/1.4 var(--font-ui); margin-bottom:6px; }
.npc-memories p { margin:8px 0; line-height:1.65; }
.npc-offer { margin:12px 0; padding:16px; border:1px solid var(--line); border-radius:8px; }
.npc-admin-content { padding:20px; }
.npc-admin-selection { display:flex; flex-wrap:wrap; align-items:end; gap:14px; padding-block:12px; }
.npc-admin-selection label { flex:1 1 200px; min-width:0; }
.npc-admin-section { padding:14px 0; border-top:1px solid var(--line); }
.npc-admin-section form { padding:16px 0; }

/* Storia vissuta e relazioni: stesso registro, lettura compatta anche su mobile. */
.npc-social-overview { padding:20px; margin-block:16px 24px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel); }
.npc-social-overview > header { display:flex; flex-wrap:wrap; align-items:start; gap:12px 28px; }
.npc-social-overview > header > div { flex:1 1 280px; }
.npc-social-overview > header > p { flex:1 1 320px; color:var(--muted); line-height:1.6; margin:0; }
.npc-social-overview h2 { margin:6px 0 0; }
.npc-social-totals { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-block:24px; }
.npc-social-totals > div { padding:14px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel-2); }
.npc-social-totals dt { color:var(--muted); font: .8rem/1.4 var(--font-ui); }
.npc-social-totals dd { margin:8px 0 0; color:var(--gold-2); font:700 1.6rem/1 var(--font-body); }
.npc-social-table { min-width:740px; }
.npc-social-table td { vertical-align:middle; }
.npc-social-table small { display:block; margin-top:5px; line-height:1.5; }
.npc-social-selected td { box-shadow:inset 0 2px var(--gold),inset 0 -2px var(--gold); }
.npc-social-person { display:grid; grid-template-columns:48px minmax(105px,1fr); align-items:center; gap:5px 12px; text-decoration:none; font-weight:700; min-width:165px; }
body.ui-page .npc-social-table .npc-social-person > img { grid-row:1/3; width:48px; height:48px; object-fit:cover; border:1px solid var(--gold); border-radius:50%; }
.npc-social-person > .character-markers { grid-column:2; margin:0; }
.npc-social-score { display:inline-flex; justify-content:center; min-width:3em; padding:5px 8px; background:var(--ok-surface); border:1px solid var(--line); border-radius:20px; font-weight:700; }
.npc-social-negative { background:var(--danger-surface); }
.npc-social-pages { display:flex; justify-content:end; align-items:center; gap:12px; padding-top:16px; flex-wrap:wrap; }
.npc-social-timeline { padding:0; margin:18px 0; list-style:none; display:grid; gap:14px; }
.npc-social-timeline > li { min-width:0; padding:16px 20px; border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:var(--radius-sm); background:var(--panel-2); overflow-wrap:anywhere; }
.npc-social-timeline header { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; }
.npc-social-timeline time { color:var(--muted); font:.8rem/1.5 var(--font-ui); }
.npc-social-timeline p { line-height:1.6; margin:10px 0; }
.npc-social-timeline details > summary { padding:4px 0; cursor:pointer; color:var(--gold-2); }
.npc-social-source,.npc-social-private { display:inline-block; padding:3px 9px; border:1px solid var(--line); border-radius:20px; font:.75rem/1.4 var(--font-ui); }
.npc-social-private { background:var(--danger-surface); }
@media(max-width:640px) {
 .npc-admin-content { padding:12px; }
 .npc-social-overview { padding:12px; }
 .npc-social-totals { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .npc-social-totals > div { padding:12px; }
 .npc-social-timeline > li { padding:14px; }
 .npc-admin-selection > button,.npc-admin-selection > .action-btn { width:100%; }
 body.ui-page .npc-social-table .npc-social-selected td { box-shadow:none; }
}

/* Regia: componenti comuni, schede compatte e tabelle leggibili anche su mobile. */
.engine-traits { padding-top:16px; grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); }
#engine-feedback:not(:empty) { padding:12px; background:var(--reading-background); color:var(--reading-ink); border-radius:var(--radius-sm); }
#engine-verdicts textarea { white-space:pre-wrap; }
#engine-audit td:last-child { max-width:640px; overflow-wrap:anywhere; }
.quest-chat-status { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:10px 16px; background:var(--panel-2); border-bottom:1px solid var(--line); }
.quest-chat-status span { flex:1 1 220px; }

/* === characters === */
/* Shared PG/PNG sheet and profile editor. Visual tokens come from the central theme. */
body.ui-page .character-sheet { width:100%; min-width:0; padding:0; }
body.ui-page .character-heading { display:grid; grid-template-columns:88px minmax(0,1fr) auto; align-items:center; gap:18px; padding:18px 20px; margin:0; background:var(--panel-2); border-bottom:1px solid var(--line); }
.character-portrait { display:block; width:88px; height:110px; object-fit:cover; background:var(--panel); border:1px solid var(--line); border-radius:10px; }
.character-summary { min-width:0; }
body.ui-page .character-heading h1 { margin:4px 0 8px; font-size:clamp(1.4rem,2.3vw,1.9rem); line-height:1.15; letter-spacing:0; overflow-wrap:anywhere; }
.character-meta { display:flex; flex-wrap:wrap; align-items:center; gap:5px; color:var(--muted); font:.78rem/1.6 system-ui,sans-serif; overflow-wrap:anywhere; }
.character-meta img { width:18px; height:18px; object-fit:contain; }
body.ui-page .character-heading .character-subtitle { margin:5px 0 0; color:var(--text); font-size:.88rem; }
.character-metrics { display:flex; align-items:center; flex-wrap:wrap; gap:20px; padding:0; margin:12px 0 0; }
.character-metrics > div { display:flex; align-items:baseline; gap:7px; }
.character-metrics dt { color:var(--muted); font:.7rem/1.4 system-ui,sans-serif; }
.character-metrics dd { margin:0; color:var(--gold-2); font-weight:700; font-size:1rem; }
.character-introduction { padding:14px 20px; border-bottom:1px solid var(--line); background:var(--reading-background); color:var(--reading-ink); }
body.ui-page .character-introduction .character-motto { margin:0; padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; color:var(--reading-ink); font-size:1rem; line-height:1.7; font-style:italic; }
.character-introduction audio { display:block; width:min(100%,360px); height:32px; margin-top:10px; }
body.ui-page .character-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:12px 20px; margin:0; background:var(--panel); border-bottom:1px solid var(--line); }
.character-actions :is(a,button) { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:36px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; background:var(--button-background); color:var(--text); font:500 .78rem/1.4 system-ui,sans-serif; }
.character-actions a:hover { text-decoration:none; border-color:var(--gold); }
body.ui-page .character-sheet > .character-tabs { padding:8px 12px; margin:0; border-width:0 0 1px; border-radius:0; }
body.ui-page .character-sheet .tab-content { display:none; padding:0; }
body.ui-page .character-sheet .tab-content.active { display:block; }
.character-section-title { margin:0; padding:11px 20px; background:var(--panel); color:var(--muted); font:500 .76rem/1.4 system-ui,sans-serif; letter-spacing:0; }
.character-fields { display:block; margin:0; padding:0; color:var(--reading-ink); background:var(--reading-background); }
.character-field { display:grid; grid-template-columns:minmax(140px,24%) minmax(0,1fr); gap:24px; padding:14px 20px; border:0; border-bottom:1px solid var(--reading-line); min-width:0; overflow-wrap:anywhere; }
.character-field:nth-child(even) { background:var(--reading-stripe); }
.character-field:last-child { border-bottom:0; }
.character-field dt { margin:0; color:var(--reading-ink); font:600 .76rem/1.6 system-ui,sans-serif; }
.character-field dd { min-width:0; margin:0; color:var(--reading-ink); line-height:1.7; }
.character-field dd :is(p,div,blockquote) { margin-block:0 10px; }
.character-field dd > :last-child { margin-bottom:0; }
.character-field dd :is(strong,small,h1,h2,h3,h4,h5,h6) { color:var(--reading-ink); }
.character-field dd small { display:block; margin-top:5px; font:.76rem/1.5 system-ui,sans-serif; }
.character-field dd a { color:var(--reading-link); text-decoration:underline; }
.character-field dd a:hover { color:var(--reading-ink); }
.character-field img { max-width:28px; max-height:28px; }
/* The editor uses the same information hierarchy, with native forms in compact sections. */
body.ui-page .character-editor-heading { grid-template-columns:64px minmax(0,1fr) auto; padding-block:14px; }
.character-editor-heading .character-portrait { width:64px; height:80px; }
.character-editor { width:100%; min-width:0; margin:0; }
body.ui-page .character-editor .ui-tabpanel { padding:0; background:var(--panel); }
.character-editor .form-section { padding:20px; }
body.ui-page .character-editor .ui-tabgroup > .form-section { padding:20px; margin:0; border:0; border-bottom:1px solid var(--line); border-radius:0; box-shadow:none; background:transparent; }
.character-editor .form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:0 0 20px; align-items:start; }
.character-editor .form-row:last-child { margin-bottom:0; }
.character-editor .form-cell { min-width:0; margin:0; }
.character-editor .form-cell:only-child { grid-column:1 / -1; }
.character-editor fieldset { padding:16px; border:1px solid var(--line); border-radius:8px; background:var(--panel-2); }
.character-editor legend { padding-inline:6px; color:var(--gold-2); font:600 .82rem/1.5 system-ui,sans-serif; }
.character-editor label { display:block; margin:0 0 7px; color:var(--muted); font:.76rem/1.5 system-ui,sans-serif; }
.character-editor input:not([type=checkbox]):not([type=radio]),.character-editor select,.character-editor textarea { display:block; width:100%; }
.character-editor .form-cell :is(input,textarea) + label { margin-top:16px; }
.character-editor small { display:block; margin-top:7px; color:var(--muted); font:.72rem/1.5 system-ui,sans-serif; }
.character-editor input[type=file] { font-size:.78rem; }
.character-editor .profile-static-value { margin:0; overflow-wrap:anywhere; color:var(--text); }
.character-editor .character-fields { margin:0; }
.character-editor-section-title { display:flex; gap:8px; align-items:center; margin:0 0 16px; font-size:1rem; }
.character-editor .profile-field-label { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.password-quality { margin-top:7px; color:var(--muted); font:.73rem/1.5 system-ui,sans-serif; min-height:1.5em; }
.profile-password-suggestion { margin:12px 0 0; padding:10px 12px; background:var(--panel); border:1px solid var(--line); color:var(--gold-2); border-radius:8px; overflow-wrap:anywhere; font:.8rem/1.5 system-ui,sans-serif; }
.profile-linked-characters { display:flex; flex-wrap:wrap; gap:8px 16px; margin:0; }
.character-editor-footer { position:sticky; bottom:0; padding:12px 20px; background:var(--panel-2); border-top:1px solid var(--line); z-index:3; }
body.ui-page .character-editor-footer .character-actions { margin:0; padding:0; border:0; background:transparent; }
.character-editor-footer [type=submit][value=""] { border-color:var(--gold); }
.profile-import { margin-top:12px; }
.profile-import summary { cursor:pointer; color:var(--muted); font:.76rem/1.5 system-ui,sans-serif; }
.profile-import-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin-top:12px; align-items:center; }
.profile-import-controls label { grid-column:1/-1; margin:0; }
.profile-import-controls button { display:inline-flex; align-items:center; gap:7px; }
#profile-save-status { color:var(--muted); font:.75rem/1.5 system-ui,sans-serif; }
@media(max-width:640px) {
 body.ui-page .character-heading { grid-template-columns:56px minmax(0,1fr); gap:12px; padding:14px; }
 .character-portrait { width:56px; height:70px; border-radius:7px; }
 body.ui-page .character-heading .ui-return-location { grid-column:1/-1; justify-self:end; max-width:none; margin:0; }
 body.ui-page .character-heading h1 { font-size:1.45rem; }
 .character-metrics { gap:8px 16px; margin-top:9px; }
 .character-metrics > div { gap:5px; }
 .character-metrics dd { font-size:.92rem; }
 .character-field { grid-template-columns:minmax(0,1fr); gap:5px; padding:12px 14px; }
 .character-section-title { padding-inline:14px; }
 body.ui-page .character-actions,.character-introduction { padding:12px 14px; }
 .character-editor .form-row { grid-template-columns:1fr; gap:16px; margin-bottom:16px; }
 .character-editor .form-section,body.ui-page .character-editor .ui-tabgroup > .form-section { padding:16px; }
 .character-editor fieldset { padding:14px; }
 .character-editor-footer { padding:12px 14px; }
 .profile-import-controls { grid-template-columns:minmax(0,1fr); }
 .profile-import-controls button { justify-self:start; }
}

/* Il Richiamo V6: shared PG/PNG dossier, using real game data. */
body.ui-page .rpg-sheet{--gold:#d6af73;--gold-2:#f5d9aa;--text:#eee6d9;--muted:#aeb3b8;--line:#d6af733d;--icon:#d6af73;background:transparent;border:0;border-radius:0;overflow:hidden;box-shadow:none}
.rpg-emblem{display:inline-grid;place-items:center;flex:none;width:27px;height:27px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2);color:var(--icon)}.rpg-emblem img{width:19px;height:19px;object-fit:contain}.rpg-emblem .ui-icon{width:17px;height:17px}
.rpg-dossier{margin:20px 22px 28px;border:1px solid #7c6548;border-radius:15px;background:#081824;box-shadow:0 18px 50px #0005;overflow:hidden}body.ui-page .rpg-sheet .rpg-profile-tabs{display:flex;gap:0;padding:0 14px;margin:0;min-height:60px;border:0;border-bottom:1px solid #7e6040;border-radius:0;box-shadow:none;background:linear-gradient(180deg,#142738,#0b1b2a)}body.ui-page .rpg-sheet .rpg-profile-tabs .tab{display:flex;align-items:center;gap:9px;min-height:60px;padding:18px 18px;flex:0 0 auto;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#bdb8b2;font:16px Georgia,serif}.rpg-profile-tabs .ui-icon{margin:0;width:17px;height:17px;color:#bd995e}body.ui-page .rpg-sheet .rpg-profile-tabs .tab.active{color:#ffe1ab;background:#ffffff0c;border-bottom-color:#e6b974;box-shadow:none}.rpg-archive-label{margin-left:auto;padding-left:12px;color:#9c9b94;font:9px var(--font-ui);text-transform:uppercase;letter-spacing:1px;white-space:nowrap}.rpg-points-dot{width:6px;height:6px;flex:none;border-radius:50%;background:var(--gold);box-shadow:0 0 7px #d1ac6655}.rpg-points-dot[hidden]{display:none}
body.ui-page .rpg-sheet .rpg-pane{padding:24px 26px 28px;min-height:250px;background:transparent}.rpg-pane[hidden]{display:none!important}body.ui-page .rpg-sheet #equipment{padding:0}.rpg-equipment-frame{display:block;width:100%;height:850px;border:0;background:transparent}
.rpg-affiliations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.rpg-affiliation{display:flex;align-items:center;gap:12px;padding:18px;background:linear-gradient(130deg,#172a38,#0c1a27);border:1px solid var(--line);border-radius:8px;min-width:0}.rpg-affiliation>div{min-width:0}.rpg-affiliation small{font:10px var(--font-ui);letter-spacing:1px;text-transform:uppercase;color:#a7aaad}.rpg-affiliation h3{font:400 19px Georgia,serif;color:var(--gold-2);margin:6px 0}.rpg-affiliation p{font:12px/1.5 var(--font-ui);color:#b9b6ac;margin:2px 0 0}.rpg-affiliation .rpg-emblem{width:38px;height:38px}.rpg-affiliation .rpg-emblem img{width:27px;height:27px}
.rpg-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:0;border-top:1px solid var(--line)}.rpg-fields>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-width:0;padding:14px 5px;border-bottom:1px solid var(--line)}.rpg-fields dt{font:12px/1.6 var(--font-ui);color:#a8a49f}.rpg-fields dd{max-width:68%;margin:0;font:13px/1.7 var(--font-ui);color:#eee1cd;text-align:right;overflow-wrap:anywhere}.rpg-fields img{max-width:26px;max-height:26px;object-fit:contain}.rpg-fields small{display:block;color:var(--muted)}.rpg-fields a{color:var(--gold-2)}
.rpg-profile-disclosure{padding:15px 0;border-bottom:1px solid var(--line)}.rpg-profile-disclosure>summary{display:flex;align-items:center;gap:9px;color:var(--gold-2);cursor:pointer;font:19px Georgia,serif}.rpg-profile-disclosure>summary:after{content:'+';margin-left:auto;color:var(--gold)}.rpg-profile-disclosure[open]>summary:after{content:'−'}.rpg-profile-disclosure>summary .ui-icon{width:17px;height:17px;color:var(--icon)}.rpg-profile-disclosure[open]>summary{margin-bottom:12px}.rpg-profile-motto{margin-top:16px}.rpg-profile-motto blockquote{margin:0;padding:12px 0;color:var(--gold-2);background:none;border:0;font:italic 15px/1.7 Georgia,serif}.rpg-profile-motto audio{width:min(100%,300px);height:32px}
/* Narrative content: one full-width biography, followed by individual relationship cards. */
.rpg-history-cards,.rpg-history-related{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}.rpg-history-related{grid-column:1/-1}.rpg-history-card{min-width:0;border:1px solid var(--line);border-radius:12px;background:linear-gradient(140deg,var(--panel-soft),var(--panel));padding:22px;box-shadow:0 8px 22px #0002}.rpg-history-biography,.rpg-history-wide,.rpg-history-record{grid-column:1/-1}.rpg-history-related>.rpg-history-card:last-child:nth-child(odd){grid-column:1/-1}.rpg-history-card>header{display:flex;align-items:center;gap:11px;padding-bottom:14px;margin-bottom:15px;border-bottom:1px solid var(--line)}.rpg-history-card>header>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--button-background);color:var(--icon);flex:none}.rpg-history-card>header .ui-icon{width:17px;height:17px}.rpg-history-card h2{font:400 22px/1.3 var(--font-body);color:var(--gold-2);margin:0}.rpg-history-content{font:14px/1.85 var(--font-ui);color:var(--text);overflow-wrap:anywhere}.rpg-history-biography .rpg-history-content{font:16px/1.9 var(--font-body);min-height:80px}.rpg-history-content>:first-child{margin-top:0}.rpg-history-content>:last-child{margin-bottom:0}.rpg-history-content :is(h1,h2,h3,h4){color:var(--gold-2);margin:18px 0 10px}.rpg-history-content img{max-width:100%;height:auto}.rpg-history-content a{color:var(--gold-2)}.rpg-history-record .rpg-profile-disclosure{padding:0;border:0}.rpg-history-record .rpg-fields{grid-template-columns:1fr}.rpg-history-record .rpg-fields>div{display:block}.rpg-history-record .rpg-fields dd{max-width:none;text-align:left;margin-top:6px}
.profile-banner-editor{margin-bottom:20px}.profile-banner-preview{display:block;width:100%;max-height:190px;aspect-ratio:3/1;object-fit:cover;border:1px solid var(--line);border-radius:8px;margin-bottom:16px}.profile-banner-editor button{margin-top:10px}
.rpg-silhouette img.is-race-portrait,#profile-avatar.is-race-portrait{object-fit:cover;object-position:90% center}
.experience-editor .experience-check{display:flex;align-items:center;gap:10px;margin:10px 0}
.experience-editor input[type=range]{width:100%;padding:0;accent-color:var(--gold)}
.experience-editor output{display:block;color:var(--gold-2);font-size:12px;margin-top:5px}
/* The same transformation state decorates the full sheet and compact identity card. */
.has-metamorphosis{--metamorphosis-color:#8dc991}.has-metamorphosis[data-metamorphosis=vampire]{--metamorphosis-color:#e66c7a}
.has-metamorphosis :is(#profile-avatar,.rpg-silhouette){border:2px solid var(--metamorphosis-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--metamorphosis-color) 15%,transparent),0 0 18px color-mix(in srgb,var(--metamorphosis-color) 24%,transparent)}
.has-metamorphosis :is(#profile-avatar,[data-profile-portrait]){animation:metamorphosis-breath 3.2s ease-in-out infinite}
.has-metamorphosis :is(.profile-name-text,.rpg-name-row h1){color:var(--metamorphosis-color)}
.metamorphosis-notice{display:grid;gap:5px;margin:12px 0;padding:10px 12px;border-left:2px solid var(--metamorphosis-color);border-radius:0 8px 8px 0;background:color-mix(in srgb,var(--metamorphosis-color) 7%,var(--panel));font:12px/1.6 var(--font-ui);color:var(--text)}.metamorphosis-notice strong{font-size:12px;color:var(--metamorphosis-color)}.metamorphosis-notice time{font-variant-numeric:tabular-nums;color:var(--metamorphosis-color);font-weight:600;white-space:nowrap}
@keyframes metamorphosis-breath{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@media(prefers-reduced-motion:reduce){.has-metamorphosis :is(#profile-avatar,[data-profile-portrait]){animation:none}}
body.ui-page .rpg-hero.has-metamorphosis .rpg-name-row h1{color:var(--metamorphosis-color)}
@media(max-width:760px){.rpg-dossier{margin:14px 12px 20px}.rpg-affiliations,.rpg-history-cards,.rpg-history-related,.rpg-fields{grid-template-columns:1fr}body.ui-page .rpg-sheet .rpg-pane{padding:18px}.rpg-history-card{padding:18px}.rpg-history-card h2{font-size:20px}}
@media(max-width:500px){.rpg-dossier{margin:12px 8px 20px}body.ui-page .rpg-sheet .rpg-pane{padding:16px 12px}.rpg-fields>div{gap:10px}.rpg-history-card{padding:15px}.rpg-history-content{font-size:13px}.rpg-history-biography .rpg-history-content{font-size:15px}.rpg-fields dd{max-width:64%}}

/* Shared sex and connection indicators across character directories and result lists. */
.character-markers{display:inline-flex;align-items:center;vertical-align:middle;gap:6px;margin-inline-start:7px;white-space:nowrap;line-height:1;flex-shrink:0}.character-markers img.character-sex-icon{display:inline-block;width:22px;height:22px;min-width:22px;max-width:none;object-fit:contain;border:0;border-radius:0;margin:0;padding:0;background:none;box-shadow:none;vertical-align:middle;filter:drop-shadow(0 1px 2px #0008)}.character-online-dot{display:inline-block;width:8px;height:8px;min-width:8px;border-radius:50%;border:1px solid #bd9b6170;box-sizing:content-box;vertical-align:middle}.character-online-dot.is-online{background:#5dbb79;box-shadow:0 0 5px #5dbb7950}.character-online-dot.is-offline{background:#bb3a48;box-shadow:0 0 4px #bb3a4830}@media(max-width:600px){.character-markers{gap:4px;margin-inline-start:5px}.character-markers img.character-sex-icon{width:19px;height:19px;min-width:19px}.character-online-dot{width:7px;height:7px;min-width:7px}}

/* The existing user administration hosts one coherent assignment editor. */
.governance{font-family:var(--font-ui);max-width:1200px}.governance p{line-height:1.6}.governance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.governance fieldset{min-width:0;padding:16px;border:1px solid var(--line);border-radius:10px;margin:14px 0;background:var(--panel)}.governance legend{color:var(--gold);padding:0 7px}.governance label{display:flex;flex-direction:column;gap:7px;margin:10px 0}.governance select,.governance textarea,.governance input:not([type=checkbox]){width:100%;max-width:100%;box-sizing:border-box}.governance-flags{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 15px}.governance-flags label{flex-direction:row;align-items:start;margin:0;padding:10px;border:1px solid var(--line);border-radius:8px}.governance-flags input{margin-top:3px;flex:none}.governance-flags small{display:block;color:var(--muted);margin-top:5px}.governance-entry{padding:12px;border-bottom:1px solid var(--line)}.governance-entry summary{cursor:pointer;color:var(--gold)}.governance-entry dl{display:grid;grid-template-columns:minmax(120px,1fr) 1fr;gap:8px}.governance-entry dd{margin:0}.governance #governance-status{padding:12px;border-left:3px solid var(--gold);background:var(--panel)}.governance form[hidden]{display:none!important}

.character-markers .character-race{display:inline-flex;align-items:center;gap:4px;white-space:normal;padding:2px 5px;border:1px solid #b7965b45;border-radius:5px;background:#102335;color:#ecd5a9;font:10px/1.3 var(--font-ui);max-width:145px;text-align:left}.character-markers .character-race img{width:18px;height:18px;min-width:18px;max-width:none;object-fit:contain;border:0;border-radius:0;margin:0;padding:0;background:none}.character-markers{flex-wrap:wrap;white-space:normal;row-gap:4px}@media(max-width:600px){.character-markers .character-race{font-size:9px;max-width:120px}.character-markers .character-race img{width:16px;height:16px;min-width:16px}}
.character-markers{flex-wrap:nowrap;white-space:nowrap}.character-markers .character-race{flex:0 0 auto;white-space:nowrap;max-width:none}.character-markers .character-race>span{white-space:nowrap}
/* Emblemi di stirpe: il nome resta accessibile nel tooltip, gli elenchi usano solo il simbolo. */
body .character-markers .character-race { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; width:28px; height:28px; min-width:28px; max-width:28px; padding:0; border:0; border-radius:50%; background:none; line-height:0; }
body .character-markers .character-race img { width:28px; height:28px; min-width:28px; max-width:28px; max-height:none; margin:0; padding:0; }
body .character-markers .character-race>span { display:none; }
body .character-markers { gap:6px; align-items:center; }
body.ui-page img.race-emblem { width:28px; height:28px; max-width:none; max-height:none; object-fit:contain; vertical-align:middle; }
/* Le directory con una colonna stirpe dedicata non ripetono l'emblema accanto al nome. */
body .search-character .character-markers .character-race,body .presence-person .character-markers .character-race,body .presence-sidebar-person .character-markers .character-race { display:none; }
.presence-sidebar-person img.razza-icon { width:28px; height:28px; min-width:28px; object-fit:contain; }

/* === presence === */
/* Presenze: stesso servizio e stessa gerarchia nella colonna destra e nella directory. */
#presenti-open { display:inline-flex; gap:8px; align-items:center; }
#presenti-open:hover { text-decoration:none; color:var(--text); }
.presence-sidebar-summary { margin:0; padding:10px 18px 0; color:var(--muted); font: .74rem/1.5 system-ui,sans-serif; }
#presenti .presenti-nav { max-height:320px; overflow:auto; padding-top:6px; }
#presenti .presence-sidebar-place { display:block; padding:10px 0 6px; border-top:1px solid var(--line); margin-top:6px; }
#presenti .presence-sidebar-place:first-child { border-top:0; margin-top:0; }
.presence-sidebar-place a { font:600 .73rem/1.4 system-ui,sans-serif; color:var(--muted); }
#presenti-list .presence-sidebar-person { display:flex; gap:8px; padding:5px 0; align-items:center; }
.presence-sidebar-person .presenti-name { border:0; background:transparent; padding:3px 0; min-width:0; font-size:.86rem; text-align:left; color:var(--text); cursor:pointer; }
.presence-kind { font:600 .62rem/1.3 system-ui,sans-serif; letter-spacing:.03em; color:var(--muted); border:1px solid var(--line); padding:3px 6px; border-radius:5px; white-space:nowrap; }
.presence-sidebar-person .presence-kind { margin-left:auto; }
.presence-directory { padding:24px; }
.presence-summary { display:flex; align-items:center; flex-wrap:wrap; gap:12px 28px; padding-bottom:20px; border-bottom:1px solid var(--line); font: .86rem/1.5 system-ui,sans-serif; }
.presence-summary strong { color:var(--gold-2); font:700 1.5rem/1.3 Georgia,serif; margin-right:5px; }
.presence-summary p { flex:1 1 300px; color:var(--muted); margin:0; font-size:.78rem; }
.presence-filters { display:grid; grid-template-columns:minmax(0,2fr) minmax(160px,1fr); gap:16px; margin-top:20px; }
.presence-filters label { display:grid; gap:7px; font: .78rem/1.4 system-ui,sans-serif; color:var(--muted); }
.presence-filters input,.presence-filters select { width:100%; }
.presence-results { color:var(--muted); font: .75rem/1.5 system-ui,sans-serif; margin:14px 0; }
.presence-place-count { color:var(--muted); font: .72rem/1.4 system-ui,sans-serif; white-space:nowrap; }
.presence-empty { margin:0; padding:18px; font-size:.85rem; color:var(--muted); }

.presence-update { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:16px; }
.presence-update button { padding:7px 10px; font: .75rem/1.4 system-ui,sans-serif; }
#presence-refresh-status { color:var(--muted); font: .75rem/1.5 system-ui,sans-serif; }
@media(max-width:740px) { .presence-filters { grid-template-columns:1fr; } }

/* Compact switch, public place image and the shared active-session indicator. */
#presenti .panel-header { gap:8px; flex-wrap:wrap; }
#presenti .panel-header h2 { margin-right:auto; }
.presence-npc-toggle { display:inline-flex; align-items:center; gap:6px; position:relative; cursor:pointer; color:var(--muted); font:600 11px/1.3 var(--font-ui); white-space:nowrap; min-height:32px; padding:4px 0; }
.presence-npc-toggle input { position:absolute; inset:0; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; z-index:1; }
.presence-switch-track { display:block; position:relative; width:30px; height:18px; border:1px solid var(--line); border-radius:20px; background:var(--bg); transition:background .2s; }
.presence-switch-track::after { content:""; position:absolute; width:12px; height:12px; left:2px; top:2px; border-radius:50%; background:var(--muted); transition:transform .2s,background .2s; }
.presence-npc-toggle input:checked+.presence-switch-track { background:#8a6d3855; border-color:var(--gold); }
.presence-npc-toggle input:checked+.presence-switch-track::after { transform:translateX(12px); background:var(--gold-2); }
.presence-npc-toggle input:focus-visible+.presence-switch-track { outline:2px solid var(--gold-2); outline-offset:3px; }
.presence-place-link { display:flex; align-items:center; gap:8px; min-width:0; }
.presence-place-link>span { min-width:0; overflow-wrap:anywhere; }
.presence-place-image { display:block; width:40px; height:30px; object-fit:cover; flex:none; border:1px solid var(--line); border-radius:6px; background:var(--panel-2); }
.presence-session { display:flex; align-items:center; gap:6px; margin-top:5px; color:#a8cda4; font:500 10px/1.4 var(--font-ui); }
.presence-session-dot { display:inline-block; flex:none; width:7px; height:7px; border-radius:50%; background:#84c786; box-shadow:0 0 0 3px #84c78618; animation:presence-session-pulse 1.8s ease-in-out infinite; }
@keyframes presence-session-pulse { 50% { opacity:.4; box-shadow:0 0 0 5px #84c78608; } }
.presence-place h2 .presence-session { font-size:12px; }
@media(prefers-reduced-motion:reduce) { .presence-session-dot { animation:none; } }
@media(max-width:900px),(max-width:1100px) and (max-height:500px) { .presence-npc-toggle { min-height:44px; padding-inline:4px; } }
.presence-my-turn{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0;color:#ff9393;font:600 12px/1.6 var(--font-ui)}.presence-my-turn .presence-session-dot{background:#e94c58;box-shadow:0 0 8px #d13a4c66}.presence-my-turn time{font-variant-numeric:tabular-nums;color:inherit;white-space:nowrap}

/* Directory: tutti i controlli nell'intestazione condivisa, risultati separati. */
body.ui-page .presence-heading.ui-integrated-heading>.presence-filters { display:grid; grid-template-columns:minmax(0,2fr) minmax(180px,1fr) auto; align-items:end; gap:12px 16px; flex:1 1 100%; order:3; margin:4px 0 0; padding-top:14px; border-top:1px solid var(--line); }
body.ui-page .presence-heading>.ui-return-location { order:2; margin-left:auto; }
body.ui-page .presence-filters>label { min-width:0; margin:0; }
body.ui-page .presence-heading .presence-filters :is(input[type=search],select) { box-sizing:border-box; width:100%; min-width:0; margin:0; min-height:38px; padding:8px 11px; font:12px var(--font-ui); }
.presence-filter-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; min-height:38px; }
body.ui-page .presence-filter-actions .presence-npc-toggle { display:inline-flex; flex-direction:row; align-items:center; gap:8px; min-height:38px; margin:0; padding:0; }
body.ui-page .presence-filter-actions button { min-height:38px; padding:8px 11px; font:12px var(--font-ui); white-space:nowrap; }
.presence-heading #presence-refresh-status { grid-column:1/-1; }
.presence-heading #presence-refresh-status:empty { display:none; }
.presence-directory>.presence-summary { padding:12px 24px; gap:8px 24px; }
.presence-directory>.presence-results { margin:0; padding:12px 24px; }
@media(max-width:900px) {
 body.ui-page .presence-heading.ui-integrated-heading>.presence-filters { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
 .presence-filter-actions { grid-column:1/-1; }
}
@media(max-width:600px) {
 body.ui-page .presence-heading.ui-integrated-heading>.presence-filters { grid-template-columns:minmax(0,1fr); gap:12px; }
 .presence-filter-actions { justify-content:space-between; }
 .presence-directory>.presence-summary { padding:12px 14px; gap:8px 18px; }
 .presence-directory>.presence-results { padding:12px 14px; }
 .presence-summary p { flex-basis:100%; }
}

/* === presentation === */
/* Allineamenti e proporzioni dichiarati nel tema, senza attributi HTML di presentazione. */
.align-center { text-align:center; }.align-left { text-align:left; }.align-right { text-align:right; }
.vertical-top { vertical-align:top; }.vertical-middle { vertical-align:middle; }.vertical-bottom { vertical-align:bottom; }
.column-width-3 { width:3%; }
.column-width-33 { width:33%; }
.column-width-34 { width:34%; }
.column-width-50 { width:50%; }
.column-width-100 { width:100%; }

/* === data-tables === */
/* Un solo componente per elenchi, archivi e risultati. La geometria resta nella vista. */
.ui-list-section { min-width: 0; width: 100%; }
.ui-list-footer { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:16px; border-top:1px solid var(--line); }
.ui-list-footer p { margin:0; color:var(--muted); font-size:.84rem; }
body.ui-page .ui-table-scroll { width:100%; min-width:0; max-width:100%; overflow:auto; margin:0; border:0; border-radius:0; }
body.ui-page :is(.ui-data-table,.session-table) { width:100%; border-collapse:collapse; margin:0; border:0; background:var(--reading-background); color:var(--reading-ink); font-size:.94rem; }
body.ui-page :is(.ui-data-table,.session-table) caption { padding:12px 16px; text-align:left; background:var(--panel); color:var(--muted); font:.8rem/1.5 system-ui,sans-serif; }
body.ui-page :is(.ui-data-table,.session-table) :is(th,td) { padding:14px 16px; text-align:left; vertical-align:middle; border:0; border-bottom:1px solid var(--reading-line); overflow-wrap:anywhere; }
body.ui-page :is(.ui-data-table,.session-table) th { background:var(--panel-2); color:var(--gold-2); font:600 .75rem/1.5 system-ui,sans-serif; letter-spacing:.05em; text-transform:uppercase; }
body.ui-page :is(.ui-data-table,.session-table) thead { position:sticky; top:0; z-index:1; }
body.ui-page :is(.ui-data-table,.session-table) tbody { background:transparent; color:var(--reading-ink); }
body.ui-page :is(.ui-data-table,.session-table) tbody tr { background:transparent; }
body.ui-page :is(.ui-data-table,.session-table) tbody tr:nth-child(even) { background:var(--reading-stripe); }
body.ui-page :is(.ui-data-table,.session-table) tbody tr:hover { background:var(--reading-hover); }
body.ui-page :is(.ui-data-table,.session-table) tbody :is(td,a:not(.action-btn):not(.ui-action),strong,small,label,.Valore,.Descrizione,.meta) { color:var(--reading-ink); }
body.ui-page :is(.ui-data-table,.session-table) th a { color:var(--gold-2); }
.ui-cell-meta { display:block; margin-top:5px; font:.73rem/1.45 system-ui,sans-serif; }
.ui-cell-summary { font-size:.84rem; margin-top:6px; line-height:1.5; }
body.ui-page .ui-row-actions { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
body.ui-page .ui-row-actions form { display:contents; }
body.ui-page :is(.ui-data-table,.ui-row-actions,.session-actions) :is(.action-btn,button:not(.ui-text-action)) { display:inline-flex; align-items:center; gap:6px; margin:0; padding:8px 11px; border:1px solid var(--line); border-radius:9px; background:var(--button-background); color:var(--text); font:.8rem/1.4 var(--font-ui); white-space:nowrap; text-decoration:none; }
.ui-person { display:inline-flex; align-items:center; gap:8px; }
.ui-person img { width:20px; height:20px; object-fit:contain; flex:none; }
.ui-badge-row { display:flex; align-items:center; justify-content:center; gap:10px; }
.ui-empty { padding:28px 16px; text-align:center; }
body.ui-page .ui-data-table .ui-text-action { background:transparent; border:0; padding:0; text-align:left; color:var(--reading-ink); box-shadow:none; }
body.ui-page .mail-table { min-width:580px; }
.mail-unread-cell { font-weight:bold; }
body.ui-page .group-table { min-width:860px; }
.group-table td:first-child { width:23%; }
.group-table td:nth-child(2) { width:20%; }
.group-table td:nth-child(3) { width:12%; }
.group-table td:last-child { width:34%; }
body.ui-page .group-table .ui-row-actions { flex-wrap:wrap; }
body.ui-page :is(.forum-thread-table,.discussion-table) { min-width:680px; }
body.ui-page table.forum-thread-table .thread-item { display:table-row; opacity:1; transform:none; border:0; box-shadow:none; }
.forum-thread-table td:first-child { width:42%; }
body.ui-page .presence-directory { padding:0; }
.presence-directory > :is(.presence-summary,.presence-filters,.presence-update,.presence-results) { padding-inline:16px; }
body.ui-page .presence-places { display:block; width:100%; min-width:0; }
body.ui-page .presence-place { border:0; border-radius:0; background:transparent; margin:0 0 20px; }
body.ui-page .presence-place > header { display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--panel-2); padding:12px 16px; border-block:1px solid var(--line); }
.presence-place .ui-eyebrow { display:none; }
body.ui-page .presence-place h2 { margin:0; font-size:1.08rem; }
body.ui-page .presence-table { min-width:580px; table-layout:fixed; }
.presence-table th:first-child { width:30%; }.presence-table th:nth-child(2) { width:28%; }
body.ui-page .presence-person { display:table-row; padding:0; }
body.ui-page .presence-person:last-child { border:0; }
/* Forum: lo stesso contrasto delle tabelle, su righe div con colonne allineate. */
body.ui-page .ui-data-list { overflow:auto; background:var(--reading-background); color:var(--reading-ink); }
body.ui-page .ui-data-list .ui-data-row { display:grid; grid-template-columns:minmax(260px,1fr) 64px 64px minmax(200px,.55fr); min-width:650px; align-items:center; margin:0; padding:0; border:0; border-bottom:1px solid var(--reading-line); border-radius:0; box-shadow:none; }
body.ui-page .ui-data-list .ui-data-row:nth-child(odd) { background:var(--reading-stripe); }
body.ui-page .ui-data-list .ui-data-row:hover { background:var(--reading-hover); }
body.ui-page .ui-data-list .ui-data-head { display:grid; background:var(--panel-2); color:var(--gold-2); font:600 .75rem/1.5 system-ui,sans-serif; text-transform:uppercase; }
body.ui-page .ui-data-list .ui-data-row > div { display:block; padding:14px 16px; min-width:0; }
body.ui-page .ui-data-row:not(.ui-data-head) :is(.desc,.lp-info,.lp-date,.lp-user,.lp-subject) { color:var(--reading-ink); }
body.ui-page .ui-data-row .col-lastpost { display:block; }
@media(max-width:720px) {
 body.ui-page :is(.ui-data-table,.session-table) :is(th,td) { padding:11px 12px; }
 body.ui-page .ui-data-list .ui-data-row > div { padding:11px 12px; }
}
body.ui-page .ui-data-table th button.ui-sort { border:0; border-radius:0; padding:0; background:transparent; color:var(--gold-2); font:inherit; letter-spacing:inherit; text-transform:inherit; box-shadow:none; }

/* === notifications === */
.notification-anchor { position:relative; }
.notification-badge { display:inline-flex; justify-content:center; align-items:center; min-width:21px; height:21px; padding:0 5px; border-radius:999px; background:var(--notification-background); color:var(--notification-ink); font:700 .68rem/1 system-ui,sans-serif; border:2px solid var(--bg); }
.notification-anchor .notification-badge { position:absolute; right:-6px; top:-6px; }
.news-box h2 { display:flex; align-items:center; gap:8px; }
#quest-notifications { margin:0; list-style:none; padding:0; border-bottom:1px solid var(--line); }
.quest-notice { display:grid; gap:5px; width:100%; text-align:left; padding:14px 18px; border:0; border-radius:0; border-bottom:1px solid var(--line); background:var(--hover); }
.quest-notice strong { color:var(--gold-2); font-size:.9rem; }
.quest-notice :is(span,small) { font:.75rem/1.4 system-ui,sans-serif; color:var(--muted); }

#activity-notifications { list-style:none; padding:0; margin:0; border-bottom:1px solid var(--line); }
#activity-notifications .activity-notice { background:transparent; }
#activity-notifications .activity-notice:hover { background:var(--hover); }
.game-navigation .tab-btn .notification-badge { position:absolute; top:5px; right:8px; margin:0; flex:none; }
@media(max-width:900px),(max-width:1100px) and (max-height:500px){body[data-view=main] .game-navigation .tab-btn .notification-badge{position:static;margin-left:auto;}}
#activity-notifications .quest-notice strong { font-weight:600; }
#activity-notifications .quest-notice small { color:var(--gold); }

/* Il registro usa gli stessi colori, colonne e azioni delle missive. */
.inbox-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding:16px; border-bottom:1px solid var(--line); }
.inbox-toolbar label { display:grid; gap:7px; min-width:180px; font:.8rem/1.4 var(--font-ui); }
.inbox-status,.inbox-footnote { padding:12px 16px; margin:0; color:var(--muted); font:.8rem/1.6 var(--font-ui); }
body.ui-page .inbox-table { min-width:620px; }
.inbox-table td:first-child { width:48%; }.inbox-table td:last-child { width:180px; }
.inbox-unread .ui-text-action { font-weight:bold; }
.inbox-message { margin:16px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.inbox-message > header { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 18px; background:var(--panel-2); }
.inbox-message h2 { margin:4px 0 0; font-size:1.2rem; }
.inbox-message-body { padding:18px; background:var(--reading-background); color:var(--reading-ink); }
.inbox-message-meta,.inbox-read-state { font:.77rem/1.5 var(--font-ui); }
.inbox-message-detail { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.inbox-message-body button { background:var(--button-background); color:var(--text); }
.game-navigation .tab-list a { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.ui-tab-btn .notification-badge,[role=tab] .notification-badge { margin-inline-start:7px; }
.activity-section-link { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:0; padding:10px 16px; border-bottom:1px solid var(--line); background:var(--panel-2); color:var(--gold-2); font:.8rem/1.5 var(--font-ui); }
@media(max-width:600px){.inbox-toolbar label{min-width:0;flex:1 1 150px;}.inbox-message{margin:10px;}.inbox-message>header,.inbox-message-body{padding:12px;}}

/* Shared, explicit read marker. Transaction colours remain visible beside it. */
body .unread-flag{display:inline-flex;align-items:center;gap:7px;width:fit-content;vertical-align:middle;padding:5px 9px;margin:0 6px 5px 0;border:1px solid #ffabb3;border-radius:6px;background:#a51e35;color:#fff4e6;font:800 10px/1.2 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 0 0 2px #a51e3526}body .unread-flag:before{content:'';width:7px;height:7px;border-radius:50%;background:#fff4e6;flex:none;box-shadow:0 0 7px #ffc4ca}.ui-data-table tr.notice-unread{--reading-ink:#fff0d4;--reading-stripe:transparent;--reading-hover:#47312b}body.ui-page .ui-data-table tbody tr.notice-unread>td{background:linear-gradient(100deg,#59332ddb,#27212ed9);border-bottom-color:#b56b5b70}body.ui-page .ui-data-table tbody tr.notice-unread>td:first-child{box-shadow:inset 5px 0 #f27776}body.ui-page .ui-data-table tbody tr.notice-unread .unread-flag{color:#fff4e6}body.ui-page .ui-data-table tbody tr.notice-unread .ui-text-action{color:#fff0d4}body .quest-notice.notice-unread,body #activity-notifications .activity-notice.notice-unread{border-left:5px solid #f27776;background:linear-gradient(110deg,#59332dab,#172638);padding-left:13px}body .quest-notice .unread-flag{font:800 10px/1.2 var(--font-ui);color:#fff4e6}body .quest-notice.notice-unread:hover,body #activity-notifications .activity-notice.notice-unread:hover{background:linear-gradient(110deg,#71413cc2,#23364b)}

.mail-type-checks{flex:1 1 100%;display:flex;gap:10px 18px;flex-wrap:wrap;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:8px}.mail-type-checks legend{font:12px var(--font-ui);color:var(--gold-2)}.mail-filters .mail-type-checks label{display:flex;align-items:center;gap:8px;flex:0 1 auto;cursor:pointer}.mail-type-checks input{width:18px;height:18px;accent-color:#c99e58}.mail-people{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}.content>.mail-people,.mail-compose>.mail-people{padding:14px;margin-bottom:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.mail-person{display:inline-flex;align-items:center;gap:8px;min-width:0}.mail-person>span{overflow-wrap:anywhere}.mail-person small{display:block;font:10px var(--font-ui);color:var(--muted)}.mail-portrait{display:block;width:34px;height:34px;flex:0 0 34px;border-radius:50%;object-fit:cover;object-position:center 25%;border:1px solid #bd985e}.mail-direction{color:var(--gold-2);font-size:17px}.mail-table td:nth-child(3){min-width:200px}.content>.mail-people .mail-portrait,.mail-compose>.mail-people .mail-portrait{width:44px;height:44px;flex-basis:44px}

body.ui-page .mail-filters .mail-type-checks label{flex:0 0 auto;white-space:nowrap}body.ui-page .mail-filters .mail-type-checks input[type=checkbox]{width:18px;height:18px;min-width:18px;flex:0 0 18px;margin:0}body.ui-page .mail-person img.mail-portrait{width:34px;height:34px;max-height:none;object-fit:cover}body.ui-page .content>.mail-people img.mail-portrait,body.ui-page .mail-compose>.mail-people img.mail-portrait{width:44px;height:44px}

/* === cities === */
/* Città pubbliche: geometria dedicata, colori e tabelle dal tema comune. */
.city-directory { width:100%; min-width:0; }
.city-directory-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 16px; flex-wrap:wrap; }
.city-directory-tabs { display:flex; gap:6px; padding:10px 16px; border-block:1px solid var(--line); background:var(--panel); flex-wrap:wrap; }
.city-directory-tabs a { display:inline-flex; align-items:center; gap:8px; padding:10px 12px; color:var(--text); border:1px solid transparent; border-radius:9px; text-decoration:none; font:.86rem/1.4 var(--font-ui); }
.city-directory-tabs a[aria-current="page"] { color:var(--gold-2); background:var(--panel-2); border-color:var(--line); box-shadow:inset 0 -2px var(--gold-2); }
.city-directory-tabs a:hover { background:var(--hover); }
.city-statute > h2 { margin:0; padding:18px 20px; font-size:1.12rem; }
.city-statute-content { padding:22px; min-height:140px; line-height:1.75; border-radius:0; }
body.ui-page :is(.city-directory-table,.city-offices-table,.city-citizens-table) { min-width:650px; }
.city-directory-table td:first-child { width:24%; }
.city-directory-table td:nth-child(2) { width:26%; }
.city-directory-table td:last-child { width:30%; }
.city-offices-table td:first-child { width:26%; }
.city-citizens-table td:first-child { width:25%; }
.city-citizens-table td:last-child { width:24%; }
.city-assembly { width:100%; min-width:0; }
.city-assembly-nav { display:flex; gap:6px; overflow-x:auto; padding:10px 16px; margin:0; border-bottom:1px solid var(--line); background:var(--panel); }
.city-assembly-nav button { display:inline-flex; flex:0 0 auto; align-items:center; gap:8px; padding:9px 12px; border:1px solid transparent; border-radius:8px; background:transparent; white-space:nowrap; font:.84rem/1.4 var(--font-ui); }
.city-assembly-nav button.active { color:var(--gold-2); background:var(--panel-2); border-color:var(--line); box-shadow:inset 0 -2px var(--gold); }
body.ui-page .city-assembly-title { margin:0; padding:12px 20px; font-size:1rem; background:var(--panel-2); border-bottom:1px solid var(--line); }
.city-assembly-panel { padding:20px; min-width:0; }
.city-assembly-panel > :first-child { margin-top:0; }
.city-assembly-panel .api-output { margin:0 0 20px; padding:16px; border:1px solid var(--line); border-radius:8px; }
.city-assembly-panel :is(canvas,textarea) { max-width:100%; }
.city-assembly-panel #list-candidati { list-style:none; margin:0; padding:0; }
.city-assembly-panel :is(.api-output:last-child, p:last-child) { margin-bottom:0; }
@media(max-width:600px) {
 .city-directory-toolbar,.city-directory-tabs { padding:10px 12px; }
 .city-directory-tabs a { padding:9px 10px; }
 .city-statute > h2,.city-statute-content { padding:16px; }
 .city-assembly-nav { padding:8px 12px; }
 .city-assembly-panel { padding:14px; }
}

/* === forum === */
/* Forum, biblioteca e Accademia condividono una sola struttura e una sola palette. */
.forum-workspace,.manual-workspace,.academy-workspace { width:100%; min-width:0; }
.forum-channels { display:flex; align-items:center; gap:8px; overflow-x:auto; padding:12px 16px; border-bottom:1px solid var(--line); background:var(--panel); scrollbar-width:thin; }
.forum-channels > :is(button,a) { display:inline-flex; align-items:center; gap:8px; flex:0 0 auto; white-space:nowrap; margin:0; padding:10px 13px; border:1px solid transparent; border-radius:var(--radius-sm); background:transparent; color:var(--text); font-size:.86rem; text-decoration:none; }
.forum-channels > :is(button,a):hover,.forum-channels > button.active { background:var(--hover); border-color:var(--line); color:var(--gold-2); }
.forum-channels > button.active { box-shadow:inset 0 -2px var(--gold); }
.forum-channels span { font:.75rem/1.3 system-ui,sans-serif; opacity:.75; }
.forum-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:14px 16px; margin:0; background:var(--panel-2); border-bottom:1px solid var(--line); }
.forum-toolbar :is(h2,p) { margin:0; }
.forum-toolbar h2 { color:var(--gold-2); font-size:1.08rem; line-height:1.4; }
.forum-summary { font:.8rem/1.5 system-ui,sans-serif; color:var(--muted); }
.forum-breadcrumb,.forum-location { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.forum-location { color:var(--muted); font:.8rem/1.5 system-ui,sans-serif; }
.forum-location select { width:auto; min-width:160px; max-width:100%; margin:0; }
.forum-content { min-width:0; padding:0; }
.forum-thread-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line); color:var(--muted); font:.8rem/1.5 system-ui,sans-serif; }
body.ui-page .forum-table { min-width:680px; }
.forum-table td:first-child { width:36%; }
.forum-table td:last-child { width:28%; }
.forum-posts { display:flex; flex-direction:column; gap:0; }
.forum-post { min-width:0; border:0; border-bottom:1px solid var(--reading-line); border-radius:0; margin:0; background:var(--reading-background); color:var(--reading-ink); }
.forum-post-header { display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:16px; border-bottom:1px solid var(--reading-line); }
.forum-author { display:flex; align-items:center; gap:10px; flex:1 1 210px; min-width:0; color:var(--reading-ink); text-decoration:none; }
.forum-author strong { font-size:1rem; color:var(--reading-ink); }
.forum-avatar { width:46px; height:46px; object-fit:cover; border:1px solid var(--reading-line); border-radius:10px; flex:0 0 auto; }
.forum-author .ui-cell-meta { display:flex; align-items:center; gap:5px; margin-top:3px; color:var(--reading-ink); }
.forum-author .ui-cell-meta img { width:19px; height:19px; object-fit:contain; }
.forum-post-header time { font:.73rem/1.4 system-ui,sans-serif; color:var(--reading-ink); }
.forum-post-title { padding:16px 20px 0; margin:0; color:var(--reading-ink); font-size:1.15rem; }
body.ui-page .forum-post .forum-post-body { padding:18px 20px 22px; margin:0; border:0; border-radius:0; background:transparent; color:var(--reading-ink); box-shadow:none; line-height:1.75; overflow-wrap:anywhere; }
.forum-post-body > :first-child { margin-top:0; }.forum-post-body > :last-child { margin-bottom:0; }
.forum-post-body img,.manual-reading img { max-width:100%; height:auto; }
.forum-post-body a,.manual-reading a { color:var(--reading-link); text-decoration:underline; }
.forum-editor-tools { display:flex; flex-wrap:wrap; gap:6px; margin:7px 0; }
.forum-editor-tools button { padding:6px 9px; font-size:.78rem; }
body .forum-modal { position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:16px; background:var(--shadow-color); }
body .forum-modal.open { display:flex; }
body .forum-modal .modal-content { position:relative; width:min(720px,100%); max-height:calc(100dvh - 32px); overflow:auto; padding:24px; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); color:var(--text); box-shadow:var(--shadow); }
.forum-modal :is(.close,.close-modal) { position:absolute; top:12px; right:12px; padding:4px 10px; font-size:1.3rem; }
.forum-modal :is(.modal-title,h2) { padding-right:36px; margin:0 0 18px; font-size:1.25rem; }
.forum-modal form { display:grid; gap:16px; }
.forum-modal label { display:block; font-size:.9rem; }
.forum-modal :is(input[type=text],textarea) { display:block; width:100%; margin-top:6px; }
.forum-modal textarea { resize:vertical; min-height:180px; }
.forum-check { display:flex; align-items:center; gap:8px; }
.forum-check input[type=checkbox] { width:auto; margin:0; }
.manual-reading { padding:24px; background:var(--reading-background); color:var(--reading-ink); line-height:1.8; overflow-wrap:anywhere; }
body.ui-page #panel-content.manual-reading { margin:0; border:0; border-radius:0; box-shadow:none; }
.manual-reading :is(h1,h2,h3,h4,strong) { color:var(--reading-ink); }
.manual-reading :is(h1,h2,h3,h4) { margin-top:1.2em; }
.manual-reading > :first-child { margin-top:0; }
.manual-table { min-width:540px; }
.forum-modal #quill-editor { min-height:220px; }
.forum-modal .ql-toolbar { margin-top:6px; }.forum-modal .ql-editor { min-height:220px; }
.academy-table { min-width:720px; }
.academy-table td:first-child { width:27%; }
.academy-table td:last-child { width:42%; }
.academy-vote { margin-top:12px; }
.academy-vote summary { cursor:pointer; color:var(--reading-link); font-size:.85rem; }
.academy-vote-form { display:flex; align-items:flex-end; flex-wrap:wrap; gap:10px; padding-top:12px; }
.academy-vote-form label { display:block; font:.76rem/1.5 system-ui,sans-serif; }
.academy-vote-form label:nth-of-type(2) { flex:1 1 180px; }
.academy-vote-form :is(select,input[type=text]) { display:block; width:100%; margin-top:4px; }
.academy-flags { display:grid; gap:16px; padding:20px; max-width:800px; }
.academy-flags :is(h2,p) { margin:0; }
.academy-flags h2 { font-size:1.12rem; }.academy-flags p { color:var(--muted); font-size:.9rem; }
.academy-flags > label { display:grid; gap:6px; }.academy-flags > button { justify-self:start; }
.academy-flag-options { display:flex; align-items:center; flex-wrap:wrap; gap:16px; }
@media(max-width:600px) {
 .forum-channels { padding:10px 12px; }
 .forum-toolbar,.forum-thread-bar { padding:12px; }
 .forum-post-header { padding:12px; gap:10px; }
 .forum-post-header > .ui-row-actions { flex-basis:100%; }
 .forum-post-title { padding:14px 14px 0; }
 body.ui-page .forum-post .forum-post-body { padding:14px; }
 .manual-reading { padding:18px 14px; }
 .forum-modal .modal-content { padding:20px 16px; }
}
.forum-editor-form { display:grid; gap:18px; padding:20px; }
.forum-editor-form > label { display:block; }
.forum-editor-form :is(input[type=text],textarea) { display:block; width:100%; margin-top:6px; }
.forum-editor-form > button { justify-self:start; }
.forum-history { padding:14px 0; border-bottom:1px solid var(--line); }
.forum-history .post-body { margin-top:12px; line-height:1.7; }
.board-admin-workspace { width:100%; min-width:0; }
.board-admin-table { min-width:680px; }.board-admin-table td:first-child { width:27%; }.board-admin-table td:last-child { width:40%; }
.board-admin-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.board-admin-fields label { display:grid; gap:7px; }.board-admin-fields :is(select,input) { width:100%; }
.board-permission-options { display:flex; align-items:center; flex-wrap:wrap; gap:16px 24px; }
.board-row-advanced { margin-top:10px; }.board-row-advanced summary { color:var(--reading-link); cursor:pointer; font:.76rem/1.5 system-ui,sans-serif; }
.board-row-advanced .ui-row-actions { margin-top:10px; }
.board-admin-advanced summary { cursor:pointer; color:var(--muted); font-size:.84rem; }.board-admin-advanced p { max-width:560px; margin:12px 0; }
.board-description-fallback { min-height:200px; border:1px solid var(--line); padding:12px; }
@media(max-width:600px) { .board-admin-fields { grid-template-columns:minmax(0,1fr); } }
.poll-workspace { width:100%; min-width:0; }.poll-section { min-width:0; border-bottom:1px solid var(--line); }
.poll-section .forum-toolbar h2 { flex:1 1 240px; }.poll-vote-form { margin:0; }
.poll-answer { display:flex; align-items:center; gap:12px; min-height:28px; cursor:pointer; }
.poll-answer input[type=radio] { margin:0; flex:0 0 auto; width:auto; accent-color:var(--gold); }
.poll-table td:first-child { width:70%; }.poll-table td:not(:first-child) { white-space:nowrap; }
.poll-percentage { font:.84rem/1.5 system-ui,sans-serif; }
/* Struttura editoriale condivisa: indici, autori e messaggi affiancati. */
body.ui-page .forum-table { min-width:0; table-layout:fixed; }
body.ui-page .forum-table th,body.ui-page .forum-table td { overflow-wrap:anywhere; vertical-align:top; }
.forum-table-topics :is(th,td):nth-child(1) { width:25%; }
.forum-table-topics :is(th,td):nth-child(2) { width:33%; }
.forum-table-topics :is(th,td):nth-child(3) { width:16%; }
.forum-table-topics :is(th,td):nth-child(4) { width:26%; }
.forum-table-boards :is(th,td):nth-child(1) { width:19%; }
.forum-table-boards :is(th,td):nth-child(2) { width:35%; }
.forum-table-boards :is(th,td):nth-child(3) { width:16%; }
.forum-table-boards :is(th,td):nth-child(4) { width:30%; }
.forum-table .ui-row-actions { gap:6px; flex-wrap:wrap; }
.forum-table .action-btn { padding:8px 10px; font-size:.78rem; }
.forum-person { display:flex; align-items:center; gap:12px; min-width:0; }
.forum-portrait-link { display:block; flex:0 0 auto; line-height:0; }
body.ui-page .forum-person .forum-avatar { display:block; max-width:none; max-height:none; width:60px; height:60px; border-radius:50%; border:1px solid var(--gold); object-fit:cover; object-position:90% center; }
.forum-person-info { min-width:0; }
.forum-person-name { display:inline-flex; flex-wrap:wrap; align-items:center; gap:5px; font-weight:700; text-decoration:none; }
.forum-person .ui-cell-meta { font-size:.72rem; }
.forum-last-activity { display:grid; gap:7px; margin-bottom:12px; }
.forum-last-activity .ui-text-action { text-align:left; }
.forum-last-activity > .ui-cell-meta { margin-top:0; }
.forum-table .ui-cell-summary { margin-top:0; line-height:1.65; }
.forum-post { display:grid; grid-template-columns:180px minmax(0,1fr); border-bottom:1px solid var(--reading-line); }
.forum-post-author { padding:24px 14px; border-right:1px solid var(--reading-line); background:var(--reading-hover,rgba(0,0,0,.035)); }
.forum-person-large { flex-direction:column; text-align:center; gap:14px; }
body.ui-page .forum-person-large .forum-avatar { width:100px; height:100px; }
.forum-person-large .forum-person-name { justify-content:center; }
.forum-post-content { display:flex; flex-direction:column; min-width:0; }
.forum-post-header { padding:14px 20px; justify-content:space-between; gap:10px; }
.forum-post-permalink { font:.72rem system-ui,sans-serif; color:var(--reading-link); }
.forum-post-actions { padding:12px 20px; margin-top:auto; border-top:1px solid var(--reading-line); justify-content:flex-end; flex-wrap:wrap; gap:7px; }
.forum-post-actions:empty { display:none; }
.forum-post-actions .action-btn { padding:8px 11px; font-size:.8rem; }
body.ui-page .manual-table { width:100%; table-layout:fixed; min-width:0; }
.manual-table :is(th,td):nth-child(1) { width:24%; }
.manual-table :is(th,td):nth-child(2) { width:36%; }
.manual-table :is(th,td):nth-child(3) { width:16%; }
.manual-table :is(th,td):nth-child(4) { width:24%; }
body.ui-page .manual-table td { vertical-align:top; overflow-wrap:anywhere; }
.manual-excerpt { line-height:1.65; }
@media(max-width:760px) {
 .forum-table-topics :is(th,td):nth-child(1) { width:27%; }
 .forum-person { align-items:flex-start; flex-direction:column; }
 .forum-person-large { align-items:center; }
 .forum-post { grid-template-columns:140px minmax(0,1fr); }
 body.ui-page .forum-person-large .forum-avatar { width:84px; height:84px; }
}
@media(max-width:600px) {
 body.ui-page :is(.forum-table,.manual-table) { min-width:0; display:block; }
 :is(.forum-table,.manual-table) thead { display:none; }
 :is(.forum-table,.manual-table) tbody { display:block; }
 :is(.forum-table,.manual-table) tr { display:grid; grid-template-columns:minmax(0,1fr); padding:16px; gap:14px; border-bottom:1px solid var(--reading-line); }
 body.ui-page :is(.forum-table,.manual-table) td { display:block; width:100%; border:0; padding:0; }
 .forum-table-topics td:nth-child(3)::before,.forum-table-boards td:nth-child(3)::before { content:'Attività · '; font-weight:bold; }
 .forum-table-boards td:nth-child(1),.manual-table td:nth-child(1) { font-size:1.13rem; }
 .forum-person { flex-direction:row; align-items:center; }
 .forum-post { grid-template-columns:minmax(0,1fr); }
 .forum-post-author { border-right:0; border-bottom:1px solid var(--reading-line); padding:14px; }
 .forum-person-large { flex-direction:row; text-align:left; }
 .forum-person-large .forum-person-name { justify-content:flex-start; }
 body.ui-page .forum-person-large .forum-avatar { width:76px; height:76px; }
 .forum-post-actions { padding:12px 14px; justify-content:flex-start; }
 .forum-post-header { padding:12px 14px; }
}
.forum-person .character-markers { display:flex; margin:5px 0 0; max-width:100%; }
.forum-person .character-race { flex:0 1 auto; max-width:calc(100% - 38px); }
.forum-person-large .character-markers { justify-content:center; }
@media(max-width:600px) { .forum-person-large .character-markers { justify-content:flex-start; } }
.forum-post .forum-person-name { color:var(--reading-ink); }
.forum-post .forum-person .ui-cell-meta { color:var(--reading-ink); opacity:.8; }
body.ui-page .forum-person-name { display:block; max-width:100%; }
body.ui-page .forum-person .character-markers { display:flex; flex-wrap:wrap; max-width:100%; margin:5px 0 0; }
body.ui-page .forum-person .character-race { min-width:0; max-width:calc(100% - 36px); flex-shrink:1; overflow-wrap:anywhere; }
body.ui-page .forum-person .character-race,body.ui-page .forum-person .character-race>span { white-space:normal; }
/* Indice delle bacheche: accessi nel titolo e nella descrizione, riepilogo compatto. */
.forum-board-link { display:block; color:inherit; text-decoration:none; border-radius:4px; transition:color .15s; }
.forum-board-link:hover { color:var(--reading-link); text-decoration:underline; text-underline-offset:3px; }
.forum-board-link:focus-visible { outline:2px solid var(--reading-link); outline-offset:5px; }
.forum-table-boards tr:has(.forum-board-link):hover { background:var(--reading-hover,rgba(128,91,38,.06)); }
.forum-table-boards .forum-last-activity { margin:0; gap:5px; }
.forum-table-boards .forum-last-activity .forum-person { gap:10px; }
.forum-table-boards .forum-last-activity>.ui-text-action { margin:2px 0 0 70px; padding:0; }
.forum-table-boards .forum-last-activity>.ui-cell-meta { margin-left:70px; }
.forum-no-activity,.forum-restricted { font:.75rem/1.5 var(--font-ui); opacity:.7; }
body.ui-page .forum-person .character-race { width:28px; height:28px; min-width:28px; max-width:28px; flex:0 0 28px; }
body.ui-page .forum-person .character-markers { flex-wrap:nowrap; }
@media(max-width:760px) and (min-width:601px) { .forum-table-boards .forum-last-activity .forum-person { flex-direction:row; } }
.forum-board-link>strong::after { content:'›'; display:inline-block; margin-left:8px; color:var(--reading-link); opacity:.7; }

/* === application === */
/* Contratto visivo dell'applicazione: stessi spazi e componenti per ogni modulo. */
body.ui-page { --content-space:17px; background:var(--bg); color:var(--text); font-size:1rem; }
body.ui-page > :is(.container,.content,.wrap,.wrapper,.profile,.moderation-sections) { width:100%; max-width:none; margin:0; padding:0; min-width:0; }
body.ui-page :is(.content,.main-panel,.panel-container,.tab-content,.ui-tabpanel) { min-width:0; }
body.ui-page h1 { font-size:clamp(1.4rem,2.5vw,1.9rem); }
body.ui-page :is(h2,h3,h4) { line-height:1.4; }
body.ui-page .ui-page-heading { padding:15px var(--content-space); background:var(--heading-background); border:0; border-bottom:1px solid var(--line); flex-shrink:0; }
body.ui-page .ui-page-heading h1 { margin:3px 0; font-size:clamp(1.15rem,2.2vw,1.5rem); }
body.ui-page .ui-page-heading p { margin:6px 0 0; font-size:.84rem; line-height:1.5; }
body.ui-page .ui-page-heading > :is(.ui-icon,span[data-icon]) { display:inline-flex; align-items:center; justify-content:center; flex:0 0 40px; border-radius:10px; width:40px; height:40px; padding:9px; border:1px solid var(--line); color:var(--gold-2); background:var(--hover); }
body.ui-page .ui-page-heading > span[data-icon] > .ui-icon { width:20px; height:20px; padding:0; border:0; background:transparent; }
body.ui-page .ui-tabpanel { padding:var(--content-space); border:0; border-radius:0; background:var(--bg); }
body.ui-page .ui-tabgroup > .ui-fieldgroup { padding:var(--content-space); }
body.ui-page :is(.ui-tablist,.tabs) { gap:5px; padding:8px 12px; margin:0; background:var(--panel); border-radius:0; border-width:0 0 1px; }
body.ui-page :is(.ui-tablist,.tabs) :is(button,[role=tab],a) { font-size:.8rem; padding:9px 12px; min-height:38px; }
body.ui-page .ui-tabpanel > :is(h2,h3,h4,header,.title) { margin:0 0 18px; padding:0 0 12px; font-size:1.12rem; border-bottom:1px solid var(--line); }
body.ui-page .ui-form { margin:0; min-width:0; }
body.ui-page .ui-form + .ui-form { margin-top:20px; padding-top:20px; border-top:1px solid var(--line); }
body.ui-page .ui-form :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),select,textarea) { padding:10px 12px; min-height:40px; border:1px solid var(--line); border-radius:8px; background:var(--field-background); border-color:var(--field-line); color:var(--field-ink); font:14px/1.5 var(--font-ui); max-width:100%; }
body.ui-page .ui-form :is(input[type=checkbox],input[type=radio]) { min-height:0; width:auto; accent-color:var(--gold); }
body.ui-page .ui-form textarea { min-height:120px; }
body.ui-page .ui-form :is(button,input[type=submit],input[type=button],.action-btn) { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:38px; padding:9px 13px; margin:6px 0; font-size:.82rem; border-radius:8px; }
body.ui-page .ui-form :is(label,legend) { font:500 .8rem/1.5 var(--font-ui); }
body.ui-page .ui-form label:has(> :is(input,select,textarea)) { display:flex; flex-direction:column; gap:8px; }
body.ui-page .ui-form label:has(> :is(input[type=checkbox],input[type=radio])) { flex-direction:row; align-items:center; gap:8px; }
body.ui-page .ui-form-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; width:100%; }
body.ui-page .ui-form-field { display:flex; flex-direction:column; align-items:stretch; gap:8px; min-width:0; padding:0; }
body.ui-page .ui-form-field > label { color:var(--muted); margin:0; }
body.ui-page .ui-form-field .ui-field-control { display:flex; flex-direction:column; gap:10px; min-width:0; }
body.ui-page .ui-form-field .ui-field-control :is(input:not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]),select,textarea) { width:100%; margin:0; }
body.ui-page .ui-form-field:has(textarea),body.ui-page .ui-form-wide { grid-column:1/-1; }
body.ui-page .ui-form-wide { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
body.ui-page .ui-form-fields > .ui-form-wide:has(> .gml-helper) { display:block; }
body.ui-page .ui-form-fields br { display:none; }
body.ui-page .ui-bare-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px; align-items:start; }
body.ui-page .ui-bare-form > br { display:none; }
body.ui-page .ui-bare-form > :is(button,input[type=submit],input[type=button],.flash,.notice,textarea) { grid-column:1/-1; justify-self:start; }
body.ui-page .ui-bare-form .ui-direct-field { margin:0; gap:8px; min-width:0; }
body.ui-page .ui-bare-form > .ui-direct-field:only-of-type { grid-column:1/-1; }
body.ui-page .ui-bare-form .ui-direct-field > :is(input,select,textarea) { width:100%; margin:0; }
body.ui-page .ui-bare-form .ui-direct-field:has(textarea) { grid-column:1/-1; }
body.ui-page .ui-direct-field > span { color:var(--muted); }
body.ui-page .ui-form .ui-form-field p { margin:0; }
body.ui-page .ui-response-list { display:grid; grid-template-columns:minmax(0,max-content) minmax(0,1fr); gap:10px 20px; margin:0; }
body.ui-page .ui-response-list dt { font-weight:600; }
body.ui-page .ui-response-list dd { margin:0; min-width:0; overflow-wrap:anywhere; }
body.ui-page .ui-response-nested { margin-inline-start:1em; }
body.ui-page fieldset { margin:0 0 18px; padding:18px; border:1px solid var(--line); border-radius:8px; }
body.ui-page .ui-navigation-source { display:none !important; }
body.ui-page .ui-module-toolbar { flex:0 0 auto; display:flex; align-items:center; gap:12px; padding:12px var(--content-space); background:var(--panel); border-bottom:1px solid var(--line); }
body.ui-page .ui-module-toolbar > label { display:flex; align-items:center; gap:10px; width:min(100%,620px); font:.82rem/1.5 var(--font-ui); }
body.ui-page .ui-module-toolbar select { flex:1; min-width:0; width:100%; padding:9px 12px; }
body.ui-page .ui-module-nav { width:100%; max-width:none; padding:12px 16px; flex:none; border-radius:0; border:0; border-bottom:1px solid var(--line); }
body.ui-page .ui-module-nav ul { display:flex; flex-wrap:wrap; list-style:none; gap:6px; margin:0; padding:0; }
body.ui-page .ui-module-nav :is(li,a) { padding:6px 10px; }
body.ui-page[data-styles~=master-detail] > .wrap { display:flex; flex-direction:column; min-height:0; }
body.ui-page[data-styles~=master-detail] .main-panel { flex:1; width:100%; min-width:0; padding:0; }
body.ui-page[data-styles~=master-detail] .panel-container { padding:var(--content-space); overflow:auto; }
body.ui-page[data-styles~=master-detail] .panel-container > .panel { border:0; box-shadow:none; border-radius:0; padding:0; background:transparent; }
body.ui-page[data-styles~=master-detail] .panel-header { min-height:0; padding:12px var(--content-space); font-size:.9rem; background:var(--panel-2); }
body.ui-page .ui-data-table .ui-form :is(button,.action-btn) { margin:0; }
body.ui-page .ui-data-table img { max-width:80px; max-height:80px; object-fit:contain; }
body.ui-page :is(.action-btn,.btn,.button) { display:inline-flex; align-items:center; gap:7px; padding:9px 13px; border-radius:8px; }
body.ui-page .ui-icon { pointer-events:none; }
body.ui-page :is(.message,.msg,.flash,.alert,.notice):not(:empty) { margin:12px var(--content-space); padding:12px 16px; border:1px solid var(--line); background:var(--panel-2); color:var(--text); border-radius:8px; font-size:.88rem; }
body.ui-page :is(.message,.msg,.flash,.alert,.notice):empty { display:none; }
body.ui-page .ui-reading { background:var(--reading-background); color:var(--reading-ink); border-radius:8px; line-height:1.8; }
body.ui-page .ui-reading :is(h1,h2,h3,h4,p,small,label) { color:var(--reading-ink); }
body.ui-page .ui-reading :is(a:not(.action-btn):not(.button),strong) { color:var(--reading-link); }
body.ui-page .grid:not(.character-fields):not(.ui-form-fields) { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:18px; }
body.ui-page .statuti-container { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); gap:20px; padding:20px; }
body.ui-page .statuto { min-width:0; padding:20px; }
body.ui-page ul.pg-list { list-style:none; margin:0; padding:0; }
body.ui-page .catalogo-controls,body.ui-page #controls { display:flex; gap:8px; flex-wrap:wrap; padding:12px 16px; }
body.ui-page .content:has(>.ui-table-scroll) { padding:0; }
/* Stati applicativi, indipendenti dall'aspetto del modulo. */
body[data-view=checkuser] #avviso { display:none; }
body[data-view=corporazioni-admin] .tab-content > div { display:none; }
body[data-view=corporazioni-admin] .tab-content > .active { display:block; }
body[data-view=corporazioni-trasferimenti] .navClosed { display:none; }
body[data-view=trasferimenti-index] section:not(.active) { display:none; }
body[data-view=trasferimenti-index] section.active { display:block; }
body.ui-page .modal-backdrop { position:fixed; inset:0; display:none; align-items:center; justify-content:center; padding:20px; background:var(--shadow-color); z-index:1000; }
body.ui-page .modal-backdrop.show { display:flex; }
body.ui-page .modal-backdrop > .modal { position:relative; max-width:680px; width:100%; max-height:90dvh; overflow:auto; padding:20px; background:var(--panel); border:1px solid var(--line); border-radius:12px; }
@media(max-width:720px) {
 body.ui-page { --content-space:14px; }
 body.ui-page .ui-form-fields { grid-template-columns:1fr; gap:16px; }
 body.ui-page .ui-bare-form { grid-template-columns:1fr; }
 body.ui-page .ui-response-list { grid-template-columns:1fr; gap:5px; }
 body.ui-page .ui-response-list dd { margin-bottom:12px; }
 body.ui-page .ui-page-heading { gap:10px; }
 body.ui-page .ui-page-heading .ui-return-location { margin-left:auto; }
 body.ui-page .ui-module-toolbar > label { width:100%; }
 body.ui-page .ui-module-toolbar > label > .ui-icon { display:none; }
 body.ui-page .statuti-container { padding:14px; }
}
/* Inventario: disposizione originale, equipaggiato e zaino affiancati. */
.equipment-toolbar { padding:12px 20px; border-bottom:1px solid var(--line); }
.equipment-toolbar a { display:inline-flex; gap:8px; align-items:center; }
body.ui-page .equipment-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:16px; padding:16px; width:100%; min-width:0; }
.equipment-layout > .equipment-section { min-width:0; padding:16px; border:1px solid var(--line); border-radius:10px; background:var(--panel); }
.equipment-section > h2 { margin:0 0 14px; font-size:1.08rem; }
body.ui-page .equipment-grid { display:grid; gap:8px; }
body.ui-page .equipment-slots { grid-template-columns:repeat(4,minmax(0,1fr)); }
body.ui-page .equipment-backpack { grid-template-columns:repeat(6,minmax(0,1fr)); }
.equipment-item { position:relative; display:flex; align-items:center; justify-content:center; aspect-ratio:1; min-width:0; overflow:hidden; padding:2px; border:1px solid var(--line); border-radius:8px; background:var(--panel-2); text-align:center; }
.equipment-item:hover { border-color:var(--gold); text-decoration:none; }
.equipment-item img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.equipment-item span { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.equipment-item .count-badge { position:absolute; top:5px; right:5px; padding:3px 5px; background:var(--gold); color:var(--reading-ink); border-radius:4px; font-size:.7rem; }
.equipment-metrics { display:block; margin:18px 0 0; padding:14px 16px; list-style:none; background:var(--reading-background); color:var(--reading-ink); border-radius:8px; font-size:.85rem; }
.equipment-metrics li { padding:4px 0; }
.equipment-metrics strong { color:inherit; }
.equipment-properties { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; list-style:none; padding:16px 0; margin:0; }
.equipment-detail { display:flex; align-items:start; gap:20px; margin-top:16px; }
.equipment-detail img { width:100px; height:100px; object-fit:contain; }
.equipment-actions { display:flex; flex-wrap:wrap; align-items:start; gap:12px; }

/* Amministrazioni di gruppo: gerarchie senza larghezze locali e produzioni adattive. */
body.ui-page .ui-hierarchy-table { width:100%; min-width:600px; table-layout:fixed; border-collapse:collapse; }
body.ui-page .ui-hierarchy-table > tbody > tr > td { vertical-align:top; padding:16px; overflow-wrap:anywhere; }
body.ui-page .ui-hierarchy-table :is(table,ul) { width:100%; margin:10px 0 0; padding:0; list-style:none; }
body.ui-page .ui-production-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(220px,1fr); align-items:start; gap:20px; }
body.ui-page .ui-production-layout > :is(form,aside) { min-width:0; }
body.ui-page .ui-production-layout .ui-table-scroll { margin:0; }
body.ui-page .ui-production-summary { padding:18px; border:1px solid var(--line); border-radius:8px; background:var(--panel-2); }
body.ui-page .ui-production-summary h3 { margin:0 0 10px; font-size:1rem; }
body.ui-page .ui-production-summary p { margin:0 0 18px; line-height:1.7; }
body.ui-page .ui-production-summary p:last-child { margin-bottom:0; }
@media(max-width:720px) { body.ui-page .ui-production-layout { grid-template-columns:minmax(0,1fr); } }
body.ui-page .equipment-actions .ui-form + .ui-form { margin:0; padding:0; border:0; }
@media(max-width:700px) { body.ui-page .equipment-layout { grid-template-columns:minmax(0,1fr); gap:12px; padding:12px; }.equipment-layout > .equipment-section { padding:12px; } }
@media(max-width:600px) { .equipment-toolbar { padding:12px 14px; }.equipment-detail { flex-direction:column; } }
.search-advanced { grid-column:1/-1; border-block:1px solid var(--line); padding:12px 0; }
.search-advanced summary { cursor:pointer; color:var(--gold-2); font:.82rem/1.5 var(--font-ui); }
.search-advanced-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding-top:18px; }
@media(max-width:640px) { .search-advanced-fields { grid-template-columns:1fr; gap:14px; } }

/* Composizione missive: un editor, strumenti su una sola fascia. */
body.ui-page .mail-compose { padding:24px var(--content-space); }
body.ui-page .mail-compose-form { display:grid; grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr); gap:20px 24px; }
.mail-compose-form > label { min-width:0; display:flex; flex-direction:column; gap:8px; }
.mail-compose-form .mail-recipient span { display:block; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--panel-2); color:var(--gold-2); }
.mail-editor,.mail-compose-actions { grid-column:1/-1; min-width:0; }
.mail-editor > label { display:block; margin-bottom:8px; }
body.ui-page #mail-message { width:100%; min-height:220px; resize:vertical; background:var(--reading-background); color:var(--reading-ink); font:1rem/1.75 var(--font-body); border-radius:0 0 8px 8px; }
body.ui-page .gml-toolbar { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:4px; padding:8px; border:1px solid var(--line); border-bottom:0; border-radius:8px 8px 0 0; background:var(--panel-2); }
body.ui-page .gml-toolbar > a { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:5px; margin:0; padding:5px; }
.gml-toolbar > a:hover,.gml-toolbar > a:focus-visible { background:var(--hover); outline:1px solid var(--gold); }
body.ui-page .gml-toolbar img { width:22px; height:22px; object-fit:contain; margin:0; }
body.ui-page .mail-compose-actions { border-top:1px solid var(--line); padding-top:16px; }
/* Archivio: testata compatta e lettura della giocata senza cornici annidate. */
.session-log-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:14px var(--content-space); border-bottom:1px solid var(--line); }
.session-log-toolbar > span { color:var(--muted); font:.8rem/1.5 var(--font-ui); }
body.ui-page main.session-archive { display:block; flex:none; min-height:auto; padding:20px var(--content-space); min-width:0; }
body.ui-page .session-archive .session-info { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; background:var(--panel-2); border:1px solid var(--line); border-radius:8px; padding:18px; margin:0 0 18px; color:var(--text); }
body.ui-page .session-archive .session-info h1 { grid-column:1/-1; margin:0 0 4px; font-size:1.3rem; color:var(--gold-2); }
body.ui-page .session-archive .session-info p { margin:0; padding:0; font-size:.9rem; color:var(--text); }
body.ui-page .session-archive .session-info strong { color:var(--gold-2); }
body.ui-page .session-archive #chatbox { flex:none; min-height:0; height:auto; max-height:none; overflow:visible; padding:20px; margin:0; background:var(--reading-background); color:var(--reading-ink); border-radius:8px; }
body.ui-page .session-archive #chatbox .riga { padding:10px 0; margin:0; line-height:1.75; overflow-wrap:anywhere; }
body.ui-page .session-archive .MasterKey { padding:12px 16px; margin:8px 0; border-block:1px solid var(--reading-line); background:var(--reading-stripe); text-align:center; color:var(--reading-ink); font-size:.9rem; }
.catalogue-facts { display:grid; grid-template-columns:minmax(90px,.65fr) minmax(0,1fr); gap:0; margin:16px 0; border:1px solid var(--line); border-radius:8px; overflow:hidden; font:.85rem/1.5 var(--font-ui); }
.catalogue-facts :is(dt,dd) { margin:0; padding:10px 12px; border-bottom:1px solid var(--line); }
.catalogue-facts dt { background:var(--panel-2); color:var(--gold-2); }
body.ui-page .catalogue-detail form { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:16px; border:1px solid var(--line); border-radius:8px; }
body.ui-page .catalogue-detail input[type=number] { width:100px; }
/* Risultati e comunità: colonne leggibili anche nel container centrale. */
body.ui-page .search-table { min-width:700px; table-layout:fixed; }
.search-table th:first-child { width:18%; }.search-table th:nth-child(2) { width:22%; }.search-table th:nth-child(3) { width:16%; }.search-table th:nth-child(4) { width:15%; }.search-table th:last-child { width:29%; }
.search-table .ui-person { white-space:normal; line-height:1.5; }
body.ui-page .search-table .ui-badge-row { justify-content:flex-start; flex-wrap:wrap; }
.ui-new-badge { display:inline-flex; align-items:center; gap:4px; vertical-align:middle; padding:3px 6px; margin-left:6px; border-radius:4px; background:var(--panel); color:var(--gold-2); font:700 .65rem/1.3 var(--font-ui); letter-spacing:.04em; white-space:nowrap; }
@media(max-width:720px) {
 body.ui-page .mail-compose-form,body.ui-page .session-archive .session-info { grid-template-columns:minmax(0,1fr); }
 body.ui-page .mail-compose { padding:18px 14px; }
 body.ui-page main.session-archive { padding:14px; }
}

body.ui-page .ui-form .gml-toolbar button { min-height:30px; padding:5px 8px; margin:0; font-size:.73rem; }
.gml-more { position:relative; font:.73rem/1.5 var(--font-ui); }
.gml-more summary { padding:6px 8px; cursor:pointer; }
.gml-more > div { position:absolute; right:0; top:100%; z-index:3; width:200px; padding:10px; background:var(--panel-2); border:1px solid var(--line); border-radius:8px; display:flex; flex-wrap:wrap; gap:6px; box-shadow:0 8px 24px var(--shadow-color); }
body.ui-page .group-table { min-width:660px; }
body.ui-page .group-table td:first-child { width:27%; }
body.ui-page .group-table td:nth-child(2) { width:27%; }
body.ui-page .group-table td:nth-child(3) { width:14%; }
body.ui-page .group-table td:last-child { width:32%; }
.group-identity { display:flex; align-items:center; gap:10px; }
.group-identity > span { display:inline-flex; padding:9px; border:1px solid var(--reading-line); border-radius:8px; }
.group-identity .ui-icon { width:20px; height:20px; }
body.ui-page .ui-form .catalogue-full { grid-column:1/-1; }
.catalogue-materials { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:14px; }
.catalogue-edit > :is(h2,fieldset,.ui-row-actions) { margin-block:18px; }
.catalogue-edit input,.catalogue-edit select { width:100%; }
body.ui-page[data-view=sessione-viewlog]:has(main.session-archive) { display:block; height:auto; min-height:100dvh; overflow:auto; }
/* Session Manager: the same central form and parchment treatment as the rest of the game. */
.session-manager { width:100%; min-width:0; }
.session-manager .ui-page-heading { justify-content:space-between; }
.session-manager-content { display:grid; gap:22px; padding:22px; }
.session-manager-content h2 { margin:0 0 10px; font-size:1.15rem; text-align:left; }
.session-manager-content p { margin:0; }
.session-manager-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.65fr); gap:20px; padding:20px; background:var(--parchment); color:var(--parchment-ink); border:1px solid var(--parchment-line); border-radius:10px; }
.session-manager-summary :is(h2,dt,.ui-eyebrow) { color:var(--parchment-ink); }
.session-manager-summary dl,.session-manager-details { display:grid; gap:12px; margin:0; }
.session-manager :is(dt,dd) { margin:0; }
.session-manager dt { font:600 .74rem/1.5 var(--font-ui); text-transform:uppercase; letter-spacing:.06em; opacity:.8; }
.session-manager dd { font-size:.95rem; overflow-wrap:anywhere; }
.session-manager-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; margin-top:18px; }
.session-manager-form label { display:flex; flex-direction:column; gap:8px; font:.85rem/1.5 var(--font-ui); }
.session-manager-form :is(input:not([type=checkbox]),select) { width:100%; }
.session-manager-form .session-manager-checkbox { flex-direction:row; align-items:center; }
.session-manager-details { grid-template-columns:repeat(4,minmax(0,1fr)); padding:16px 0; border-block:1px solid var(--line); }
.session-manager-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:16px; }
.session-manager-form .session-manager-actions { margin:0; align-self:end; justify-content:flex-end; }
.session-manager-automation { display:flex; gap:18px; align-items:center; justify-content:space-between; padding:18px; background:var(--panel-2); border:1px solid var(--line); border-radius:10px; }
.session-manager-automation p { color:var(--muted); font:.82rem/1.65 var(--font-ui); }
.session-manager-automation .action-btn { flex-shrink:0; }
@media(max-width:620px) { .session-manager-content { padding:14px; gap:18px; }.session-manager-summary,.session-manager-form { grid-template-columns:minmax(0,1fr); }.session-manager-summary { padding:16px; }.session-manager-details { grid-template-columns:repeat(2,minmax(0,1fr)); }.session-manager-automation { flex-direction:column; align-items:stretch; }.session-manager-form .session-manager-actions { justify-content:flex-start; } }
/* Shared Master voice: human interventions, AI announcements and archived sessions. */
:is(.MasterKey,body.ui-page .session-archive .MasterKey) { --reading-ink:var(--master-ink); --reading-link:var(--master-ink); --reading-line:var(--master-line); background:var(--master-background); color:var(--master-ink); border:1px solid var(--master-line); box-shadow:inset 0 0 0 1px var(--master-inset); border-radius:11px; padding:13px 17px; max-height:none; overflow:visible; text-align:center; }
:is(.MasterKey,body.ui-page .session-archive .MasterKey) * { color:inherit; }
.quest-chat-copy { flex:1 1 280px; min-width:0; }
.quest-chat-copy :is(span,small) { display:block; overflow-wrap:anywhere; }
.quest-chat-copy small { margin-top:6px; color:var(--muted); font:.78rem/1.6 var(--font-ui); }

.MasterKey { text-align:left; }
.MasterKey > :is(b,strong) { color:var(--master-title); font-size:13px; }
.MasterKey > p { margin:5px 0 0; font-size:14px; line-height:1.65; }

/* Gestione dei contenuti visivi: liste e moduli condivisi, adattivi. */
.media-admin-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}
.media-admin-toolbar p{margin:0 auto 0 0;color:var(--muted);font:13px var(--font-ui)}
.media-map-list{display:grid}.media-map-row{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--panel)}
.media-map-row:nth-child(even){background:var(--panel-2)}.media-map-row>img{width:80px;height:60px;object-fit:cover;border:2px solid var(--gold);border-radius:6px}.media-map-row h2{margin:0 0 5px;font-size:18px}.media-map-row small{font:12px var(--font-ui);color:var(--muted)}
.media-editor-dialog{width:min(1000px,95vw);max-width:95vw;height:min(850px,94dvh);max-height:94dvh;padding:0;border:1px solid var(--gold);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}
.media-editor-dialog::backdrop{background:#020912bb;backdrop-filter:blur(4px)}.media-editor-dialog form{height:100%;display:flex;flex-direction:column;min-height:0;margin:0}.media-editor-dialog header,.media-editor-dialog footer{display:flex;align-items:center;gap:12px;flex:none;padding:14px 18px;background:var(--panel-2);border-bottom:1px solid var(--line)}.media-editor-dialog header h2{flex:1;margin:0;font-size:20px}.media-editor-dialog footer{border-top:1px solid var(--line);border-bottom:0}.media-editor-dialog footer p{flex:1;margin:0;font:12px var(--font-ui)}
.media-editor-content{overflow:auto;min-height:0;padding:18px}.media-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.media-editor-content label,.weather-admin-row label{display:block;font:12px/1.6 var(--font-ui);color:var(--muted)}.media-editor-content :is(input:not([type=checkbox]),select,textarea),.weather-admin-fields :is(input,textarea){width:100%;display:block;margin-top:5px}.media-description{margin-block:18px}.media-image-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.media-image-fields fieldset{border:1px solid var(--line);padding:14px;border-radius:10px;min-width:0}.media-image-fields legend{padding-inline:5px;font:600 13px var(--font-ui);color:var(--gold-2)}.media-image-fields label+label{margin-top:10px}.media-image-fields img{display:block;width:100%;max-height:180px;object-fit:contain;background:#06101c;border:1px solid var(--line);border-radius:6px;margin:0 0 12px}.media-image-fields [hidden]{display:none}
.weather-admin-list{display:grid}.weather-admin-row{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(180px,.7fr);align-items:center;gap:20px;padding:18px;margin:0;border-bottom:1px solid var(--line);background:var(--panel)}.weather-admin-row:nth-child(even){background:var(--panel-2)}.weather-admin-preview{text-align:center}.weather-admin-preview img{width:100px;height:100px;object-fit:contain;display:block;margin:auto}.weather-admin-preview small{display:block;color:var(--muted);font:10px var(--font-ui);margin-top:5px}.weather-admin-fields label+label{margin-top:12px}.weather-admin-upload{min-width:0}.weather-admin-upload input[type=file]{width:100%;font-size:11px}.weather-admin-upload small{display:block;color:var(--muted);font:11px/1.6 var(--font-ui);margin:8px 0}.weather-admin-upload button{margin-top:12px}
@media(max-width:640px){.media-map-row{grid-template-columns:60px minmax(0,1fr) auto;gap:10px;padding:12px}.media-map-row>img{width:60px;height:45px}.media-map-row h2{font-size:15px}.media-map-row small{font-size:10px;overflow-wrap:anywhere}.media-form-grid,.media-image-fields{grid-template-columns:1fr}.media-editor-content{padding:12px}.weather-admin-row{grid-template-columns:100px minmax(0,1fr);gap:12px;padding:12px}.weather-admin-upload{grid-column:1/-1;display:grid;gap:8px}.media-editor-dialog header,.media-editor-dialog footer{padding:10px}.media-editor-dialog footer{flex-wrap:wrap}.media-editor-dialog footer p{flex-basis:100%}}

.media-map-placeholder{display:grid;place-items:center;width:80px;height:60px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--gold)}.media-map-placeholder svg{width:30px;height:30px}
@media(max-width:640px){.media-map-placeholder{width:60px;height:45px}}

.media-map-row>button{display:inline-flex;align-items:center;gap:7px}.media-editor-dialog footer p:empty,#map-media-status:empty{display:none}

/* Proposte di organizzazioni e corporazioni: un unico modulo centrale. */
.group-proposal{width:100%;box-sizing:border-box;padding:24px;max-width:1100px;margin:0 auto}.group-proposal-section{padding:0 0 22px;margin:0 0 22px;border-bottom:1px solid var(--line)}.group-proposal-section h2{display:flex;align-items:center;gap:10px;margin:0 0 16px;color:var(--gold-2);font-size:21px}.group-proposal-section .ui-help{color:var(--muted);font:13px/1.7 var(--font-ui);margin:0 0 12px}.group-proposal textarea{width:100%}.group-proposal .ql-editor{min-height:240px;color:var(--text);font:15px/1.75 var(--font-ui);background:var(--panel)}.group-proposal .ql-snow .ql-stroke{stroke:var(--gold-2)}.group-proposal .ql-snow .ql-fill{fill:var(--gold-2)}.group-proposal .ql-snow .ql-picker{color:var(--gold-2)}.group-statute-label{display:block;margin-bottom:8px}.group-proposal-footer{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.group-points{color:var(--gold-2);font:600 14px var(--font-ui);margin-top:16px}.group-points .over-budget,#group-proposal-error{color:var(--danger)}
@media(max-width:600px){.group-proposal{padding:16px}.group-proposal .ui-form-fields{grid-template-columns:minmax(0,1fr)}.group-proposal .ui-data-table{min-width:0}.group-proposal .ui-data-table select{min-width:0;width:100%}.group-proposal .ql-editor{min-height:200px}}
body.ui-page .group-proposal .ui-form{max-width:none;width:100%}body.ui-page .group-proposal .ql-toolbar button{min-height:30px;height:30px;width:30px;padding:4px;margin:0;display:inline-flex;align-items:center;justify-content:center}body.ui-page .group-proposal .ql-toolbar button svg{width:18px;height:18px;flex:none}.group-proposal .ql-editor.ql-blank::before{color:var(--muted)}

.group-production-types{margin-top:6px;font:12px/1.65 var(--font-ui)}.group-production-types summary{cursor:pointer;color:var(--reading-link,var(--gold-2))}.group-production-types p{margin:8px 0;max-width:420px}.group-proposal [data-quality-description]{display:block;margin-top:6px}

/* Archivio: la stessa pergamena e gli stessi componenti della chat in gioco. */
body.session-archive-page{background:var(--reading-background)}body.ui-page[data-view=sessione-viewlog].session-replay{display:block;height:auto;min-height:100dvh;overflow:auto;background:var(--reading-background);color:var(--parchment-ink)}
body.session-replay main.session-archive{display:block;min-height:0;padding:0;margin:0}body.session-replay #chatbox{height:auto;max-height:none;overflow:visible;min-height:40vh;border-radius:0}body.session-replay .session-replay-header{position:sticky;top:0;z-index:3}body.session-replay .session-replay-info{padding:10px 18px;background:var(--panel);color:var(--muted);font:12px/1.7 var(--font-ui)}body.session-replay .session-replay-info summary{color:var(--gold-2);cursor:pointer}body.session-replay .ui-list-footer{background:var(--panel)}body.session-replay #chatbox .riga{padding:0;margin:0}body.session-replay #chatbox:before{content:'Archivio della scena · trascrizione'}
.session-actions form{display:inline-flex;margin:0}.session-actions form button{display:inline-flex;gap:6px;align-items:center;white-space:nowrap}.session-replay-header .scene-id{flex:1}
@media(max-width:760px){body.session-replay .session-replay-header{display:flex;flex-wrap:wrap;min-height:0}.session-replay-header .action-btn{font-size:11px}body.session-replay .session-replay-info{padding:8px 12px}}
@media(max-width:600px){body.session-archive-page .ui-page-heading{flex-wrap:wrap;gap:10px}body.session-archive-page .ui-page-heading>div{min-width:0;flex:1}body.session-archive-page .ui-page-heading>.action-btn{font-size:11px;padding:9px}}

/* Sessioni: righe navigabili, comandi compatti e stato vivo. */
body.session-archive-page .session-table{min-width:740px}
.session-table [data-session-url]{cursor:pointer}.session-table .session-name{text-decoration:none}.session-table .session-name:focus-visible{outline:2px solid var(--reading-link);outline-offset:4px}
body.ui-page .session-actions .action-btn{width:34px;height:34px;min-height:34px;flex:none;justify-content:center;padding:7px;box-sizing:border-box}.session-actions .action-btn svg{width:17px;height:17px;flex:none}.session-actions form{flex:none}.session-table .session-actions{min-width:114px}
.session-location{display:flex;align-items:center;gap:10px;text-decoration:none}.session-location:hover span{text-decoration:underline}.session-location img,.session-location-fallback{flex:none;width:52px;height:39px;object-fit:cover;border:1px solid #9e7d40;border-radius:5px;padding:2px;background:#152638;box-shadow:0 1px 4px #1b150c30;box-sizing:border-box}.session-location-fallback{display:grid;place-items:center;color:var(--gold-2)}.session-location-fallback svg{width:22px;height:22px}
.session-live-dot{display:inline-block;width:8px;height:8px;flex:none;border-radius:50%;background:#278a3e;box-shadow:0 0 0 3px #278a3e22;animation:session-live-pulse 1.6s ease-in-out infinite}.session-table .session-state.is-open{display:flex;align-items:center;gap:7px}
.session-admin-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.session-admin-tools form{margin:0}.session-admin-tools>a.action-btn{width:38px;height:38px;padding:9px;box-sizing:border-box;justify-content:center}
@keyframes session-live-pulse{50%{opacity:.4;box-shadow:0 0 0 5px #278a3e08}}@media(prefers-reduced-motion:reduce){.session-live-dot{animation:none}}
@media(max-width:600px){.session-admin-tools{flex-basis:100%}.session-location{gap:7px}.session-location img,.session-location-fallback{width:44px;height:33px}body.session-archive-page .session-table{min-width:700px}}
@media(max-width:600px){body.ui-page.session-archive-page .ui-page-heading{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px}body.ui-page.session-archive-page .ui-page-heading>div:not(.session-admin-tools){grid-column:2;grid-row:1}body.ui-page.session-archive-page .ui-page-heading>.ui-return-location{grid-column:3;grid-row:1;margin:0}body.ui-page.session-archive-page .ui-page-heading>.session-admin-tools{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:nowrap;min-width:0}body.ui-page.session-archive-page .session-admin-tools button{white-space:nowrap;font-size:12px;padding:9px}.session-admin-tools form{min-width:0}}

/* Ospitalità e camere private: componenti del tema centrale. */
.rental-dialog:not([open]){display:none}.rental-dialog{width:min(780px,95vw);max-width:95vw;max-height:92dvh;padding:0;border:1px solid var(--gold);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);overflow:auto}.rental-dialog::backdrop{background:#020912bb;backdrop-filter:blur(4px)}.rental-dialog>.modal-header{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--panel-2)}.rental-dialog h2{flex:1;margin:0;font-size:22px;color:var(--gold-2)}.rental-dialog .modal-body{padding:20px}.rental-dialog .modal-body>p{margin:0 0 18px;line-height:1.7;color:var(--muted)}.rental-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.rental-form-grid form{min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.rental-form-grid h3{margin:0 0 14px;color:var(--gold-2);font-size:19px}.rental-form-grid label{display:block;margin:12px 0;font:13px/1.6 var(--font-ui)}.rental-form-grid input{display:block;width:100%;margin-top:5px}.rental-form-grid p{font:12px/1.7 var(--font-ui);color:var(--muted)}.rental-form-grid strong{color:var(--gold-2)}.rental-clock{display:flex;align-items:center;gap:10px;padding:6px 16px;background:var(--panel-2);border-bottom:1px solid var(--line);color:var(--gold-2);font:12px var(--font-ui)}.rental-clock .action-btn{margin-left:auto;font-size:11px}.rental-clock svg{width:18px;height:18px;flex:none}#rental-feedback:empty{display:none}#rental-feedback{margin-top:16px;color:var(--gold-2)}
@media(max-width:600px){.rental-form-grid{grid-template-columns:minmax(0,1fr);gap:12px}.rental-dialog .modal-body{padding:12px}.rental-clock{padding:6px 8px;flex-wrap:wrap}.rental-clock .action-btn{padding:6px;font-size:10px}.rental-dialog h2{font-size:18px}}

/* Appuntamenti privati: stessi spazi, oro e blu del template. */
.companion-services{border-top:1px solid var(--line);margin-top:var(--space-6,1.5rem);padding-top:var(--space-6,1.5rem)}
.companion-services h3{color:var(--gold);margin-bottom:.65rem}
.companion-services details{margin-top:1rem}.companion-services summary{cursor:pointer;color:var(--gold);padding:.65rem 0}
#companion-preferences{display:grid;gap:.9rem;padding:1rem 0}#companion-preferences label{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}#companion-preferences input[type=number]{width:7rem}
#companion-list,#npc-invite-rooms{display:grid;gap:.75rem;margin-top:1rem}
.companion-choice{display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;gap:1rem;align-items:center;border:1px solid var(--line);border-radius:var(--radius-md,12px);background:var(--navy-deep,#0b1929);padding:.85rem}
.companion-choice img{width:4.5rem;height:4.5rem;object-fit:cover;border-radius:50%;border:1px solid var(--gold);background:#512535}
.companion-choice a,.companion-choice strong{font-family:var(--font-display,Georgia,serif);font-size:1.1rem;color:var(--gold)}.companion-choice p{margin:.25rem 0}.companion-choice small{display:block;color:var(--muted)}.companion-choice button{white-space:nowrap}.companion-choice-room{grid-template-columns:minmax(0,1fr) auto}
@media(max-width:600px){.companion-choice{grid-template-columns:3.5rem minmax(0,1fr);gap:.75rem}.companion-choice img{width:3.5rem;height:3.5rem}.companion-choice button{grid-column:1/-1;width:100%}.companion-choice-room{grid-template-columns:1fr}}
.companion-back{display:none;margin-left:.6rem}.companion-browsing .companion-back{display:inline-flex}.companion-browsing .rental-form-grid,.companion-browsing .modal-body>p:first-child{display:none}.companion-browsing .companion-services{border-top:0;margin-top:0;padding-top:0}
@media(max-width:600px){.companion-back{margin:.6rem 0 0}.companion-browsing .companion-back{display:flex}}

/* === demo === */
/* Public trial: the same centralized palette and shared model as the game. */
body.demo-page { margin:0; min-height:100dvh; background:var(--page-background); color:var(--text); font:18px/1.6 Georgia,serif; }
.demo-page [hidden] { display:none !important; }
.demo-shell { width:min(1280px,100% - 48px); margin:auto; padding-block:22px; }
.demo-header { display:flex; gap:24px; align-items:center; padding-bottom:20px; border-bottom:1px solid var(--line); }
.demo-brand { color:var(--gold-2); font-size:32px; text-decoration:none; font-weight:bold; }
.demo-brand span { display:block; font:11px/1.2 system-ui,sans-serif; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.demo-label { flex:1; color:var(--muted); font:14px system-ui,sans-serif; }
.demo-page :is(button,.action-btn) { display:inline-flex; align-items:center; justify-content:center; background:var(--button-background); color:var(--gold-2); border:1px solid var(--line); border-radius:9px; padding:10px 18px; cursor:pointer; font:inherit; text-decoration:none; }
.demo-page :is(button,.action-btn):hover { border-color:var(--gold-2); background:var(--panel-2); }
.demo-page :is(button,input,select,textarea):focus-visible { outline:2px solid var(--gold-2); outline-offset:3px; }
.demo-page button:disabled { opacity:.55; cursor:wait; }
.demo-entry { display:grid; grid-template-columns:1.15fr 1fr; gap:70px; align-items:center; padding:60px 0; }
.demo-entry h1 { font-size:clamp(34px,4vw,52px); line-height:1.18; color:var(--gold-2); margin:12px 0 28px; }
.demo-kicker { color:var(--gold); text-transform:uppercase; letter-spacing:.14em; font:12px system-ui,sans-serif; }
.demo-entry p { color:var(--muted); }
.demo-enter-form { background:var(--reading-background); color:var(--reading-ink); border:1px solid var(--line); padding:30px; border-radius:16px; display:grid; gap:10px; }
.demo-enter-form h2 { color:inherit; font-size:27px; margin:0 0 12px; }
.demo-page :is(input,select,textarea) { width:100%; min-width:0; box-sizing:border-box; color:var(--text); background:var(--panel-2); border:1px solid var(--line); border-radius:8px; padding:12px; font:inherit; }
.demo-enter-form button { margin-top:16px; }
.demo-enter-form small { margin-top:10px; font:12px/1.6 system-ui,sans-serif; }
#demo-alert:not(:empty) { margin-block:18px; padding:12px 16px; border:1px solid var(--gold); border-radius:8px; background:var(--panel-2); }
.demo-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:20px; padding-block:22px; }
.demo-toolbar label { display:grid; gap:4px; flex:1; max-width:600px; font:13px system-ui,sans-serif; color:var(--muted); }
.demo-toolbar select { font:18px Georgia,serif; color:var(--gold-2); }
#demo-visitor { flex:1; text-align:right; font:14px system-ui,sans-serif; color:var(--muted); }
.demo-description { border-block:1px solid var(--line); padding:12px 0; }
.demo-description summary { color:var(--gold-2); cursor:pointer; }
#demo-description { white-space:pre-line; padding-block:16px; max-width:80ch; }
#demo-cast { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr)); gap:24px; }
.demo-cast-member { padding:14px 0; border-top:1px solid var(--line); }
.demo-cast-member h3 { color:var(--gold-2); margin:0; font-size:20px; }
.demo-cast-member p { margin:8px 0; font-size:16px; color:var(--muted); }
.demo-scene-heading { display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; padding:18px 0; }
.demo-scene-heading h1 { margin:0; color:var(--gold-2); font-size:26px; flex:1; }
.demo-scene-heading span { font:12px system-ui,sans-serif; color:var(--muted); }
.demo-messages { height:clamp(220px,34dvh,520px); overflow:auto; scroll-behavior:smooth; background:var(--chat-paper,#ead9b1); color:var(--reading-ink); border:1px solid var(--line); border-radius:12px; padding:8px 24px; overflow-wrap:anywhere; }
.demo-turn { padding:18px 0; border-bottom:1px solid var(--reading-line); }
.demo-turn:last-child { border-bottom:0; }
.demo-turn p { margin:6px 0 0; white-space:pre-wrap; }
.demo-speaker { font-weight:bold; font-size:16px; }
.demo-female { color:var(--character-female); }
.demo-male { color:var(--character-male); }
.demo-narrative { white-space:pre-wrap; margin-top:6px; }
.demo-narrative span { color:var(--reading-ink); font-weight:normal; }
.demo-empty { padding-block:30px; max-width:65ch; }
.demo-typing { min-height:1.5em; margin:8px 0; font-size:15px; color:var(--gold-2); }
.demo-compose { display:grid; grid-template-columns:minmax(180px,240px) minmax(0,1fr) auto; gap:14px; align-items:end; }
.demo-compose label { display:grid; gap:6px; color:var(--muted); font:13px system-ui,sans-serif; }
.demo-compose textarea { font:18px/1.5 Georgia,serif; resize:vertical; }
.demo-compose button { min-height:52px; }
.demo-footer { font:12px/1.7 system-ui,sans-serif; color:var(--muted); padding-block:18px; }
.demo-footer span { display:block; }
.demo-error { font:14px/1.5 system-ui,sans-serif; }
@media(max-width:760px) {
 .demo-shell { width:calc(100% - 28px); padding-block:14px; }
 .demo-header { gap:14px; flex-wrap:wrap; }
 .demo-header .action-btn { margin-left:auto; font-size:14px; padding:8px 12px; }
 .demo-label { display:none; }
 .demo-entry { grid-template-columns:1fr; gap:20px; padding-block:30px; }
 .demo-enter-form { padding:22px; }
 .demo-toolbar { gap:12px; }
 .demo-toolbar label { flex-basis:100%; max-width:none; }
 #demo-visitor { text-align:left; }
 .demo-compose { grid-template-columns:1fr auto; }
 .demo-compose label:first-child { grid-column:1/-1; }
 .demo-messages { padding-inline:16px; }
}

/* === rpg === */
/* Central progression: eight compact meters and one investment dialog. */
.rpg-standalone,.rpg-admin,.progression{min-width:0;width:100%}.rpg-standalone>.progression{padding:20px}.progression{font-family:var(--font-ui);color:var(--text)}
.progression-overview{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:13px}.progression-overview h2{font:400 28px Georgia,serif;color:var(--gold-2);margin:0}.progression-xp{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.progression-xp-item{display:flex;align-items:baseline;gap:5px}.progression-xp-item small{font:11px var(--font-ui);color:var(--muted)}.progression-xp-item strong{font:600 15px var(--font-ui);color:var(--gold-2)}.progression-xp-item:first-child strong{color:var(--ok)}.progression-xp-alert{padding:4px 7px;border:1px solid var(--line);border-radius:5px;color:var(--gold);font:10px var(--font-ui)}
.progression .rpg-feedback{margin:8px 0;font:12px/1.5 var(--font-ui);color:var(--muted)}.progression .rpg-feedback[hidden]{display:none}.rpg-feedback.error{color:var(--danger)}
.progression-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.progression-stat{min-width:0;padding:13px;border:1px solid var(--line);border-radius:7px;background:#102335}.progression-stat-heading{display:flex;align-items:center;gap:6px;min-width:0}.progression-stat h3{min-width:0;flex:1;margin:0;overflow:hidden;text-overflow:ellipsis;color:var(--gold-2);font:600 11px var(--font-ui)}.progression-stat-value{color:var(--gold-2);font:400 25px Georgia,serif}.rpg-progress-icon{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;color:var(--icon)}.rpg-progress-icon .ui-icon,.rpg-progress-icon img{width:20px;height:20px;object-fit:contain}.progression-stat meter{display:block;width:100%;height:5px;margin-top:9px;border:0;border-radius:6px;background:#23364b;overflow:hidden}.progression-stat meter::-webkit-meter-bar{background:#23364b;border:0}.progression-stat meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#8e6d34,#d7b96e)}.progression-stat meter::-moz-meter-bar{background:var(--gold)}
body.ui-page .progression-stat-add{display:inline-grid;place-items:center;min-height:24px;width:24px;height:24px;padding:4px;border:1px solid #c7a45a66;border-radius:6px;background:#c9a35c15;color:var(--gold)}.progression-stat-add .ui-icon{width:14px;height:14px}
.progression-initial{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-top:10px;border:1px solid #b9954c66;background:#b9954c09;border-radius:8px}.progression-initial[hidden]{display:none}.progression-initial>.ui-icon,.progression-initial>span .ui-icon{width:20px;height:20px;color:var(--gold)}.progression-initial p{flex:1;margin:0;font:11px/1.5 var(--font-ui);color:var(--muted)}.progression-initial strong{color:var(--gold-2);font-weight:600}.progression-initial p span{margin-left:8px}.progression-initial button{font-size:11px;padding:7px 10px;min-height:30px}
.progression-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 7px}.progression-section-heading h3{margin:0;color:var(--gold-2);font:600 17px var(--font-body)}.rpg-compact-filter select{padding:6px 9px;min-height:30px;font:11px var(--font-ui)}.progression-ability-summary{font:11px/1.5 var(--font-ui);color:var(--muted);margin:0 0 10px}
.progression-abilities{overflow:hidden;border:1px solid var(--reading-line);border-radius:8px;background:var(--reading-background);color:var(--reading-ink)}.progression-ability{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:10px;padding:11px 13px}.progression-ability+.progression-ability{border-top:1px solid #ffffff15}.progression-ability:nth-child(even){background:transparent}.progression-ability>.rpg-progress-icon{border-radius:5px;background:#102338;color:var(--gold)}.progression-ability .rpg-progress-icon .ui-icon{width:16px;height:16px}.progression-ability-content{min-width:0}.progression-ability-content>summary{display:flex;align-items:center;gap:8px;cursor:pointer;min-height:24px}.progression-ability-content>summary:after{content:'+';color:#846535;font-size:15px}.progression-ability-content[open]>summary:after{content:'−'}.progression-ability h4{color:var(--text);font:600 13px var(--font-ui);margin:0}.rpg-rule-chip{font:9px var(--font-ui);color:var(--muted);opacity:.75;white-space:nowrap}.progression-ability-description{padding-top:5px}.progression-ability-description p{font:12px/1.65 var(--font-ui);margin:6px 0;color:var(--muted)}.progression-ability small{display:block;font:10px/1.6 var(--font-ui);color:var(--muted)}.progression-ability-action{display:flex;align-items:center;justify-content:flex-end;gap:8px;font:11px var(--font-ui);min-height:24px}.progression-ability-action strong{font-size:11px}.progression-ability-action button{font:10px var(--font-ui);min-height:26px;padding:5px 8px}.rpg-owned-mark{font:10px var(--font-ui);color:var(--muted)}.rpg-empty{padding:14px;margin:0}
.progression-history{margin-top:16px;padding:12px 0;border-top:1px solid var(--line)}.progression-history>summary{display:flex;align-items:center;gap:8px;color:var(--gold-2);font:14px var(--font-body);cursor:pointer}.progression-history>summary .ui-icon{width:16px;height:16px;color:var(--icon)}.progression-xp-detail{padding:12px 0;font:11px/1.6 var(--font-ui);color:var(--muted)}.progression-history .ui-data-table{font-size:12px}
.rpg-train-dialog{width:min(450px,calc(100vw - 24px));padding:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text)}.rpg-train-dialog:not([open]){display:none}.rpg-train-dialog .modal-body{padding:18px}.rpg-train-dialog p{font:13px/1.6 var(--font-ui);color:var(--muted)}.rpg-train-dialog label{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--gold-2)}.rpg-train-dialog input{width:90px}.rpg-train-dialog button[type=submit]{width:100%;margin-top:10px}

@media(max-width:600px){.progression-overview{gap:8px}.progression-overview h2{font-size:24px}.progression-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.progression-stat{padding:8px 7px}.progression-stat-heading{gap:7px;flex-wrap:nowrap}.progression-stat h3{font-size:10px;flex-basis:auto}.progression-stat .rpg-progress-icon{width:20px;height:20px}.progression-stat .rpg-progress-icon .ui-icon,.progression-stat .rpg-progress-icon img{width:18px;height:18px}.progression-stat-value{font-size:17px}.progression-stat-add{margin-left:auto}.progression-initial p span{display:block;margin-left:0;font-size:10px}.progression-ability{gap:7px;padding:10px}.progression-ability h4{font-size:13px}.progression-ability-content>summary{flex-wrap:wrap;gap:4px 7px}.progression-ability-action{flex-direction:column;gap:5px;align-items:flex-end}.rpg-owned-mark{max-width:70px;text-align:right;font-size:9px}.rpg-standalone>.progression{padding:13px}}
.progression .progression-abilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;background:transparent;border:0;border-radius:0;color:var(--text);overflow:visible}.progression-skill-group{min-width:0;border:1px solid var(--line);border-radius:8px;padding:16px}.progression-skill-group:only-child{grid-column:1/-1}.progression-skill-group>h3{margin:0 0 12px;color:var(--gold-2);font:400 20px Georgia,serif}.progression-skill-group .progression-ability{grid-template-columns:20px minmax(0,1fr) auto;padding:12px 0;gap:8px}.progression-skill-group .rpg-progress-icon{width:20px;height:24px;background:none}.progression-ability-action{color:var(--gold-2)}.progression-ability-content>summary:after{color:var(--gold)}@media(min-width:601px){.progression-stat .rpg-progress-icon .ui-icon{width:24px;height:24px}}
@media(max-width:1050px){.progression .progression-abilities{grid-template-columns:1fr}}
/* Administration keeps one editing column, with bounded grids for scalar rules. */
.rpg-admin-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:14px 20px;margin:0;border-bottom:1px solid var(--line);background:var(--panel)}
.rpg-admin-tabs button{display:inline-flex;align-items:center;gap:8px;font-size:.8rem}
.rpg-admin-tabs .active{border-color:var(--gold);color:var(--gold-2);box-shadow:inset 0 -2px var(--gold)}
.rpg-admin>.rpg-feedback{padding:0 20px}
.rpg-admin>[data-rpg-panel-content]{padding:20px}
.rpg-admin>[data-rpg-panel-content][hidden]{display:none}
.rpg-admin-toolbar{display:flex;align-items:end;gap:12px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.rpg-admin-toolbar>label{flex:1;max-width:600px}
.rpg-admin-form{margin:0;min-width:0}
.rpg-admin-form :is(label,legend),.rpg-admin-toolbar label,.rpg-admin-stat-definition label{display:block;color:var(--muted);font:.75rem/1.6 var(--font-ui)}
.rpg-admin-form label>:is(input:not([type=checkbox]),textarea,select),.rpg-admin-toolbar label>select,.rpg-admin-stat-definition label>:is(input,textarea,select){display:block;width:100%;margin-top:7px}
.rpg-admin-form>label,.rpg-admin-form>fieldset{margin:0 0 20px}
.rpg-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;margin-bottom:20px}
.rpg-admin-form input[type=checkbox]{margin-right:7px;vertical-align:middle}
.rpg-admin-form fieldset{padding:18px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.rpg-admin-form legend{padding:0 8px;color:var(--gold-2)}
.rpg-admin-form fieldset>p{font:.73rem/1.6 var(--font-ui);color:var(--muted);margin:15px 0 0}
.rpg-admin-form fieldset>.rpg-form-grid{margin-bottom:0}
.rpg-editor-heading{margin:22px 0 16px}
.rpg-editor-heading h2,.rpg-admin-ledger h2,.rpg-admin-stat-definitions h2{margin:0 0 8px;font:1.25rem var(--font-body);color:var(--gold-2)}
.rpg-editor-heading p,.rpg-admin-stat-definitions>p{margin:0;color:var(--muted);font:.8rem/1.6 var(--font-ui)}
.rpg-admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}
.rpg-admin-stat{padding:13px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm)}
.rpg-admin-stat-label{display:flex;gap:9px;align-items:center}
.rpg-admin-stat-label .ui-icon{width:21px;height:21px;color:var(--gold)}
.rpg-admin-stat-label strong{font-size:.75rem;color:var(--text)}
.rpg-admin-stat input{max-width:100%}
.rpg-race-checks{display:flex;flex-wrap:wrap;gap:10px 18px}
.rpg-race-checks label{padding:6px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text)}
.rpg-admin-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 0;margin-top:20px;border-top:1px solid var(--line)}
.rpg-admin-actions button{display:inline-flex;align-items:center;gap:8px}
.rpg-admin-ledger,.rpg-admin-stat-definitions{margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.rpg-admin-npcs{margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.rpg-admin-npcs h2{margin:0 0 8px;font:1.25rem var(--font-body);color:var(--gold-2)}
.rpg-admin-npcs>p{margin:0 0 16px;color:var(--muted);font:.8rem/1.6 var(--font-ui)}
.rpg-admin-npcs .action-btn{display:inline-flex;align-items:center;gap:7px;min-height:32px;font-size:.75rem;padding:7px 10px}
.rpg-admin-stat-definition{display:grid;grid-template-columns:42px minmax(120px,.7fr) minmax(200px,1.5fr) minmax(120px,.7fr) auto;align-items:center;gap:15px;padding:17px 0;margin:0;border-bottom:1px solid var(--line)}
.rpg-admin-stat-definition button{align-self:end;margin-bottom:4px;font-size:.72rem}
.rpg-admin-stat-definition textarea{resize:vertical}
.rpg-admin [aria-busy=true],.progression[aria-busy=true]{cursor:progress}
@media(max-width:600px){
 body.ui-page :is(.rpg-standalone,.rpg-admin)>.ui-page-heading{display:grid;grid-template-columns:36px minmax(0,1fr) 32px;gap:10px;padding:16px 14px}
 body.ui-page :is(.rpg-standalone,.rpg-admin)>.ui-page-heading>div{min-width:0;grid-column:2;grid-row:1}
 body.ui-page :is(.rpg-standalone,.rpg-admin)>.ui-page-heading>span[data-icon]{grid-column:1;grid-row:1;width:36px;height:36px;min-width:0;padding:7px}
 body.ui-page :is(.rpg-standalone,.rpg-admin)>.ui-page-heading>.action-btn{display:none}
 body.ui-page :is(.rpg-standalone,.rpg-admin)>.ui-page-heading>.ui-return-location{grid-column:3;grid-row:1;width:32px;min-width:32px;min-height:32px;height:32px;padding:7px;margin:0;font-size:0;gap:0}
 body.ui-page :is(.rpg-standalone,.rpg-admin)>.ui-page-heading>.ui-return-location .ui-icon{width:17px;height:17px}
 body.ui-page .progression-heading>.action-btn{display:none}
}
@media(max-width:1250px){.rpg-admin-stat-definition{grid-template-columns:42px 1fr 2fr}.rpg-admin-stat-definition>:nth-child(4){grid-column:2}.rpg-admin-stat-definition button{justify-self:start}.rpg-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.rpg-admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rpg-admin-stat-definition{grid-template-columns:1fr 1fr;align-items:start}.rpg-admin-stat-definition>.rpg-progress-icon{grid-column:1/-1}.rpg-admin-stat-definition>:nth-child(3){grid-column:1/-1}.rpg-admin-stat-definition>:nth-child(4){grid-column:auto}.rpg-admin-stat-definition button{align-self:end}.rpg-admin>[data-rpg-panel-content]{padding:16px}.rpg-admin-tabs{padding:12px 16px}}
@media(max-width:480px){.rpg-form-grid{grid-template-columns:1fr}.rpg-admin-toolbar{flex-wrap:wrap;align-items:stretch}.rpg-admin-toolbar>label{flex-basis:100%}.rpg-admin-tabs{gap:6px}.rpg-admin-tabs button{font-size:.72rem;padding:8px}.rpg-admin-form fieldset{padding:13px}.rpg-admin-stat-definition{grid-template-columns:1fr}.rpg-admin-stat-definition>*{grid-column:1!important}}

/* Square item-style ability art shared by profile, lists, chat and editor. */
.rpg-ability-art{display:block;width:96px;height:96px;aspect-ratio:1;object-fit:cover;flex:none;border:1px solid var(--gold);border-radius:9px;background:var(--panel-2)}
.progression-ability.has-art{grid-template-columns:96px minmax(0,1fr) auto;align-items:center}
.rpg-ability-prose,.race-ability details>div>p{white-space:pre-line}
[data-rpg-ability-preview]{width:160px;height:160px;margin:10px 0}[data-rpg-ability-preview][hidden]{display:none}
#rpg-chat-description>.rpg-ability-art{width:128px;height:128px;margin:0 auto 12px}
@media(max-width:600px){.rpg-ability-art{width:72px;height:72px}.progression-ability.has-art{grid-template-columns:72px minmax(0,1fr);gap:9px}.progression-ability.has-art>.rpg-ability-art{grid-row:1/3}.progression-ability.has-art>.progression-ability-action{grid-column:2;justify-self:start}.race-ability summary>.rpg-ability-art{width:64px;height:64px}.race-ability summary h2{font-size:16px}}

/* Shared learning state: identical eligibility and visual emphasis in both catalogues. */
.rpg-learning-balance{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid #5f9c6b;border-radius:24px;background:#183c2d;color:#def1dc;font-size:14px;font-weight:600}
.rpg-learning-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 0 24px}.rpg-learning-toolbar p{margin:0;color:var(--text)}
.progression-ability.is-learnable,.race-ability.is-learnable{border:1px solid #69ab79;border-radius:10px;background:linear-gradient(#6cc98412,#6cc98412),var(--panel-2);box-shadow:inset 0 0 0 1px #78c48b25,0 0 12px #59ac7310}
.rpg-learning-ready{color:#a9d6aa;font-weight:600}.progression-ability-action small{display:block;max-width:180px;font-size:12px}
.race-ability-learning{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13px}.race-ability-learning>span{flex:1}.race-ability-learning button{flex:none}
@media(max-width:600px){.race-ability-learning{align-items:flex-start;flex-direction:column}.race-ability-learning button{width:100%}.progression-section-heading{flex-wrap:wrap;gap:10px}.rpg-learning-balance{font-size:13px}.progression-ability.is-learnable{padding:12px}}

/* === rpg-chat === */
.rpg-chat-dialog{width:min(700px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--gold-dim,var(--line));border-radius:14px;background:var(--surface,#0d1d30);color:var(--ink);overflow:auto}
.rpg-chat-dialog:not([open]){display:none}
.rpg-chat-dialog .modal-header{position:sticky;top:0;z-index:1;background:var(--panel,#112338)}
.rpg-chat-dialog h2{display:flex;align-items:center;gap:10px}.rpg-chat-dialog .modal-body{padding:20px}.rpg-chat-dialog .modal-body>p{margin:0 0 16px;color:var(--muted);font:14px/1.6 var(--font-ui)}
.rpg-chat-dialog label{display:block;color:var(--gold);font-weight:600;margin-bottom:8px}.rpg-chat-dialog select{width:100%;max-width:100%;padding:12px;background:var(--field-background);color:var(--field-ink);border:1px solid var(--field-line);border-radius:8px}
.rpg-chat-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 20px}.rpg-chat-stat{padding:10px;display:grid;grid-template-columns:22px 1fr;gap:5px 8px;border:1px solid var(--line);border-radius:8px;background:#122439}.rpg-chat-stat .ui-icon,.rpg-chat-stat img{width:22px;height:22px;color:var(--icon);grid-row:1/3;align-self:center}.rpg-chat-stat span{font:11px var(--font-ui);color:var(--muted)}.rpg-chat-stat strong{color:var(--gold);font:600 19px var(--font-ui)}
.rpg-chat-description{display:flex;flex-direction:column;gap:8px;padding:14px 0;min-height:100px}.rpg-chat-description strong{color:var(--gold)}.rpg-chat-description small{font-size:12px}.rpg-chat-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.chat-ability-tag{display:table;margin-top:10px;padding:4px 9px;border:1px solid #a47d3d80;border-radius:5px;background:#b9904320;color:#75501f;font:600 11px var(--font-ui);letter-spacing:.03em}.chat-ability-tag>span{color:#a7772b;margin-right:4px}
body[data-view=chat-index] .composer #rpg-skills-button{padding:10px;position:relative}body[data-view=chat-index] .composer #rpg-skills-button.has-skill{border-color:var(--gold);box-shadow:inset 0 -3px 0 var(--gold)}body[data-view=chat-index] .composer #rpg-skills-button.has-skill:after{content:'';position:absolute;right:5px;top:5px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
@media(max-width:760px){body[data-view=chat-index] .composer{grid-template-columns:74px minmax(0,1fr) 36px 36px 65px}body[data-view=chat-index] .composer #rpg-skills-button{grid-column:3;grid-row:2;padding:6px}body[data-view=chat-index] .composer #diceBtn{grid-column:4}body[data-view=chat-index] .composer #sendBtn{grid-column:5}.rpg-chat-dialog .modal-body{padding:14px}.rpg-chat-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rpg-chat-footer>*{width:100%;justify-content:center}}

/* === races === */
/* Race atlas: the same racial artwork and central tokens used by character sheets. */
.race-member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.race-member-card{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-decoration:none}
.race-member-card img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid var(--gold);flex:none}
.race-member-card strong{display:block;color:var(--gold-2)}.race-member-card small{display:block;margin-top:6px;font-size:11px;color:var(--muted)}
.race-member-card img[src*="/images/profiles/banners/"]{object-position:90% center}
.race-base-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0}.race-base-stats>div{display:grid;grid-template-columns:21px minmax(0,1fr) auto;gap:9px;align-items:center;min-width:0;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font:12px var(--font-ui);color:var(--text)}.race-base-stats .ui-icon,.race-base-stats img{width:20px;height:20px;object-fit:contain;color:var(--icon)}.race-base-stats span{min-width:0}.race-base-stats strong{font:600 17px var(--font-body);color:var(--gold-2)}.race-base-stats meter{grid-column:1/-1;display:block;appearance:none;width:100%;height:5px;border:0;border-radius:4px;overflow:hidden;background:var(--bg)}.race-base-stats meter::-webkit-meter-bar{border:0;border-radius:4px;background:var(--bg)}.race-base-stats meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,var(--gold),var(--gold-2))}.race-base-stats meter::-moz-meter-bar{background:var(--gold)}
body.ui-page .race-directory .race-tabs{display:flex;gap:7px;margin:0;padding:0;border:0;background:none}body.ui-page .race-directory .race-tabs .tab{display:flex;align-items:center;gap:7px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:12px var(--font-ui)}body.ui-page .race-directory .race-tabs .tab.active{border-color:var(--gold);color:var(--gold-2);box-shadow:inset 0 -2px var(--gold)}.race-tabs .ui-icon{margin:0;width:16px;height:16px;color:var(--icon)}.race-pane{padding:22px}.race-pane[hidden]{display:none!important}
.race-reading{padding:28px 32px;border:1px solid var(--reading-line);border-radius:12px;background:var(--reading-background);color:var(--reading-ink);font:16px/1.85 var(--font-body);box-shadow:0 9px 28px #0002}.race-reading :is(h1,h2,h3,h4,h5,h6){color:var(--reading-ink);font-family:var(--font-body);line-height:1.4;margin:22px 0 12px}.race-reading h2{font-size:24px}.race-reading h3{font-size:20px}.race-reading :is(p,li,span,strong,em,font){color:var(--reading-ink)}.race-reading>:first-child{margin-top:0}.race-reading p{margin:8px 0 14px}.race-source{color:var(--muted);font:12px/1.7 var(--font-ui);margin:14px 0}
.race-ability{min-width:0;padding:18px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(145deg,var(--panel-soft),var(--panel));color:var(--text)}.race-ability summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}.race-ability summary::-webkit-details-marker{display:none}.race-ability summary h2{min-width:0;flex:1;font:400 19px/1.3 var(--font-body);margin:0;color:var(--gold-2)}.race-ability summary>span:not([data-icon]){font:10px/1.5 var(--font-ui);color:var(--gold-2);padding:4px 7px;border:1px solid var(--line);border-radius:5px}.race-ability summary>span[data-icon]{display:inline-flex;color:var(--icon);flex:none}.race-ability summary>span[data-icon] .ui-icon{width:20px;height:20px;color:inherit}.race-ability summary:after{content:'+';color:var(--gold)}.race-ability details[open]>summary:after{content:'−'}.race-ability details>div{padding:15px 0 0;margin-top:15px;border-top:1px solid var(--line);font:13px/1.8 var(--font-ui)}.race-ability p{color:var(--text);margin:5px 0 10px}.race-ability small{color:var(--muted)}
body.ui-page .race-directory .ui-page-heading>div{flex:1;min-width:0}body.ui-page .race-directory .race-heading>.ui-header-art{opacity:.9;object-position:center 38%}body.ui-page .race-directory .ui-page-heading>.race-backlist,body.ui-page .race-directory .ui-page-heading>.ui-return-location{display:inline-grid;place-items:center;flex:0 0 34px;width:34px;height:34px;min-height:34px;padding:8px;font-size:0;gap:0;margin:0}body.ui-page .race-directory .ui-page-heading>:is(.race-backlist,.ui-return-location) .ui-icon{width:17px;height:17px;margin:0}
.race-ability-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;background:none;border:0;overflow:visible}body.ui-page .race-ability>details{margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
@media(max-width:760px){.race-ability-list{grid-template-columns:1fr}}

/* Compact atlas stays in the content; only the section tabs belong to the heading. */
.race-directory{min-width:0}
.race-atlas{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:18px 22px;border-bottom:1px solid var(--line)}
.race-tile{display:flex;align-items:center;gap:10px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .2s,background .2s}
.race-tile>img{width:54px;height:64px;flex:none;object-fit:cover;object-position:88% center;border-radius:7px}
.race-tile-copy{display:grid;gap:8px;min-width:0}.race-tile strong{font:500 15px/1.25 var(--font-body);color:var(--gold-2);overflow-wrap:anywhere}.race-tile-copy>span{display:flex;align-items:center;gap:5px;color:var(--muted);font:10px/1.4 var(--font-ui)}.race-tile .ui-icon{width:12px;height:12px;color:var(--icon)}
.race-tile[aria-current=page],.race-tile:hover{border-color:var(--gold);background:var(--panel-2);text-decoration:none}.race-tile:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
body.ui-page .race-directory .race-heading>.race-tabs{order:1;flex-basis:100%;flex-wrap:wrap}
body.ui-page .race-directory .race-tabs .race-my-abilities{display:inline-flex;align-items:center;gap:7px;font:12px var(--font-ui);padding:10px 12px;margin-left:auto}
.race-section-heading{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin:0 0 18px}.race-section-heading :is(h2,h3){margin:0;color:var(--gold-2);font:400 23px/1.3 var(--font-body)}.race-section-heading h3{font-size:20px}.race-section-heading p{flex-basis:100%;margin:0;max-width:850px;font:13px/1.75 var(--font-ui);color:var(--muted)}
.race-total{font:11px var(--font-ui);padding:5px 9px;color:var(--gold-2);border:1px solid var(--line);border-radius:20px;background:var(--panel)}
.race-ability-group{margin-top:26px}.race-family-directory{padding-bottom:26px;margin-bottom:26px;border-bottom:1px solid var(--line)}
@media(max-width:760px){.race-atlas{grid-template-columns:repeat(3,minmax(0,1fr));padding:14px;gap:8px}.race-tile{flex-direction:column;align-items:stretch;gap:8px}.race-tile>img{width:100%;height:74px;object-position:90% 35%}.race-tile-copy{gap:6px}.race-tile strong{font-size:14px}.race-base-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.race-pane{padding:16px}.race-reading{padding:22px}.race-ability summary h2{font-size:17px}.race-member-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}
@media(max-width:500px){.race-atlas{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.race-tile{flex-direction:row;align-items:center;padding:7px}.race-tile>img{width:44px;height:62px}.race-tile strong{font-size:13px}.race-tile-copy>span{font-size:9px}.race-pane{padding:12px}.race-reading{padding:18px;font-size:15px}.race-reading h2{font-size:21px}.race-base-stats{gap:8px}.race-base-stats>div{padding:10px;gap:6px;font-size:10px}.race-base-stats strong{font-size:16px}.race-ability{padding:14px}.race-ability summary{flex-wrap:wrap;gap:7px}.race-section-heading h2{font-size:21px}body.ui-page .race-directory .race-tabs .tab,body.ui-page .race-directory .race-tabs .race-my-abilities{font-size:11px;padding:10px 9px;flex:1 1 auto;justify-content:center;margin:0}body.ui-page .race-directory .race-heading>.ui-header-art{object-position:78% center}}
@media(prefers-reduced-motion:reduce){.race-tile{transition:none}}
.race-member-card{background:linear-gradient(135deg,var(--panel-2),var(--panel));transition:border-color .2s,background .2s;min-width:0}.race-member-card:hover{border-color:var(--gold);text-decoration:none;background:var(--panel-2)}.race-member-card:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.race-member-card>span{min-width:0}.race-member-card strong{overflow-wrap:anywhere}.race-load-more{display:flex;align-items:center;justify-content:center;gap:16px;padding:22px 0 4px}.race-load-more p{font:12px var(--font-ui);color:var(--muted)}.race-load-more button:disabled{opacity:.6}.race-load-more button[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.race-member-card{transition:none}}

/* === rankings === */
.ranking-directory{min-width:0}.ranking-tabs{display:flex;flex-wrap:wrap;gap:8px}.ranking-tabs .active{border-color:var(--gold);color:var(--gold-2);box-shadow:inset 0 -2px var(--gold)}
.ranking-stat-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font:12px var(--font-ui)}.ranking-stat-filter select{min-width:180px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}
.ranking-hall,.ranking-results{padding:24px}.ranking-hall{border-bottom:1px solid var(--line);background:radial-gradient(ellipse at center top,#b08c3620,transparent 70%)}.ranking-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.ranking-section-heading h2{margin:7px 0;color:var(--gold-2);font:400 25px var(--font-body)}.ranking-section-heading p{margin:8px 0;color:var(--muted);font:12px/1.7 var(--font-ui)}.ranking-count,.ranking-own{padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font:12px var(--font-ui);color:var(--text)}.ranking-own strong{color:var(--gold-2)}
.ranking-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1000px;margin:auto;align-items:end}.ranking-winner{display:flex;align-items:center;flex-direction:column;gap:10px;min-width:0;padding:18px 12px 22px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(155deg,var(--panel-2),var(--panel));color:var(--text);text-decoration:none;box-shadow:var(--shadow)}.ranking-winner:hover{border-color:var(--gold);text-decoration:none}.ranking-place-1{order:2;border-color:#a78b4b;padding-top:28px;background:linear-gradient(155deg,#3c3524,var(--panel) 65%)}.ranking-place-2{order:1}.ranking-place-3{order:3}.ranking-crown{width:100px;height:74px;object-fit:contain}.ranking-portrait{width:88px;height:88px;border-radius:50%;object-fit:cover;border:1px solid var(--gold)}.ranking-winner strong{font:500 22px/1.3 var(--font-body);text-align:center;color:var(--gold-2);overflow-wrap:anywhere}.ranking-place-label{font:10px var(--font-ui);letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.ranking-score{font:500 25px var(--font-body);color:var(--gold-2)}.ranking-score small{display:block;text-align:center;font:11px var(--font-ui);color:var(--muted);margin-top:4px}
.ranking-list{list-style:none;padding:0;margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.ranking-row{display:flex;align-items:center;gap:16px;padding:13px 18px;background:var(--panel);border-bottom:1px solid var(--line)}.ranking-row:last-child{border-bottom:0}.ranking-row:nth-child(even){background:var(--bg)}.ranking-row.is-own{background:#ac8d3d1a;box-shadow:inset 3px 0 var(--gold)}.ranking-position{width:38px;flex:none;color:var(--gold);font:17px var(--font-body)}.ranking-person{display:flex;align-items:center;gap:13px;min-width:0;color:var(--text);text-decoration:none}.ranking-person img{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);object-fit:cover;flex:none}.ranking-person strong{font:500 17px var(--font-body);color:var(--gold-2);overflow-wrap:anywhere}.ranking-person small{display:block;font:11px var(--font-ui);color:var(--muted);margin-top:5px}.ranking-value{margin-left:auto;text-align:right;font:500 20px var(--font-body);color:var(--gold-2);flex:none}.ranking-value small{display:block;font:10px var(--font-ui);color:var(--muted);margin-top:4px}.ranking-pages{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:20px;font:12px var(--font-ui);color:var(--muted)}.ranking-rules{margin:18px 0 0;font:11px/1.7 var(--font-ui);color:var(--muted)}.ranking-directory img[src*="/images/profiles/banners/"]{object-position:90% center}
@media(max-width:600px){.ranking-hall,.ranking-results{padding:14px}.ranking-podium{gap:7px}.ranking-winner{padding:14px 6px;gap:8px;border-radius:10px}.ranking-place-1{padding-top:22px}.ranking-crown{width:62px;height:50px}.ranking-portrait{width:57px;height:57px}.ranking-winner strong{font-size:15px}.ranking-place-label{font-size:8px;letter-spacing:0}.ranking-score{font-size:20px}.ranking-score small{font-size:9px}.ranking-row{gap:9px;padding:12px 9px}.ranking-position{width:25px;font-size:14px}.ranking-person{gap:8px}.ranking-person img{width:38px;height:38px}.ranking-person strong{font-size:14px}.ranking-value{font-size:17px}.ranking-section-heading h2{font-size:22px}.ranking-pages{gap:9px}.ranking-pages .action-btn{font-size:11px}}

/* === armory === */
/* Original sixteen illustrated slots, arranged as a compact inventory. */
body.armory-page{background:#081824;color:#eee6d9}.armory-workspace{padding:22px;min-width:0}.armory-count{font:10px var(--font-ui);text-transform:uppercase;letter-spacing:1px;padding:8px 11px;background:#b1704421;color:#e1b989;border:1px solid #e1a65d59;border-radius:5px;white-space:nowrap}.armory-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}.armory-stage,.armory-bag{min-width:0;border:1px solid #bf99635c;border-radius:12px;background:linear-gradient(145deg,#13283a,#081725);overflow:hidden}.armory-stage>h2,.armory-bag>header{padding:16px 18px;margin:0;border-bottom:1px solid #d4aa6d29}.armory-stage>h2,.armory-bag h2{font:400 22px Georgia,serif;color:#e9d1a2}.armory-equipped-grid{padding:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.armory-slot{display:flex;flex-direction:column;align-items:center;min-width:0;text-decoration:none;color:#dfd0b7;gap:7px;padding:8px 4px;border:1px solid #c19b6552;border-radius:8px;background:#07142080;transition:border-color .2s,background .2s}.armory-slot:hover,.armory-slot.is-selected{border-color:#efd19b;background:#20364a;text-decoration:none}.armory-slot.is-filled{border-color:#e4ad5e94}.armory-slot-icon{display:grid;place-items:center;width:clamp(48px,6vw,78px);height:clamp(48px,6vw,78px);overflow:hidden;border-radius:5px;border:1px solid #a5814f80;background:#060f19}.armory-slot-icon img{width:100%;height:100%;object-fit:contain}.armory-slot-copy{text-align:center;min-width:0;max-width:100%}.armory-slot-copy small{display:block;font:10px/1.3 var(--font-ui);color:#d9c497}.armory-slot-copy strong{display:block;font:400 10px/1.4 var(--font-ui);color:#a4b0bd;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}.armory-slot:not(.is-filled) strong{display:none}.armory-load{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 15px;border-top:1px solid #dba86626;padding:14px;color:#af9b77;font:12px/1.5 var(--font-ui)}.armory-load strong{color:#ecd4a8}.armory-bag-rail{min-width:0}.armory-bag>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.armory-bag h2{margin:3px 0}.armory-bag>header small{font:11px var(--font-ui);color:#9ca6ae}.armory-filters{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px}body.ui-page .armory-filters button{min-height:30px;padding:6px 9px;font:11px var(--font-ui);background:#0b1929;border:1px solid #425166;border-radius:6px;color:#c8c4ba}.armory-filters button.active{border-color:#bb965e;color:#f8dfb4;background:#6e503426}.armory-bag-grid{padding:16px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;background:#0002}.armory-item{aspect-ratio:1;min-width:0;position:relative;background:#091724;border:1px solid #46505a;border-bottom:2px solid #977953;border-radius:6px;display:grid;place-items:center;color:#e5c18c;padding:5px}.armory-item img{width:100%;height:100%;min-height:0;object-fit:contain}.armory-item.is-empty{opacity:.3}.armory-item:not(.is-empty):hover,.armory-item.is-selected{border-color:#f0d093;box-shadow:inset 0 0 0 1px #f0d09355}.armory-item[hidden]{display:none}.armory-item b{position:absolute;right:3px;bottom:3px;background:#0b1625;color:#d8c6a7;padding:1px 3px;border-radius:3px;font:9px var(--font-ui)}.armory-empty{font:12px var(--font-ui);color:#b7a894;padding:10px 15px}
.armory-focus{margin-top:14px;background:linear-gradient(145deg,#131d28,#0a1522);border:1px solid #d0ab744d;border-radius:10px;padding:16px;min-height:190px}.armory-focus h2{font:400 22px Georgia,serif;color:#f0d49d;margin:8px 0}.armory-focus p{font:12px/1.7 var(--font-ui);color:#aeb7bf}.armory-focus-heading{display:flex;justify-content:space-between;align-items:center}.armory-focus-heading a{color:var(--gold)}.armory-focus-heading .ui-icon{width:19px;height:19px}.armory-focus .equipment-detail{display:block;margin-top:12px;font:12px/1.7 var(--font-ui);color:#aeb7bf}.armory-focus .equipment-detail img{float:left;width:64px;height:64px;object-fit:contain;margin:0 12px 6px 0}.armory-focus .equipment-properties{display:grid;grid-template-columns:1fr;gap:7px;clear:both;font:11px/1.6 var(--font-ui);color:#c5b9a7}.armory-focus .equipment-properties strong{color:#dfc291}.armory-focus .equipment-actions{display:flex;flex-wrap:wrap;gap:10px}.armory-focus .equipment-actions button{font-size:11px;min-height:32px;padding:7px 9px}.armory-focus .equipment-actions input{max-width:100%;font-size:11px}.armory-focus .equipment-actions .ui-form{min-width:0;max-width:100%}

html:has(body.equipment-embedded){height:auto;min-height:0}body.equipment-embedded{height:auto;min-height:0;margin:0;padding:0 18px;overflow:hidden}body.equipment-embedded .armory-workspace{padding:0 0 18px}
@media(max-width:760px){.armory-columns{grid-template-columns:1fr}.armory-slot-icon{width:64px;height:64px}.armory-workspace{padding:16px}.armory-bag-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:400px){.armory-equipped-grid{padding:10px;gap:7px}.armory-slot-icon{width:48px;height:48px}.armory-slot-copy small{font-size:9px}body.equipment-embedded{padding:0 10px}.armory-workspace{padding:12px}.armory-load{font-size:10px}}

/* Gli oggetti riempiono lo slot; la quantità resta leggibile sopra l'immagine. */
.armory-item:not(.is-empty){padding:0;overflow:visible}.armory-item img{display:block;object-fit:cover;border-radius:5px}.armory-item b.armory-quantity{position:absolute;right:5px;top:5px;bottom:auto;display:grid;place-items:center;width:30px;height:30px;min-width:30px;border-radius:50%;padding:0;background:#a82636;color:#fff5dd;border:2px solid #df7b76;box-shadow:0 2px 7px #000a;font:700 12px/1 var(--font-ui);z-index:1}
@media(max-width:600px){.armory-bag-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.armory-item b.armory-quantity{width:26px;height:26px;min-width:26px;right:3px;top:3px;font-size:11px}}

/* La scheda occupa lo stesso spazio della borsa, anche nel profilo incorporato. */
.armory-bag[hidden],.armory-focus[hidden]{display:none}.armory-bag-rail>.armory-focus{margin-top:0}.armory-focus-heading{gap:12px;flex-wrap:wrap}.armory-focus-heading .action-btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none}.armory-focus .equipment-detail img{width:112px;height:112px;object-fit:cover;border-radius:8px}@media(max-width:520px){.armory-focus .equipment-detail img{width:86px;height:86px}}

/* === page-heading === */
/* Shared header contract. Section artwork remains decorative behind high contrast text. */
body.ui-page .ui-integrated-heading{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:22px 24px;background:#0d1d30;border-bottom:1px solid var(--line);min-width:0}
.ui-integrated-heading>.ui-header-art{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 48%;z-index:-2;opacity:.7;pointer-events:none}
.ui-integrated-heading:has(>.ui-header-art):after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#0a192bf5 0%,#0b1b2be8 30%,#0b1b2b96 65%,#0b1b2b55)}
body.ui-page .ui-integrated-heading>div:has(>h1){flex:1 1 270px;min-width:0}
body.ui-page .ui-integrated-heading h1{color:var(--gold-2);font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.15;margin:3px 0 7px;text-wrap:balance}
body.ui-page .ui-integrated-heading>div>p{margin:0;max-width:65ch;color:#c1cad7;font:.87rem/1.6 var(--font-ui)}
body.ui-page .ui-integrated-heading>.ui-heading-control{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;max-width:100%;margin:0;padding:0;border:0;background:none;box-shadow:none;flex:0 1 auto}
body.ui-page .ui-integrated-heading>:is(.tabs,.ui-tablist,.forum-channels,.city-directory-tabs,.rpg-admin-tabs){flex:1 1 100%;gap:7px}
body.ui-page .ui-integrated-heading>.forum-toolbar{flex:1 1 330px;justify-content:flex-end}
body.ui-page .ui-integrated-heading .forum-toolbar h2,body.ui-page .ui-integrated-heading>.forum-toolbar h2{font:1rem/1.4 var(--font-ui);color:var(--gold-2);margin:0}
body.ui-page .ui-integrated-heading>.city-directory-toolbar{flex:1 1 250px;justify-content:flex-end}
body.ui-page .ui-integrated-heading :is(.forum-location,.forum-breadcrumb){display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;margin:0}
body.ui-page .ui-integrated-heading select{max-width:100%;min-width:0;width:auto}
body.ui-page .ui-integrated-heading .ui-row-actions{gap:7px;flex-wrap:wrap}
body.ui-page .ui-integrated-heading :is(button,.action-btn,.button){min-height:38px;padding:8px 12px;font-size:.83rem}
body.ui-page .ui-integrated-heading>.ui-return-location{margin-left:auto;white-space:nowrap}
body.ui-page .ui-integrated-heading.rpg-hero{padding:24px 28px;gap:18px;overflow:hidden}
body.ui-page .rpg-hero>.rpg-profile-tabs{flex-basis:100%;padding-top:14px;border-top:1px solid #c9a26045}
body.ui-page .rpg-hero .rpg-archive-label{margin-left:auto}
body.ui-page .ui-integrated-heading>.search-alphabet{flex-basis:100%}
body.ui-page .ui-integrated-heading>.search-alphabet a{min-width:26px}
body.ui-page .ui-integrated-heading.ui-heading-embedded{display:flex;padding:12px 0;background:none;border:0;gap:10px;min-height:0}
.ui-heading-embedded>:is(.ui-header-art,span[data-icon],div:has(>h1),a[href^="/profili/"]){display:none!important}
.ui-heading-embedded:after{display:none}
body.ui-page .ui-heading-embedded .armory-filters{margin-left:auto}
@media(max-width:600px){body.ui-page .ui-integrated-heading{padding:16px 14px;gap:10px}.ui-integrated-heading>.ui-header-art{object-position:65% center;opacity:.5}body.ui-page .ui-integrated-heading>div:has(>h1){flex-basis:calc(100% - 78px)}body.ui-page .ui-integrated-heading>.ui-heading-control{justify-content:flex-start}body.ui-page .ui-integrated-heading>.tabs,body.ui-page .ui-integrated-heading>.ui-tablist{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}body.ui-page .ui-integrated-heading>.tabs>* ,body.ui-page .ui-integrated-heading>.ui-tablist>*{flex-shrink:0}body.ui-page .ui-integrated-heading.rpg-hero{padding:18px 14px}.rpg-hero .rpg-archive-label{display:none}}

body.ui-page .ui-integrated-heading>.ui-return-location{font-size:0;width:38px;height:38px;min-width:38px;padding:8px;justify-content:center}
body.ui-page .ui-integrated-heading>.ui-return-location .ui-icon{width:18px;height:18px;margin:0}
body.ui-page .ui-integrated-heading>.presence-filters{flex:1 1 100%;display:flex;padding:0;background:none;box-shadow:none}
body.ui-page .ui-integrated-heading .presence-filters label{flex:1 1 180px}
body.ui-page .ui-integrated-heading>.presence-update{flex-basis:100%}
body.ui-page .ui-integrated-heading .inbox-toolbar{flex:1 1 100%}
body.ui-page .ui-integrated-heading.rpg-hero{display:grid;grid-template-columns:74px minmax(0,1fr)}
body.ui-page .ui-integrated-heading.rpg-hero>.rpg-profile-tabs{grid-column:1/-1;display:flex}
body.ui-page .ui-integrated-heading.rpg-hero .rpg-identity{width:100%;max-width:900px}
@media(max-width:600px){body.ui-page .ui-integrated-heading.rpg-hero{grid-template-columns:54px minmax(0,1fr)}body.ui-page .ui-integrated-heading>.presence-filters{flex-wrap:wrap}}

body.ui-page .ui-integrated-heading>.forum-channels{flex-wrap:wrap;overflow:visible;white-space:normal;flex-basis:100%}
body.ui-page .ui-integrated-heading>.forum-channels button{white-space:normal}
body.ui-page .ui-integrated-heading>.forum-toolbar:empty{display:none}
body.ui-page .ui-integrated-heading>.media-admin-toolbar{flex-basis:100%}
body.ui-page .ui-integrated-heading.session-replay-header .scene-id{flex:1 1 330px}

.ui-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
body.ui-page .ui-integrated-heading>#controls{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:0;background:none;border:0;box-shadow:none}
body.ui-page .ui-integrated-heading .ui-heading-control:has(#transfer-balance){font:1rem var(--font-ui);color:var(--gold-2)}
body.ui-page.armory-page .ui-integrated-heading>.armory-filters{order:2}

/* Compact search controls share the standard illustrated header. */
body.ui-page .ui-integrated-heading>.search-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));flex:1 1 100%;gap:10px 12px;padding:14px 0 0;border-top:1px solid var(--line)}body.ui-page .search-filters .search-filter{display:grid;gap:5px;min-width:0;font:11px/1.35 var(--font-ui);color:var(--muted)}body.ui-page .ui-integrated-heading .search-filters :is(input,select){width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:36px;padding:7px 9px;font:12px var(--font-ui)}body.ui-page .search-filters .search-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin:0}body.ui-page .ui-integrated-heading>.search-alphabet{gap:4px;padding-top:10px;border-top:1px solid var(--line)}body.ui-page .ui-integrated-heading>.search-alphabet a{min-width:22px;padding:3px 5px;font-size:11px}.search-alphabet a[aria-current=true]{background:var(--gold);color:var(--bg)}body.ui-page .search-results{padding:18px 0 0;min-width:0}body.ui-page .search-table .search-character{min-width:200px}body.ui-page .search-table img.search-portrait{width:48px;height:48px;max-width:none;max-height:none;object-fit:cover;object-position:center 25%;border-radius:50%;border:1px solid #bd985e;margin-right:10px;vertical-align:middle}.search-character>a{display:inline-block;vertical-align:middle;max-width:calc(100% - 65px)}.search-more{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px;color:var(--muted);font:12px var(--font-ui)}@media(max-width:900px){body.ui-page .ui-integrated-heading>.search-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){body.ui-page .ui-integrated-heading>.search-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}body.ui-page .search-filters .search-actions{justify-content:stretch}.search-filters .search-actions>*{flex:1;justify-content:center}body.ui-page .search-table{min-width:0;display:block;background:none}body.ui-page .search-table :is(tbody,tr){display:grid;width:100%;box-sizing:border-box}body.ui-page .search-table thead{display:none}body.ui-page .search-table tbody{gap:12px}body.ui-page .search-table tr{grid-template-columns:1fr 1fr;border:1px solid var(--reading-line);border-radius:10px;overflow:hidden;background:var(--reading-background)}body.ui-page .search-table td{display:block;min-width:0;padding:10px;border-bottom:1px solid var(--reading-line)}body.ui-page .search-table .search-character{grid-column:1/-1;min-width:0}body.ui-page .search-table td[data-label]:before{content:attr(data-label);display:block;margin-bottom:4px;font:600 10px var(--font-ui);opacity:.7}body.ui-page .search-table .ui-badge-row{justify-content:flex-start}.search-more{flex-wrap:wrap}}
body.ui-page .search-table .search-character{min-width:260px}.search-character .character-markers{display:flex;margin:5px 0 0}.search-character>a{width:calc(100% - 65px);max-width:none}@media(max-width:600px){body.ui-page .search-table .search-character{min-width:0}.search-character>a{width:calc(100% - 65px)}}
body.ui-page[data-view=ricerca-index] .ui-integrated-heading .search-filters .search-filter :is(input,select){height:36px;min-height:36px;margin:0;padding:7px 9px}body.ui-page[data-view=ricerca-index] .ui-integrated-heading>.ui-return-location{position:absolute;right:18px;top:18px;margin:0}@media(max-width:600px){body.ui-page[data-view=ricerca-index] .ui-integrated-heading .search-filters .search-filter :is(input,select){height:42px;min-height:42px}body.ui-page[data-view=ricerca-index] .ui-integrated-heading>.ui-return-location{top:14px;right:14px}}
body.ui-page .search-table{table-layout:auto}.search-table th:first-child{width:30%}

/* === privacy === */
/* Shared legal pages and preferences; independent from legacy per-page styles. */
.privacy-launcher{position:fixed;bottom:12px;left:12px;z-index:150;width:32px;height:32px;border-radius:50%;border:1px solid #95784e;background:#071522eb;color:#d3ad71;display:grid;place-items:center;padding:0;font-size:19px;box-shadow:0 2px 12px #0007}
.privacy-dialog{padding:30px;border:1px solid #95784e;border-radius:16px;background:linear-gradient(145deg,#10273b,#071522);color:#f0ebe3;width:min(610px,calc(100% - 28px));max-height:90dvh;overflow:auto;box-shadow:0 24px 90px #000c;font:14px/1.6 system-ui}
.privacy-dialog::backdrop{background:#02070dd9;backdrop-filter:blur(10px)}
.privacy-dialog h2{font:400 32px Georgia;color:#f2d8a6;margin:12px 0 18px}.privacy-dialog p{color:#bac4ce}.privacy-dialog form{margin:0}.privacy-close{position:absolute;right:14px;top:12px;background:#071522;color:#d3ad71;border:1px solid #95784e66;border-radius:8px;padding:3px 11px;font-size:24px}
.privacy-eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#d3ad71}.privacy-option{border-top:1px solid #95784e55;padding:17px 0;display:flex;align-items:flex-start;gap:25px;color:#f0ebe3}.privacy-option>div{flex:1}.privacy-option p{font-size:12px;line-height:1.6;margin:7px 0 0}.privacy-option>span{color:#d3ad71;font-size:11px;white-space:nowrap}.privacy-option input{width:20px;height:20px;accent-color:#923c48;flex-shrink:0}
.privacy-actions{display:flex;gap:12px;margin:15px 0}.privacy-actions button{flex:1;border:1px solid #95784e;border-radius:8px;background:#10273b;color:#f2d8a6;padding:12px;font-size:13px}.privacy-actions button:last-child{background:#78333e;color:#fff3e0}.privacy-dialog nav{display:flex;gap:18px;font-size:11px}.privacy-dialog a{color:#f2d8a6;text-decoration:underline}.privacy-dialog [hidden]{display:none}.privacy-blocked-media{font:11px/1.3 system-ui!important;max-width:180px;padding:4px 6px!important;border:1px solid #95784e77!important;border-radius:6px!important;background:#0b1c2d!important;color:#d3ad71!important}.privacy-ai-disclosure{font:11px/1.5 system-ui;color:#a8b0be;margin:4px 12px}.privacy-ai-disclosure a{color:#d3ad71}
body[data-view="legal"]{background:#07111c;padding:0}.gothik-legal{max-width:1000px;margin:auto;padding:45px 32px;color:#d7d8d3}.gothik-legal header{border-bottom:1px solid #95784e66;padding-bottom:25px}.gothik-legal .legal-brand{font:700 31px Georgia;color:#f2d8a6}.gothik-legal .legal-eyebrow{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#d3ad71;margin-top:25px}.gothik-legal h1{font:400 clamp(30px,5vw,48px) Georgia;color:#f2d8a6}.gothik-legal nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.gothik-legal nav a,.gothik-legal nav button{padding:8px 12px;border:1px solid #95784e66;background:#10273b;border-radius:7px;color:#d3ad71;font-size:12px}.gothik-legal nav [aria-current]{background:#78333e;color:#fff3e0}.gothik-legal .legal-document{display:grid;gap:18px;margin-block:28px}.gothik-legal section{padding:24px 28px;background:#0b1c2d;border:1px solid #95784e44;border-radius:12px}.gothik-legal h2{font:400 25px Georgia;color:#f2d8a6;margin-top:0}.gothik-legal p{font:15px/1.85 system-ui}.gothik-legal footer{font-size:12px;border-top:1px solid #95784e66;padding-top:20px}.gothik-legal a{color:#d3ad71}.gothik-legal footer p{font-size:12px}
@media(max-width:540px){.privacy-dialog{padding:24px 20px}.privacy-actions{flex-direction:column}.gothik-legal{padding:30px 18px}.gothik-legal section{padding:20px}.privacy-launcher{width:28px;height:28px;bottom:8px;left:8px}}
.profile-card{position:relative}.profile-card .privacy-avatar-control{position:absolute;right:8px;top:8px;min-height:22px;width:22px;height:22px;padding:0!important;display:grid;place-items:center;border-radius:50%!important;font-size:13px!important}

/* === fortune === */
/* Ruota della sorte: cornice medievale, colori e controlli del tema centrale. */
.fortune-page{max-width:1400px;margin:auto}.fortune-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:26px;padding:28px}.fortune-game{min-width:0;text-align:center;padding:20px;border:1px solid #94723e77;border-radius:20px;background:radial-gradient(ellipse at center,#263b4380,transparent 70%),#091925}.fortune-steps{display:flex;justify-content:center;gap:24px;list-style:none;padding:0;color:#9caabd}.fortune-steps li{padding:7px;border-bottom:2px solid transparent}.fortune-steps .active{color:#e5bd6c;border-color:#c89f54}.fortune-machine{position:relative;width:min(100%,470px);aspect-ratio:1;margin:26px auto 20px;border-radius:50%;border:10px solid #cba35e;box-shadow:0 0 0 2px #f2d797,0 0 0 5px #4c321b,0 0 0 7px #9c7138,0 12px 36px #0009,inset 0 0 0 2px #392516;background:radial-gradient(circle,#132a39 0 65%,#55391e 66%,#291c12 72%,#76532b 100%)}.fortune-machine canvas{width:100%;height:auto;aspect-ratio:1;display:block}.fortune-pointer{position:absolute;z-index:2;left:calc(50% - 16px);top:-17px;width:32px;height:45px;background:linear-gradient(90deg,#986b2b,#f2dca5,#b98a3f);clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 3px 3px #000)}.fortune-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:12%;height:12%;aspect-ratio:1;line-height:1;display:grid;place-items:center;border:2px solid #d9b464;border-radius:50%;background:radial-gradient(#b38c4f,#52371f);color:#f6e2ae;font-size:clamp(20px,4vw,36px);box-shadow:0 0 0 2px #654923,inset 0 0 0 2px #f1d99a55,0 3px 12px #0009;pointer-events:none}.fortune-spin{min-height:48px;min-width:210px;justify-content:center;background:linear-gradient(#c4a463,#95713b);color:#091925;font-weight:700}.fortune-spin:disabled{opacity:.6;cursor:default}.fortune-game #fortune-result{min-height:3em;color:#eed6a5;font:1.2rem Georgia,serif}.fortune-game #fortune-countdown{color:#e5bd6c;font-variant-numeric:tabular-nums}.fortune-help{max-width:510px;margin:20px auto 0;color:#a6b3c4;font-size:.9rem}.fortune-ledger{display:grid;align-content:start;gap:20px}.fortune-card{border:1px solid #a17f474d;border-radius:14px;padding:22px;background:#102334}.fortune-card h2{color:#e5bd6c;font:1.4rem Georgia,serif;margin:0 0 16px}.fortune-card p{color:#aab8c8}.fortune-card summary{color:#e5bd6c;cursor:pointer;padding:6px}.fortune-prize{display:grid;grid-template-columns:48px 1fr;gap:3px 12px;align-items:center;border-top:1px solid #ae8b4533;padding:13px 0}.fortune-prize img{width:48px;height:48px;object-fit:contain;grid-row:span 2;border:1px solid #9b773f;border-radius:8px;background:#e2c896}.fortune-prize strong{color:#eed6a5}.fortune-prize small{color:#aab8c8}.fortune-card ul{list-style:none;padding:0}.fortune-card li{display:flex;align-items:center;gap:10px;border-top:1px solid #ae8b4533;padding:9px 0}.fortune-card li img{width:32px;height:32px;object-fit:contain;border-radius:4px}.fortune-card li small{margin-left:auto;color:#aab8c8;font-size:.76rem}.fortune-empty{font-style:italic}
@media(max-width:760px){.fortune-layout{grid-template-columns:1fr;padding:12px;gap:14px}.fortune-game{padding:12px}.fortune-machine{border-width:9px;margin:18px auto}.fortune-ledger{grid-template-columns:1fr}.fortune-card{padding:16px}.fortune-steps{gap:12px;font-size:.9rem}.fortune-spin{width:100%}.fortune-page .ui-page-heading{padding:16px}.fortune-page .ui-page-heading h1{font-size:1.55rem}}

.fortune-card h2{display:flex;align-items:center;gap:10px}
@media(max-width:600px){body.ui-page .fortune-page .ui-integrated-heading{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;padding:14px;gap:8px}body.ui-page .fortune-page .ui-integrated-heading>span[data-icon]{display:none}body.ui-page .fortune-page .ui-integrated-heading>div:has(>h1){grid-column:1;min-width:0;max-width:none}body.ui-page .fortune-page .ui-integrated-heading h1{font-size:1.3rem;text-wrap:initial}body.ui-page .fortune-page .ui-integrated-heading .ui-eyebrow,body.ui-page .fortune-page .ui-integrated-heading>div>p{display:none}body.ui-page .fortune-page .ui-integrated-heading>.action-btn{min-width:44px;width:44px;height:44px;padding:10px;justify-content:center}body.ui-page .fortune-page .ui-integrated-heading>.action-btn>span{display:none}body.ui-page .fortune-page .ui-integrated-heading>.ui-return-location{position:static;margin:0;min-width:44px;min-height:44px}}

.profile-fortune{display:flex;align-items:center;gap:10px;min-height:64px;margin-top:17px;padding:12px 11px;color:var(--gold-2);background:linear-gradient(105deg,#916f411c,#1a304261);border:1px solid var(--line);border-radius:12px;font:12px/1.4 var(--font-ui);text-decoration:none;max-width:100%}.profile-fortune[hidden]{display:none}.profile-fortune>.ui-icon{width:24px;height:24px;flex:none;margin:0}.profile-fortune-copy{flex:1;min-width:0}.profile-fortune-copy strong{display:block;font-size:12px;font-weight:650}.profile-fortune-copy small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.profile-fortune-action{flex:none;padding:7px 10px;border:1px solid var(--line);border-radius:8px;font:700 11px/1.3 var(--font-ui);background:var(--panel-2)}.profile-fortune.is-ready .profile-fortune-action{background:var(--gold);color:var(--bg)}.profile-fortune:hover{border-color:var(--gold);text-decoration:none}.profile-fortune:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}

dialog.ui-notice-dialog.ui-frame-notice{width:min(840px,calc(100vw - 24px));height:min(760px,calc(100dvh - 24px));flex-direction:column}dialog.ui-notice-dialog.ui-frame-notice[open]{display:flex}.ui-frame-notice .modal-header{flex:none}.ui-frame-notice .modal-body{display:flex;flex-direction:column;min-height:0;flex:1;padding:0;overflow:hidden}.ui-frame-notice .ui-notice-message{padding:12px 22px;margin:0;flex:none;font-size:.95rem}.ui-frame-notice .modal-footer{padding:10px 18px;flex:none}.ui-notice-frame{display:block;width:100%;flex:1;min-height:0;border:0;background:#091925}.fortune-embedded .ui-page-heading,.fortune-embedded .fortune-ledger,.fortune-embedded .fortune-help{display:none!important}.fortune-embedded .fortune-layout{display:block;padding:6px 12px}.fortune-embedded .fortune-game{padding:8px 12px;border:0}.fortune-embedded .fortune-machine{width:min(100%,380px,max(180px,calc(100dvh - 180px)));margin:12px auto}.fortune-embedded .fortune-steps{margin:4px 0}.fortune-embedded .fortune-game #fortune-result{min-height:0;margin:8px 0;font-size:1rem}.fortune-embedded .fortune-spin{min-height:44px}.fortune-embedded #fortune-countdown{margin:8px 0}.fortune-embedded .fortune-page{max-width:650px}.fortune-embedded.ui-page{margin:0;padding:0;background:#091925}
@media(max-width:600px){dialog.ui-notice-dialog.ui-frame-notice{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}.ui-frame-notice .modal-header{padding:12px}.ui-frame-notice .ui-notice-message{padding:8px 14px;font-size:.85rem}.ui-frame-notice .modal-footer{padding:8px 12px}.fortune-embedded .fortune-machine{width:min(100%,320px,max(180px,calc(100dvh - 200px)))}.fortune-embedded .fortune-layout{padding:4px}.profile-fortune{font-size:11px}}

/* === market === */
/* Vetrine e approvvigionamento condividono il sistema del template. */
.lineage-intro{padding:22px}.lineage-intro p{color:var(--muted)}
.lineage-tree{overflow:auto;max-width:100%;padding:20px 12px 35px;touch-action:pan-x pan-y;overscroll-behavior-inline:contain}
.lineage-tree ul{display:flex;justify-content:center;list-style:none;padding:22px 0 0;margin:0;position:relative;width:max-content;min-width:100%;box-sizing:border-box}
.lineage-tree li{display:flex;flex-direction:column;align-items:center;position:relative;padding:22px 10px 0}
.lineage-tree li:before,.lineage-tree li:after{content:'';position:absolute;top:0;right:50%;width:50%;height:22px;border-top:1px solid var(--gold);box-sizing:border-box}
.lineage-tree li:after{right:auto;left:50%;border-left:1px solid var(--gold)}
.lineage-tree li:first-child:before,.lineage-tree li:last-child:after{border-top:0}.lineage-tree li:only-child:before,.lineage-tree li:only-child:after{display:none}
.lineage-tree ul ul:before{content:'';position:absolute;top:0;left:50%;height:22px;border-left:1px solid var(--gold)}
.lineage-tree>ul>li{padding-top:0}.lineage-tree>ul>li:before,.lineage-tree>ul>li:after{display:none}
.lineage-node{display:flex;flex-direction:column;align-items:center;gap:8px;width:210px;padding:18px 14px;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#192b3c,#0a1826);text-align:center;color:var(--gold-2);text-decoration:none}
.lineage-node img{width:28px;height:28px;object-fit:contain}.lineage-node a{font:600 18px Georgia,serif;color:var(--gold-2)}.lineage-node small{font-size:11px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
body.ui-page .lineage-node .lineage-portrait{display:block;width:92px;height:92px;max-width:92px;border-radius:50%;object-fit:cover;border:1px solid var(--gold);padding:3px;background:var(--bg)}
.lineage-node .lineage-portrait[src*="/images/profiles/banners/"]{object-position:90% center}
.lineage-portrait-link{position:relative;display:block;width:100px;min-height:100px}
.lineage-portrait-link .privacy-avatar-control{position:absolute;right:0;bottom:0;width:24px;height:24px;min-height:24px;font-size:0;padding:3px}
body.ui-page .admin-lineage-choice{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);margin-block:14px}
body.ui-page .admin-lineage-choice label{display:block;width:auto;margin:12px 0 6px}body.ui-page .admin-lineage-choice select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px}body.ui-page .admin-lineage-choice p{margin:0;color:var(--gold-2);line-height:1.6}
.lineage-node.is-eliminated{border-color:#97444e}.lineage-death{color:#ef8f98;font-size:13px}.lineage-families{display:flex;flex-wrap:wrap;gap:18px;padding:24px}
/* La scheda pubblica riunisce identità, ruoli e statuto senza tabelle duplicate. */
body.ui-page.corporation-dossier .corporation-dossier-heading{min-height:240px;align-content:center;padding:30px var(--content-space);gap:18px}
body.ui-page.corporation-dossier .corporation-dossier-heading>.ui-header-art{opacity:.85;object-position:center}
body.ui-page .ui-integrated-heading>.corporation-dossier-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-basis:100%;margin-top:16px}
.corporation-dossier-nav .active{border-color:var(--gold);box-shadow:inset 0 -2px var(--gold)}
body.ui-page .ui-person img.group-rank-image{border:0;border-radius:0;background:none;padding:0}
.corporation-dossier-content [hidden]{display:none!important}
.corporation-dossier-nav form{margin:0;display:inline-flex}
body.ui-page .corporation-dossier-content{width:100%;max-width:1500px;padding:28px var(--content-space);margin:0 auto;box-sizing:border-box}
.corporation-section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}
.corporation-section-title h2{margin:0}.corporation-section-title>span{color:var(--muted);font-size:13px;white-space:nowrap}
.corporation-rank-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.corporation-rank-card{min-width:0;display:flex;flex-direction:column;background:linear-gradient(145deg,#14283b,#0a1826);border:1px solid var(--line);border-radius:14px;padding:20px;color:var(--text)}
.corporation-rank-card>header{display:flex;align-items:center;gap:14px;min-width:0}
body.ui-page .corporation-role-art{display:block;flex:0 0 80px;width:80px;height:80px;object-fit:contain;border:0;border-radius:0;background:none;padding:0}
.corporation-rank-card small{color:var(--muted);font-size:11px;letter-spacing:.06em}
body.ui-page .corporation-rank-card h3{color:var(--gold-2);font:600 21px/1.25 Georgia,serif;margin:6px 0;overflow-wrap:anywhere}
.corporation-role-description{font-size:13px;line-height:1.65;color:var(--muted);margin:15px 0;overflow-wrap:anywhere}
.corporation-role-description>:first-child{margin-top:0}.corporation-role-description>:last-child{margin-bottom:0}
.corporation-role-members{border-top:1px solid var(--line);padding-top:14px;margin-top:auto}
.corporation-member-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em}
.corporation-role-members ul,.corporation-unassigned-members ul{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.corporation-role-members a{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;background:#ffffff06;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--gold-2)}
.corporation-role-members .ui-icon{width:15px;height:15px}.corporation-unassigned{margin:10px 0 0;color:var(--muted);font-size:13px;font-style:italic}
.corporation-statute,.corporation-unassigned-members{margin-top:30px;padding:26px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.corporation-statute>.view{max-width:none;width:100%;margin:0;padding:0;background:none;border:0;box-shadow:none}
.corporation-ranks,.corporation-statute{scroll-margin-top:20px}
body.ui-page .group-identity-link{text-decoration:none;color:inherit}.group-identity-link:hover strong{color:var(--gold)}
@media(max-width:1100px){.corporation-rank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.corporation-rank-grid{grid-template-columns:1fr;gap:12px}.corporation-rank-card{padding:16px}.corporation-dossier-nav .action-btn,.corporation-dossier-nav button{font-size:12px;padding:9px;min-height:40px}body.ui-page.corporation-dossier .corporation-dossier-heading{min-height:210px;padding:22px 14px}body.ui-page .corporation-dossier-content{padding:20px 12px}.corporation-statute{padding:18px}}
.group-responsibles{display:grid;gap:10px}.group-responsible{display:flex;align-items:center;gap:10px;text-decoration:none}.group-responsible img,.group-city img{width:50px;height:50px;min-width:50px;border-radius:50%;object-fit:cover;border:1px solid var(--gold);background:var(--panel)}.group-responsible strong,.group-responsible small{display:block}.group-responsible small{font-size:11px;color:var(--muted)}.group-city{display:flex;align-items:center;gap:10px}.catalogue-market{background:var(--bg);color:var(--text)}.catalogue-market .catalogue-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:22px;padding:22px;align-items:start}.catalogue-market-tools{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.catalogue-market-tools label{font-size:12px;color:var(--muted)}.catalogue-market-tools input,.catalogue-market-tools select{display:block;margin-top:4px;min-height:40px}.catalogue-market-tools #catalogue-count{font-size:12px;color:var(--gold-2);padding:10px}.catalogue-market .catalogue-category{border:0;background:none;padding:0;margin-bottom:24px}.catalogue-market .catalogue-category h2{margin:0 0 14px;background:none;font:1.3rem Georgia,serif;color:var(--gold-2);padding:0 0 12px;border-bottom:1px solid var(--line)}.catalogue-market .catalogue-category ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:14px;max-height:none;overflow:visible;list-style:none;padding:0;margin:0}.catalogue-market .catalogue-category li{min-width:0;margin:0;padding:0}.catalogue-market .catalogue-category button{display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:0;width:100%;height:100%;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:linear-gradient(145deg,#1b3140,#0b1927);color:var(--text)}.catalogue-market .catalogue-category button:hover,.catalogue-market .catalogue-category button[aria-current]{border-color:var(--gold);box-shadow:0 8px 22px #0005;transform:translateY(-2px)}.catalogue-market .catalogue-category button>img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;max-width:none;border-radius:0;background:#081522}.catalogue-market .catalogue-category button>span{padding:12px}.catalogue-market .catalogue-category button>span:last-child{display:none}.catalogue-market .catalogue-category button strong{display:block;font:600 16px/1.4 Georgia,serif;color:var(--gold-2)}.catalogue-market .catalogue-category button small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.catalogue-quality{display:block;margin-top:8px;color:#ccad77;font-size:10px}.catalogue-market #corpo{position:sticky;top:12px;max-height:calc(100dvh - 30px);overflow:auto;min-width:0;border:1px solid var(--line);border-radius:12px;background:#102333}.catalogue-market .catalogue-detail{padding:18px}.catalogue-market .catalogue-detail h2{font:1.6rem Georgia,serif;color:var(--gold-2);margin:0 0 16px}.catalogue-market .equipment-detail{display:block;padding:0}.catalogue-market .equipment-detail p{margin:14px 0;overflow-wrap:anywhere}.catalogue-market .equipment-detail>img{display:block;width:100%;max-width:100%;height:auto;max-height:330px;object-fit:contain;border:1px solid var(--line);border-radius:8px;float:none;margin:0 0 16px}body.ui-page .catalogue-back{display:none}.catalogue-facts{font-size:12px}.material-market{max-width:1100px;margin:auto}.market-offer{margin:24px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.market-preview{display:flex;align-items:center;gap:18px;margin-bottom:20px}.market-preview img{width:120px;height:120px;object-fit:cover;border-radius:12px;border:1px solid var(--gold)}.market-offer .ui-form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.market-offer label{display:flex;flex-direction:column;gap:6px}.market-offer p{color:var(--muted);line-height:1.7}.market-offer #material-feedback{color:var(--gold-2)}
@media(max-width:760px){.catalogue-market .catalogue-layout{grid-template-columns:1fr;padding:12px}.catalogue-market .catalogue-category ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalogue-market #corpo{position:static;max-height:none}body.ui-page.catalogue-market .catalogue-back{display:block;margin-bottom:12px}.catalogue-market .catalogue-category button strong{font-size:14px}.catalogue-market-tools{width:100%}.catalogue-market-tools label{flex:1;min-width:140px}.catalogue-market-tools input,.catalogue-market-tools select{width:100%}.market-offer{margin:12px;padding:16px}.market-offer .ui-form-fields{grid-template-columns:1fr}.group-responsible img,.group-city img{width:50px;height:50px}}

/* Fixed columns protect names from the minimum width of administrative buttons. */
body.ui-page .group-table{table-layout:fixed;min-width:820px}body.ui-page .group-table td:first-child{width:26%}body.ui-page .group-table td:nth-child(2){width:28%}body.ui-page .group-table td:nth-child(3){width:16%}body.ui-page .group-table td:last-child{width:30%}.group-person-media{display:block;position:relative;flex:0 0 50px;width:50px;height:50px}.group-person-media .privacy-avatar-control{position:absolute;right:-3px;bottom:-3px;width:22px;height:22px;min-height:22px;padding:0!important;display:grid!important;place-items:center;border-radius:50%!important;font-size:12px!important}.group-responsible img[src*="/images/profiles/banners/"]{object-position:90% center}.group-responsible>span:last-child{min-width:0}.group-identity strong{overflow-wrap:normal}

body.ui-page .group-person-media img{object-fit:cover}body.ui-page .group-person-media img[src*="/images/profiles/banners/"]{object-position:90% center}

/* Identità dei gruppi e proprietà funzionali: componenti del tema centrale. */
.group-responsibles{display:flex;flex-flow:row wrap;align-items:flex-start;gap:16px}.group-responsible{flex:0 1 auto;max-width:180px}.group-identity .group-standard-thumb{width:66px;height:86px;object-fit:cover;border-radius:5px;border:1px solid var(--gold)}body.ui-page .group-table{min-width:940px}body.ui-page .group-table th:first-child{width:23%}body.ui-page .group-table th:nth-child(2){width:37%}body.ui-page .group-table th:nth-child(3){width:14%}body.ui-page .group-table th:last-child{width:26%}body.ui-page .group-person-media .privacy-avatar-control{max-width:22px;overflow:hidden}body.ui-page .group-city img{object-fit:cover}.group-media-editor,.item-rules-editor{max-width:1100px;margin:22px auto;padding:24px}.group-standard-preview{display:block;max-width:220px;max-height:250px;object-fit:contain}.group-banner-preview{display:block;width:100%;aspect-ratio:3;object-fit:cover;border:1px solid var(--gold);border-radius:12px}.item-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.item-editor-grid label{display:grid;gap:6px}.item-editor-grid input,.item-editor-grid select{width:100%}[data-item-console] form{display:grid;gap:12px}.group-branding-link{margin:12px}body.ui-page .ui-person img.group-rank-image{width:64px;height:64px;max-width:64px;max-height:64px;object-fit:contain;flex:0 0 64px}.rpg-chat-dialog fieldset{border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:16px}.rpg-chat-dialog fieldset label{display:block;margin-block:10px}.rpg-chat-dialog fieldset select{width:100%}body.ui-page.catalogue-market .catalogue-back{display:none}
@media(max-width:760px){.item-editor-grid{grid-template-columns:1fr}.group-media-editor,.item-rules-editor{margin:12px;padding:16px}.group-responsibles{gap:12px}.group-responsible{flex:0 1 calc(50% - 6px);max-width:none}.group-responsible img{width:50px;height:50px}.group-responsible strong{font-size:13px}.group-standard-preview{max-width:160px}body.ui-page.catalogue-market .catalogue-back{display:block}}

body.ui-page .group-table{min-width:820px}.group-responsibles{flex-wrap:nowrap;gap:12px}.group-responsible{flex:0 0 80px;max-width:80px;flex-direction:column;text-align:center;gap:6px}.group-city{white-space:nowrap}.group-table .ui-row-actions{gap:7px}.group-table .ui-row-actions .action-btn,.group-table .ui-row-actions button{width:40px;min-width:40px;height:40px;padding:9px;justify-content:center}.group-table .ui-row-actions .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.group-identity .group-standard-thumb{min-width:54px;object-fit:cover}.rpg-chat-dialog .modal-body{max-height:70dvh;overflow:auto}

.catalogue-market .ui-page-heading{gap:12px;padding:22px 24px}.catalogue-market .ui-page-heading .ui-heading-control{flex-basis:auto}.catalogue-market #controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.catalogue-market .catalogue-market-tools{margin-left:auto}.catalogue-market .catalogue-market-tools input{max-width:210px}.catalogue-market .equipment-detail{background:transparent;color:var(--text);border:0}.catalogue-market .equipment-detail h3{color:var(--gold-2)}

.catalogue-market #controls .catalogue-admin-icon{width:40px;min-width:40px;height:40px;padding:9px;display:inline-flex;align-items:center;justify-content:center}.catalogue-market #controls>label{font-size:12px}.catalogue-market #controls{margin:0}.catalogue-market .catalogue-back{display:none!important}@media(max-width:760px){.catalogue-market .catalogue-back{display:inline-flex!important}.catalogue-market .ui-page-heading{padding:16px 14px;gap:10px}}

@media(max-width:760px){body.ui-page .ui-person img.group-rank-image{width:56px;height:56px;max-width:56px;max-height:56px;flex-basis:56px}}
/* Live trade card, shared by system mail, inbox and dialogs. */
.commerce-thread-page{padding:12px;max-width:900px;margin:auto}.commerce-thread-card{padding:20px;margin:16px 0;border:1px solid var(--line);border-radius:14px;background:linear-gradient(140deg,var(--panel-2),var(--panel));color:var(--text);font:14px/1.6 var(--font-ui)}.commerce-thread-card header h2{margin:7px 0;color:var(--gold-2);font:26px/1.2 var(--font-body)}.commerce-state{display:inline-block;border:1px solid var(--line);border-radius:20px;padding:4px 10px;color:var(--gold-2);font-size:12px}.commerce-thread-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.commerce-thread-facts>div{min-width:0}.commerce-thread-facts dt{color:var(--muted);font-size:11px}.commerce-thread-facts dd{margin:0;color:var(--text);overflow-wrap:anywhere}.commerce-thread-facts .commerce-total{grid-column:1/-1;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.commerce-total dd{font-size:22px;color:var(--gold-2)}.commerce-payment-note{color:var(--muted);font-size:12px}.commerce-proposal{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:15px 0;border-top:1px solid var(--line)}.commerce-proposal label{display:grid;gap:5px;font-size:12px}.commerce-proposal input{width:100%}.commerce-proposal p{grid-column:1/-1;margin:0;color:var(--gold-2)}.commerce-proposal button{grid-column:1/-1}.commerce-thread-actions{display:flex;flex-wrap:wrap;gap:8px}.commerce-thread-actions .commerce-cancel{color:#e2a6aa;background:#622c3529}.commerce-thread-feedback{margin:12px 0 0;color:var(--gold-2);font-size:12px}.commerce-thread-feedback:empty{display:none}.ui-frame-notice:has(iframe[title="Trattativa commerciale"]){height:min(830px,94dvh);width:min(720px,96vw)}.ui-frame-notice iframe[title="Trattativa commerciale"]{width:100%;min-height:360px;border:0;flex:1}.ui-frame-notice:has(iframe[title="Trattativa commerciale"]) .modal-body{display:flex;flex-direction:column;min-height:0;flex:1;padding:0}.ui-frame-notice:has(iframe[title="Trattativa commerciale"]) .ui-notice-message{padding:12px 20px;margin:0;font-size:12px}@media(max-width:520px){.commerce-thread-card{padding:14px;margin:8px 0}.commerce-thread-facts{gap:9px}.commerce-thread-card header h2{font-size:22px}.commerce-thread-actions>button{flex:1 1 130px}.commerce-thread-page{padding:5px}}

/* Corporation stock uses the same illustrated slots and red counters as the bag. */
.commerce-material-scroll{overflow-x:auto;padding:8px 3px 14px;max-width:100%;scrollbar-width:thin;scrollbar-color:var(--gold) transparent}.commerce-material-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:12px;align-items:start}.commerce-material{min-width:0;margin:0}.commerce-material .armory-item{width:100%;box-sizing:border-box;aspect-ratio:1;overflow:visible}.commerce-material .armory-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.commerce-material .armory-quantity{font-size:11px!important;width:auto!important;min-width:30px!important;padding:0 4px!important;box-sizing:border-box}.commerce-material figcaption{margin-top:7px;text-align:center;color:var(--text);font:12px/1.35 var(--font-ui);overflow-wrap:anywhere}.commerce-delivery-item{display:flex;align-items:center;gap:12px;min-width:170px}.commerce-delivery-item img{width:76px;height:76px;flex:0 0 76px;object-fit:cover;border:1px solid #b6976055;border-radius:8px}.commerce-delivery-item strong{font-weight:600}.commerce-material-scroll:focus-visible{outline:1px solid var(--gold);outline-offset:2px}

/* Current transaction state: the same visual language in mail, notices and deal cards. */
.trade-status{display:block;width:fit-content;max-width:100%;margin-top:7px;padding:6px 10px;border:1px solid var(--trade-edge,#778595);border-radius:8px;background:var(--trade-bg,#192b3a);color:var(--trade-text,#e2e8ee);font:12px/1.5 var(--font-ui);white-space:normal}.trade-status strong{font-weight:600}.trade-action,.trade-row-action{--trade-bg:#463519;--trade-edge:#b48b38;--trade-text:#ffe3a4}.trade-waiting,.trade-row-waiting{--trade-bg:#18364b;--trade-edge:#487e9d;--trade-text:#c5e7ff}.trade-delivery,.trade-row-delivery{--trade-bg:#362847;--trade-edge:#9474b0;--trade-text:#ecdcff}.trade-completed,.trade-row-completed{--trade-bg:#193d30;--trade-edge:#4f9870;--trade-text:#d0f2d9}.trade-cancelled,.trade-row-cancelled{--trade-bg:#43262c;--trade-edge:#a55d69;--trade-text:#ffdae0}.activity-notice[class*=trade-row-],.ui-data-table tr[class*=trade-row-]>td{background:color-mix(in srgb,var(--trade-bg) 55%,var(--panel))}.commerce-thread-heading{display:flex;gap:18px;align-items:center}.commerce-thread-heading>div{min-width:0}.commerce-thread-image{width:112px;height:112px;object-fit:cover;border-radius:12px;border:1px solid var(--line);flex:none}.mail-filters{padding:16px;background:var(--panel);border:1px solid var(--line);margin:12px 0;border-radius:12px;align-items:end}.mail-filters label{display:grid;gap:5px;font:13px var(--font-ui);flex:1 1 180px}.mail-filters input,.mail-filters select{width:100%}.mail-filters #mail-filter-count{font:12px var(--font-ui);color:var(--muted)}@media(max-width:520px){.commerce-thread-heading{gap:12px;align-items:flex-start}.commerce-thread-image{width:76px;height:76px}.commerce-thread-heading h2{font-size:20px}.mail-filters{padding:10px}}
body.ui-page .ui-data-table tbody tr[class*=trade-row-]>td{color:var(--text)}body.ui-page .ui-data-table tbody tr[class*=trade-row-]>td a{color:var(--gold-2)}body.ui-page .ui-data-table tbody .trade-status strong{color:inherit}body.ui-page .ui-data-table tbody tr[class*=trade-row-] .ui-cell-meta{color:var(--muted)}
.ui-data-table tr[class*=trade-row-]{--reading-ink:var(--text);--reading-stripe:transparent;--reading-hover:var(--panel-2)}

/* === registry === */
/* Registri pubblici: schede di gruppi e città, con azioni reali condivise. */
.registry{padding:20px 24px;min-width:0;font-family:var(--font-ui)}
.registry-totals,.registry-overview{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;color:var(--muted);font:12px/1.5 var(--font-ui)}
.registry-totals>span{padding:9px 14px;border:1px solid var(--line);border-radius:12px;background:#071724b3}
.registry-totals strong{display:block;color:var(--gold-2);font:26px Georgia,serif}
.registry-overview{padding:14px 18px;margin-bottom:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.registry-overview>span{display:inline-flex;align-items:center;gap:8px}.registry-overview .ui-icon{color:var(--gold)}
.registry-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.registry-filters,.registry-view{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.registry-filters button,.registry-view button{margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:22px;background:var(--panel);color:var(--muted);font:12px var(--font-ui)}
.registry-filters button[aria-pressed=true],.registry-view button[aria-pressed=true]{background:#273749;color:var(--gold-2);border-color:var(--gold)}
.registry-search{display:flex;align-items:center;gap:9px;flex:0 1 320px;min-width:180px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--gold)}
body.ui-page .registry-search input{width:100%;min-width:0;margin:0;padding:11px 0;border:0;background:transparent;box-shadow:none;font:12px var(--font-ui);color:var(--text)}
.registry-search:focus-within{outline:1px solid var(--gold)}.registry-count{margin:0 0 14px;color:var(--muted);font:12px var(--font-ui)}
.registry-groups{display:grid;gap:16px}.registry-group{border:1px solid #344657;border-left:3px solid #b89865;border-radius:17px;background:linear-gradient(120deg,#14283b,#0b1b2b);overflow:hidden;box-shadow:0 8px 24px #0002;transition:border-color .18s}
.registry-group:hover,.registry-city:hover{border-color:#b89764}
.registry-group-top{display:flex;align-items:center;gap:20px;padding:18px 22px;border-bottom:1px solid var(--line)}
.registry-standard{display:grid;place-items:center;flex:0 0 94px;width:94px;height:86px;overflow:hidden;border:1px solid #a787526b;border-radius:10px;background:var(--panel)}
.registry-standard img{width:100%;height:100%;object-fit:cover}.registry-standard .ui-icon{width:40px;height:40px;color:var(--gold)}
.registry-group-title{flex:1;min-width:0}.registry-group-title>.ui-eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--muted)}
.registry-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin:5px 0 8px}
.registry-title-line h2{margin:0;min-width:0;font:normal clamp(21px,2vw,29px)/1.2 Georgia,serif;color:var(--gold-2);overflow-wrap:anywhere}
.registry-title-line h2>a{color:inherit;text-decoration:none}.registry-title-line h2>a:hover{text-decoration:underline;text-underline-offset:4px}
.registry-title-line form{margin:0}.registry-title-line>.registry-membership{font:11px var(--font-ui);color:#bed8c2;border:1px solid #5c8b6955;border-radius:20px;padding:6px 10px}
.registry-place{display:flex;align-items:center;gap:8px;font:12px var(--font-ui);color:var(--muted)}.registry-place img{width:28px;height:28px;border:1px solid var(--line);border-radius:50%;object-fit:cover}.registry-place a{color:var(--muted)}
.registry-group-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:start;gap:22px;padding:16px 22px}
.registry :is(.registry-responsibles,.registry-quick,.registry-city-government)>h3{margin:0 0 10px;font:600 10px/1.4 var(--font-ui);letter-spacing:1.4px;text-transform:uppercase;color:#9cafc2}
.registry .group-responsibles{display:flex;flex-wrap:wrap;align-items:start;gap:14px 20px}
.registry .group-responsible{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;color:var(--text);text-decoration:none}
.registry .group-responsible strong{display:block;font:600 13px/1.4 var(--font-ui);color:#e8e0d2;overflow-wrap:anywhere}.registry .group-responsible small{display:block;margin-top:3px;color:var(--muted);font:11px/1.4 var(--font-ui)}
.registry .group-person-media{position:relative;display:block;width:50px;height:50px;flex:0 0 50px}.registry .group-person-media>img{width:50px;height:50px;max-width:none;max-height:none;border:1px solid #bd985e;border-radius:50%;object-fit:cover;object-position:90% center}
.registry .character-markers{margin:4px 0 0;gap:5px}.registry .character-markers .character-race,.registry .character-markers .character-race img{width:23px;height:23px;min-width:23px;max-width:23px}
.registry-quick{min-width:0;max-width:420px}.registry-actions{display:flex;flex-wrap:wrap;gap:7px}
body.ui-page .registry-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 10px;margin:0;border:1px solid var(--registry-edge,#59697a);border-radius:9px;background:var(--registry-bg,#172b3d);color:var(--registry-ink,#e4d4b5);text-decoration:none;font:600 11px/1.4 var(--font-ui);box-shadow:none;white-space:normal;text-align:center}
.registry-action .ui-icon{width:16px;height:16px;flex:none}.registry-action:hover{filter:brightness(1.18)}.registry-action:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}
.registry-action-statute{--registry-bg:#352d20;--registry-edge:#95794b;--registry-ink:#f1d7a0}
.registry-action-catalogue{--registry-bg:#183a39;--registry-edge:#4e8d84;--registry-ink:#bde4da}
.registry-action-members{--registry-bg:#1a3048;--registry-edge:#537ca3;--registry-ink:#cae0f4}
.registry-action-manage{--registry-bg:#30273f;--registry-edge:#8a70a9;--registry-ink:#e2d1f3}
.registry-action-trade{--registry-bg:#3e2b20;--registry-edge:#a47a50;--registry-ink:#f0ceaa}
.registry-action-art{--registry-bg:#3b2431;--registry-edge:#a06b86;--registry-ink:#edc6da}
.registry-action-join{--registry-bg:#26442d;--registry-edge:#729d6e;--registry-ink:#e0efd2}
.registry-action-assembly{--registry-bg:#233b40;--registry-edge:#648d9b;--registry-ink:#d0e8ee}
.registry-action-external{--registry-bg:#2b3540;--registry-edge:#6c8298;--registry-ink:#d5dfe9}
.registry-membership{color:#bdd8c2;font:11px var(--font-ui)}
.registry-cities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.registry-city{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #344657;border-radius:17px;background:linear-gradient(#10243a,#0a192a);box-shadow:0 10px 26px #0003;transition:border-color .18s}
.registry-city-cover{position:relative;height:230px;isolation:isolate;background:#15273a}.registry-city-cover>a{display:block;height:100%}.registry-city-cover>a>img{display:block;width:100%;height:100%;object-fit:cover}
.registry-city-cover:after{position:absolute;inset:0;z-index:0;content:'';background:linear-gradient(0deg,#0b1c2ef5,transparent 80%);pointer-events:none}
.registry-city-number,.registry-city-badge{position:absolute;top:14px;z-index:1;padding:6px 10px;border:1px solid #c09c645c;border-radius:20px;background:#0b1928de;color:var(--gold-2);font:11px var(--font-ui)}.registry-city-number{left:14px}.registry-city-badge{right:14px}
.registry-city-label{position:absolute;bottom:14px;left:18px;right:18px;z-index:1}.registry-city-label>small{font:10px var(--font-ui);text-transform:uppercase;letter-spacing:1.5px;color:var(--gold)}
.registry-city-label .registry-title-line{margin:5px 0 0;gap:9px}.registry-city-label h2{font:32px Georgia,serif;color:#f7e5c5}.registry-city-label .registry-action{font-size:10px;padding:7px 8px;min-height:32px}
.registry-city-body{display:flex;flex-direction:column;flex:1;min-width:0;padding:18px}
.registry-city-lore{margin:0 0 14px;color:#b9c6d3;font:14px/1.6 Georgia,serif}.registry-city-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 0 16px;border-bottom:1px solid var(--line)}
.registry-city-metrics span{color:var(--muted);font:10px var(--font-ui);text-transform:uppercase;letter-spacing:.7px}.registry-city-metrics strong{display:block;margin-bottom:4px;color:var(--gold-2);font:24px Georgia,serif}
.registry-city-government{padding:16px 0}.registry-city-government>p{color:var(--muted);font:12px var(--font-ui);margin:0}
.registry-city-body>.registry-quick{margin-top:auto;max-width:none}.registry-city .registry-actions>*{flex:1 1 auto}
.registry-list-view{grid-template-columns:1fr}.registry-list-view .registry-city{display:grid;grid-template-columns:minmax(220px,30%) minmax(0,1fr)}.registry-list-view .registry-city-cover{height:100%;min-height:250px}
.registry [data-registry-item][hidden],.registry [hidden]{display:none!important}
@media(max-width:1200px){.registry-cities{grid-template-columns:repeat(2,minmax(0,1fr))}.registry-cities.registry-list-view{grid-template-columns:1fr}.registry-group-bottom{grid-template-columns:1fr}.registry-quick{max-width:none}}
@media(max-width:650px){.registry{padding:16px 14px}.registry-toolbar{align-items:stretch}.registry-search{flex:1 1 100%;min-width:0;order:-1}.registry-cities{grid-template-columns:1fr}.registry-group-top{gap:12px;padding:16px 14px;align-items:flex-start}.registry-standard{width:66px;height:70px;flex-basis:66px}.registry-title-line h2{font-size:22px}.registry-group-bottom{padding:14px;gap:18px}.registry-title-line{gap:10px}.registry-actions>*{flex:1 1 auto}.registry-city-cover{height:230px}.registry-list-view .registry-city{display:flex}.registry-list-view .registry-city-cover{height:230px;min-height:0}.registry-overview{gap:10px 18px;padding:12px}.registry-totals{gap:8px}.registry-totals>span{padding:7px 10px}.registry-totals strong{font-size:21px}.registry-view{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.registry-group,.registry-city{transition:none}}
.registry .group-responsible{flex:0 1 auto;flex-direction:row;text-align:left;min-width:140px;max-width:240px}
.registry .group-responsible>span:last-child{min-width:0}
body.ui-page .registry .registry-search input[type=search]{margin:0;padding:10px 0;border:0;border-radius:0;background:transparent;box-shadow:none;font:12px var(--font-ui)}
/* Campo nativo del tema: un solo bordo, con il simbolo di ricerca accanto. */
.registry-search{border:0;background:none;padding:0;gap:10px}
body.ui-page .registry .registry-search input[type=search]{padding:10px 12px}
body.ui-page .registry-action:disabled{opacity:.5;cursor:not-allowed;filter:none}

/* === hierarchy === */
/* One hierarchy component, reusing the palette and portrait cards of the lineage tree. */
.hierarchy-chart{padding:24px;min-width:0;color:var(--text);background:radial-gradient(ellipse at 50% 0,#182d3d66,transparent 60%),#081923;border:1px solid var(--line);border-radius:14px;margin:18px 0;font:14px/1.6 var(--font-ui)}.hierarchy-chart-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.hierarchy-chart-intro h2{margin:4px 0 8px;font:28px Georgia,serif;color:var(--gold-2)}.hierarchy-chart-intro p{margin:0;max-width:620px;color:var(--muted);font-size:12px}.hierarchy-counts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto;max-width:240px}.hierarchy-counts span{padding:5px 10px;border:1px solid var(--line);border-radius:20px;color:var(--muted);font-size:11px}.hierarchy-counts strong{color:var(--gold-2)}
.hierarchy-tiers{display:flex;flex-direction:column;align-items:stretch;gap:26px}.hierarchy-tier{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:16px;position:relative}.hierarchy-tier+.hierarchy-tier:before{content:'';position:absolute;top:-26px;left:50%;height:26px;border-left:1px solid #bd985eaa}.hierarchy-general{position:relative;margin:0 auto 26px}.hierarchy-role{flex:1 1 240px;min-width:0;max-width:480px;position:relative;border:1px solid #b9975b70;border-radius:12px;background:linear-gradient(150deg,#172b3c,#0b1c2a);box-shadow:0 8px 22px #0002;overflow:hidden}.hierarchy-role>header{text-align:center;padding:20px 16px 14px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 50% 0,#c29a5419,transparent 75%)}.hierarchy-role-icon{display:block;width:80px;height:80px;max-width:none;max-height:none;object-fit:contain;margin:0 auto 12px;border:0;border-radius:50%}.hierarchy-role h3{color:var(--gold-2);font:600 20px/1.25 Georgia,serif;margin:0 0 10px;overflow-wrap:anywhere}.hierarchy-role-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}.hierarchy-role-meta span{font:10px/1.5 var(--font-ui);padding:3px 7px;border:1px solid #c1a16d33;border-radius:12px;color:#b9c3cf}.hierarchy-role-description{margin:12px 16px;color:var(--muted);font-size:11px}.hierarchy-role-description summary{cursor:pointer;color:var(--gold)}.hierarchy-role-description>div{padding-top:8px;overflow-wrap:anywhere}.hierarchy-role-description img{max-width:100%;height:auto}.hierarchy-role-people{display:flex;align-items:stretch;justify-content:center;flex-wrap:wrap;gap:12px;padding:16px;min-width:0}.hierarchy-vacant{margin:5px 0;padding:10px 14px;border:1px dashed #bf9a5d55;border-radius:8px;color:var(--muted);font-size:11px;text-align:center;width:100%;box-sizing:border-box}.hierarchy-vacant:before{content:'◇';margin-right:7px;color:var(--gold)}
body.ui-page .hierarchy-member.lineage-node{flex:1 1 190px;min-width:0;max-width:250px;width:auto;padding:14px 10px;gap:8px;background:linear-gradient(145deg,#203446b0,#0a192580);border-color:#a99b7c50;box-sizing:border-box}.hierarchy-member .hierarchy-portrait-link{display:block;width:84px;height:84px;flex:0 0 auto}.hierarchy-member img.hierarchy-portrait{display:block;width:82px;height:82px;max-width:none;max-height:none;box-sizing:border-box;border:1px solid #caa96a;border-radius:50%;padding:3px;object-fit:cover;background:var(--bg)}.hierarchy-portrait[src*="/images/profiles/banners/"]{object-position:90% center}.hierarchy-member .hierarchy-member-name{display:block;font:600 17px/1.4 Georgia,serif;color:var(--gold-2);width:100%;overflow-wrap:anywhere}.hierarchy-member-office{color:var(--muted);font:11px/1.5 var(--font-ui)}.hierarchy-member .character-markers{display:flex;justify-content:center;flex-wrap:wrap;gap:5px;margin:7px 0 0;white-space:normal}.hierarchy-member .character-race{font-size:9px}.hierarchy-member .character-markers .character-race img{width:16px;height:16px;min-width:16px}.hierarchy-member .character-sex-icon{width:20px;height:20px}
.hierarchy-band{position:relative;padding-top:24px;margin-top:26px}.hierarchy-band:before{content:'';position:absolute;top:-26px;left:50%;height:50px;border-left:1px solid #bd985eaa}.hierarchy-band-label{position:relative;text-align:center;margin:0 0 26px;border-top:1px solid #bd985e88}.hierarchy-band-label span{display:inline-block;position:relative;top:-12px;padding:2px 12px;background:#0a1c28;color:var(--gold);border:1px solid var(--line);border-radius:20px;font:11px/1.5 var(--font-ui)}.hierarchy-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}.hierarchy-band[data-branch-columns="1"] .hierarchy-branches{grid-template-columns:minmax(0,480px);justify-content:center}.hierarchy-band[data-branch-columns="2"] .hierarchy-branches{grid-template-columns:repeat(2,minmax(0,1fr))}.hierarchy-branch{min-width:0;position:relative}.hierarchy-branch:before{content:'';position:absolute;top:-26px;left:50%;height:26px;border-left:1px solid #bd985eaa}.hierarchy-branch-heading{position:relative;text-align:center;padding:10px 8px 16px;min-height:72px;box-sizing:border-box}.hierarchy-branch-heading h2{font:600 17px/1.4 Georgia,serif;color:var(--gold-2);margin:6px 0 0;overflow-wrap:anywhere}.hierarchy-branch-heading>.ui-icon{width:22px;height:22px;color:var(--gold)}.hierarchy-branch .hierarchy-role{max-width:none;flex-basis:100%}.hierarchy-branch .hierarchy-tier{gap:14px}.hierarchy-unassigned{margin-top:28px;padding-top:20px;border-top:1px dashed var(--line)}.hierarchy-unassigned>h2{font:20px Georgia,serif;color:var(--gold-2)}.hierarchy-unassigned>.hierarchy-role-people{padding-inline:0}.corporation-ranks>.hierarchy-chart{margin-top:0}
@media(max-width:1100px){.hierarchy-chart{padding:18px}.hierarchy-chart-intro{align-items:flex-start;flex-direction:column;gap:12px}.hierarchy-counts{max-width:none;justify-content:flex-start}.hierarchy-branches{gap:14px}.hierarchy-role>header{padding:16px 10px 12px}.hierarchy-role-people{padding:12px}}
@media(max-width:760px){.hierarchy-chart{padding:16px 12px;margin:12px 0}.hierarchy-chart-intro{margin-bottom:20px}.hierarchy-chart-intro h2{font-size:24px}.hierarchy-chart .hierarchy-branches,.hierarchy-chart .hierarchy-band[data-branch-columns] .hierarchy-branches{grid-template-columns:minmax(0,1fr);gap:24px}.hierarchy-branch{padding-left:13px;border-left:1px solid #b7955b66}.hierarchy-branch:before{left:-1px;top:0;width:14px;height:1px;border-top:1px solid #b7955b88;border-left:0}.hierarchy-branch-heading{min-height:0;text-align:left;padding:4px 4px 14px;display:flex;align-items:center;gap:10px}.hierarchy-branch-heading h2{margin:0;font-size:18px}.hierarchy-role-icon{width:76px;height:76px}.hierarchy-role{max-width:100%}.hierarchy-tier{gap:12px}.hierarchy-member img.hierarchy-portrait{width:78px;height:78px}.hierarchy-member .hierarchy-portrait-link{width:80px;height:80px}.hierarchy-member .hierarchy-member-name{font-size:17px}.hierarchy-role h3{font-size:20px}.hierarchy-band-label span{font-size:10px}.hierarchy-band:before{height:40px}.hierarchy-role-people{padding:12px}}
@media(prefers-reduced-motion:no-preference){.hierarchy-role,.hierarchy-member{transition:border-color .2s,box-shadow .2s}.hierarchy-role:hover{border-color:#d4b57f;box-shadow:0 8px 24px #0004}}

.hierarchy-roster-label{flex:0 0 100%;text-align:center;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font:10px var(--font-ui)}.hierarchy-extra-members{width:100%;text-align:center}.hierarchy-extra-members>summary{cursor:pointer;color:var(--gold-2);padding:10px;border:1px solid var(--line);border-radius:8px;font:12px var(--font-ui);background:var(--panel)}.hierarchy-extra-members>.hierarchy-role-people{padding:12px 0 0}
.hierarchy-chart-intro+.hierarchy-band{margin-top:0;padding-top:0}.hierarchy-chart-intro+.hierarchy-band:before,.hierarchy-chart-intro+.hierarchy-band>.hierarchy-band-label,.hierarchy-chart-intro+.hierarchy-band .hierarchy-branch:before{display:none}.hierarchy-chart-intro+.hierarchy-band .hierarchy-branch-heading{min-height:58px}
.hierarchy-role-icon.is-legacy{box-sizing:border-box;padding:19px;border:1px solid #b9975b70;background:radial-gradient(circle,#1f3545,#091923);box-shadow:0 0 0 4px #b9975b08}

/* === mobile === */
/* Mobile is one presentation layer over the complete game, not a reduced client. */
.mobile-game-dock,.mobile-drawer-heading,.mobile-shell-backdrop,.mobile-composer-tools{display:none}
.mobile-table-scroll{max-width:100%;min-width:0;overflow:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
body[data-view=map] .map-native{font:700 13px var(--font-ui)}
body[data-view=map] .map-scale{font:11px var(--font-ui);color:var(--gold-2);min-width:33px;text-align:center}
body[data-view=map] .map-minimap{position:absolute;left:14px;bottom:14px;width:132px;height:88px;padding:3px;border:1px solid var(--gold);border-radius:8px;background:var(--panel);box-shadow:0 4px 16px #0009;z-index:4;pointer-events:none}
body[data-view=map] .map-minimap svg{display:block;width:100%;height:100%;border-radius:5px}
body[data-view=map] .map-minimap-view{fill:#e7c67a15;stroke:#f4d99b;stroke-width:14}
body[data-view=map] .map-minimap-toggle{pointer-events:all;position:absolute;left:0;top:-25px;display:grid;place-items:center;width:28px;height:26px;min-height:26px;padding:0;font:18px var(--font-ui);background:var(--panel);border:1px solid var(--gold);border-radius:6px 6px 0 0}
body[data-view=map] .map-minimap.is-collapsed{width:28px;height:0;border:0;padding:0}
body[data-view=map] .map-minimap.is-collapsed svg{display:none}
body[data-view=map] .map-gesture-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);padding:6px 10px;margin:0;max-width:calc(100% - 175px);border:1px solid var(--line);border-radius:7px;background:#071522d9;font:11px/1.4 var(--font-ui);color:var(--gold-2);pointer-events:none;text-align:center;z-index:3}
body[data-view=map] .map-atlas>svg.is-pannable{cursor:grab;user-select:none;-webkit-user-select:none}
body[data-view=map] .map-atlas>svg.is-dragging,body[data-view=map] .map-atlas>svg.is-dragging *{cursor:grabbing}
.mobile-chat-tools-dialog:not([open]){display:none}
@media(max-width:900px),(max-width:1100px) and (max-height:500px){
 html{scroll-padding-bottom:80px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
 body[data-view=main]{height:var(--game-viewport-height,100dvh);min-height:0;padding:0;overscroll-behavior:none}
 body[data-view=main] .game-shell{display:flex;flex-direction:column;height:100%;min-height:0}
 body[data-view=main] .game-content,body[data-view=main].has-focused-chat .game-content{flex:1;min-height:0;height:auto;padding:0;gap:0;display:block;overflow:hidden}
 body[data-view=main] .main-col{height:100%}
 body[data-view=main] .map-area,body[data-view=main].has-focused-chat .map-area{margin:0;border:0;border-radius:0;min-height:0}
 body[data-view=main] .topbar,body[data-view=main].has-focused-chat:not(.mobile-game-menu) .topbar{display:none}
 body[data-view=main].mobile-game-menu .topbar,body[data-view=main].has-focused-chat.mobile-game-menu .topbar{display:flex;flex-direction:column;align-items:stretch;gap:12px;position:absolute;inset:8px 8px 8px;max-height:none;overflow:auto;z-index:110;padding:14px;border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}
 body[data-view=main] .mobile-drawer-heading{display:flex;gap:10px;align-items:center;justify-content:space-between;color:var(--gold-2);font:600 17px var(--font-body);padding:0 0 12px;border-bottom:1px solid var(--line);flex:none}
 body[data-view=main] .mobile-drawer-heading button{display:grid;place-items:center;min-height:44px;min-width:44px;padding:10px}
 body[data-view=main] .mobile-drawer-heading .ui-icon{width:21px;height:21px}
 body[data-view=main] .game-navigation{order:0;flex:1;flex-basis:auto;min-height:0;overflow:auto}
 body[data-view=main] .game-navigation .tabs,body[data-view=main].mobile-game-menu .game-navigation .tabs{display:grid;grid-template-columns:minmax(0,1fr);overflow:visible;gap:6px;padding:0}
 body[data-view=main] .game-navigation .tab-btn{min-height:47px;width:100%;font:15px var(--font-ui);text-align:left;justify-content:flex-start;padding:8px 12px;display:flex;flex-direction:row;gap:12px;background:#1024389c;border:1px solid var(--line)}
 body[data-view=main] .game-navigation .tab{display:block;max-width:none;min-width:0;}
 body[data-view=main] .game-navigation .nav-medallion{width:44px;height:44px;}
 body[data-view=main] .game-navigation .menu-text{font:15px/1.3 Georgia,serif;}
 body[data-view=main] .game-navigation .tab-btn:is(:hover,.active,[aria-expanded=true]){transform:none;}
 body[data-view=main] .game-navigation .tab-list{position:static;width:100%;max-width:100%;max-height:none;min-width:0;margin:5px 0;padding:5px;border-radius:9px;box-shadow:none;background:var(--bg)}
 body[data-view=main] .tab-list a{min-height:44px;padding:10px 13px;font:14px/1.6 var(--font-ui)}
 body[data-view=main] .top-actions{margin:0;justify-content:space-between;order:2;padding-top:10px;border-top:1px solid var(--line)}
 body[data-view=main] .top-actions :is(a,button){min-width:44px;min-height:44px}
 body[data-view=main] .mobile-return-chat{display:none!important}
 body[data-view=main] .mobile-game-dock{flex:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:4px max(5px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left));background:var(--topbar-background);border-top:1px solid var(--line);z-index:120;min-height:58px}
 body[data-view=main] .mobile-dock-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid transparent;border-radius:9px;padding:5px 2px;min-width:0;min-height:48px;background:transparent;color:var(--muted);font:11px/1.2 var(--font-ui);box-shadow:none}
 body[data-view=main] .mobile-dock-item .ui-icon{width:20px;height:20px;margin:0;color:var(--gold)}
 body[data-view=main] .mobile-dock-item.is-active{background:var(--hover);color:var(--gold-2);border-color:var(--line);box-shadow:inset 0 -2px var(--gold)}
 body[data-view=main] .mobile-shell-backdrop{display:block;position:absolute;inset:0;z-index:100;border:0;border-radius:0;padding:0;background:#020b14b8;backdrop-filter:blur(4px)}
 body[data-view=main] .sidebar.right-col,body[data-view=main].has-focused-chat .sidebar.right-col{display:flex;position:absolute;inset:8px 8px 8px auto;width:min(400px,calc(100% - 16px));height:auto;padding:12px;z-index:110;overscroll-behavior:contain;visibility:hidden;transform:translateX(calc(100% + 24px));background:var(--panel);border:1px solid var(--line);border-radius:14px}
 body[data-view=main].mobile-world-open .sidebar.right-col.active{visibility:visible;transform:translateX(0)}
 body[data-view=main] .sidebar .mobile-drawer-heading{position:sticky;top:-12px;padding:10px 0;background:var(--panel);z-index:3}
 body[data-view=main] .workspace{height:100%;overscroll-behavior:none}
 body[data-view=main] .workspace-header{min-height:50px;padding:5px 10px}
 body[data-view=main] .workspace-header button{min-height:40px}
 body[data-view=main].mobile-keyboard-open .mobile-game-dock{display:none}
 body[data-view=map] .map-toolbar{top:max(8px,env(safe-area-inset-top));right:auto;gap:4px;padding:5px;max-width:calc(100% - 16px)}
 body[data-view=map] .map-toolbar button,body[data-view=map] .map-tool-link{width:40px;height:40px;min-height:40px;padding:9px}
 body[data-view=map] .map-atmosphere-status{flex-basis:100%;font-size:11px;padding:0 6px}
 body[data-view=map] .map-destinations summary{min-height:40px;padding:11px 6px}
 body[data-view=map] .map-destinations>a{min-height:44px}
 body[data-view=map] .map-destinations[open]{position:absolute;top:100%;right:0;min-width:190px;max-height:min(420px,70dvh);overflow:auto;box-shadow:var(--shadow);border:1px solid var(--line)}
 body[data-view=map] .map-minimap{width:108px;height:72px;left:max(10px,env(safe-area-inset-left));bottom:14px}
 body[data-view=map] .map-gesture-hint{left:auto;right:10px;transform:none;max-width:calc(100% - 135px);bottom:14px}
 body.ui-page{overflow-x:clip;overflow-wrap:anywhere}
 body.ui-page :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px;max-width:100%}
 body.ui-page :is(button,.action-btn,.ui-action){min-height:42px}
 body.ui-page :is(.ui-tablist,.rpg-tabs,.profile-editor-tabs){overflow-x:auto;flex-wrap:nowrap;max-width:100%;overscroll-behavior-inline:contain;scrollbar-width:thin}
 body.ui-page [role=tab]{flex:none;min-height:44px}
 body.ui-page :is(dialog,.modal-window){max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px);min-width:0;resize:none}
 body.ui-page :is(.ui-table-scroll,.mobile-table-scroll){scrollbar-width:thin}
 body.ui-page :is(.ui-table-scroll,.mobile-table-scroll):focus-visible{outline-offset:-3px}
 body.ui-page .ui-page-heading{min-width:0}
 body.ui-page .ui-page-heading .ui-heading-controls{min-width:0;max-width:100%}
}
@media(max-width:900px),(max-width:1100px) and (max-height:500px){
 body[data-view=chat-index]{height:100dvh;min-height:0;overscroll-behavior:none}
 body[data-view=chat-index] .scene-toolbar{min-height:60px;padding:6px 9px}
 body[data-view=chat-index] .scene-mobile-menu{min-width:44px;min-height:44px}
 body[data-view=chat-index] .scene-id h1{font-size:15px;line-height:1.25}
 body[data-view=chat-index] #chatbox{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:10px 7px}
 body[data-view=chat-index] .chat-message{grid-template-columns:48px minmax(0,1fr);gap:9px;padding:10px 2px;min-height:0}
 body[data-view=chat-index] .chat-prose{font-size:var(--chat-font,16px);line-height:1.7}
 body[data-view=chat-index] #chatbox .chat-master{margin:10px 2px 10px 59px;font-size:15px}
 body[data-view=chat-index].chat-noport #chatbox .chat-master{margin-left:2px}
 body[data-view=chat-index] .chat-meta .chat-persona{font-size:15px}
 body[data-view=chat-index] .composer{display:grid;grid-template-columns:80px minmax(0,1fr) 44px 68px;gap:5px;padding:7px 7px max(7px,env(safe-area-inset-bottom));min-height:0}
 body[data-view=chat-index] .composer #comodo{grid-column:1/-1;grid-row:1;min-height:44px;max-height:120px;height:44px;font-size:16px;padding:10px;line-height:1.4}
 body[data-view=chat-index] .composer :is(#messageType,#ai-chat-npc){max-width:100%;height:44px;min-height:44px;padding:7px 5px;font:12px var(--font-ui);text-overflow:ellipsis}
 body[data-view=chat-index] .composer .mobile-composer-tools{display:grid;place-items:center;grid-column:3;grid-row:2;min-height:44px;width:44px;padding:10px}
 body[data-view=chat-index] .composer #sendBtn{grid-column:4;grid-row:2;min-height:44px;width:100%;font-size:14px}
 body[data-view=chat-index] .composer #sendBtn .ui-icon{width:17px;height:17px;margin:0 4px 0 0}
 .mobile-chat-tools-dialog{margin:auto auto 8px;width:calc(100% - 16px);max-width:480px;padding:0;border:1px solid var(--gold);border-radius:16px;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}
 .mobile-chat-tools-dialog::backdrop{background:#020c17bb;backdrop-filter:blur(3px)}
 .mobile-chat-tools-dialog>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--line)}
 .mobile-chat-tools-dialog h2{margin:0;font:20px var(--font-body)}
 .mobile-chat-tools-dialog header button{width:44px;height:44px;padding:10px}
 .mobile-chat-tools-body{display:grid;grid-template-columns:1fr;gap:9px;padding:14px;max-height:65dvh;overflow:auto}
 .mobile-chat-tools-body :is(button,select){display:flex;align-items:center;gap:10px;min-height:46px;width:100%;font-size:16px;padding:10px 12px}
 .mobile-chat-tools-body .ui-icon{width:21px;height:21px;flex:none}
 body[data-view=chat-index] #ai-chat-status{font:11px/1.4 var(--font-ui);padding-inline:8px;max-height:32px;overflow:auto}
 body[data-view=chat-index] .privacy-ai-disclosure{font-size:10px;padding:3px 8px;line-height:1.35}
 body[data-view=chat-index] .chat-drawer{position:fixed;inset:0;max-height:100%;border-radius:0}
 body[data-view=chat-index] .chat-drawer-head{padding:10px 13px}
 body[data-view=chat-index] .chat-drawer-head button{width:44px;height:44px}
 body[data-view=chat-index] .scene-mobile-links button{min-height:46px}
 body.ui-page .ui-data-list .ui-data-row{min-width:0;grid-template-columns:minmax(0,1fr) 45px 45px}
 body.ui-page .ui-data-list .ui-data-row .col-lastpost{grid-column:1/-1;padding-top:0;font-size:12px}
 body.ui-page .ui-data-list .ui-data-row .col-lastpost:empty{display:none}
 body.ui-page .ui-data-list .ui-data-head .col-lastpost{display:none}
 body.ui-page .ui-reading{padding:16px;font-size:16px;line-height:1.75}
}
@media(max-width:360px){
 body[data-view=chat-index] .composer{grid-template-columns:68px minmax(0,1fr) 44px 60px}
 body[data-view=map] .map-toolbar{gap:3px}
 body[data-view=map] .map-toolbar button,body[data-view=map] .map-tool-link{width:37px;padding:8px}
 body[data-view=map] .map-scale{display:none}
}
@media(max-height:480px) and (max-width:1100px){
 body[data-view=main] .mobile-game-dock{min-height:44px;padding-block:2px}
 body[data-view=main] .mobile-dock-item{flex-direction:row;gap:5px;min-height:38px}
 body[data-view=map] .map-atmosphere-status{flex-basis:auto}
 body[data-view=map] .map-gesture-hint{display:none}
 body[data-view=chat-index] .privacy-ai-disclosure{display:none}
}
@media(max-width:900px),(max-width:1100px) and (max-height:500px){
 body[data-view=main]>.privacy-launcher,body.is-game-frame>.privacy-launcher{display:none}
}
@media(max-width:760px){
 body.ui-page table[data-mobile-cards]{display:block;min-width:0!important;width:100%;table-layout:auto}
 body.ui-page table[data-mobile-cards] caption{display:block}
 body.ui-page table[data-mobile-cards] thead{display:block;position:static}
 body.ui-page table[data-mobile-cards] thead tr{display:flex;flex-wrap:wrap;gap:5px;background:var(--panel-2)}
 body.ui-page table[data-mobile-cards] thead th{display:none}
 body.ui-page table[data-mobile-cards] thead th:has(button,input){display:flex;align-items:center;gap:8px;width:auto;padding:8px 12px;min-height:44px}
 body.ui-page table[data-mobile-cards] tbody{display:block;width:100%}
 body.ui-page table[data-mobile-cards] tbody tr{display:block;width:100%;border-bottom:1px solid var(--reading-line);padding:8px 12px}
 body.ui-page table[data-mobile-cards] tbody td{display:block!important;width:100%!important;border:0;padding:6px 0;min-width:0;font-size:14px;line-height:1.5}
 body.ui-page table[data-mobile-cards] tbody td[data-column-label]:not(:first-child):before{content:attr(data-column-label);font:600 10px/1.4 var(--font-ui);color:#68583f;text-transform:uppercase;letter-spacing:.04em}
 body.ui-page table[data-mobile-cards] tbody td:first-child{font-size:16px}
 body.ui-page table[data-mobile-cards] tbody td .ui-row-actions{flex-wrap:wrap;gap:6px}
 body.ui-page table[data-mobile-cards] .ui-person{min-width:0;flex-wrap:wrap}
}
@media(max-width:760px){
 body.ui-page table[data-mobile-cards] tbody td[data-column-label]:not(:first-child):before{display:block;margin:0 0 3px}
}
@media(max-width:760px){
 body.ui-page table[data-mobile-cards] tr[data-mobile-head]{display:flex;flex-wrap:wrap;gap:5px;background:var(--panel-2);padding:0}
 body.ui-page table[data-mobile-cards] tr[data-mobile-head] th{display:none}
 body.ui-page table[data-mobile-cards] tr[data-mobile-head] th:has(button,input){display:flex;align-items:center;gap:8px;width:auto;min-height:44px;padding:8px 12px}
}
@media(max-width:760px){body.ui-page table[data-mobile-cards] tr[data-mobile-head] th:has(a){display:flex;align-items:center;width:auto;min-height:44px;padding:8px 12px}}
@media(max-width:760px){
 body.ui-page .ui-integrated-heading:not(.rpg-hero):not(.scene-toolbar)>div:has(>h1){max-width:calc(100% - 100px)}
 body.ui-page .ui-integrated-heading:not(.rpg-hero):not(.scene-toolbar)>.ui-return-location{position:absolute;right:12px;top:14px;min-width:42px;min-height:42px;margin:0}
 body.ui-page .ui-integrated-heading:not(.rpg-hero):not(.scene-toolbar)>:is(.ui-tablist,.tabs,.inbox-toolbar,.forum-toolbar){max-width:100%}
}
@media(orientation:landscape) and (max-width:1100px){
 body[data-view=main] .game-content{padding-inline:env(safe-area-inset-left) env(safe-area-inset-right)}
}
@media(max-width:360px){
 body[data-view=chat-index] .composer #sendBtn{font-size:0;display:grid;place-items:center;padding:7px}
 body[data-view=chat-index] .composer #sendBtn .ui-icon{width:23px;height:23px;margin:0}
}
@media(max-width:900px),(max-width:1100px) and (max-height:500px){
 body[data-view=chat-index] .scene-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px}
 body[data-view=chat-index] .scene-id{grid-column:1;grid-row:1;min-width:0}
 body[data-view=chat-index] .scene-id p{display:none}
 body[data-view=chat-index] .scene-location-image{width:48px;height:37px}
 body[data-view=chat-index] .scene-controls{grid-column:2;grid-row:1/3}
 body[data-view=chat-index] .scene-actions{overflow:visible}
 body[data-view=chat-index] .scene-actions>.scene-tool{display:none}
 body[data-view=chat-index] .scene-actions>.scene-mobile-menu{display:grid;place-items:center;width:44px;height:44px}
 body[data-view=chat-index] .scene-return-row{display:none}
 body[data-view=chat-index] .quest-header-slot{grid-column:1;grid-row:2;width:100%;max-width:none;padding:0;margin:0}
 body[data-view=chat-index] .quest-header-slot .quest-chat-status{border:0;padding:0;gap:5px}
 body[data-view=chat-index] .quest-header-button{font-size:11px;min-width:0}
 body[data-view=chat-index] .quest-header-eta{display:none}
 body[data-view=chat-index] .quest-countdown{font-size:11px;white-space:nowrap}
 body[data-view=chat-index] .composer #messageType{grid-column:1;grid-row:2;width:100%}
 body[data-view=chat-index] .composer #ai-chat-npc{grid-column:2;grid-row:2;width:100%}
}
@media(max-width:900px),(max-width:1100px) and (max-height:500px){
 body[data-view=chat-index] .composer #sendBtn{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;padding:6px 4px}
 body[data-view=chat-index] .composer #sendBtn .ui-icon{flex:none;margin:0}
}
/* The game menu slides from the left; the scene remains visible behind its scrim. */
@media(max-width:900px),(max-width:1100px) and (max-height:500px){
 body[data-view=main] .topbar,body[data-view=main].has-focused-chat:not(.mobile-game-menu) .topbar,
 body[data-view=main].mobile-game-menu .topbar,body[data-view=main].has-focused-chat.mobile-game-menu .topbar{
  display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;position:absolute;inset:0 auto 0 0;
  width:min(360px,calc(100% - 48px));max-width:100%;max-height:none;gap:12px;
  padding:max(14px,env(safe-area-inset-top)) 14px 14px max(14px,env(safe-area-inset-left));
  border:0;border-right:1px solid var(--line);border-radius:0 16px 16px 0;overflow:hidden;z-index:110;
  background:var(--panel);box-shadow:12px 0 45px #0008;
  transform:translateX(calc(-100% - 16px));visibility:hidden;pointer-events:none;
  transition:transform .26s cubic-bezier(.22,.61,.36,1),visibility 0s .26s;
 }
 body[data-view=main].mobile-game-menu .topbar,body[data-view=main].has-focused-chat.mobile-game-menu .topbar{
  transform:translateX(0);visibility:visible;pointer-events:auto;transition-delay:0s;
 }
 body[data-view=main] .topbar .game-navigation{width:100%;min-width:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 body[data-view=main] .topbar .top-actions{flex:none}
}
body[data-view=map] .map-atlas>svg[data-fullcover-overlay],
body[data-view=map] .map-atlas>svg[data-fullcover-overlay] *{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}

/* The privacy shortcut shares the compact action rail on every screen. */
body[data-view=main] .mobile-privacy-choice{width:44px;flex:none;padding:10px}
body[data-view=main] .mobile-privacy-choice .ui-icon{width:21px;height:21px;margin:0}
/* Search uses the shared mobile table adapter with its own two-column result card. */
@media(max-width:600px){body.ui-page .search-table[data-mobile-cards] tbody{display:grid;gap:12px}body.ui-page .search-table[data-mobile-cards] tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:0;border:1px solid var(--reading-line);border-radius:10px;overflow:hidden;background:var(--reading-background)}body.ui-page .search-table[data-mobile-cards] tbody td{padding:10px;border-bottom:1px solid var(--reading-line);box-sizing:border-box}body.ui-page .search-table[data-mobile-cards] tbody .search-character{grid-column:1/-1;min-width:0}body.ui-page .search-table[data-mobile-cards] thead tr{display:flex;border:0;border-radius:8px;background:var(--panel-2);margin-bottom:10px}.search-table[data-mobile-cards] .search-portrait{float:left}.search-table[data-mobile-cards] .character-markers{margin-top:5px}}

/* === chat-profile === */
/* Profilo autore condiviso da chat e trascrizioni. Riferimento: Gothik_Profilo_Chat_Solo.html. */
:is(body[data-view=chat-index],body.session-replay){--chat-card-column:190px;--chat-column-gap:22px}
:is(body[data-view=chat-index],body.session-replay) .chat-message{grid-template-columns:var(--chat-card-column) minmax(0,1fr);gap:var(--chat-column-gap);padding-top:18px;padding-bottom:25px}
:is(body[data-view=chat-index],body.session-replay) .chat-portrait-card{--gp-cream:#f6dfab;--gp-gold:#c6a065;--gp-diamond:linear-gradient(135deg,#b9e9ff,#268bd0 45%,#123f76);--gp-accent:#6ebce8;--gp-ring:#276b9f;--gp-corner:#deb069ba;isolation:isolate;position:relative;display:block;width:184px;max-width:100%;align-self:start;justify-self:center;padding:13px 10px;color:#eee6d6;background:radial-gradient(ellipse at 50% 12%,#153047,transparent 50%),linear-gradient(166deg,#0a1c2e,#071421 74%,#0c1c2e);border:1px solid #6c563a;border-radius:13px 13px 15px 15px;box-shadow:0 0 0 2px #e2bb7c,0 0 0 4px #6b4e2a,0 7px 22px #2d1f0b52,inset 0 0 0 1px #edcf8d4d,inset 0 0 24px #0005;font:12px/1.25 Georgia,serif;text-align:center;text-decoration:none;cursor:pointer}
:is(body[data-view=chat-index],body.session-replay) .chat-portrait-card:hover{color:#eee6d6;filter:brightness(1.06)}
:is(body[data-view=chat-index],body.session-replay) .chat-portrait-card:focus-visible{outline:3px solid var(--gold);outline-offset:7px}
:is(body[data-view=chat-index],body.session-replay) .chat-portrait-card::before,:is(body[data-view=chat-index],body.session-replay) .chat-portrait-card::after{content:'';position:absolute;z-index:2;left:50%;width:11px;height:11px;transform:translateX(-50%) rotate(45deg);background:var(--gp-diamond);border:1px solid var(--gp-accent);box-shadow:0 0 0 2px #0b1b2c,0 0 0 3px var(--gp-ring);pointer-events:none}
:is(body[data-view=chat-index],body.session-replay) .chat-portrait-card::before{top:-8px}
:is(body[data-view=chat-index],body.session-replay) .chat-portrait-card::after{bottom:-8px}
:is(body[data-view=chat-index],body.session-replay) .chat-portrait-card.is-female{--gp-diamond:linear-gradient(135deg,#ffd2e6,#db689a 45%,#822e59);--gp-accent:#f0a1c4;--gp-ring:#ac4c7b;--gp-corner:#e78db7}
.chat-portrait-corner{position:absolute;width:26px;height:26px;border-color:var(--gp-corner);border-style:double;pointer-events:none}
.chat-portrait-corner.tl{left:4px;top:4px;border-width:3px 0 0 3px;border-radius:9px 0 0}
.chat-portrait-corner.tr{right:4px;top:4px;border-width:3px 3px 0 0;border-radius:0 9px 0 0}
.chat-portrait-corner.bl{left:4px;bottom:4px;border-width:0 0 3px 3px;border-radius:0 0 0 9px}
.chat-portrait-corner.br{right:4px;bottom:4px;border-width:0 3px 3px 0;border-radius:0 0 9px}
.chat-portrait-name{display:block;color:var(--gp-cream);font:700 19px/1.1 Georgia,serif;margin:1px 0 2px;text-shadow:0 1px 2px #000;overflow-wrap:anywhere}
.chat-portrait-title{display:block;margin:0 0 10px;color:#d6bb88;font:italic 12px/1.25 Georgia,serif;overflow-wrap:anywhere}
.chat-portrait-frame{position:relative;width:100%;aspect-ratio:1/1.11;padding:3px;overflow:hidden;border:1px solid #af874e;border-radius:7px;background:#1e1920;box-shadow:0 0 0 2px #ffe7a62b,inset 0 0 9px #000}
.chat-portrait-frame::after{content:'';position:absolute;inset:4px;pointer-events:none;box-shadow:inset 0 0 18px #060c1657;border-radius:3px}
.chat-portrait-art{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:contrast(1.02)}
.chat-portrait-art.is-race-portrait{object-position:90% center}
.chat-portrait-art.empty{display:grid;place-items:center;background:radial-gradient(circle at 45% 20%,#5b6573,#192537 75%);color:#e2c89b}
.chat-portrait-art.empty svg{width:65%;height:65%;opacity:.72}
.chat-portrait-card.is-female .chat-portrait-art.empty{background:radial-gradient(circle at 45% 20%,#79425a,#36152a 75%)}
.chat-portrait-glyphs{display:flex;align-items:center;justify-content:center;gap:7px;margin:10px 0 9px;min-height:27px}
.chat-portrait-glyphs :is(img,span){display:grid;place-items:center;width:27px;height:27px;object-fit:contain;border-radius:50%;padding:2px;border:1px solid #c59755a6;background:radial-gradient(circle at 36% 22%,#24374e,#08131f 75%);box-shadow:inset 0 0 0 2px #020810b3,0 1px 3px #0007;color:#d8ba78}
.chat-portrait-stats{margin:4px 0 0;padding-top:4px;border-top:1px solid #be985d55;font:11px/1.2 var(--font-ui)}
.chat-portrait-stat{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:5px;min-height:25px;text-align:left;border-bottom:1px solid #d6ae6a26}
.chat-portrait-stat:last-child{border-bottom:0}
.chat-portrait-stat dt{display:flex;align-items:center;gap:5px;margin:0;color:#d5c5a8;font-weight:550;min-width:0;white-space:nowrap}
.chat-portrait-stat dd{margin:0;color:#f2e4c4;font-weight:650;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}
.chat-portrait-stat-icon{display:flex;flex:none;color:#dfb36b}
.chat-portrait-stat-icon svg{width:16px;height:16px}
.chat-portrait-stat.neutral .chat-portrait-stat-icon{color:#b1c0d2}
.chat-portrait-stat.life .chat-portrait-stat-icon{color:#e66c76}
.chat-portrait-health{margin-top:5px}
.chat-portrait-health progress{display:block;appearance:none;width:100%;height:7px;border:1px solid #294c42;border-radius:99px;overflow:hidden;background:#28364b;color:#89c76b}
.chat-portrait-health progress::-webkit-progress-bar{background:#28364b}
.chat-portrait-health progress::-webkit-progress-value{background:linear-gradient(90deg,#6db95b,#a1d77a);border-radius:99px}
.chat-portrait-health progress::-moz-progress-bar{background:linear-gradient(90deg,#6db95b,#a1d77a);border-radius:99px}
@media(max-width:600px){
 :is(body[data-view=chat-index],body.session-replay){--chat-master-indent:0px}
 :is(body[data-view=chat-index],body.session-replay) .chat-message{grid-template-columns:minmax(0,1fr);gap:17px;padding:16px 6px 20px}
 :is(body[data-view=chat-index],body.session-replay) .chat-portrait-card{width:100%;display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:12px;padding:12px}
 .chat-portrait-name,.chat-portrait-title,.chat-portrait-glyphs,.chat-portrait-stats,.chat-portrait-health{grid-column:2}
 .chat-portrait-name{font-size:18px}.chat-portrait-title{font-size:11px;margin-bottom:4px}
 .chat-portrait-frame{grid-column:1;grid-row:1/7;align-self:center}
 .chat-portrait-glyphs{margin:4px 0;min-height:24px;gap:5px}.chat-portrait-glyphs :is(img,span){width:24px;height:24px}
 .chat-portrait-stat{min-height:24px;font-size:11px}.chat-portrait-stats{margin-top:2px}
}
:is(body[data-view=chat-index],body.session-replay).chat-compact .chat-message{grid-template-columns:88px minmax(0,1fr)}
:is(body[data-view=chat-index],body.session-replay).chat-compact .chat-portrait-card{display:block;width:82px;padding:6px}
.chat-compact .chat-portrait-name{font-size:12px}.chat-compact .chat-portrait-frame{aspect-ratio:1}
.chat-compact :is(.chat-portrait-title,.chat-portrait-glyphs,.chat-portrait-stats,.chat-portrait-health){display:none}
:is(body[data-view=chat-index],body.session-replay).chat-noport .chat-message{grid-template-columns:minmax(0,1fr)}
:is(body[data-view=chat-index],body.session-replay).chat-noport .chat-portrait-card{display:none}

/* === constellation === */
/* Reusable characteristics renderer: no layout dependency on profile pages. */
.characteristic-constellation{--constellation-sex-border:#448ecb;display:grid;grid-template-columns:minmax(0,1fr) 136px minmax(0,1fr);grid-template-rows:repeat(4,minmax(57px,1fr));gap:8px 7px;min-width:0;isolation:isolate}
.characteristic-constellation[data-sex=female]{--constellation-sex-border:#8c3445}
.constellation-attribute{position:relative;display:flex;gap:9px;align-items:center;min-width:0;padding:3px 0;color:var(--text)}
.constellation-attribute.is-left{grid-column:1}.constellation-attribute.is-right{grid-column:3;flex-direction:row-reverse;text-align:right}
.constellation-sigil{width:45px;height:45px;flex:none;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 45% 40%,var(--panel-2),var(--panel) 80%);box-shadow:0 0 0 3px #ba945d13;color:var(--gold)}
.constellation-sigil :is(img,.ui-icon){display:block;width:23px;height:23px;object-fit:contain;margin:0}
.constellation-text{min-width:0;flex:1}.constellation-label{margin:0;color:var(--text);font:12px/1.4 var(--font-ui)}.constellation-value{display:block;color:var(--gold-2);font:400 25px/1.15 var(--font-body);font-variant-numeric:tabular-nums}
.constellation-track{display:block;width:100%;height:5px;margin-top:5px;border:0;border-radius:9px;background:#3b4d5d;overflow:hidden}.constellation-track::-webkit-meter-bar{background:#3b4d5d;border:0}.constellation-track::-webkit-meter-optimum-value{background:linear-gradient(90deg,#9e7945,#efcb89);border-radius:9px}.constellation-track::-moz-meter-bar{background:linear-gradient(90deg,#9e7945,#efcb89)}
.constellation-heart{grid-column:2;grid-row:1/5;position:relative;display:grid;place-items:center;align-self:center;justify-self:center;width:136px;height:174px;pointer-events:none}.constellation-heart::before{content:'';position:absolute;inset:17px -8px;border:1px solid var(--line);transform:rotate(45deg) scale(.77);z-index:-1}.constellation-heart::after{content:'✦';position:absolute;top:-9px;left:50%;transform:translateX(-50%);color:var(--gold);font-size:24px}.constellation-seal{display:block;width:124px;height:124px;border-radius:50%;object-fit:cover;border:2px solid var(--constellation-sex-border);box-shadow:0 0 0 5px var(--panel),0 0 0 7px color-mix(in srgb,var(--constellation-sex-border) 65%,transparent),0 0 22px color-mix(in srgb,var(--constellation-sex-border) 20%,transparent)}.constellation-ornament{position:absolute;bottom:-3px;color:var(--gold);font-size:22px}
body.ui-page .characteristic-constellation .constellation-train{position:absolute;right:0;top:1px;display:grid;place-items:center;width:21px;height:21px;min-height:21px;padding:3px;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--gold)}.is-right .constellation-train{right:auto;left:0}.constellation-train .ui-icon{width:13px;height:13px;margin:0}.constellation-attribute:has(.constellation-train) .constellation-label{padding-right:22px}.constellation-attribute.is-right:has(.constellation-train) .constellation-label{padding-right:0;padding-left:22px}
/* Profile hero V8: one header contract, same real data and authorization as the dossier. */
body.ui-page .rpg-sheet .rpg-constellation-hero{--sex-accent:#67b9e9;position:relative;isolation:isolate;display:grid;grid-template-columns:176px minmax(230px,1fr) minmax(470px,550px);grid-template-rows:1fr auto;align-items:center;gap:20px 24px;padding:26px 26px 0;min-height:388px;border:1px solid var(--line);border-radius:18px 18px 0 0;overflow:hidden;background:var(--panel);box-shadow:0 20px 50px #0005}
body.ui-page .rpg-sheet .rpg-constellation-hero[data-sex=female]{--sex-accent:#df8aa6}
.rpg-constellation-hero .rpg-hero-art{position:absolute;inset:0;z-index:-3;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 35%;opacity:.55;pointer-events:none}
.rpg-constellation-hero::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#061523e8 0%,#061523c9 32%,#06152370 55%,#061523c9 100%),linear-gradient(0deg,#071523c9,transparent 45%)}
.rpg-constellation-hero>.rpg-portrait{grid-column:1;grid-row:1;width:168px;height:256px;position:relative;align-self:center;padding:5px;border:1px solid var(--gold);border-radius:100px 100px 16px 16px;background:var(--panel);box-shadow:0 0 0 4px var(--panel),0 0 0 6px var(--line),0 12px 34px #0008}
.rpg-constellation-hero .rpg-portrait::before{content:'';position:absolute;left:50%;top:-8px;transform:translateX(-50%) rotate(45deg);width:11px;height:11px;background:var(--sex-accent);border:1px solid var(--gold);z-index:2}.rpg-constellation-hero .rpg-silhouette{height:100%;overflow:hidden;border-radius:94px 94px 11px 11px;background:var(--panel-2)}.rpg-silhouette img{width:100%;height:100%;object-fit:cover;object-position:center top}
.rpg-constellation-hero>.rpg-identity{grid-column:2;grid-row:1;min-width:0;width:100%;max-width:none}.rpg-eyebrow{color:var(--gold);font:700 9px/1.5 var(--font-ui);letter-spacing:2.5px;text-transform:uppercase}.rpg-title-line{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:8px 0 14px}
body.ui-page .rpg-sheet .rpg-constellation-hero h1{margin:0;color:var(--gold-2);font:700 clamp(36px,3.4vw,62px)/1.05 var(--font-body);letter-spacing:-1px;overflow-wrap:anywhere;text-wrap:wrap}
body.ui-page .rpg-edit-action{display:inline-flex;align-items:center;justify-content:center;min-height:33px;padding:7px 13px;border:1px solid #be858366;border-radius:8px;background:linear-gradient(135deg,#6e3038,#47202a);color:#f3dcd3;font:600 12px/1.4 var(--font-ui);text-decoration:none}.rpg-edit-action:hover,.rpg-edit-action:focus-visible{background:#833a45;border-color:var(--gold)}
.rpg-identity-line{font:14px/1.7 var(--font-ui);color:var(--text)}.rpg-identity-line img{width:18px;height:18px;vertical-align:middle;object-fit:contain}.rpg-subtitle{font:13px/1.5 var(--font-ui);color:var(--muted);margin:6px 0}
.rpg-hero-bottom{display:grid;gap:14px;margin-top:14px;min-width:0}.rpg-badges{display:flex;gap:7px;flex-wrap:wrap}.rpg-badges .rpg-emblem{width:31px;height:31px;background:#13283b80}.rpg-badges>span:nth-child(2){color:var(--sex-accent);border-color:color-mix(in srgb,var(--sex-accent) 50%,transparent)}
.rpg-header-metrics{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin:0}.rpg-header-metrics>div{display:flex;align-items:center;gap:7px;min-width:0;font:12px var(--font-ui)}.rpg-header-metrics dt{display:flex;align-items:center;color:var(--muted)}.rpg-header-metrics dt .ui-icon{width:18px;height:18px;color:var(--gold)}.rpg-metric-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.rpg-header-metrics dd{display:flex;align-items:center;gap:7px;margin:0;color:var(--gold-2);font-weight:600}.rpg-header-metrics meter{width:65px;height:6px;border:0;background:#263c4a;border-radius:12px;overflow:hidden}.rpg-header-metrics meter::-webkit-meter-bar{background:#263c4a;border:0}.rpg-header-metrics meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#588d68,#a4d783)}
body.ui-page .rpg-constellation-hero .rpg-header-actions{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0 0;padding:0;border:0;background:none}body.ui-page .rpg-header-actions .rpg-icon-action{display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#0b1d30da;color:var(--gold)}.rpg-header-actions .ui-icon{width:17px;height:17px;margin:0}
.rpg-constellation-hero>.rpg-hero-attributes{grid-column:3;grid-row:1;min-width:0;align-self:center}.rpg-hero-attributes .progression-overview{display:block;margin:0 0 12px}.rpg-hero-attributes .progression-overview h2{display:none}.rpg-hero-attributes .progression-xp{display:flex;justify-content:space-between;gap:8px;padding:8px 12px;min-height:42px;border:1px solid var(--line);border-radius:24px;background:#071726e8}.rpg-hero-attributes .progression-xp-item small{font-size:10px}.rpg-hero-attributes .progression-xp-item strong{font-size:16px}.rpg-hero-attributes .progression-xp-alert{border-radius:16px;font-size:10px}.rpg-hero-attributes .rpg-feedback:empty{display:none}.rpg-hero-attributes .progression-initial{padding:7px;margin-top:10px;gap:7px}.rpg-hero-attributes .progression-initial p{font-size:10px}.rpg-hero-attributes .progression-initial p span{display:none}.rpg-hero-attributes .progression-initial>span{display:none}
body.ui-page .rpg-sheet .rpg-constellation-hero>.rpg-profile-tabs{grid-column:1/-1;grid-row:2;display:flex;align-items:stretch;flex-wrap:wrap;gap:3px;margin:0 -26px;padding:0 22px;min-height:57px;border:0;border-top:1px solid var(--line);border-radius:0;background:linear-gradient(90deg,#061522f5,#071623c7,#061321f5)}
body.ui-page .rpg-sheet .rpg-constellation-hero>.rpg-profile-tabs .tab{min-height:57px;padding:14px 16px;font:16px var(--font-body)}.rpg-constellation-hero .rpg-archive-label{display:none}
@media(max-width:1250px){body.ui-page .rpg-sheet .rpg-constellation-hero{grid-template-columns:142px minmax(0,1fr);gap:22px}.rpg-constellation-hero>.rpg-portrait{width:136px;height:214px}.rpg-constellation-hero>.rpg-hero-attributes{grid-column:1/-1;grid-row:2;max-width:800px;width:100%;justify-self:center}body.ui-page .rpg-sheet .rpg-constellation-hero>.rpg-profile-tabs{grid-row:3}}
@media(max-width:650px){body.ui-page .rpg-sheet .rpg-constellation-hero{grid-template-columns:93px minmax(0,1fr);padding:20px 12px 0;gap:16px 14px}.rpg-constellation-hero>.rpg-portrait{width:89px;height:145px;padding:4px}body.ui-page .rpg-sheet .rpg-constellation-hero h1{font-size:34px}.rpg-eyebrow{font-size:8px;letter-spacing:1.4px}.rpg-identity-line{font-size:11px}.rpg-title-line{gap:8px;margin:6px 0 9px}.rpg-hero-bottom{margin-top:10px;gap:10px}.rpg-badges{gap:5px}.rpg-badges .rpg-emblem{width:26px;height:26px}.rpg-header-metrics{gap:8px 12px}.rpg-header-metrics>div{font-size:11px}.rpg-header-metrics meter{width:40px}.rpg-hero-attributes .progression-xp{padding:8px 9px;gap:7px}.rpg-hero-attributes .progression-xp-item{gap:4px}.rpg-hero-attributes .progression-xp-item strong{font-size:14px}body.ui-page .rpg-sheet .rpg-constellation-hero>.rpg-profile-tabs{margin:0 -12px;padding:0 5px;flex-wrap:nowrap;overflow-x:auto}body.ui-page .rpg-sheet .rpg-constellation-hero>.rpg-profile-tabs .tab{font-size:13px;padding:12px 11px;flex:0 0 auto;min-height:49px}.characteristic-constellation{grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);gap:7px 4px;grid-template-rows:repeat(4,minmax(58px,1fr))}.constellation-heart{width:88px;height:140px}.constellation-seal{width:78px;height:78px}.constellation-sigil{width:30px;height:30px}.constellation-sigil :is(img,.ui-icon){width:17px;height:17px}.constellation-attribute{gap:5px}.constellation-label{font-size:10px}.constellation-value{font-size:21px}.constellation-track{height:4px}.constellation-heart::before{inset:30px -5px}.constellation-heart::after{top:0}.constellation-ornament{bottom:8px}}
@media(max-width:380px){.characteristic-constellation{grid-template-columns:1fr 1fr;grid-template-rows:120px repeat(4,minmax(56px,1fr));gap:7px 14px}.constellation-heart{grid-column:1/-1;grid-row:1;height:110px}.constellation-heart::after{top:-9px}.constellation-ornament{bottom:-10px}.constellation-attribute.is-right{grid-column:2}.constellation-label{font-size:11px}}

@media(max-width:650px){body.ui-page .characteristic-constellation .constellation-train{width:26px;height:26px;min-height:26px;padding:5px}}

/* A labelled total, distinct from currency and health, using the existing visit count. */
.rpg-header-metrics>.rpg-visits-total{gap:6px;padding:6px 9px;border:1px solid #4b8f68;border-radius:8px;background:#245e45;color:#fff;white-space:nowrap}.rpg-visits-total dt{display:contents}.rpg-visits-total dt>span:first-child{display:inline-flex;order:0}.rpg-visits-total dt .ui-icon{color:#fff;width:16px;height:16px}.rpg-visits-total dd{order:1;color:#fff;font-weight:700;font-variant-numeric:tabular-nums}.rpg-visits-total .rpg-metric-label{position:static;order:2;width:auto;height:auto;overflow:visible;clip-path:none;color:#fff;font:12px/1.3 var(--font-ui)}

/* === grimoire === */
/* Shared skill cards, adapted from Gothik_Grimorio_Abilita_Card.html. */
.grimoire-host{width:100%;min-width:0}
.ability-grimoire{width:100%;container-type:inline-size;min-width:0;border:1px solid var(--line);border-radius:18px;background:linear-gradient(140deg,#081827,#081423 73%,#081321);overflow:hidden;color:var(--text)}
.grimoire-toolbar{padding:20px 22px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:#081421;border-bottom:1px solid #9a795123}.grimoire-section-label{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-right:auto}.grimoire-section-label>strong{font:normal 22px Georgia,serif;color:#e5c389}.grimoire-count{font-size:11px;color:#dfc493;border:1px solid #8c734c7c;background:#b78a2613;border-radius:99px;padding:5px 9px;white-space:nowrap}
.grimoire-tools{display:flex;flex-wrap:wrap;align-items:center;gap:9px;width:100%}.grimoire-tools input,.grimoire-tools select,.grimoire-tools button{min-height:41px;border:1px solid #6c74803b;border-radius:10px;background:#0b1d2f;color:#eadbc6;font-size:13px;padding:9px 12px;margin:0;max-width:100%}.grimoire-tools input{flex:1 1 210px;min-width:0;background:#071321}.grimoire-tools input::placeholder{color:#7b8aa0}.grimoire-tools button{min-width:76px}
.grimoire-instructions{font-size:12px;color:#9cacc0;margin:20px 22px 16px}.grimoire-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0 22px 24px}
.grimoire-card{position:relative;isolation:isolate;min-width:0;min-height:211px;border:1px solid #a6a1a12d;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#122940,#0b1b2f 67%,#0a1928);transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;flex-direction:column}
.grimoire-card:hover{transform:translateY(-3px);border-color:#d5ab6475;box-shadow:0 15px 30px #0006}.grimoire-card:after{content:"";pointer-events:none;position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px #e3d1ac10}
.grimoire-ambient{position:absolute;inset:-30px -10px 40px 48%;width:60%;height:90%;object-fit:cover;filter:blur(22px) saturate(.75);opacity:.16;pointer-events:none;z-index:-1}
.grimoire-main{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center;padding:18px 17px 15px;flex:1}.grimoire-art.rpg-ability-art,.grimoire-art-empty{width:112px;height:112px;object-fit:cover;border-radius:12px;border:1px solid #d9ae6c80;box-shadow:0 9px 20px #0009,0 0 0 3px #040b12a6;aspect-ratio:1}.grimoire-art-empty{display:grid;place-items:center;font-size:42px;color:var(--gold)}
.grimoire-top{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}.grimoire-eyebrow{font-size:10px;letter-spacing:1.5px;color:#a5b8c8;font-weight:650;text-transform:uppercase}.grimoire-name{font:normal 22px/1.17 Georgia,serif;color:#f2d39a;margin:0;overflow-wrap:anywhere}
.grimoire-tags{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.grimoire-pe{border:1px solid #daaa5366;background:#b7852b1a;color:#eac98b;font-size:12px;font-weight:750;border-radius:7px;padding:5px 8px;white-space:nowrap}.grimoire-owned{border:1px solid #7fa9d27a;border-radius:7px;background:#214e7445;color:#c0e2ff;font-size:12px;font-weight:650;padding:5px 8px}
.grimoire-bottom{margin:0 17px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 0 14px;border-top:1px solid #cdaa732b}.grimoire-bottom>small{font-size:11px;color:#a8b8cb;line-height:1.5;flex:1 1 100px}.grimoire-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grimoire-examine{display:inline-flex;align-items:center;border:0;background:transparent;color:#edcf98;font-size:13px;padding:6px 0;box-shadow:none;margin:0;min-height:34px}.grimoire-learn{font-size:12px;padding:8px 12px;margin:0;min-height:36px;background:#143b2b;border:1px solid #72ad7c;color:#def3df;border-radius:8px}.grimoire-learn:disabled{background:#102236;border-color:#6c74803b;color:#98a4b3;opacity:.65;cursor:not-allowed}
.grimoire-card.is-learnable{border-color:#69ab79;background:linear-gradient(#6cc98412,#6cc98412),linear-gradient(135deg,#122940,#0b1b2f);box-shadow:inset 0 0 0 1px #78c48b25}.grimoire-card.is-learnable .grimoire-bottom>small{color:#a9d6aa}.grimoire-card.is-owned{border-color:#648bbd8c;background:linear-gradient(#548fc719,#548fc719),linear-gradient(135deg,#122940,#0b1b2f)}.grimoire-card.is-owned .grimoire-bottom>small{color:#c0dcf5}
.grimoire-empty{margin:20px 22px;padding:35px 20px;border:1px dashed #b99e7850;border-radius:14px;text-align:center;color:#b5c3d3}.grimoire-empty[hidden]{display:none}
.grimoire-cards.is-list{grid-template-columns:1fr;gap:9px}.grimoire-cards.is-list .grimoire-card{min-height:110px;display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,32%);align-items:center}.grimoire-cards.is-list .grimoire-main{padding:12px 18px;grid-template-columns:75px minmax(0,1fr)}.grimoire-cards.is-list .grimoire-art{height:75px;width:75px}.grimoire-cards.is-list .grimoire-bottom{margin:0 17px;padding:10px 0 10px 17px;border-top:0;border-left:1px solid var(--line)}.grimoire-cards.is-list .grimoire-name{font-size:21px}
.grimoire-drawer{position:fixed;inset:0 0 0 auto;width:min(520px,100%);max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0;overflow:hidden;color:#ece4d7;background:linear-gradient(155deg,#0d2138,#081421 85%);border:0;border-left:1px solid #c2a06a54;border-radius:0;box-shadow:-25px 0 80px #0009}.grimoire-drawer[open]{display:flex;flex-direction:column}.grimoire-drawer::backdrop{background:#000b}.grimoire-drawer-head{padding:19px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line)}.grimoire-drawer-head>span{font-size:11px;color:#b69b71;font-weight:750;letter-spacing:2px;text-transform:uppercase}.grimoire-close{width:35px;height:35px;min-height:35px;padding:0;border:1px solid #bc9e6b52;background:#10263d;color:#edce92;border-radius:10px;font-size:23px;flex:none}.grimoire-drawer-body{overflow:auto;padding:23px;min-height:0}.grimoire-detail-head{display:flex;gap:19px;align-items:center;margin-bottom:23px}.grimoire-detail-head>div{min-width:0}.grimoire-detail-head h2{font:normal 29px/1.1 Georgia,serif;color:#f5d9a4;margin:7px 0 12px;overflow-wrap:anywhere}.grimoire-description{font:16px/1.75 Georgia,serif;color:#e3dfd6;white-space:pre-line;margin:0 0 24px}.grimoire-effects{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}.grimoire-effect{padding:14px;background:#122940;border:1px solid #d0a76138;border-radius:10px}.grimoire-effect small{display:block;font-size:11px;color:#a1b3c6;margin-bottom:7px}.grimoire-effect strong{font-size:14px;color:#f0d5a4}.grimoire-source{font-size:12px;color:#9aabc0;line-height:1.7}.grimoire-detail-action{border-top:1px solid var(--line);padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.grimoire-detail-action>p{font-size:13px;margin:0}.grimoire-drawer[data-state="owned"] .grimoire-detail-action{color:#c0dcf5}.grimoire-drawer[data-state="ready"] .grimoire-detail-action{color:#a9d6aa}
@container(max-width:1100px){.grimoire-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container(max-width:680px){.grimoire-cards{grid-template-columns:1fr;gap:12px;padding:0 16px 20px}.grimoire-toolbar{padding:16px}.grimoire-instructions{margin:16px}.grimoire-cards.is-list .grimoire-card{display:flex;min-height:auto}.grimoire-cards.is-list .grimoire-bottom{border-top:1px solid var(--line);border-left:0;margin:0 17px;padding:12px 0 14px}.grimoire-main{grid-template-columns:96px minmax(0,1fr);gap:13px}.grimoire-art.rpg-ability-art,.grimoire-art-empty{width:96px;height:96px}.grimoire-name{font-size:20px}.grimoire-tools select{flex:1;min-width:0}}
@media(max-width:420px){.grimoire-detail-head{gap:12px}.grimoire-detail-head .grimoire-art{width:86px;height:86px}.grimoire-detail-head h2{font-size:24px}.grimoire-effects{grid-template-columns:1fr}.grimoire-drawer-body{padding:18px}}
@media(prefers-reduced-motion:reduce){.grimoire-card{transition:none}.grimoire-card:hover{transform:none}}
@container(max-width:450px){.grimoire-tools input,.grimoire-tools select{flex:1 1 100%;width:100%}.grimoire-tools .grimoire-view{flex:0 0 auto}.grimoire-main{padding:16px 13px}.grimoire-bottom{margin:0 13px}}
