@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;900&family=Crimson+Text:ital,wght@0,400;0,600;1,400&display=swap";html{scrollbar-gutter:stable}:root{--bg:#08060a;--panel:#100c08;--sidebar:#060408;--text:#d4c0a8;--muted:#7a6a5a;--border:#2a1e14;--primary:#b07830;--gold:#c9a84c;--gold-dim:#7a6030;--rust:#8a3a10;--rust-bright:#c05020;--rust-glow:#e07040;--lava:#c0390a;--blood:#7a1010;--blood-bright:#b02020;--steel:#5a6a7a;--steel-bright:#8aaabf;--ash:#7a6a5a;--bone:#d4c0a8;--void:#0a0614;--surface-input:color-mix(in srgb, var(--panel) 75%, var(--bg));--surface-input-raised:color-mix(in srgb, var(--panel) 82%, var(--bg));--surface-session-card:color-mix(in srgb, var(--panel) 62%, var(--bg));--surface-shade:color-mix(in srgb, var(--panel) 42%, var(--void));--surface-shade-mid:color-mix(in srgb, var(--panel) 48%, var(--void));--surface-well:color-mix(in srgb, var(--panel) 34%, var(--bg));--surface-band:color-mix(in srgb, var(--panel) 52%, var(--bg));--surface-list-row:color-mix(in srgb, var(--panel) 48%, var(--bg));--surface-feature:color-mix(in srgb, var(--panel) 46%, var(--void));--border-faint:color-mix(in srgb, var(--border) 52%, transparent);--focus-ring:color-mix(in srgb, var(--gold-dim) 22%, transparent);--btn-primary-fill:color-mix(in srgb, var(--rust) 26%, transparent);--btn-primary-fill-hover:color-mix(in srgb, var(--rust-bright) 38%, transparent);--btn-secondary-fill:color-mix(in srgb, var(--panel) 55%, var(--void));--btn-secondary-fill-hover:color-mix(in srgb, var(--panel) 72%, var(--void));--tab-active-bg:color-mix(in srgb, var(--rust) 15%, transparent);--nav-session-dock-bg:color-mix(in srgb, var(--panel) 88%, transparent);scrollbar-color:var(--gold-dim) var(--bg);scrollbar-width:thin}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Crimson Text,Georgia,Times New Roman,serif;font-size:17px;line-height:1.7}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--gold-dim);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gold)}#root{min-height:100vh}.app-shell{grid-template-columns:250px minmax(0,1fr);min-height:100vh;display:grid}.app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.app-shell.sidebar-collapsed .sidebar{display:none}.sidebar-toggle-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#2a1e1499;border-radius:2px;margin-right:.5rem;padding:.3rem .6rem;font-size:1rem;line-height:1;display:none}@media (width>=901px){.sidebar{align-self:start;max-height:100dvh;position:sticky;top:0}.sidebar-toggle-btn{display:inline-block}}.sidebar{background:var(--sidebar);color:var(--bone);border-right:1px solid var(--border);grid-template-rows:auto 1fr auto;align-content:stretch;min-height:0;padding:1.25rem;display:grid}.sidebar-title{color:var(--gold);letter-spacing:2px;text-transform:uppercase;margin:0 0 1rem;font-family:Cinzel,serif;font-size:1rem;font-weight:900}.sidebar-nav{-webkit-overflow-scrolling:touch;align-content:start;align-self:stretch;gap:.25rem;min-height:0;display:grid;overflow-y:auto}.sidebar-footer{border-top:1px solid #2a1e14b3;margin-top:0;padding-top:.85rem}.sidebar-logout{width:100%}.nav-link{color:var(--muted);letter-spacing:1px;text-transform:uppercase;border-left:3px solid #0000;border-radius:2px;align-items:center;gap:.5rem;padding:.6rem .75rem;font-family:Cinzel,serif;font-size:.78rem;text-decoration:none;transition:all .15s;display:flex}.nav-link.active,.nav-link:hover{color:var(--bone);border-left-color:var(--rust-bright);background:#c0390a1a}.nav-link.active{color:var(--gold);border-left-color:var(--gold)}.app-content{grid-template-rows:auto 1fr;min-width:0;display:grid}.topbar{border-bottom:1px solid var(--border);background:var(--panel);justify-content:flex-start;align-items:center;padding:.85rem 1.25rem;display:flex;box-shadow:0 2px 16px #0006}.topbar-session{text-align:right;justify-items:end;gap:.25rem;min-width:0;margin-left:auto;display:grid}.topbar-session-title{text-overflow:ellipsis;max-width:48vw;color:var(--gold);gap:.08rem;font-family:Cinzel,serif;font-size:.95rem;font-weight:700;line-height:1.2;display:grid;overflow:hidden}.topbar-session-campaign{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;overflow:hidden}.topbar-session-title-sep{color:var(--muted);font-weight:500}.topbar-session-session-name{color:var(--bone);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.topbar-session-date{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:48vw;font-size:.82rem;overflow:hidden}.topbar-user{align-items:center;min-width:0;display:flex}.topbar-right{align-items:center;gap:1rem;margin-left:auto;display:flex}.burger-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#2a1e1499;border-radius:2px;margin-right:.75rem;padding:.3rem .55rem;display:none}.mobile-menu-backdrop{display:none}.badge{text-transform:uppercase;color:var(--muted);letter-spacing:1px;border:1px solid var(--border);border-radius:2px;margin-left:.5rem;padding:.1rem .5rem;font-family:Cinzel,serif;font-size:.7rem}.badge-homebrew{letter-spacing:.5px;text-transform:uppercase;border:1px solid color-mix(in srgb, var(--accent) 60%, transparent);color:var(--accent);vertical-align:middle;white-space:nowrap;border-radius:2px;margin-left:.4rem;padding:.1rem .4rem;font-family:Cinzel,serif;font-size:.65rem;line-height:1.4;display:inline-block}.page-content{min-width:0;padding:1.25rem}.grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--rust);border-radius:2px;padding:1rem;position:relative}.card h3{letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin:0 0 .75rem;font-family:Cinzel,serif;font-size:.85rem}.character-page-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.character-page-title{color:var(--gold);letter-spacing:2px;margin:0;font-family:Cinzel,serif}.character-edit-page{box-sizing:border-box;width:100%;max-width:48rem;margin-inline:auto}.character-edit-page .tabs-row{margin-bottom:.35rem}.character-edit-page .tab-panel{min-height:0;padding:.35rem .6rem .7rem}.character-edit-page .tab-panel details.character-skills-accordion:first-of-type{margin-top:.2rem}.character-page-avatar,.session-live-character-avatar,.character-avatar-upload-preview{border:1px solid var(--border);width:2.6rem;height:2.6rem;color:var(--muted);background:#2a1e1466;border-radius:50%;flex:0 0 2.6rem;place-items:center;font-family:Cinzel,serif;font-weight:700;display:grid;overflow:hidden}.character-page-avatar img,.session-live-character-avatar img,.character-avatar-upload-preview img{object-fit:cover;width:100%;height:100%;display:block}.character-avatar-upload-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.character-avatar-upload-trigger{cursor:pointer}.character-avatar-upload-trigger:hover .character-avatar-upload-preview{border-color:var(--gold-dim)}.character-avatar-upload-input{display:none}.character-avatar-upload-text{gap:.3rem;display:grid}.character-avatar-upload-text small{color:var(--muted)}.btn{font:inherit;letter-spacing:1px;text-transform:uppercase;border:1px solid var(--rust-bright);background:var(--btn-primary-fill);color:var(--rust-glow);cursor:pointer;border-radius:2px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-family:Cinzel,serif;font-size:.8rem;line-height:1.2;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{background:var(--btn-primary-fill-hover);border-color:var(--rust-glow);color:var(--bone)}.btn-secondary{background:var(--btn-secondary-fill);border-color:var(--border);color:var(--muted)}.btn-secondary:hover{background:var(--btn-secondary-fill-hover);border-color:var(--muted);color:var(--bone)}.btn-small{padding:.35rem .65rem;font-size:.72rem}.table-wrap{max-width:100%;overflow-x:auto}.inventory-table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.inventory-items-table{table-layout:fixed;width:100%;min-width:260px}.inventory-items-table th.inventory-sortable-th{vertical-align:middle;padding:.2rem .15rem}.inventory-sort-header-btn{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:2px;justify-content:flex-start;align-items:center;gap:.3rem;margin:0;padding:.28rem .25rem;font-weight:600;display:inline-flex}.inventory-sort-header-btn--center{text-align:center;justify-content:center}.inventory-sort-header-btn:hover{background:#c9a84c14}.inventory-sort-header-btn:focus-visible{outline:2px solid var(--gold-dim);outline-offset:1px}.inventory-sort-icon{opacity:.95;flex-shrink:0}.inventory-sort-icon--muted{opacity:.35}.inventory-items-table .inventory-name-col{width:auto;min-width:0}.inventory-items-table .inventory-qty-col{white-space:nowrap;text-align:center;vertical-align:middle;width:7.5rem;min-width:7.5rem;max-width:7.5rem;padding-left:.35rem;padding-right:.35rem}.inventory-items-table .inventory-equipped-col{text-align:center;vertical-align:middle;width:3rem;min-width:3rem;max-width:3rem;padding-left:.3rem;padding-right:.3rem}.inventory-items-table .inventory-qty-control{box-sizing:border-box;justify-content:center;gap:.2rem;max-width:100%}.inventory-items-table .inventory-qty-input{text-align:center;width:3rem;min-width:0;padding:.28rem .32rem;font-size:.88rem}.inventory-items-table .inventory-qty-step{width:1.55rem;height:1.55rem;padding:0;font-size:.85rem}.inventory-search-row{align-items:center;gap:.5rem;margin:.75rem 0 .5rem;display:flex}.inventory-search-input{border:1px solid var(--border);background:var(--surface-input);width:min(420px,100%);max-width:100%;color:var(--text);font:inherit;border-radius:2px;padding:.6rem .7rem}.inventory-search-input:focus{border-color:var(--gold-dim);outline:none}.inventory-filter-btn{justify-content:center;align-items:center;padding:.6rem .7rem;display:inline-flex}.inventory-filters-panel{background:0 0;border:none;border-radius:0;gap:.4rem;margin-bottom:.5rem;padding:0;display:grid}.inventory-filters-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-family:Cinzel,serif;font-size:.72rem;font-weight:600}.inventory-filters-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.inventory-filter-tags{flex-wrap:wrap;gap:.5rem;display:flex}.inventory-type-filter{cursor:pointer;background:0 0;border:none;align-items:center;margin:0;padding:0;display:inline-flex}.inventory-type-filter:focus-visible{outline:2px solid var(--gold-dim);outline-offset:2px;border-radius:2px}.inventory-type-filter-icon{border:1px solid var(--border);background:var(--surface-shade);width:2.1rem;height:2.1rem;color:var(--muted);border-radius:2px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.inventory-type-filter-icon.active{border-color:var(--rust);color:var(--rust-glow);background:#c0390a33}.grimoire-spellcasting-panel{background:0 0;border:none;border-radius:0;padding:0}.grimoire-spellcasting-select{border:1px solid var(--border);background:var(--surface-shade-mid);color:var(--text);font:inherit;border-radius:2px;padding:.35rem .55rem}.grimoire-spellcasting-select:focus{border-color:var(--gold-dim);outline:none}.grimoire-spellcasting-stats{margin-top:.25rem}.grimoire-spellcasting-stat{color:var(--muted);margin:0;font-size:.85rem;line-height:1.25}.grimoire-spellcasting-formula{opacity:.85;font-size:.8rem}.grimoire-spell-slots-editor{border-top:1px solid #2a1e1466;margin-top:.65rem;padding-top:.65rem}.character-skills-accordion-panel .grimoire-spell-slots-editor{border-top:none;margin-top:0;padding-top:0}.grimoire-spell-slots-grid{grid-template-columns:repeat(auto-fill,minmax(4.75rem,1fr));gap:.45rem .55rem;display:grid}.grimoire-spell-slot-field{flex-direction:column;gap:.2rem;display:flex}.grimoire-spell-slot-field>span{color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-family:Cinzel,serif;font-size:.75rem;font-weight:500}.grimoire-spell-slot-input{width:100%;max-width:4.5rem}.inventory-filter-empty{color:var(--muted);font-size:.9rem}.character-features-table{min-width:720px}.character-features-table-wrap{display:block}.feature-cards{display:none}.feature-card{border:1px solid var(--border);border-left:3px solid var(--rust);background:var(--surface-feature);border-radius:2px;margin-bottom:.6rem;padding:.75rem}.feature-card-title{gap:.5rem;margin-bottom:.5rem;display:grid}.feature-card-select,.feature-card-input,.feature-card-textarea{border:1px solid var(--border);background:var(--surface-input);width:100%;color:var(--text);font:inherit;border-radius:2px;padding:.6rem .7rem}.feature-card-textarea{resize:vertical;min-height:4.5rem}.feature-card-actions{gap:.5rem;display:grid}.feature-desc{white-space:normal;word-break:break-word}.feature-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--border);text-align:left;padding:.65rem;font-size:.95rem}.table th{letter-spacing:2px;text-transform:uppercase;color:var(--rust-bright);background:#8a3a101a;font-family:Cinzel,serif;font-size:.75rem}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#c9a84c0a}.inventory-qty-input{border:1px solid var(--border);background:var(--surface-input);width:5.5rem;max-width:100%;color:var(--text);text-align:center;border-radius:2px;padding:.35rem .45rem}.inventory-qty-control{align-items:center;gap:.3rem;max-width:100%;display:inline-flex}.inventory-qty-step{border:1px solid var(--border);background:var(--surface-input-raised);width:1.9rem;height:1.9rem;color:var(--muted);font:inherit;cursor:pointer;border-radius:2px;flex:none;justify-content:center;align-items:center;line-height:1;transition:all .15s;display:inline-flex}.inventory-qty-step:hover{border-color:var(--gold-dim);color:var(--bone)}.inventory-qty-step:disabled{opacity:.45;cursor:default}.inventory-item-name{align-items:center;gap:.45rem;min-width:0;display:inline-flex}.inventory-item-type-icon{color:var(--muted);flex:none;justify-content:center;align-items:center;display:inline-flex}.inventory-drag-handle-th{width:2.25rem;padding-left:.25rem;padding-right:.25rem}.inventory-drag-header-icon{color:var(--muted);opacity:.7;margin:0 auto;display:block}.inventory-drag-handle-col{text-align:center;vertical-align:middle;touch-action:none;width:2.25rem}.inventory-drag-handle{color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:inline-flex}.inventory-drag-handle:active{cursor:grabbing}tr.inventory-row-dragging{opacity:.45}tr.inventory-row-drag-over{box-shadow:inset 0 0 0 1px var(--rust-bright);background:#c0390a14}.login-page{background:radial-gradient(ellipse at 60% 40%, #8a3a101f 0%, transparent 60%), var(--bg);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--gold-dim);border-radius:2px;width:min(460px,100%);padding:1.75rem 1.5rem}.login-card h1{color:var(--gold);letter-spacing:3px;text-transform:uppercase;margin-top:0;font-family:Cinzel,serif;font-size:1.5rem;font-weight:900}.login-form{gap:.6rem;margin-top:1rem;display:grid}.login-form .create-item-kind-label{letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-family:Cinzel,serif;font-size:.92rem;font-weight:600}.login-form .create-item-kind-tabs{margin-bottom:.15rem}.login-form input,.login-form textarea,.login-form select{border:1px solid var(--border);background:var(--surface-input);width:100%;color:var(--text);font:inherit;border-radius:2px;padding:.6rem .7rem}.login-form input:focus,.login-form textarea:focus,.login-form select:focus{border-color:var(--gold-dim);outline:none}.login-form textarea{resize:vertical;min-height:4.5rem}.login-actions{gap:.75rem;margin-top:1rem;display:flex}.item-edit-form{gap:.75rem}.item-edit-modal-header-extra{margin-bottom:.75rem}.item-edit-title-field{gap:.35rem;margin-bottom:.5rem;display:grid}.item-edit-title-field>span{color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-family:Cinzel,serif;font-size:.9rem;font-weight:600}.item-edit-title-field>input{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--bone);font:inherit;background:0 0;border-radius:0;padding:0;font-family:Cinzel,serif;font-size:1.2rem;font-weight:700;line-height:1.25}.item-edit-title-field>input:focus{border-bottom-color:var(--gold-dim);outline:none}.item-edit-form-row{grid-template-columns:10rem minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.item-edit-form-row>span{letter-spacing:1px;color:var(--muted);text-transform:uppercase;font-family:Cinzel,serif;font-size:.82rem;font-weight:600}.item-edit-form-row-textarea{grid-template-columns:1fr;align-items:start;gap:.4rem}.item-edit-form-inline-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.item-edit-form-inline-pair .item-edit-form-row{grid-template-columns:4.5rem minmax(0,1fr)}.item-edit-form .skill-check{justify-content:flex-start;gap:.5rem}.item-edit-inline-check{white-space:nowrap;align-self:center;min-height:100%;font-size:.92rem}.item-edit-inline-check input[type=checkbox]{flex:none;width:.9rem;height:.9rem}.item-edit-armor-checks{flex-wrap:wrap;gap:.75rem 1rem;display:flex}.spell-edit-level-input{max-width:5rem}.spell-edit-school-input{width:100%;min-width:0}.spell-class-multiselect{flex-direction:column;gap:.35rem;margin-bottom:.65rem;display:flex;position:relative}.spell-class-multiselect-label{color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-family:Cinzel,serif;font-size:.82rem;font-weight:600}.spell-class-multiselect-trigger{text-align:left;justify-content:space-between;align-items:center;gap:.5rem;width:100%;display:flex}.spell-class-multiselect-trigger-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.spell-class-multiselect-chevron{opacity:.85;flex-shrink:0;font-size:.75rem}.spell-class-multiselect-panel{z-index:25;border:1px solid var(--border);background:var(--panel);border-radius:2px;max-height:240px;padding:.45rem .5rem;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 24px #0009}.spell-class-multiselect-option{cursor:pointer;border-radius:2px;align-items:center;gap:.5rem;padding:.3rem .35rem;font-size:.9rem;display:flex}.spell-class-multiselect-option:hover{background:#c9a84c0f}.spell-class-multiselect-option input[type=checkbox]{flex:none;width:.9rem;height:.9rem}@media (width<=520px){.spell-edit-level-school-row{grid-template-columns:4.5rem minmax(0,1fr);align-items:start}.spell-edit-level-school-row .item-edit-form-row{grid-template-columns:1fr}.spell-edit-level-input{text-align:center;max-width:3.25rem;padding-left:.35rem;padding-right:.35rem}.spell-edit-school-input{min-width:0}}.item-edit-form input:disabled,.item-edit-form textarea:disabled,.item-edit-form select:disabled{opacity:.5}.item-edit-weapon-properties-list{gap:.6rem;display:grid}.item-edit-weapon-properties-tags{flex-wrap:wrap;gap:.5rem;display:flex}.item-edit-weapon-property-tag{border:1px solid var(--border);color:var(--bone);background:#2a1e144d;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .5rem;font-size:.85rem;display:inline-flex}.item-edit-weapon-property-remove{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none}.item-edit-weapon-property-remove:hover{color:var(--blood-bright)}.item-edit-weapon-properties-empty{color:var(--muted);margin:0}.item-edit-weapon-properties-add{align-items:center;gap:.5rem;display:flex}.item-edit-weapon-properties-add input{flex:auto;min-width:0}input[type=number]{appearance:auto}.message.error{color:var(--blood-bright);font-size:.92rem}.message.success{color:#6aaa4a;font-size:.92rem}.stats-grid{flex-wrap:wrap;gap:.85rem;margin-bottom:.8rem;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000a6;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-backdrop.modal-backdrop-stacked{z-index:60}.modal-backdrop.modal-backdrop-stacked-deep{z-index:70}.modal-card.modal-card-srd-detail{width:min(640px,100%)}.modal-card.modal-card-wide{width:min(900px,100%)}.srd-raw-json{white-space:pre-wrap;word-break:break-word;border:1px solid var(--border);max-height:220px;color:var(--muted);background:#00000059;border-radius:2px;margin:.25rem 0 .5rem;padding:.5rem .55rem;font-family:Courier New,monospace;font-size:.8rem;line-height:1.35;overflow:auto}.modal-card{background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--rust-bright);border-radius:2px;width:min(500px,100%);max-height:calc(100vh - 2rem);padding:1.25rem;overflow-y:auto;box-shadow:0 16px 48px #000000b3}.item-details-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.65rem;display:flex}.item-details-header-name{color:var(--gold);letter-spacing:1px;font-family:Cinzel,serif;font-size:1.05rem;font-weight:700;line-height:1.2}.item-details-header-submeta{color:var(--muted);margin-top:.2rem;font-size:.85rem;font-weight:500}.item-details-header{border-bottom:1px solid var(--border);padding-bottom:.65rem}.item-details-header-meta{text-align:right;flex-direction:column;align-items:flex-end;gap:.15rem;min-width:0;max-width:55%;display:flex}.item-details-header-type{color:var(--muted);word-break:break-word;font-size:.85rem;line-height:1.25}.markdown-content{word-break:break-word;min-width:0;line-height:1.65}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{color:var(--gold);letter-spacing:1px;margin:.9rem 0 .45rem;font-family:Cinzel,serif;line-height:1.25}.markdown-content p,.markdown-content ul,.markdown-content ol,.markdown-content pre,.markdown-content table{margin:.5rem 0}.markdown-content ul,.markdown-content ol{padding-left:1.25rem}.markdown-content table{border-collapse:collapse;table-layout:auto;width:auto;max-width:100%;display:table;overflow-x:auto}.markdown-content th,.markdown-content td{border:1px solid var(--border);text-align:left;vertical-align:top;white-space:normal;word-break:normal;overflow-wrap:break-word;padding:.5rem .65rem}.markdown-content th{letter-spacing:1px;text-transform:uppercase;color:var(--rust-bright);background:#8a3a101f;font-family:Cinzel,serif;font-size:.8rem;font-weight:700}.wysiwyg{border:1px solid var(--border);background:var(--panel);border-radius:2px;overflow:hidden}.wysiwyg-toolbar{border-bottom:1px solid var(--border);background:#2a1e1433;flex-wrap:wrap;gap:.35rem;padding:.5rem;display:flex}.wysiwyg-sep{background:var(--border);width:1px;margin:0 .15rem}.wysiwyg-surface-wrap{position:relative}.wysiwyg-placeholder{color:var(--muted);pointer-events:none;-webkit-user-select:none;user-select:none;font-style:italic;position:absolute;top:.75rem;left:.75rem;right:.75rem}.wysiwyg-surface{white-space:normal;color:var(--text);outline:none;min-height:4rem;padding:.75rem}.wysiwyg-disabled{opacity:.6}.notes-campaign-list{margin-top:.5rem}.tabs-row{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.session-tabs-primary{margin-bottom:.5rem}.session-tabs-secondary{margin-bottom:.75rem}.session-tabs-primary-sticky{z-index:5;background:var(--panel);border-bottom:1px solid var(--border);padding-top:.25rem;padding-bottom:.25rem;position:sticky;top:0}.session-tabs-primary .tab-btn,.session-subtabs-dock .tab-btn{justify-content:center;align-items:center;min-width:3rem;min-height:3rem;padding:.65rem .9rem;display:inline-flex}.tab-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;letter-spacing:1px;text-transform:uppercase;background:0 0;border-bottom:2px solid #0000;border-radius:2px;padding:.45rem .85rem;font-family:Cinzel,serif;font-size:.75rem;transition:all .15s}.tab-btn:hover{color:var(--bone);border-color:var(--border);border-bottom-color:var(--gold-dim)}.tab-btn.active{background:var(--tab-active-bg);color:var(--gold);border-color:var(--border);border-bottom-color:var(--rust-bright)}.tab-panel{touch-action:pan-y;border-radius:2px;min-width:0;min-height:240px;padding:.8rem}.tab-panel h4{color:var(--gold);letter-spacing:2px;text-transform:uppercase;margin:.4rem 0 .2rem;font-family:Cinzel,serif;font-size:.82rem}.session-live-content{min-width:0;padding-bottom:5.25rem}.session-live-page--dock-offset{padding-bottom:calc(5.75rem + env(safe-area-inset-bottom,0px))}.session-live-characters-strip{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;overscroll-behavior-x:contain;flex-flow:row;gap:.75rem;margin-top:.75rem;padding:.15rem 0 .35rem;display:flex;overflow:auto visible}.session-live-character-panel{scroll-snap-align:start;flex:0 0 min(360px,100vw - 2.5rem);min-width:272px;max-width:400px}.session-live-character-panel-inner{border:1px solid var(--border);border-top:2px solid var(--rust);background:var(--surface-session-card);border-radius:2px;min-width:0;margin-top:0;padding:.65rem .7rem 5.25rem}.session-live-character-title-row{align-items:center;gap:.45rem;min-width:0;margin:0 0 .5rem;display:flex}.session-live-character-title-row .session-live-character-panel-title{flex:1;min-width:0;margin:0}.session-live-character-edit-link{border:1px solid var(--border);color:var(--muted);letter-spacing:1px;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;padding:.2rem .5rem;font-family:Cinzel,serif;font-size:.75rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.session-live-character-edit-link:hover{color:var(--gold);border-color:var(--gold-dim)}.session-live-chat-panel{min-height:min(420px,55vh);box-shadow:none;background:0 0;border:none;border-radius:0;flex-direction:column;display:flex}.session-live-chat{flex-direction:column;flex:1;gap:.65rem;min-height:0;display:flex}.session-live-chat-messages{background:0 0;border:none;border-radius:0;flex:1;min-height:200px;max-height:min(420px,50vh);padding:.5rem .15rem;overflow-y:auto}.session-live-chat-placeholder{color:var(--muted);margin:0;font-size:.92rem;font-style:italic}.session-live-chat-line{border-bottom:1px solid #2a1e1459;border-radius:2px;grid-template-columns:3.1rem 1fr;align-items:start;column-gap:.35rem;padding:.22rem .15rem;display:grid}.session-live-chat-line:last-child{border-bottom:none}.session-live-chat-line--own{background:#8a3a101a}.session-live-chat-line:hover{background:#c9a84c0a}.session-live-chat-ts{color:var(--muted);text-align:right;white-space:nowrap;padding-top:.12rem;font-size:.72rem}.session-live-chat-content{min-width:0}.session-live-chat-content-line{white-space:pre-wrap;word-break:break-word;font-size:.9rem;line-height:1.45}.session-live-chat-author{color:var(--gold);font-family:Cinzel,serif;font-weight:600}.session-live-chat-image-wrap{max-width:100%;margin:.25rem 0 0}.session-live-chat-colon{color:var(--muted);margin:0 .35rem}.session-live-chat-body{color:var(--text)}.session-live-chat-image{border:1px solid var(--border);object-fit:contain;background:#00000040;border-radius:2px;width:auto;max-width:min(100%,320px);height:auto;max-height:240px;display:block}.session-live-chat-image-click{cursor:pointer;background:0 0;border:none;padding:0;display:inline-block}.session-live-chat-image-click:focus-visible{outline:2px solid var(--gold-dim);outline-offset:2px;border-radius:2px}.session-live-chat-lightbox{width:min(980px,100vw - 2rem)}.session-live-chat-lightbox-img{border:1px solid var(--border);object-fit:contain;background:#0000004d;border-radius:2px;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 10rem);margin:0 auto;display:block}.session-live-chat-image-loading,.session-live-chat-image-error{color:var(--muted);font-size:.82rem}.session-live-chat-preview{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.session-live-chat-preview-img{border:1px solid var(--border);object-fit:cover;border-radius:2px;max-width:120px;max-height:72px}.session-live-chat-form{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;display:flex}.session-live-chat-input{border:1px solid var(--border);background:var(--surface-input-raised);min-width:0;color:var(--text);border-radius:2px;flex:1;padding:.5rem .65rem;font-family:inherit;font-size:.95rem}.session-live-chat-input:focus{border-color:var(--gold-dim);outline:none}.session-live-chat-send{flex-shrink:0}.session-live-character-panel-title{color:var(--gold);letter-spacing:1px;font-family:Cinzel,serif;font-size:1.02rem}.initiative-tracker{gap:.75rem;min-width:0;display:grid}.initiative-tracker-header{border:1px solid var(--border);background:var(--surface-band);border-radius:2px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.65rem .75rem;display:flex}.initiative-tracker-header-left{flex-wrap:wrap;align-items:baseline;gap:.9rem;display:flex}.initiative-tracker-round-value,.initiative-tracker-active-value{font-variant-numeric:tabular-nums;color:var(--gold);font-family:Cinzel,serif;font-weight:700}.initiative-tracker-header-actions{flex-wrap:wrap;gap:.45rem;display:flex}.initiative-tracker-add{border:1px solid var(--border);background:var(--surface-well);border-radius:2px;padding:.65rem .75rem}.initiative-tracker-add-row{grid-template-columns:1.4fr 90px 90px 110px auto auto;align-items:center;gap:.5rem;display:grid}.initiative-tracker-add-row input[type=text],.initiative-tracker-add-row input[type=number]{border:1px solid var(--border);background:var(--surface-input-raised);width:100%;color:var(--text);font:inherit;border-radius:2px;padding:.5rem .65rem}.initiative-tracker-add-actions{flex-wrap:wrap;gap:.5rem;margin-top:.55rem;display:flex}.initiative-table .initiative-cell-input{border:1px solid var(--border);background:var(--surface-input-raised);width:100%;color:var(--text);font:inherit;border-radius:2px;padding:.35rem .45rem}.initiative-cell-number{text-align:center;font-variant-numeric:tabular-nums;color:var(--gold);font-family:Cinzel,serif;font-weight:700}.initiative-hp-cell{grid-template-columns:1fr auto 1fr;align-items:center;gap:.3rem;display:grid}.initiative-hp-sep{color:var(--muted);text-align:center}.initiative-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}button.initiative-visibility-toggle{justify-content:center;align-items:center;min-width:2.25rem;padding-left:.4rem;padding-right:.4rem;display:inline-flex}.initiative-name-cell{align-items:center;gap:.5rem;min-width:0;display:flex}.initiative-badge{text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--border);color:var(--muted);background:#2a1e144d;border-radius:2px;flex:none;padding:.12rem .4rem;font-family:Cinzel,serif;font-size:.68rem}.initiative-badge-pc{color:var(--steel-bright);background:#3a5a6e33;border-color:#8aaabf59}.initiative-badge-npc{color:var(--gold);background:#c9a84c1a;border-color:#c9a84c59}.initiative-row-active td{background:#c0390a1a}.initiative-row-hidden{opacity:.45}.session-dice-character-row{margin-bottom:.65rem}.session-dice-character-row label{color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:.25rem;font-family:Cinzel,serif;font-size:.88rem;display:block}.session-dice-character-row select{width:min(100%,320px)}.session-dice-tab{flex-direction:column;gap:.75rem;display:flex}.session-dice-toolbar{flex-direction:column;gap:.65rem;display:flex}.session-dice-quick{flex-direction:column;gap:.35rem;display:flex}.session-dice-quick-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-family:Cinzel,serif;font-size:.72rem}.session-dice-quick-btns{flex-wrap:wrap;gap:.35rem;display:flex}.session-dice-form{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.session-dice-form-manual{border-top:1px solid var(--border);flex-direction:column;align-items:stretch;gap:.5rem;padding-top:.55rem}.session-dice-manual-title{color:var(--gold);letter-spacing:1px;margin:0;font-family:Cinzel,serif;font-size:.95rem;font-weight:600}.session-dice-manual-fields{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.session-dice-field-grow{flex:160px;min-width:0}.session-dice-field-grow input[type=text]{width:100%}.session-dice-manual-submit{flex:none}.session-dice-field{flex-direction:column;gap:.2rem;min-width:0;display:flex}.session-dice-field span{color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-family:Cinzel,serif;font-size:.72rem}.session-dice-field input,.session-dice-field select{border:1px solid var(--border);background:var(--surface-input-raised);color:var(--text);font:inherit;border-radius:2px;min-width:0;padding:.45rem .55rem}.session-dice-field-note select{width:min(200px,100%)}.session-dice-field-tight input{width:4.5rem}.session-dice-field:not(.session-dice-field-tight):not(.session-dice-field-grow) input[type=text]{width:min(220px,100%)}.session-dice-row-manual{color:var(--muted);font-size:.82rem;font-style:italic}.session-dice-history-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.session-dice-history-title{color:var(--gold);letter-spacing:1px;margin:0;font-family:Cinzel,serif;font-size:1rem}.session-dice-history-title-block{align-items:center;gap:.35rem;min-width:0;display:flex}.session-dice-stats-btn{flex-shrink:0;justify-content:center;align-items:center;padding:.35rem .45rem;display:inline-flex}.session-dice-refresh{justify-content:center;align-items:center;padding:.4rem .55rem;display:inline-flex}.session-dice-refresh-spin{animation:.85s linear infinite session-dice-spin}@keyframes session-dice-spin{to{transform:rotate(360deg)}}.session-dice-stats-modal{max-width:min(560px,100%);max-height:min(85vh,720px);overflow-y:auto}.session-dice-stats-section-charts{background:#8a3a1014;border:1px solid #c0390a40;border-radius:2px;padding:.65rem .75rem}.session-dice-chart-section-intro{color:var(--muted);margin:0 0 .75rem;font-size:.84rem;line-height:1.45}.session-dice-chart-block{margin-bottom:1.1rem}.session-dice-chart-block:last-child{margin-bottom:0}.session-dice-chart-axis-hint{color:var(--muted);margin:0 0 .4rem;font-size:.78rem;line-height:1.4}.session-dice-distribution-svg{width:100%;height:auto;max-height:220px;display:block}.session-dice-chart-axis{stroke:#7a645073;stroke-width:1px}.session-dice-chart-grid{stroke:#7a645026;stroke-width:1px}.session-dice-chart-tick,.session-dice-chart-axis-label{fill:var(--muted);font-size:9px}.session-dice-chart-line{vector-effect:non-scaling-stroke}.session-dice-chart-legend{color:var(--muted);flex-wrap:wrap;gap:.35rem .85rem;margin:.5rem 0 0;padding:0;font-size:.78rem;list-style:none;display:flex}.session-dice-chart-legend li{align-items:center;gap:.35rem;display:inline-flex}.session-dice-chart-legend-swatch{border-radius:2px;flex-shrink:0;width:.65rem;height:.65rem}.session-dice-stats-modal>h3{color:var(--gold);letter-spacing:2px;margin-top:0;font-family:Cinzel,serif}.session-dice-stats-hint{color:var(--muted);margin:0 0 1rem;font-size:.85rem;line-height:1.45}.session-dice-stats-empty{color:var(--muted);margin:0}.session-dice-stats-section{margin-bottom:1.1rem}.session-dice-stats-section-title{color:var(--gold);letter-spacing:1px;margin:0 0 .45rem;font-family:Cinzel,serif;font-size:.92rem;font-weight:600}.session-dice-stats-section-damage{background:#7a10101a;border:1px solid #b0202040;border-radius:2px;padding:.75rem .85rem}.session-dice-stats-damage-intro{color:var(--muted);margin:0 0 .65rem;font-size:.84rem;line-height:1.45}.session-dice-stats-empty-inline{margin:0}.session-dice-stats-summary{flex-direction:column;gap:.35rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.session-dice-stats-table th,.session-dice-stats-table td{font-size:.85rem}.session-dice-stats-modal-actions{margin-top:1rem}.session-dice-loading,.session-dice-empty{color:var(--muted);margin:0;font-size:.92rem;font-style:italic}.session-dice-list{flex-direction:column;gap:.4rem;max-height:min(50vh,420px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.session-dice-row{background:var(--surface-list-row);border:1px solid var(--border-faint);border-radius:2px;flex-wrap:wrap;align-items:baseline;gap:.25rem .65rem;padding:.45rem .55rem;font-size:.88rem;display:flex}.session-dice-row-mine{background:#8a3a101f;border-color:#c0390a66}.session-dice-row-time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.session-dice-row-user{color:var(--gold);flex:none;font-family:Cinzel,serif;font-size:.82rem;font-weight:600}.session-dice-row-formula{flex:100%;min-width:0}@media (width>=520px){.session-dice-row-formula{flex:auto}}.session-dice-row-label{color:var(--muted);font-weight:400}.session-dice-row-detail{color:var(--muted);flex:auto;min-width:0;font-family:ui-monospace,monospace;font-size:.82rem}.session-dice-row-total{font-variant-numeric:tabular-nums;color:var(--rust-glow);flex:none;margin-left:auto;font-family:Cinzel,serif;font-size:1.05rem;font-weight:700}.session-subtabs-dock{z-index:45;background:var(--nav-session-dock-bg);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overscroll-behavior-x:contain;flex-wrap:wrap;justify-content:center;gap:.5rem;padding:.6rem .75rem;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(0)}@media (width>=901px){.session-subtabs-dock{left:250px}}.ability-grid{grid-template-columns:1fr 120px 44px;align-items:center;gap:.5rem .8rem;display:grid}.ability-label{color:var(--muted);align-self:center;font-size:.9rem}.character-skills-accordion{margin:.65rem 0 .75rem}.character-skills-accordion-summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--gold);letter-spacing:1px;text-transform:uppercase;align-items:center;gap:.45rem;padding:.35rem 0;font-family:Cinzel,serif;font-size:.82rem;font-weight:600;list-style:none;display:flex}.character-skills-accordion-summary::-webkit-details-marker{display:none}.character-skills-accordion-summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex-shrink:0;width:.4rem;height:.4rem;margin-top:-.1rem;transition:transform .15s;display:inline-block;transform:rotate(-45deg)}.character-skills-accordion[open]>.character-skills-accordion-summary:before{margin-top:.1rem;transform:rotate(45deg)}.character-skills-accordion-panel{padding:.15rem 0 0}.inventory-purse-accordion{margin-bottom:1rem}.inventory-purse-summary-po{color:var(--muted);font-size:.92rem;font-weight:500}.inventory-purse-syncing{color:var(--muted);font-weight:400}.grimoire-session-live{min-width:0}.grimoire-session-incantation-compact{border-bottom:1px solid var(--border);color:var(--text);flex-wrap:wrap;align-items:baseline;gap:.2rem .3rem;margin:0 0 .05rem;padding:.12rem 0 .32rem;font-size:.8rem;line-height:1.3;display:flex}.grimoire-session-incantation-bit{white-space:nowrap}.grimoire-session-incantation-abbr{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-family:Cinzel,serif;font-size:.65rem;font-weight:600;text-decoration:none}.grimoire-session-incantation-val{font-variant-numeric:tabular-nums;color:var(--gold);font-size:.84rem;font-weight:700}.grimoire-session-incantation-ability-mod{font-variant-numeric:tabular-nums;font-weight:700}.grimoire-session-incantation-sep{color:var(--muted);opacity:.5;-webkit-user-select:none;user-select:none;font-size:.75rem;font-weight:400}.grimoire-session-levels{flex-direction:column;gap:.15rem;margin-top:.35rem;display:flex}.grimoire-session-level{background:0 0;border:none;border-radius:0;overflow:visible}.grimoire-session-level:not(:last-child){border-bottom:1px solid var(--border);margin-bottom:.25rem;padding-bottom:.4rem}.grimoire-session-level-summary{cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:.75rem minmax(10.75rem,13rem) 1fr;align-items:center;column-gap:.45rem;padding:.35rem 0;list-style:none;display:grid}.grimoire-session-level-summary::-webkit-details-marker{display:none}.grimoire-session-level-summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);grid-column:1;place-self:center start;width:.4rem;height:.4rem;margin-top:-.05rem;transition:transform .15s;display:inline-block;transform:rotate(-45deg)}.grimoire-session-level[open]>.grimoire-session-level-summary:before{margin-top:.08rem;transform:rotate(45deg)}.grimoire-session-level-title{letter-spacing:1px;min-width:0;color:var(--muted);text-transform:uppercase;grid-column:2;font-family:Cinzel,serif;font-size:.8rem;font-weight:600}.grimoire-session-slot-boxes{flex-wrap:wrap;grid-column:3;justify-self:start;align-items:center;gap:.22rem;margin:0;display:inline-flex}.grimoire-session-slot-boxes input[type=checkbox]{cursor:pointer;width:1.15rem;height:1.15rem}.grimoire-session-level-body{border:none;padding:.2rem 0 .45rem 1.05rem}.grimoire-session-empty{color:var(--muted);margin:.5rem 0 0;font-size:.9rem;font-style:italic}.grimoire-session-spell-list{flex-direction:column;gap:0;margin:.45rem 0 0;padding:0;list-style:none;display:flex}.grimoire-session-spell-list>li:not(:last-child){border-bottom:1px solid var(--border);margin-bottom:.3rem;padding-bottom:.4rem}.grimoire-session-spell-row{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:flex-start;gap:.2rem;margin:0;padding:.25rem 0;display:flex}.grimoire-spell-admin-row{align-items:center;gap:.65rem;display:flex}.grimoire-spell-admin-row .grimoire-session-spell-row{flex:auto}.grimoire-inline-check{white-space:nowrap;color:var(--muted);align-items:center;gap:.4rem;font-size:.88rem;display:inline-flex}.grimoire-summary-caption{color:var(--muted);margin:-.1rem 0 .65rem;font-size:.88rem}.grimoire-session-spell-row:hover .grimoire-session-spell-name{text-underline-offset:.12em;text-decoration:underline}.grimoire-session-spell-title{line-height:1.35;display:block}.grimoire-session-spell-name{color:var(--bone);font-weight:600}.grimoire-session-spell-meta{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.35rem .85rem;font-size:.82rem;line-height:1.35;display:flex}.grimoire-session-spell-meta-item{display:inline}.grimoire-session-spell-meta-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-right:.28rem;font-family:Cinzel,serif;font-size:.75rem;font-weight:600}.grimoire-session-prepared{color:var(--muted);font-weight:400}.character-skills-summary-empty{color:var(--muted);margin:.45rem 0 .15rem;font-size:.9rem;font-style:italic}.character-skills-summary-list{flex-direction:column;gap:0;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.character-skills-summary-row{background:0 0;border:none;border-bottom:1px solid #2a1e1466;border-radius:0;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.45rem 0;display:flex}.character-skills-summary-list>li.character-skills-summary-row:last-child{border-bottom:none}.character-skills-summary-name-block{flex-flow:wrap;flex:auto;align-items:baseline;gap:.35rem .5rem;min-width:min(100%,10rem);display:flex}.character-skills-summary-name{color:var(--bone);font-weight:600;line-height:1.2}.character-skills-summary-ability-abbr{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-family:Cinzel,serif;font-size:.72rem}.character-skill-ability-for{color:#e06050}.character-skill-ability-dex{color:#e09040}.character-skill-ability-con{color:#60aa60}.character-skill-ability-int{color:#6090d0}.character-skill-ability-sag{color:#a070d0}.character-skill-ability-cha{color:#d06090}.character-skills-summary-badge{text-transform:uppercase;letter-spacing:.06em;border-radius:2px;padding:.12rem .4rem;font-family:Cinzel,serif;font-size:.68rem}.character-skills-summary-badge.is-proficient{color:var(--gold);background:#c9a84c2e;border:1px solid #c9a84c4d}.character-skills-summary-badge.is-expertise{color:var(--rust-glow);background:#8a3a1040;border:1px solid #c0502059}.character-skills-summary-badge.is-not-proficient{color:var(--muted);border:1px solid var(--border);background:#2a1e1440;font-weight:500}.character-skills-summary-total{font-variant-numeric:tabular-nums;color:var(--bone);margin-left:auto;font-family:Cinzel,serif;font-weight:600}.derived-stats{flex-wrap:wrap;gap:1rem;display:flex}.session-character-meta-row{-webkit-overflow-scrolling:touch;gap:.9rem;margin-bottom:.4rem;display:flex;overflow-x:auto}.session-character-meta-row>div{background:0 0;border:none;flex:none;align-items:baseline;gap:.35rem;padding:0;display:inline-flex}.session-character-meta-row strong{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-family:Cinzel,serif;font-size:.75rem}.session-character-meta-row>div>div{white-space:nowrap;text-overflow:ellipsis;max-width:32vw;overflow:hidden}.session-game-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.session-game-row{background:0 0;border:none;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .55rem;display:flex}.session-game-row strong{text-transform:uppercase;letter-spacing:1px;color:var(--row-color,var(--muted));font-family:Cinzel,serif;font-size:.78rem}.session-game-row-hp{--row-color:#50a050e6;background:#143c194d;border:1px solid #50a05059;border-radius:2px}.session-game-row-dice{--row-color:#64b450e6;background:#28501e40;border:1px solid #64b4504d;border-radius:2px}.session-game-row-ac{--row-color:#5082b4e6;border-bottom-color:#5082b48c}.session-game-row-prof{--row-color:#c07828e6;border-bottom-color:#c078288c}.session-game-row-destiny{--row-color:#d2b937e6;border-bottom-color:#d2b9378c}.session-game-row-destiny input{text-align:center;width:3rem;color:var(--bone);background:0 0;border:none;border-bottom:1px solid #d2b93766;border-radius:2px;padding:.15rem .2rem;font-family:Cinzel,serif;font-size:.9rem;font-weight:700}.session-game-secondary-row{grid-column:1/-1;gap:0;display:flex}.session-game-secondary-row .session-game-row{flex:1}.session-game-split{align-items:center;gap:.35rem;display:inline-flex}.session-game-split input{text-align:center;border:1px solid var(--border);background:var(--surface-input);width:4.2rem;color:var(--text);font-variant-numeric:tabular-nums;border-radius:2px;padding:.35rem;font-family:Cinzel,serif}.session-game-static-value{text-align:center;min-width:2.2rem;color:var(--bone);font-family:Cinzel,serif;font-weight:700}.session-ability-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.session-ability-title{color:var(--gold);letter-spacing:2px;text-transform:uppercase;font-family:Cinzel,serif;font-size:.82rem;margin:.2rem 0 .15rem!important}.session-live-page .character-skills-accordion{margin-top:.35rem}.session-live-inventory-accordions{flex-direction:column;gap:.75rem;margin-top:0;display:flex}.session-live-page .session-live-inventory-accordions>.character-skills-accordion{margin:0}.session-live-inventory-accordions .character-skills-accordion-summary.session-weapons-title,.session-live-inventory-accordions .character-skills-accordion-summary.session-consumables-title,.session-live-inventory-accordions .character-skills-accordion-summary.session-items-title{margin:0!important}.session-weapons-table th,.session-weapons-table td,.session-consumables-table th,.session-consumables-table td,.session-items-table th,.session-items-table td{border-bottom:none}.session-weapons-table thead th,.session-consumables-table thead th,.session-items-table thead th{letter-spacing:2px;text-transform:uppercase;color:var(--rust-bright);border-bottom:1px solid #5a3c1e80;font-family:Cinzel,serif;font-size:.72rem}.session-weapons-table tbody tr.session-weapons-row:not(:last-child) td,.session-consumables-table tbody tr.session-consumables-row:not(:last-child) td,.session-items-table tbody tr.session-items-row:not(:last-child) td{border-bottom:1px solid #2a1e1466}.session-weapons-empty,.session-consumables-empty,.session-items-empty{color:var(--muted);margin:.15rem 0 0;font-size:.9rem;font-style:italic}.session-ability-item{border:1px solid var(--ability-color,var(--border-faint));background:var(--ability-bg,var(--surface-well));border-radius:2px;grid-template-columns:.9fr 1fr .7fr;align-items:center;display:grid;overflow:hidden}.session-ability-name,.session-ability-mod,.session-ability-value-prof{place-items:center;min-height:2.5rem;display:grid}.session-ability-name{letter-spacing:.04em;text-transform:uppercase;color:var(--ability-color,var(--muted));font-family:Cinzel,serif;font-size:.72rem;font-weight:800}.session-ability-mod{background:var(--ability-mod-bg,var(--surface-input-raised));color:var(--bone);border:none;border-radius:2px;min-height:2.02rem;margin:.24rem;font-family:Cinzel,serif;font-size:1.1rem;font-weight:800;box-shadow:inset 0 1px #ffffff0a}.session-ability-raw{font-weight:700}.session-ability-value-prof{grid-template-rows:1fr 1fr;gap:.1rem}.session-ability-raw-value{color:var(--bone);font-family:Cinzel,serif;font-size:.75rem;font-weight:700;line-height:1}.session-ability-value-prof input[type=checkbox]{width:1.05rem;height:1.05rem}.session-ability-strength{--ability-color:#c84646d9;--ability-bg:#8c1e1e2e;--ability-mod-bg:#500f0fcc}.session-ability-dexterity{--ability-color:#d28732d9;--ability-bg:#a05a142e;--ability-mod-bg:#5a320acc}.session-ability-constitution{--ability-color:#4ba550d9;--ability-bg:#1e64282e;--ability-mod-bg:#0f3714cc}.session-ability-intelligence{--ability-color:#5082c8d9;--ability-bg:#1e3c782e;--ability-mod-bg:#0f2350cc}.session-ability-wisdom{--ability-color:#9155d7d9;--ability-bg:#5a28a02e;--ability-mod-bg:#321464cc}.session-ability-charisma{--ability-color:#d25096d9;--ability-bg:#a028642e;--ability-mod-bg:#5a1437cc}.session-ability-prof input[type=checkbox]{width:1.05rem;height:1.05rem}.session-class-resources{flex-wrap:wrap;gap:.5rem .75rem;margin-bottom:.5rem;display:flex}.session-class-resource-group{flex-direction:column;gap:.2rem;display:flex}.session-class-resource-label{text-transform:uppercase;letter-spacing:.8px;color:var(--resource-color,var(--muted));align-items:center;gap:.25rem;font-family:Cinzel,serif;font-size:.65rem;display:flex}.session-class-resource-icons{flex-wrap:wrap;gap:.25rem;display:flex}.session-class-resource-icon{border:1px solid var(--resource-color,var(--border-faint));cursor:pointer;width:1.8rem;height:1.8rem;color:var(--resource-color,var(--muted));background:0 0;border-radius:2px;place-items:center;padding:0;transition:background .15s,opacity .15s;display:grid}.session-class-resource-icon.active{background:color-mix(in srgb, var(--resource-color,var(--border-faint)) 20%, transparent);opacity:1}.session-class-resource-icon.spent{opacity:.25;border-color:var(--border-faint);color:var(--muted)}.session-class-resource-counter{align-items:center;gap:.3rem;display:inline-flex}.session-class-resource-counter button{border:1px solid var(--resource-color,var(--border-faint));width:1.5rem;height:1.5rem;color:var(--resource-color,var(--muted));cursor:pointer;background:0 0;border-radius:2px;place-items:center;padding:0;font-size:.9rem;line-height:1;display:grid}.session-class-resource-count{color:var(--bone);text-align:center;min-width:1.4rem;font-family:Cinzel,serif;font-size:.9rem;font-weight:700}.session-class-resource-sep{color:var(--muted);font-size:.8rem}.session-class-resource-max{color:var(--muted);font-family:Cinzel,serif;font-size:.78rem}.purse-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .8rem;display:grid}.purse-row{grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:.35rem .6rem;display:grid}.purse-row label{color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:1px;font-family:Cinzel,serif;font-size:.8rem;font-weight:600}.purse-row input[type=number]{border:1px solid var(--border);background:var(--surface-input);width:100%;color:var(--gold);text-align:center;border-radius:2px;padding:.45rem .5rem;font-family:Cinzel,serif;font-weight:700}.skills-table{grid-template-columns:1fr 120px 120px;align-items:center;gap:.35rem .6rem;display:grid}.skills-header{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-family:Cinzel,serif;font-size:.78rem}.skill-check{justify-content:center;display:flex}.checkbox-row{align-items:center;gap:.5rem;display:flex}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{background:var(--surface-input);border:1px solid var(--border);color:var(--text);border-radius:2px;padding:.55rem .7rem;font-family:inherit}input:focus:not([type=checkbox]):not([type=radio]),select:focus,textarea:focus{border-color:var(--gold-dim);box-shadow:0 0 0 2px var(--focus-ring);outline:none}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.6}input:-webkit-autofill{caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-input) inset!important;-webkit-text-fill-color:var(--text)!important;border-color:var(--border)!important}input:-webkit-autofill:hover{caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-input) inset!important;-webkit-text-fill-color:var(--text)!important;border-color:var(--border)!important}input:-webkit-autofill:focus{caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-input) inset!important;-webkit-text-fill-color:var(--text)!important;border-color:var(--border)!important}input:-webkit-autofill:active{caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-input) inset!important;-webkit-text-fill-color:var(--text)!important;border-color:var(--border)!important}select:-webkit-autofill{caret-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface-input) inset!important;-webkit-text-fill-color:var(--text)!important;border-color:var(--border)!important}input[type=checkbox]{appearance:none;border:1px solid var(--border);background:var(--surface-input);cursor:pointer;vertical-align:middle;border-radius:2px;flex-shrink:0;width:1.05rem;height:1.05rem;margin:0;transition:border-color .15s,background .15s,box-shadow .15s;position:relative}input[type=checkbox]:hover{border-color:var(--gold-dim)}input[type=checkbox]:checked{background:var(--rust-bright);border-color:var(--rust-bright)}input[type=checkbox]:checked:after{content:"";border:solid var(--bone);box-sizing:border-box;border-width:0 2px 2px 0;width:.22rem;height:.42rem;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}input[type=checkbox]:focus-visible{border-color:var(--gold-dim);box-shadow:0 0 0 2px var(--focus-ring);outline:none}input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.snackbar-stack{z-index:10050;pointer-events:none;flex-direction:column;align-items:stretch;gap:.5rem;width:max-content;max-width:min(480px,100vw - 2rem);display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.snackbar{pointer-events:auto;text-align:center;letter-spacing:.5px;border:1px solid #0000;border-radius:2px;padding:.65rem 1rem;font-family:Cinzel,serif;font-size:.9rem;line-height:1.35;animation:.2s ease-out snackbar-in;box-shadow:0 8px 32px #0009}@keyframes snackbar-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.snackbar--success{color:#a0e0a0;background:#143c14f2;border-color:#50a05080}.snackbar--error{color:#f0a0a0;background:#500f0ff7;border-color:#c83c3c80}.snackbar--info{border-color:var(--border);color:var(--muted);background:#140f0af5}@media (width<=900px){.app-shell{grid-template-columns:minmax(0,1fr);position:relative}.sidebar{z-index:40;width:min(300px,80vw);height:100dvh;padding-bottom:max(.75rem, env(safe-area-inset-bottom,0px));transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{z-index:48;transform:translate(0)}.sidebar-nav{grid-template-columns:1fr}.burger-btn{display:inline-block}.mobile-menu-backdrop{z-index:35;background:#0000008c;border:none;padding:0;display:block;position:fixed;inset:0}.page-content{padding:.85rem}.topbar{flex-wrap:nowrap;gap:.75rem;padding:.65rem .85rem}.topbar-user{gap:.35rem;width:auto;font-size:.92rem}.topbar-session{text-align:right;justify-items:end;gap:.12rem;width:auto}.topbar-session-title{max-width:100%;font-size:.82rem;line-height:1.1}.topbar-session-date{max-width:100%;font-size:.72rem}.topbar-session-campaign{font-size:.72rem}.burger-btn{margin-right:.45rem;padding:.2rem .45rem;font-size:.95rem}.topbar .badge{padding:.1rem .35rem;font-size:.68rem}.tabs-row{flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.tab-btn{white-space:nowrap;flex:none}.ability-grid{grid-template-columns:1fr 88px 44px}.skills-table{grid-template-columns:1fr 90px 90px;font-size:.92rem}.purse-grid{grid-template-columns:1fr}.initiative-tracker-add-row{grid-template-columns:1fr 84px 84px 100px auto}.session-tabs-primary,.session-tabs-secondary{margin-bottom:.5rem}.session-subtabs-dock{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto}.session-subtabs-dock .tab-btn{white-space:nowrap;flex:none}}@media (width<=520px){.inventory-table-wrap .inventory-actions-col{display:none}.session-live-page .inventory-table-wrap .inventory-actions-col{display:table-cell}.session-live-page{margin-top:-.85rem}.session-live-page .session-tabs-primary-sticky{margin-left:-.85rem;margin-right:-.85rem;padding-left:.85rem;padding-right:.85rem}.session-live-page .session-subtabs-dock{margin-left:0;margin-right:0;padding-left:.85rem;padding-right:.85rem}.session-live-page .card,.character-edit-page .card{background:0 0;border:none;border-radius:0;padding:0}.character-edit-page .tab-panel{padding-left:0;padding-right:0}.session-game-split input{width:3rem;min-width:3rem;padding:.25rem .2rem;font-size:.9rem}.purse-row{grid-template-columns:repeat(5,minmax(0,1fr))}.purse-row input[type=number]{text-align:center;padding:.35rem}.btn{padding:.5rem .7rem;font-size:.82rem}.btn-small{padding:.32rem .5rem;font-size:.72rem}.modal-backdrop{place-items:end center;padding:.5rem}.modal-card{border-radius:2px;width:100%;max-height:calc(100vh - 1rem);padding:.8rem}.skills-table{grid-template-columns:1fr 72px 72px;font-size:.86rem}.session-character-meta-row>div>div{max-width:42vw}.responsive-table thead{display:none}.responsive-table tbody,.responsive-table tr,.responsive-table td{width:100%;display:block}.responsive-table tr{border:1px solid var(--border);background:var(--surface-band);border-radius:2px;margin-bottom:.6rem;padding:.45rem .55rem}.responsive-table td{border-bottom:none;padding:.32rem 0;font-size:.9rem}.responsive-table td:before{content:attr(data-label) ": ";color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-family:Cinzel,serif;font-size:.75rem;font-weight:600}.responsive-table td[data-label=Actions]:before{content:"Actions: "}.responsive-table td .btn.btn-small{width:100%;margin-top:.3rem}.inventory-items-table thead{display:table-header-group}.inventory-items-table tbody{display:table-row-group}.inventory-items-table tr{background:0 0;border:none;border-radius:0;margin:0;padding:0;display:table-row}.inventory-items-table td,.inventory-items-table th{vertical-align:middle;display:table-cell}.inventory-items-table td:before{content:none!important}.session-live-character-panel-inner .inventory-table-wrap{width:calc(100% + 1.4rem);max-width:none;margin-left:-.7rem;margin-right:-.7rem}.inventory-items-table{width:100%;min-width:0}.inventory-items-table .inventory-qty-col{width:7rem;min-width:7rem;max-width:7rem}.inventory-items-table .inventory-qty-input{width:2.65rem;max-width:100%;margin-top:0}.inventory-items-table .inventory-qty-step{width:1.45rem;height:1.45rem;font-size:.8rem}.character-features-table-wrap{display:block}.feature-cards{display:none}.ability-grid{grid-template-columns:1fr 64px 44px;gap:.4rem .6rem}.ability-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ability-grid input[type=number]{text-align:center;width:100%;padding:.35rem}.ability-grid .skill-check{place-items:center;display:grid}.initiative-tracker-add-row{grid-template-columns:1fr 1fr}.initiative-table .initiative-col-hp,.initiative-table .initiative-col-notes,.initiative-table .initiative-col-actions{display:none}.initiative-tracker--owner .initiative-table .initiative-col-hp,.initiative-tracker--owner .initiative-table .initiative-col-actions{display:table-cell}.initiative-tracker--owner .initiative-actions{justify-content:flex-start}.initiative-table .initiative-col-active .tab-btn{padding:.35rem .5rem}.initiative-table .initiative-col-name .initiative-badge{display:none}.purse-grid{grid-template-columns:1fr}}.theme-palette-section{margin-top:.25rem}.theme-palette-heading{color:var(--gold);margin:0 0 .35rem;font-size:1.05rem;font-weight:600}.theme-palette-intro{color:var(--muted);margin:0 0 1rem;font-size:.9rem;line-height:1.5}.theme-palette-intro code{color:var(--bone);font-size:.82rem}.theme-palette-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem;display:grid}.theme-palette-card{text-align:left;border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 92%, transparent);color:var(--text);cursor:pointer;border-radius:.5rem;flex-direction:column;align-items:stretch;gap:.5rem;margin:0;padding:.65rem .75rem;transition:border-color .15s,box-shadow .15s;display:flex}.theme-palette-card:hover{border-color:var(--gold-dim)}.theme-palette-card--active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.theme-palette-swatches{border:1px solid var(--border);border-radius:.35rem;height:2.25rem;display:flex;overflow:hidden}.theme-palette-swatch{flex:1;min-width:0}.theme-palette-card-body{flex-direction:column;gap:.15rem;display:flex}.theme-palette-card-title{color:var(--bone);font-size:.92rem;font-weight:600}.theme-palette-card-desc{color:var(--muted);font-size:.78rem}.pdf-sheet{color:#2b1f12;font-family:Crimson Text,Georgia,Times New Roman,serif}.pdf-segment{box-sizing:border-box;background:#f4ecd8;width:780px;padding:28px 32px}.pdf-sheet h1,.pdf-sheet h2,.pdf-sheet h3{color:#5a1f14;margin:0;font-family:Cinzel,serif}.pdf-sheet-header{border-bottom:3px double #5a1f14;margin-bottom:14px;padding-bottom:10px}.pdf-sheet-header h1{font-size:1.9rem}.pdf-identity-line{flex-wrap:wrap;gap:.6rem 1.1rem;margin-top:6px;font-size:.88rem;display:flex}.pdf-identity-line span{border-right:1px solid #8a6a4a;padding-right:1.1rem}.pdf-identity-line span:last-child{border-right:none}.pdf-sheet-grid{grid-template-columns:1.1fr 1fr;align-items:start;gap:18px;display:grid}.pdf-col h2{border-bottom:1px solid #8a6a4a;margin-top:12px;margin-bottom:6px;padding-bottom:3px;font-size:.95rem}.pdf-col h2:first-child{margin-top:0}.pdf-ability-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.pdf-ability-box{text-align:center;background:#5a1f140d;border:1px solid #5a1f14;border-radius:6px;padding:5px 2px}.pdf-ability-label{letter-spacing:.05em;color:#5a1f14;font-family:Cinzel,serif;font-size:.65rem}.pdf-ability-mod{font-size:1.15rem;font-weight:700}.pdf-ability-score{color:#4a3520;font-size:.78rem}.pdf-list{flex-direction:column;gap:2px;display:flex}.pdf-list-row{align-items:center;gap:6px;padding:1px 0;font-size:.82rem;display:flex}.pdf-list-mod{text-align:right;min-width:2.1rem;font-weight:600}.pdf-list-name em{color:#6a5a44;font-size:.75rem;font-style:normal}.pdf-dot{background:0 0;border:1px solid #5a1f14;border-radius:50%;flex:none;width:9px;height:9px}.pdf-dot-filled{background:#5a1f14}.pdf-dot-double{background:#5a1f14;box-shadow:0 0 0 2px #5a1f1459}.pdf-combat-row{gap:6px;margin-bottom:6px;display:flex}.pdf-combat-box{text-align:center;border:1px solid #5a1f14;border-radius:6px;flex:1;padding:4px}.pdf-combat-box-wide{flex:1}.pdf-combat-label{color:#5a1f14;font-family:Cinzel,serif;font-size:.62rem}.pdf-combat-value{font-size:1rem;font-weight:700}.pdf-section{border-top:1px solid #8a6a4a;margin-top:16px;padding-top:10px}.pdf-feature-category{margin-bottom:8px}.pdf-feature-category h3{margin-bottom:4px;font-size:.85rem}.pdf-feature{margin-bottom:5px}.pdf-feature-name{font-size:.85rem;font-weight:700}.pdf-feature-desc{color:#3a2a18;margin:2px 0 0;font-size:.78rem}.pdf-table{border-collapse:collapse;width:100%;margin-bottom:6px;font-size:.78rem}.pdf-table th,.pdf-table td{text-align:left;border:1px solid #8a6a4a;padding:2px 6px}.pdf-table th{background:#5a1f141a;font-family:Cinzel,serif;font-size:.68rem}.pdf-purse-row{flex-wrap:wrap;gap:.8rem;margin-bottom:8px;font-size:.82rem;display:flex}.pdf-spellcasting-line{margin:0 0 6px;font-size:.85rem}.pdf-freetext{white-space:pre-wrap;margin:4px 0 10px;font-size:.82rem}
