:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14110f;--bg-raised:#1d1a17;--text:#e8e2d8;--text-dim:#a89f92;--accent:#c9a227;--border:#34302a}*{box-sizing:border-box}body{overflow-wrap:break-word;background-color:var(--bg);color:var(--text);margin:0;font-family:Alegreya,Iowan Old Style,Charter,Georgia,serif;font-size:1.125rem;line-height:1.6;overflow-x:hidden}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:1rem}.page-background{z-index:-1;background-position:50% 45%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}.wrap{max-width:1100px;margin:0 auto;padding:0 1.5rem}.site-nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.site-nav-brand{color:var(--text);align-items:center;gap:.6rem;font-size:1.3rem;display:flex}.site-nav-brand img{width:auto;height:2rem}.site-nav-brand:hover{color:var(--accent);text-decoration:none}.site-nav-actions{align-items:center;gap:1rem;display:flex}main.wrap{padding-top:2rem;padding-bottom:3rem}.btn{background:var(--bg-raised);border:1px solid var(--accent);color:var(--accent);white-space:nowrap;cursor:pointer;border-radius:6px;padding:.6rem 1.3rem;font-size:1rem;text-decoration:none;display:inline-block}.btn:hover{background:var(--accent);color:var(--bg);text-decoration:none}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{background:#ddb43a}.page-hero{background-image:url(/images/homepage-bg.png);background-color:var(--bg);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;justify-content:center;width:100vw;height:100vh;margin-left:calc(50% - 50vw);display:flex;position:relative;overflow:hidden}.page-hero:before{content:"";background:radial-gradient(#14110fd9 0%,#14110f8c 45%,#14110f40 100%);position:absolute;inset:0}.page-hero-content{z-index:1;text-align:center;padding:0 1.5rem;position:relative}.page-hero-logo{width:min(32rem,85vw);height:auto;margin-bottom:1rem;display:inline-block}.page-hero-content .subtitle{color:var(--text-dim);margin-bottom:2.5rem;font-size:1.3rem}.page-hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.auth-page{background-image:url(/images/homepage-bg.png);background-color:var(--bg);background-position:50%;background-repeat:no-repeat;background-size:cover;justify-content:center;align-items:center;width:100vw;min-height:100vh;margin-left:calc(50% - 50vw);padding:1.5rem;display:flex;position:relative}.auth-page:before{content:"";background:radial-gradient(#14110fd9 0%,#14110f8c 45%,#14110f40 100%);position:absolute;inset:0}.auth-page>*{z-index:1;position:relative}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:1.5rem}form.card{flex-direction:column;gap:.75rem;display:flex}form.card>button{align-self:flex-start}.campaign-list{gap:1rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.campaign-card{background-color:var(--bg-raised);border:1px solid var(--border);background-position:50%;background-size:cover;border-radius:8px;min-width:0;padding:1.1rem 1.4rem;transition:border-color .15s}.campaign-card:hover{border-color:var(--accent)}.campaign-card,.entry-card-row{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.campaign-card>div:first-child,.entry-card-row>div:first-child{min-width:0}.campaign-card-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:1.2rem;overflow:hidden}.campaign-card-meta{color:var(--text-dim);min-height:2.8em;font-size:.9rem;line-height:1.4}.campaign-card-actions{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:.5rem;display:flex}.campaign-card-actions .btn{padding:.55rem 1rem;font-size:.92rem}.campaign-card-actions--stack{flex-direction:column;align-items:stretch}.campaign-card-actions--stack .btn{text-align:center}.campaign-card,.character-card-tile{min-height:190px}.character-card-tile{flex-direction:column;justify-content:center;min-width:0;display:flex}.pc-roster-row-collapsed{align-items:center;height:100px;min-height:100px;max-height:100px;display:flex;overflow:hidden}.pc-roster-row-collapsed>.pc-manager-row{width:100%}.dashboard-columns{grid-template-columns:1fr 1fr;align-items:start;gap:2.5rem;display:grid}.dashboard-column{min-width:0}@media (width<=720px){.dashboard-columns{grid-template-columns:1fr}}.character-campaign-list{gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.character-campaign-row{background:var(--bg);border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .9rem;display:flex}.role-tag{background:var(--bg);border:1px solid var(--border);color:var(--accent);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:.15rem .6rem;font-size:.85rem;display:inline-block}.scribe-tag{margin-left:.35rem}.missive-read-tag{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--accent);color:var(--accent);border-radius:4px;margin-left:.5rem;padding:.1rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.missive-thread-count{border:1px solid var(--border);min-width:1.4rem;height:1.4rem;color:var(--text-dim);border-radius:999px;justify-content:center;align-items:center;margin-left:.5rem;padding:0 .35rem;font-size:.75rem;display:inline-flex}.missive-thread-messages{flex-direction:column;gap:.75rem;display:flex}.missive-thread-message{border:1px solid var(--border);border-radius:6px;padding:.75rem}.missive-unread-badge{background:var(--accent);min-width:1.1rem;height:1.1rem;color:var(--bg);border-radius:999px;justify-content:center;align-items:center;margin-left:.4rem;padding:0 .3rem;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.empty-state{color:var(--text-dim);text-align:center;padding:3rem 1rem}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.dashboard-header h1{margin:0}@media (width<=720px){.dashboard-header h1{font-size:1.4rem}}.modal-backdrop{z-index:10;background:#0009;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal{flex-direction:column;gap:1rem;width:100%;max-width:420px;display:flex}.modal h2{margin:0}.modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.modal.remove-member-modal{max-width:640px}.form-field{color:var(--text-dim);flex-direction:column;gap:.4rem;font-size:.95rem;display:flex}.campaign-name-field input{width:80ch;max-width:100%}.form-field input,.form-field select,.form-field textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);resize:vertical;border-radius:6px;padding:.55rem .75rem;font-family:inherit;font-size:1rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);outline:none}.form-field-inline{color:var(--text-dim);flex-direction:row;align-items:center;gap:.5rem;font-size:.95rem;display:flex}.form-field-inline input[type=checkbox]{width:1.1rem;height:1.1rem}.form-error{color:#d16a6a;margin:0}.required-star{color:#d16a6a}.error-panel{max-width:480px}.error-panel .hub-topline{margin-bottom:1rem}.record-tracker-controls{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.record-tracker-controls select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;flex:1;min-width:200px;padding:.55rem .75rem;font-family:inherit;font-size:1rem}.record-tracker-detail{flex-direction:column;gap:1rem;display:flex}.view-toggle{background:var(--bg);border:2px solid var(--accent);border-radius:6px;flex-shrink:0;align-self:flex-start;gap:.25rem;padding:.2rem;display:inline-flex}.view-toggle button{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.3rem .9rem;font-family:inherit;font-size:.85rem;font-weight:600}.view-toggle button:hover{color:var(--accent)}.view-toggle button.is-active{background:var(--accent);color:var(--bg)}.journal-header-fields{flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;display:flex}.journal-header-fields .journal-field{flex:auto}.journal-header-fields .journal-field-session-number{flex:none;width:calc(12ch + 1.4rem + 2px)}.journal-header-fields .journal-field-session-date{flex:none;width:calc(16ch + 1.4rem + 2px)}.journal-field{color:var(--text-dim);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.journal-field input[type=text],.journal-field input[type=date],.journal-field textarea{background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:.5rem .7rem;font-family:inherit;font-size:1rem}.journal-field textarea{resize:vertical;min-height:5rem}.journal-field-wide{margin-bottom:1.25rem}.journal-related-fields{grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem;display:grid}@media (width<=720px){.journal-related-fields{grid-template-columns:1fr}}.journal-related-field{color:var(--text-dim)}.journal-textarea-row{flex-wrap:wrap;gap:1.5rem;display:flex}.journal-textarea-row .journal-field-wide{flex:14rem}.journal-related-box{background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:.5rem .7rem;font-size:1rem}.journal-related-empty{color:var(--text-dim);margin:0}.journal-related-list{margin:0;padding:0;list-style:none}.journal-related-list li{justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem 0;display:flex;position:relative}.journal-related-list li+li{border-top:1px solid var(--border)}.journal-related-open-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:.25rem .7rem;font-size:.85rem;text-decoration:none;display:inline-block}.journal-related-open-btn:hover{color:var(--accent);background:#c9a22726}.journal-save-btn,.journal-cancel-btn,.journal-delete-btn{background:var(--bg-raised);border:1px solid var(--accent);color:var(--accent);cursor:pointer;border-radius:4px;padding:.4rem 1rem;font-family:inherit;font-size:1.05rem}.journal-save-btn:hover{background:#c9a22726}.journal-cancel-btn{border-color:var(--border);color:var(--text-dim)}.journal-cancel-btn:hover{color:var(--text)}.journal-delete-btn{border-color:var(--border);color:var(--text-dim)}.journal-delete-btn:hover{color:#d16a6a;border-color:#d16a6a}.journal-form-actions{gap:.75rem;margin-bottom:1.5rem;display:flex}.journal-form-error{color:#d16a6a;margin:-1rem 0 1.5rem;font-size:.9rem}.journal-view-value{color:var(--text);margin:0}.journal-view-multiline{white-space:pre-wrap;min-height:1.4em}.two-col-grid{grid-template-columns:1fr 1fr;gap:2.5rem;display:grid}@media (width<=720px){.two-col-grid{grid-template-columns:1fr}}.record-tracker-header-secondary{flex-wrap:wrap;gap:1.5rem;display:flex}.record-tracker-header-secondary .form-field{flex:1 1 0;min-width:0}.record-tracker-header-secondary .form-field-select{flex:none;width:9em}.record-tracker-header-secondary .form-field-select select{text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}.npc-monster-grid{grid-template-rows:repeat(4,auto);grid-template-columns:.85fr .85fr 1.3fr;gap:1.5rem;display:grid}@media (width<=720px){.npc-monster-grid{grid-template-rows:none;grid-template-columns:1fr}.npc-visual-panel{grid-area:auto}}.npc-monster-link{color:var(--accent);margin-top:.35rem;font-size:.85rem;display:block}.npc-statblock-toggle{margin:.75rem 0}.link-button{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.link-button:hover{color:var(--accent)}.character-kind-chooser{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;padding:3rem 1rem;display:flex}.character-kind-chooser-prompt{color:var(--text-dim);margin:0;font-size:1.1rem}.character-kind-chooser-choices{gap:1rem;display:flex}.character-kind-toggle{gap:.75rem;margin-bottom:1.25rem;display:flex}.character-kind-back{color:var(--accent);margin-bottom:1rem;display:inline-block}.pc-manager-toolbar{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.pc-manager-toolbar .character-kind-back{margin-bottom:0}.party-member-list{gap:1rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.npc-add-card{margin-bottom:1.5rem}.pc-manager-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.pc-manager-details{border-top:1px solid var(--border);flex-direction:column;gap:1.25rem;margin-top:.9rem;padding-top:.9rem;display:flex}.attach-character-form{margin-bottom:2.5rem}.attach-character-row{align-items:flex-end;gap:1.5rem;display:flex}.attach-character-row .form-field{flex:1}.attach-character-row .modal-actions{flex-shrink:0}.pc-header-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.5rem;margin-bottom:1rem;display:grid}.pc-field-static{color:var(--text-dim);flex-direction:column;gap:.4rem;font-size:.95rem;display:flex}.pc-field-static label{color:var(--text-dim)}.pc-field-static span{color:var(--text)}.pc-field-wide{margin-bottom:1rem}.pc-checkbox-group{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem 1.5rem;display:grid}@media (width<=560px){.pc-checkbox-group{grid-template-columns:repeat(2,minmax(0,1fr))}}.pc-checkbox-option{color:var(--text);align-items:center;gap:.4rem;font-size:.95rem;font-weight:400;display:flex}.pc-checkbox-option input{width:1.1rem;height:1.1rem}.pc-subheading{color:var(--accent);margin:1.5rem 0 .75rem}.npc-visual-panel{flex-direction:column;grid-area:1/3/-1;justify-content:center;align-items:center;gap:.75rem;min-width:0;min-height:0;display:flex}.npc-visual-frame{flex:auto;width:100%;min-height:8rem;position:relative}.npc-visual-thumb-btn{cursor:pointer;background:0 0;border:none;padding:0;position:absolute;inset:0}.npc-visual-thumb{object-fit:contain;background:0 0;border-radius:6px;width:100%;height:100%;position:absolute;inset:0}.npc-visual-controls{flex:none;gap:.5rem;display:flex}.npc-visual-upload-btn,.npc-visual-remove-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:.25rem .7rem;font-family:inherit;font-size:.85rem}.npc-visual-upload-btn:hover,.npc-visual-remove-btn:hover{background:var(--accent);color:var(--bg)}.npc-visual-error{text-align:center;color:#d16a6a;width:100%;margin:0;font-size:.9rem}.npc-statblock{background:var(--bg-raised);border:1px solid var(--accent);border-radius:6px;flex-basis:100%;margin-top:.5rem;padding:1rem 1.25rem;font-size:1.05rem}.npc-statblock-body{align-items:flex-start;gap:1.5rem;display:flex}.npc-statblock-content{flex:50%;min-width:0}.npc-statblock-image-frame{background:var(--bg);border-radius:6px;flex:50%;align-self:stretch;max-width:50%;min-height:10rem;position:relative;overflow:hidden}.npc-statblock-image,.npc-statblock-image-loading{width:100%;height:100%;position:absolute;inset:0}.npc-statblock-image{object-fit:cover;background:var(--bg)}.npc-statblock-image-loading{background:var(--bg)}@media (width<=720px){.npc-statblock-body{flex-direction:column}.npc-statblock-content,.npc-statblock-image-frame{flex-basis:auto;max-width:100%}.npc-statblock-image-frame{width:100%;min-height:12rem}.npc-statblock-header-grid{grid-template-columns:1fr!important}.npc-statblock-header-grid .npc-statblock-abilities{grid-area:4/1!important}}.npc-statblock-stack p{margin:.1rem 0}.npc-statblock-rule{border:none;border-top:1px solid var(--border);margin:.6rem 0}.npc-statblock-header-grid{grid-template-rows:auto auto auto;grid-template-columns:1fr 1fr;align-items:start;column-gap:1.5rem;display:grid}.npc-statblock-header-grid .npc-statblock-header-top{grid-area:1/1;margin:0}.npc-statblock-header-grid .npc-statblock-rule{grid-area:2/1;width:calc(100% + 1.5rem)}.npc-statblock-header-grid .npc-statblock-header-bottom{grid-area:3/1}.npc-statblock-header-grid .npc-statblock-abilities{grid-area:1/2/4;align-self:start;margin-top:0}.npc-statblock-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin:0 0 .15rem;padding-bottom:.4rem;display:flex}.npc-statblock-header h4{margin:0}.npc-statblock-title-wrap{align-items:baseline;gap:.5rem;display:flex}.npc-statblock-modified-badge{border:1px solid var(--border);color:var(--text-dim);border-radius:4px;padding:.05rem .4rem;font-size:.75rem;display:inline-block}.npc-statblock-top-controls{gap:.5rem;display:flex}.npc-statblock-top-controls button{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:4px;padding:.2rem .6rem;font-family:inherit;font-size:.8rem}.npc-statblock-top-controls button:hover{color:var(--text)}.npc-statblock-top-controls .npc-statblock-edit-btn{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}.npc-statblock-top-controls .npc-statblock-edit-btn:hover{color:var(--bg);background:#ddb43a}.npc-statblock-top{margin:0 0 .6rem}.npc-statblock-bottom{margin:0}.npc-statblock-edit-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.25rem 0;display:flex}.npc-statblock-edit-row strong{white-space:nowrap}.npc-statblock-edit-input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;flex:auto;padding:.2rem .4rem;font-family:inherit;font-size:.9rem}.npc-statblock-name-input{color:var(--accent);margin-bottom:.4rem;font-size:1.1rem;font-weight:700}.npc-statblock-edit-actions{gap:.5rem;margin-top:.5rem;display:flex}.npc-statblock-computed-text{color:var(--text-dim);font-style:italic}.npc-statblock-inline-label{color:var(--text-dim);font-size:.85rem}.npc-statblock-ac-value,.npc-statblock-hp-count,.npc-statblock-hp-size,.npc-statblock-initiative-bonus,.npc-statblock-speed-feet{text-align:center;flex:none;width:4rem}.npc-statblock-ac-note{flex:auto}.npc-statblock-speed-edit{margin:.25rem 0}.npc-statblock-hp-row{flex-wrap:wrap}.npc-statblock-hp-mode{color:var(--text-dim);gap:.6rem;font-size:.85rem;display:flex}.npc-statblock-hp-mode label{cursor:pointer;align-items:center;gap:.25rem;display:flex}.npc-statblock-hp-traditional{align-items:center;gap:.4rem;display:flex}.npc-statblock-hp-manual{text-align:center;flex:none;width:6rem}.npc-statblock-speed-row{margin-left:1rem}.npc-statblock-speed-row select{flex:none;width:7rem}.npc-statblock-speed-add,.npc-statblock-speed-remove{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:4px;padding:.15rem .5rem;font-family:inherit;font-size:.85rem}.npc-statblock-speed-add{margin-top:.25rem;margin-left:1rem}.npc-statblock-speed-add:hover,.npc-statblock-speed-remove:hover{color:var(--text)}.npc-statblock h4{color:var(--accent);font-size:1.2rem}.npc-statblock h5{color:var(--accent);border-bottom:1px solid var(--border);margin:.9rem 0 .3rem;padding-bottom:.3rem;font-size:1rem}.npc-statblock-meta{color:var(--text-dim);margin:0 0 .6rem;font-style:italic}.npc-statblock p{margin:.2rem 0}.npc-statblock-abilities{text-align:center;width:100%;margin:.75rem 0;font-size:1.1rem}.npc-statblock-abilities th,.npc-statblock-abilities td{border:1px solid var(--border);padding:.25rem}.npc-statblock-abilities th:first-child{color:var(--text-dim);text-align:left;padding-left:.4rem}.npc-statblock-ability-input{background:var(--bg);border:1px solid var(--border);width:100%;max-width:4rem;color:var(--text);text-align:center;border-radius:4px;padding:.15rem .3rem;font-family:inherit;font-size:.85rem}.npc-statblock-ability-input-computed{color:var(--text-dim);cursor:default}.npc-statblock-action-name{font-style:italic;font-weight:700}.npc-statblock-flavor{color:var(--text-dim);margin-top:.75rem;font-style:italic}.npc-statblock-footer{color:var(--text-dim);margin-top:.5rem;font-size:.85rem}.npc-statblock-loading{color:var(--text-dim);font-style:italic}.npc-statblock-error{color:#d16a6a;font-style:italic}.npc-statblock-intro{color:var(--text-dim);margin-bottom:.5rem;font-style:italic}.npc-statblock-list-row{align-items:center;gap:.5rem;margin:.25rem 0 .25rem 1rem;display:flex}.npc-statblock-list-add,.npc-statblock-list-remove{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:4px;padding:.15rem .5rem;font-family:inherit;font-size:.85rem}.npc-statblock-list-add{margin:.4rem 0 .4rem 1rem}.npc-statblock-list-add:hover,.npc-statblock-list-remove:hover{color:var(--text)}.npc-statblock-skills-edit{margin:.25rem 0}.npc-statblock-sections-edit{margin:.5rem 0}.npc-statblock-section-block{border:1px solid var(--border);border-radius:6px;margin:.5rem 0;padding:.6rem .75rem}.npc-statblock-section-block .npc-statblock-edit-row select{flex:none;width:12rem}.npc-statblock-section-entry{align-items:flex-start;gap:.5rem;margin:.4rem 0 .4rem 1rem;display:flex}.npc-statblock-section-entry input{flex:none;width:10rem}.npc-statblock-section-entry textarea{background:var(--bg);border:1px solid var(--border);min-height:3.5rem;color:var(--text);resize:vertical;border-radius:4px;flex:auto;padding:.3rem .5rem;font-family:inherit;font-size:.85rem}.record-tracker-detail fieldset{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.85rem;padding:1rem;display:flex}.record-tracker-detail legend{color:var(--accent);padding:0 .4rem}.travel-header-grid,.travel-stage-grid{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem;display:grid}.travel-notes-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;display:grid}.travel-notes-grid textarea{min-height:3.75rem}.travel-pace-group{flex-wrap:wrap;gap:1.25rem;font-size:.95rem;display:flex}.travel-pace-row{color:var(--text-dim);cursor:pointer;align-items:center;gap:.5rem;font-size:.95rem;display:flex}.travel-pace-row input[type=radio]{cursor:pointer}.travel-pace-days{background:var(--bg);border:1px solid var(--border);width:6rem;color:var(--text);border-radius:4px;padding:.55rem .75rem;font-family:inherit;font-size:1rem}.journal-view-label{color:var(--text-dim)}.magic-item-tier h3{color:var(--accent);margin:0 0 1rem}.magic-item-row{flex-wrap:wrap;align-items:center;gap:1rem;padding:.4rem 0;display:flex}.magic-item-row-label{min-width:140px;color:var(--text-dim)}.magic-item-checkboxes{flex-wrap:wrap;gap:.5rem;display:flex}.magic-item-checkboxes input{width:1.1rem;height:1.1rem}.dm-view-scope.view-mode [class*=-save-btn],.dm-view-scope.view-mode [class*=-cancel-btn],.dm-view-scope.view-mode [class*=-delete-btn],.dm-view-scope.view-mode [class*=-remove],.dm-view-scope.view-mode .confirm-delete-wrap{display:none!important}.dm-view-scope.view-mode input:not([id$=-select]),.dm-view-scope.view-mode textarea{cursor:default;background:0 0;border-color:#0000;padding-left:0;padding-right:0}.dm-view-scope.view-mode input:not([id$=-select]){text-overflow:ellipsis;overflow:hidden}.dm-view-scope.view-mode input:not([id$=-select])::placeholder{color:var(--text);opacity:1}.dm-view-scope.view-mode select:not([id$=-select]){appearance:none;color:inherit;opacity:1;background:0 0;border-color:#0000;padding-left:0}.ref-link-view{display:none}.dm-view-scope.view-mode .ref-link-input,.dm-view-scope.view-mode .ref-link-edit{display:none!important}.dm-view-scope.view-mode .ref-link-view{display:block}.conflict-adversary-view-text{box-sizing:border-box;color:var(--text);white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;border-radius:4px;margin:0;padding:.5rem .7rem .5rem 0;font-size:1rem;line-height:normal;display:none;overflow:hidden}.dm-view-scope.view-mode .conflict-adversary-wrap{display:none!important}.dm-view-scope.view-mode .conflict-adversary-view-text{display:block}.dm-view-scope.view-mode .combat-tracker-wrap input,.dm-view-scope.view-mode .combat-tracker-wrap textarea,.dm-view-scope.view-mode .combat-tracker-wrap select{background:var(--bg-raised);cursor:auto}.dm-view-scope.view-mode .combat-tracker-wrap input:not([type=checkbox]),.dm-view-scope.view-mode .combat-tracker-wrap textarea{border-color:var(--border);padding-left:.5rem;padding-right:.5rem}.dm-view-scope.view-mode .combat-tracker-wrap select{appearance:none;border-color:var(--border);padding-left:.5rem}.conflict-header-fields{grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:1.25rem;display:grid}@media (width<=720px){.conflict-header-fields{grid-template-columns:1fr}}.conflict-field{flex-direction:column;gap:.35rem;display:flex}.conflict-field label{color:var(--text-dim);font-size:.9rem}.conflict-field input[type=text],.conflict-field input[type=url],.conflict-field textarea,.conflict-field select{background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:.5rem .7rem;font-family:inherit;font-size:1rem}.conflict-field textarea{resize:vertical;min-height:5rem}.conflict-field-wide{margin-bottom:1.25rem}.bastion-header-subrow{flex-wrap:wrap;gap:1.5rem;display:flex}.bastion-header-subrow .form-field{flex:auto}.bastion-header-subrow .bastion-field-level{flex:none;width:calc(6ch + 1.5rem + 2px)}.bastion-defenders-row{flex-wrap:wrap;gap:1.5rem;display:flex}.bastion-defenders-row .form-field{flex:1 1 0}.bastion-facility-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;display:grid}.conflict-goto-npc-link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:underline}.conflict-adversary-add-select{width:100%}.conflict-adversary-added-list{flex-direction:column;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.combat-conditions-toggle.npc-sessions-toggle{white-space:normal;background:var(--bg);border-radius:6px;width:100%;min-width:0;max-width:none;padding:.55rem .75rem;font-size:1rem}.conflict-adversary-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.conflict-adversary-row .pc-checkbox-option{font-size:1rem}.conflict-adversary-qty-group{flex:none;align-items:center;gap:.3rem;display:inline-flex}.conflict-adversary-qty-x{color:var(--text-dim);font-size:1rem}.conflict-adversary-remove{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:.4rem;padding:0;text-decoration:underline}.conflict-adversary-qty-input{box-sizing:border-box;background:var(--bg-raised);border:1px solid var(--border);width:2.25rem;color:var(--text);text-align:center;border-radius:4px;padding:.2rem .3rem;font-family:inherit;font-size:1rem}.combat-conditions-wrap{position:relative}.combat-conditions-toggle{box-sizing:border-box;background:var(--bg-raised);border:1px solid var(--border);color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;min-width:9rem;max-width:12rem;padding:.4rem .6rem;font-family:inherit;font-size:.85rem;overflow:hidden}.combat-conditions-toggle:hover{border-color:var(--accent)}.combat-conditions-toggle-open{border-color:var(--accent);color:var(--accent);background:#c9a22726}.combat-conditions-dropdown{z-index:20;background:var(--bg-raised);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:.4rem;min-width:11rem;margin-top:.25rem;padding:.6rem .8rem;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000059}.combat-conditions-dropdown-flip{margin-top:0;margin-bottom:.25rem;top:auto;bottom:100%}.combat-conditions-dropdown .pc-checkbox-option{white-space:nowrap;font-size:.85rem}.pc-checkbox-option{color:var(--text);cursor:pointer;align-items:center;gap:.4rem;font-size:.95rem;display:inline-flex}.npc-edit-toggle{background:var(--accent);border-color:var(--accent);color:var(--bg);max-width:none;font-weight:600}.npc-edit-toggle:hover{background:#ddb43a;border-color:#ddb43a}.conflict-save-btn,.conflict-cancel-btn,.conflict-delete-btn,.combat-start-confirm-yes-btn,.combat-start-confirm-no-btn{background:var(--bg-raised);border:1px solid var(--accent);color:var(--accent);cursor:pointer;border-radius:4px;padding:.4rem 1rem;font-family:inherit;font-size:1.05rem}.conflict-save-btn:hover,.combat-start-confirm-yes-btn:hover{background:#c9a22726}.conflict-cancel-btn,.combat-start-confirm-no-btn{border-color:var(--border);color:var(--text-dim)}.conflict-cancel-btn:hover,.combat-start-confirm-no-btn:hover{color:var(--text)}.conflict-delete-btn{border-color:var(--border);color:var(--text-dim)}.conflict-delete-btn:hover{color:#d16a6a;border-color:#d16a6a}.conflict-form-actions{gap:.75rem;margin-bottom:1.5rem;display:flex}.combat-tracker-header-row{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.combat-tracker-heading{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:1rem}.combat-start-message{text-align:center;color:var(--accent);margin:0 0 1rem;font-size:1.3rem;font-weight:700}.combat-start-confirm-box{background:var(--bg-raised);border:1px solid var(--accent);color:var(--text);border-radius:6px;align-items:center;gap:.75rem;padding:.9rem 1.4rem;font-weight:600;display:flex;box-shadow:0 8px 24px #00000080}.combat-start-corner-box{z-index:1000;position:fixed;bottom:1.5rem;right:1.5rem}.combat-modal-overlay{z-index:1000;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.combat-turn-widget{z-index:1000;border-radius:8px;flex-direction:column;min-width:15rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;overflow:hidden;box-shadow:0 0 0 2px #ffffffe6,0 4px 20px #00000080}.combat-turn-widget-row{text-align:left;cursor:pointer;border:none;justify-content:flex-start;align-items:baseline;gap:.6rem;width:100%;padding:.55rem 1rem;font-family:inherit;display:flex}.combat-turn-widget-row-current{color:#1a1a1a;background:#f4f1e8;border-bottom:1px solid #00000026}.combat-turn-widget-row-current:hover{background:#e7e2d2}.combat-turn-widget-row-next{background:var(--bg);color:var(--accent)}.combat-turn-widget-row-next:hover{background:var(--bg-raised)}.combat-turn-widget-tag{text-transform:uppercase;letter-spacing:.05em;opacity:.75;flex-shrink:0;font-size:.7rem;font-weight:700}.combat-turn-widget-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:1rem;font-weight:700;overflow:hidden}.combat-turn-widget-hint{opacity:.65;white-space:nowrap;flex-shrink:0;font-size:.7rem}.combat-turn-widget-actions{display:flex}.combat-turn-widget-action-btn{background:var(--bg-raised);color:var(--text-dim);cursor:pointer;border:none;border-top:1px solid #00000026;flex:50%;padding:.45rem .5rem;font-family:inherit;font-size:.75rem;font-weight:600}.combat-turn-widget-action-btn:hover{color:var(--text);background:var(--bg)}.combat-turn-widget-action-btn-danger:hover{color:#d16a6a}.combat-locked-banner{z-index:1000;border-radius:8px;flex-direction:column;min-width:15rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;overflow:hidden;box-shadow:0 0 0 2px #ffffffe6,0 4px 20px #00000080}.combat-locked-banner-label{color:#1a1a1a;text-align:center;background:#f4f1e8;border-bottom:1px solid #00000026;padding:.55rem 1rem;font-size:.85rem;font-weight:700}.combat-view-toggle-slot{flex-shrink:0;justify-content:center;display:flex}.combat-view-toggle{background:var(--bg);border:2px solid var(--accent);border-radius:6px;gap:.25rem;padding:.2rem;display:inline-flex}.combat-view-toggle-btn{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.3rem .9rem;font-family:inherit;font-size:.85rem;font-weight:600}.combat-view-toggle-btn:hover{color:var(--accent)}.combat-view-toggle-btn.is-active{background:var(--accent);color:var(--bg)}.combat-table{table-layout:fixed;border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:1.05rem}@media (width<=720px){.combat-tracker-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.combat-table{width:auto;min-width:640px}}.combat-table th,.combat-table td{text-align:left;vertical-align:top;padding:.65rem .9rem}.combat-table thead th{background:var(--bg-raised);color:var(--accent);border-bottom:2px solid var(--accent);font-weight:700}.combat-table-empty{margin-top:-.5rem}.combat-table tbody td{border-bottom:1px solid #c9a22773}.combat-table tbody tr:hover{background:#c9a2271a}.combat-block-header{text-align:center}.combat-name-cell{white-space:nowrap;width:50%;padding-right:1.5rem}.combat-name-cell .combat-conditions-toggle{margin-top:.35rem}label.combat-reaction-toggle,label.combat-next-roll-toggle{margin-top:.35rem;display:flex}.combat-name-title-wrap{align-items:center;gap:.5rem;display:inline-flex}.combat-name-text{font-size:1.15rem}.combat-row-dead{position:relative}.combat-row-dead .combat-kind-tag,.combat-row-dead .combat-name-text,.combat-row-dead .combat-name-conditions,.combat-row-dead .combat-conditions-wrap,.combat-row-dead .combat-notes-input,.combat-row-dead .combat-reaction-toggle,.combat-row-dead .combat-next-roll-toggle,.combat-row-dead .combat-block-cell{opacity:.5}.combat-row-active-turn>td:first-child{box-shadow:inset 3px 0 #ffffffe6,-10px 0 14px -4px #ffffff8c}.combat-row-active-turn>td:last-child{box-shadow:inset -3px 0 #ffffffe6,10px 0 14px -4px #ffffff8c}.combat-eliminated-label{color:#ff3b3b;text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:700;display:none}.combat-row-dead .combat-eliminated-label{display:inline}.combat-revive-btn{z-index:2;color:var(--bg);cursor:pointer;white-space:nowrap;background:#f0c94a;border:none;border-radius:6px;padding:.5rem 1.4rem;font-family:inherit;font-size:1.05rem;font-weight:700;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 .9rem #f0c94abf}.combat-row-dead:hover .combat-revive-btn{display:inline-block}.combat-name-conditions{color:var(--text-dim);white-space:normal;margin-top:.35rem;font-size:.8rem}.combat-kind-tag{border:1px solid var(--border);color:var(--text-dim);border-radius:4px;margin-right:.4rem;padding:.05rem .4rem;font-size:.75rem;display:inline-block}.combat-kind-tag.combat-kind-pc{color:var(--accent);border-color:var(--accent)}.combat-notes-input{box-sizing:border-box;background:var(--bg-raised);border:1px solid var(--border);width:100%;color:var(--text);border-radius:4px;margin-top:.35rem;padding:.4rem .6rem;font-family:inherit;font-size:.85rem;display:block}.autosize-textarea{field-sizing:content;min-height:2.4em}.notes-field{background:var(--bg);border:1px solid var(--border);width:100%;min-height:28rem;color:var(--text);resize:vertical;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem;font-family:inherit;font-size:1rem;line-height:1.5;display:block}.notes-field:focus{border-color:var(--accent);outline:none}.combat-table .combat-block-cell{white-space:nowrap;vertical-align:middle;width:50%;padding-left:1.75rem;padding-right:3.5rem}.combat-block-wrap{justify-content:center;align-items:center;gap:1rem;height:100%;display:flex;position:relative}.combat-block-wrap:before{content:"";background:linear-gradient(#0000,#c9a22780,#0000);width:1px;position:absolute;top:.5rem;bottom:.5rem;left:-1.75rem}.combat-initiative-input,.combat-tiebreaker-input,.combat-ac-input{box-sizing:border-box;background:var(--bg-raised);border:1px solid var(--border);width:3.5rem;color:var(--text);text-align:center;border-radius:4px;padding:.4rem .5rem;font-family:inherit;font-size:.95rem}.combat-init-stack{grid-template-columns:max-content;gap:.5rem;display:grid}.combat-init-stack .combat-hp-value-group{width:auto}.combat-init-stack .combat-hp-value-label{line-height:1}.combat-hp-value-label{white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:.85rem;overflow:visible}.combat-hp-adjust-wrap{align-items:stretch;gap:1rem;max-width:16rem;display:flex}.combat-hp-adjust-stack,.combat-hp-values-col{flex-direction:column;flex:none;gap:.3rem;display:flex}.combat-hp-amount-input{box-sizing:border-box;background:var(--bg-raised);border:1px solid var(--border);width:4.5rem;color:var(--text);text-align:center;border-radius:4px;flex:none;padding:.25rem .4rem;font-family:inherit;font-size:.85rem}.combat-hp-heal-btn,.combat-hp-damage-btn{box-sizing:border-box;background:var(--bg-raised);cursor:pointer;border-radius:4px;flex:auto;width:4.5rem;padding:.3rem .4rem;font-family:inherit;font-size:.95rem}.combat-hp-heal-btn{color:#7ec584;border:1px solid #7ec58480}.combat-hp-heal-btn:hover{background:#7ec5841a;border-color:#7ec584}.combat-hp-damage-btn{color:#d16a6a;border:1px solid #d16a6a80}.combat-hp-damage-btn:hover{background:#d16a6a1a;border-color:#d16a6a}.combat-hp-main-row{box-sizing:border-box;flex:auto;justify-content:center;align-items:center;gap:.8rem;display:flex}.combat-hp-value-group{box-sizing:border-box;flex-direction:column;align-items:center;gap:.25rem;width:3.8rem;display:flex}.combat-hp-slash-group{flex-direction:column;align-items:center;gap:.25rem;display:flex}.combat-hp-slash{color:var(--text-dim);align-self:center;font-size:2rem}.combat-hp-max-group{position:relative}.combat-hp-temp-badge{color:var(--accent);flex-direction:column;align-items:center;line-height:1.1;display:flex;position:absolute;top:50%;left:100%;transform:translate(.4rem,-50%)}.combat-hp-temp-badge-empty{visibility:hidden}.combat-hp-temp-badge-amount{white-space:nowrap;font-size:.85rem;font-weight:700}.combat-hp-temp-badge-label{white-space:nowrap;font-size:.65rem}.combat-hp-input{box-sizing:border-box;background:var(--bg-raised);border:1px solid var(--border);width:3.8rem;color:var(--text);text-align:center;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);padding:.1rem .2rem;font-family:inherit;font-size:2rem;font-weight:700}.combat-hp-input:focus{border-color:var(--accent);outline:none}.combat-hp-temp-row{flex:none}.combat-hp-temp-input-group{align-items:flex-end}.combat-hp-temp-input{box-sizing:border-box;background:var(--bg-raised);border:1px solid var(--border);width:4.5rem;color:var(--text);text-align:center;border-radius:4px;padding:.3rem .4rem;font-family:inherit;font-size:.9rem}.combat-hp-module-stack{flex-direction:column;align-items:center;display:flex}.combat-death-divider{background:var(--border);height:1px;margin:.6rem 0 0}.combat-tracker-wrap.combat-slim-view .combat-row[data-combat-kind=pc] .combat-hp-adjust-wrap,.combat-tracker-wrap.combat-slim-view .combat-row[data-combat-kind=pc] .combat-ac-group{visibility:hidden;height:0;overflow:hidden}.combat-tracker-wrap.combat-slim-view .combat-row[data-combat-kind=pc] .combat-death-divider{display:none}.combat-death-saves{box-sizing:border-box;justify-content:center;align-items:center;gap:.6rem;padding-top:.5rem;display:flex}.combat-death-saves-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);white-space:nowrap;font-size:.75rem}.combat-death-circles{gap:.3rem;display:flex}.combat-death-circle{box-sizing:border-box;cursor:pointer;background:0 0;border-radius:50%;width:.9rem;height:.9rem;padding:0}.combat-death-circles-fail .combat-death-circle{border:2px solid #d16a6a99}.combat-death-circles-fail .combat-death-circle:hover{border-color:#d16a6a}.combat-death-circles-fail .combat-death-circle-filled{background:#d16a6a;border-color:#d16a6a}.combat-death-circles-success .combat-death-circle{border:2px solid #7ec58499}.combat-death-circles-success .combat-death-circle:hover{border-color:#7ec584}.combat-death-circles-success .combat-death-circle-filled{background:#7ec584;border-color:#7ec584}.combat-death-circles-col{flex-direction:column;align-items:center;gap:.15rem;display:flex}.combat-death-circles-arrow{opacity:.7;align-items:center;display:flex}.combat-death-circles-arrow-tail{background:#fff;width:1.3rem;height:1px}.combat-death-circles-arrow-head{border-top:3px solid #0000;border-bottom:3px solid #0000;flex-shrink:0;width:0;height:0}.combat-death-circles-arrow-left .combat-death-circles-arrow-head{border-right:5px solid #fff}.combat-death-circles-arrow-right .combat-death-circles-arrow-head{border-left:5px solid #fff}.combat-row-dropdown-open{z-index:30;position:relative}.combat-name-cell .combat-statblock-toggle{max-width:none;margin-top:.35rem}.combat-row:has(+.combat-statblock-row)>td{border-bottom:none}.combat-statblock-cell{width:0;padding-top:.5rem}.combat-row-active-turn+.combat-statblock-row>td{box-shadow:inset 3px 0 #ffffffe6,inset -3px 0 #ffffffe6,-10px 0 14px -4px #ffffff8c,10px 0 14px -4px #ffffff8c}.combat-statblock-container{box-sizing:border-box;max-width:100%;overflow-x:auto}.combat-statblock-container .npc-statblock{font-size:.8rem}.combat-statblock-container .npc-statblock-abilities{font-size:1rem}.combat-statblock-container .npc-statblock h5{font-size:.75rem}.combat-name-text-small{font-size:.8rem}.hub-backdrop{background-color:var(--bg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;justify-content:center;width:100vw;min-height:calc(100vh - 65px);margin-left:calc(50% - 50vw);padding:3rem 1.5rem;display:flex;position:relative}.hub-panel{-webkit-backdrop-filter:blur(14px);background:#14110fb3;border-radius:12px;width:100%;max-width:1040px;height:fit-content;padding:2rem 1.5rem}.hub-topline{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.hub-topline h1{margin:0;font-size:2rem}.hub-back-link{color:var(--text-dim);white-space:nowrap;background:0 0;border:none;padding:0;font-family:inherit;font-size:1rem}.hub-back-link:hover{color:var(--accent)}.hub-options{position:relative}.hub-options-menu{background:var(--bg-raised);border:1px solid var(--border);z-index:5;border-radius:8px;min-width:180px;margin-top:.5rem;position:absolute;top:100%;right:0;overflow:hidden}.hub-options-item{text-align:left;width:100%;color:var(--text);background:0 0;border:none;padding:.7rem 1rem;font-family:inherit;font-size:.95rem;text-decoration:none;display:block}.hub-options-item:hover{background:var(--bg);color:var(--accent);text-decoration:none}.hub-landing-grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}@media (width<=560px){.hub-landing-grid{grid-template-columns:repeat(2,1fr)}}.dm-portal-grid{grid-template-columns:repeat(5,1fr);gap:.75rem}.dm-portal-grid .hub-landing-btn{padding:1.5rem .75rem;font-size:.95rem}.dm-portal-grid .tab-icon{width:36px;height:36px}@media (width<=560px){.dm-portal-grid{grid-template-columns:repeat(2,1fr)}}.hub-landing-btn{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:1.5rem 1rem;font-family:inherit;font-size:1rem;display:flex}.hub-landing-btn:hover{color:var(--text);border-color:var(--accent)}.hub-landing-btn.hub-tab-link{border-color:var(--accent);color:var(--accent)}.hub-landing-btn .tab-icon{width:32px;height:32px}.hub-tab-nav{border-bottom:1px solid var(--border);gap:1rem;margin-bottom:1.5rem;display:flex}.hub-tab-btn{color:var(--text-dim);text-align:center;background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:.35rem;padding:.5rem 0;font-family:inherit;font-size:.9rem;display:inline-flex}.hub-tab-btn:hover{color:var(--text)}.hub-tab-btn.is-active{color:var(--text);border-bottom-color:var(--accent)}.hub-tab-btn.hub-tab-link{color:var(--accent)}.hub-tab-btn.hub-tab-link:hover{color:var(--text)}.dm-portal-tabs{gap:.5rem}.dm-portal-tabs .hub-tab-btn{gap:.3rem;font-size:.78rem}.dm-portal-tabs .tab-icon,.hub-tab-btn .tab-icon{width:22px;height:22px}@media (width<=720px){.hub-tab-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.hub-tab-nav::-webkit-scrollbar{display:none}.hub-tab-nav .hub-tab-btn{white-space:nowrap;flex:none;min-width:4.25rem;padding:.5rem .6rem}.dm-portal-tabs .hub-tab-btn{min-width:3.5rem;padding:.5rem .4rem}}.hub-experience{flex-direction:column;gap:1.5rem;display:flex}.hub-experience>*{min-width:0}.settings-layout{align-items:flex-start;gap:2rem;display:flex}.settings-rail{flex-direction:column;flex:0 0 180px;gap:.25rem;display:flex}.settings-rail-btn{color:var(--text-dim);text-align:left;cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;border-radius:6px;align-items:center;gap:.6rem;padding:.6rem .9rem;font-family:inherit;font-size:.95rem;display:flex}.settings-rail-btn:hover{color:var(--text);background:var(--bg-raised)}.settings-rail-btn.is-active{color:var(--text);background:var(--bg-raised);border-left-color:var(--accent)}.settings-rail-btn .tab-icon{flex-shrink:0;width:20px;height:20px}.settings-content{flex:1;min-width:0}@media (width<=720px){.settings-layout{flex-direction:column;align-items:stretch}.settings-rail{-webkit-overflow-scrolling:touch;flex-direction:row;flex:none;gap:.4rem;overflow-x:auto}.settings-rail-btn{white-space:nowrap;border-bottom:2px solid #0000;border-left:none;flex:none}.settings-rail-btn.is-active{border-bottom-color:var(--accent)}}.content-form{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.entry-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.entry-card{background-color:var(--bg-raised);border:1px solid var(--border);background-position:50%;background-size:cover;border-radius:8px;padding:1.1rem 1.4rem}.entry-card-header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.entry-card-header>div:first-child{min-width:0}.entry-card-header h3{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.entry-card-header .modal-actions{flex-wrap:nowrap;flex-shrink:0}.entry-card-header .modal-actions .btn{padding:.55rem 1rem;font-size:.92rem}.entry-card-body{color:var(--text-dim);white-space:pre-wrap;margin:.6rem 0 0}.entry-date{color:var(--text-dim);margin:.2rem 0 0;font-size:.85rem;font-weight:400;display:block}.entry-card-bullets{color:var(--text-dim);flex-direction:column;gap:.35rem;margin:.6rem 0 0;padding-left:1.25rem;display:flex}.npc-characteristics-bullets,.lore-summary-bullets,.location-characteristics-bullets{color:var(--text)}.hub-session-editor,.hub-table-panel-editor{margin-bottom:1.5rem}.hub-data-table-wrap{width:100%}.hub-data-table{border-collapse:collapse;table-layout:fixed;width:100%;margin-top:1rem;font-size:1.05rem}@media (width<=720px){.hub-data-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.hub-data-table{width:auto;min-width:640px}}.hub-data-table th,.hub-data-table td{text-align:left;vertical-align:top;overflow-wrap:break-word;padding:.65rem .9rem}.hub-data-table thead th{background:var(--bg-raised);color:var(--accent);border-bottom:2px solid var(--accent);white-space:nowrap;font-weight:700}.hub-data-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.hub-data-table thead th.sortable:hover{color:var(--text)}.hub-data-table tbody td{border-bottom:1px solid var(--border)}.hub-data-table tbody tr:nth-child(2n){background:#ffffff08}.hub-data-table tbody tr:hover{background:#c9a2271a}.hub-data-table td input[type=checkbox]{cursor:pointer}.hub-data-table .hub-data-table-actions-col{white-space:nowrap;width:90px}.hub-data-table tbody tr.hub-table-edit-row td{padding:1rem .9rem}.hub-data-table tbody tr.hub-table-edit-row:hover,.hub-data-table tbody tr.hub-table-edit-row:nth-child(2n){background:0 0}.hub-table-edit-row .content-form{margin-bottom:0}.hub-data-table-edit-btn,.hub-data-table-remove-btn{font:inherit;color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;margin-left:.75rem;padding:0;font-size:.85rem;text-decoration:underline}.hub-data-table-edit-btn:hover{color:var(--accent)}.hub-data-table-remove-btn:hover{color:#d16a6a}.hub-tag{border-bottom:1px dotted var(--accent);color:var(--accent);cursor:pointer;display:inline-block;position:relative}.hub-tag-preview{z-index:30;background:var(--bg-raised);border:1px solid var(--border);border-radius:4px;margin-bottom:.35rem;padding:.3rem;display:none;position:absolute;bottom:100%;left:0;box-shadow:0 4px 12px #00000059}.hub-tag-preview img{border-radius:3px;width:160px;height:auto;display:block}.hub-tag:hover .hub-tag-preview,.hub-tag:focus .hub-tag-preview,.hub-tag:focus-within .hub-tag-preview{display:block}.form-row{gap:1rem;display:flex}.form-row .form-field{flex:1;min-width:0}.hub-mention-wrap{position:relative}.hub-mention-wrap input,.hub-mention-wrap textarea{width:100%}.hub-mention-dropdown{z-index:20;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;width:240px;max-width:90vw;max-height:220px;margin-top:.25rem;position:absolute;overflow-y:auto;box-shadow:0 4px 12px #00000059}.hub-mention-item{text-align:left;width:100%;color:var(--text);background:0 0;border:none;align-items:center;gap:.5rem;padding:.45rem .6rem;font-family:inherit;font-size:.9rem;display:flex}.hub-mention-item img,.hub-mention-item-placeholder{object-fit:cover;border-radius:4px;flex-shrink:0;width:28px;height:28px}.hub-mention-item-placeholder{background:var(--bg)}.hub-mention-item:hover,.hub-mention-item.is-selected{background:#c9a22726}.hub-mention-empty{color:var(--text-dim);padding:.6rem;font-size:.85rem}.missive-image-frame{background:var(--bg);border-radius:4px;justify-content:center;align-items:center;width:100%;height:12rem;margin-top:.75rem;display:flex;overflow:hidden}.missive-image{object-fit:contain;max-width:100%;max-height:100%;display:block}.combat-conditions-toggle.missive-recipients-toggle{white-space:nowrap;text-overflow:ellipsis;width:100%;min-width:14rem;max-width:none;padding:.5rem .7rem;font-size:1rem;overflow:hidden}.missive-recipients-dropdown{min-width:16rem;max-height:16rem;overflow-y:auto}.missive-composer-left{flex-direction:column;min-height:0;display:flex}.missive-composer-message{flex:1;min-height:0}.missive-composer-message .hub-mention-wrap{flex:1;min-height:0;display:flex}.missive-composer-message textarea{flex:1;min-height:0}.missive-composer-right{flex-direction:column;min-height:0;display:flex;overflow-y:auto}.missive-attachment-toggle-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.missive-attachment-cancel-buttons{gap:.5rem;display:flex}.missive-attachment-cancel-buttons .btn{padding:.4rem .8rem;font-size:.85rem}.missive-attachment-link-input{box-sizing:border-box;height:44px}.missive-list-toggle{margin-bottom:1.25rem}.missive-attachment-preview-area{flex-shrink:0;height:215px;display:flex}.missive-attachment-preview-area .missive-image-frame{height:100%;margin-top:.75rem}.missive-attachment-meta-row{gap:1rem;display:flex}.missive-attachment-meta-row .form-field{flex:1;min-width:0}.missive-composer-bottom{flex-direction:column;gap:.75rem;margin-top:auto;display:flex}.missive-attachment-hint{margin:0}.missive-attachment-hint.is-hidden{visibility:hidden}.missive-composer-buttons-group{flex-direction:column;gap:.75rem;display:flex}.missive-composer-buttons-row{gap:.75rem;display:flex}.missive-composer-buttons-row .btn{text-align:center;flex:1;min-width:0}.file-library-add-section{border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:1.5rem}.file-library-list{margin:0;padding:0;list-style:none}.file-library-item{border-bottom:1px solid var(--border)}.file-library-item:last-child{border-bottom:none}.file-library-item .record-tracker-detail{padding:1rem 0}.file-library-item-header{justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.file-library-item-header>div:first-child{min-width:0}.file-library-item-header .modal-actions{flex-wrap:nowrap;flex-shrink:0}.file-library-item-header .modal-actions .btn{padding:.35rem .8rem;font-size:.85rem}.file-library-row{align-items:center;gap:.75rem;min-width:0;display:flex}.file-library-select-checkbox{flex-shrink:0;width:1.1rem;height:1.1rem}.file-library-bulk-bar{border-bottom:1px solid var(--border);justify-content:space-between;margin-bottom:.25rem;padding:.5rem 0}.file-library-upload-row{flex-wrap:wrap;gap:1rem;display:flex}.file-library-upload-row .form-field{flex:12rem}.file-library-name-line{white-space:normal;text-overflow:clip;align-items:center;gap:.5rem;margin:0;font-size:1.05rem;display:flex;overflow:visible}.file-library-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.file-library-meta{color:var(--text-dim);margin:.15rem 0 0;font-size:.85rem}.file-library-sent-badge{color:var(--accent);background:#c9a22726;border-radius:3px;flex:none;padding:.05rem .5rem;font-size:.75rem}.file-library-thumb,.file-library-thumb-badge{border-radius:4px;flex:none;width:2.75rem;height:2.75rem}.file-library-thumb{object-fit:cover;background:var(--bg)}.file-library-thumb-badge{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);letter-spacing:.02em;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex}.hub-gallery{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.25rem;margin:0 0 1.5rem;display:grid}.hub-gallery-item{margin:0}.hub-gallery-item img{object-fit:cover;background:var(--bg);border-radius:4px;width:100%;height:160px;transition:opacity .15s;display:block}.hub-gallery-item a:hover img{opacity:.85}.hub-gallery-item-loading{background:var(--bg);border-radius:4px;width:100%;height:160px}.hub-gallery-item figcaption{color:var(--text-dim);margin-top:.4rem;font-size:.85rem}.hub-file-docs{margin:0;padding:0;list-style:none}.hub-file-docs li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding:.6rem 0;display:flex}.hub-file-doc-link{color:var(--accent);white-space:nowrap;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:1rem}.hub-file-doc-link:hover{text-decoration:underline}.password-gate{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.password-gate-form{background:var(--bg-raised);border:1px solid var(--border);text-align:center;border-radius:8px;width:100%;max-width:360px;padding:2rem}.password-gate-form h1{margin:0 0 .5rem;font-size:1.6rem}.password-gate-form p{color:var(--text-dim);margin:0 0 1.4rem}.password-gate-form input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;margin-bottom:1rem;padding:.6rem .8rem}.password-gate-form .btn{width:100%}.password-gate-error{color:#d86a6a;margin:1rem 0 0}
