.auth-photo{margin-top:1.8rem;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:16/9}.auth-photo img{width:100%;height:100%;display:block;object-fit:cover}.turnstile-slot{min-height:66px;display:flex;align-items:center}.form-error{padding:11px 13px;border:1px solid color-mix(in srgb,var(--danger) 55%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--danger) 9%,var(--panel));color:var(--danger);font-weight:700}.small-copy{font-size:.85rem}.small-copy a{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}.grid.two-live{grid-template-columns:repeat(2,minmax(0,1fr))}.live-campaign-card{display:flex;flex-direction:column}.live-campaign-card .hero-actions{margin-top:auto}.catalogue-list{display:grid;gap:8px}.catalogue-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);color:var(--text);text-align:left;cursor:pointer}.catalogue-row:hover{border-color:var(--accent)}.catalogue-row strong,.catalogue-row small{display:block}.catalogue-row small{margin-top:2px;color:var(--muted)}.protected-preview{margin-top:14px;max-height:58vh;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#06080c}.protected-preview img{display:block;max-width:100%;height:auto;margin:auto}.vtt-live{min-height:calc(100vh - 72px);background:#070a0f}.vtt-loading{min-height:65vh;display:grid;place-items:center;align-content:center;gap:8px;color:#dfe8f4}.vtt-loading span{color:#92a0b3}.live-table-shell{min-height:calc(100vh - 72px);display:grid;grid-template-rows:auto 1fr;background:#070a0f;color:#edf3fb}.live-table-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;border-bottom:1px solid #253044;background:#0d131d}.live-table-bar>div{display:flex;align-items:center;gap:12px}.live-table-bar span{color:#94a3b8;font-size:.82rem}.live-table-bar label{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#94a3b8}.live-exit{color:#d89a45;font-weight:800}.live-table-main{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px}.live-map-wrap{min-width:0;overflow:auto;background:#05070b;padding:14px}.live-map{position:relative;width:min(100%,1600px);aspect-ratio:16/9;min-height:560px;margin:auto;overflow:hidden;border:1px solid #263247;border-radius:14px;background-position:center;background-size:contain;background-repeat:no-repeat;background-color:#121a26;box-shadow:0 20px 60px rgba(0,0,0,.35)}.live-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:var(--grid) var(--grid)}.live-grid.gridless{background-image:none}.live-token{position:absolute;z-index:5;transform:translate(-50%,-50%);display:grid;place-items:center;width:54px;height:54px;border:3px solid var(--token-colour);border-radius:50%;background:#1a2838;color:#fff;box-shadow:0 0 0 4px rgba(0,0,0,.32),0 6px 18px rgba(0,0,0,.4);font-weight:900;cursor:grab;touch-action:none}.live-token:active{cursor:grabbing}.live-map-tools{position:absolute;z-index:10;left:12px;top:12px;display:flex;gap:6px}.live-map-tools button,.live-panel-tabs button{border:1px solid #334158;border-radius:9px;background:#0e1723;color:#aebbd0;padding:8px 10px;font-weight:800;cursor:pointer}.live-map-tools button.active,.live-panel-tabs button.active{border-color:#d89a45;color:#fff;background:#1e1a15}.live-panel{min-width:0;padding:14px;border-left:1px solid #263247;background:#0d141e}.live-panel-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px}.live-panel h3{margin:.5rem 0 1rem}.mini-form{display:flex;gap:8px;margin-top:14px}.mini-form input{min-width:0;flex:1;background:#111a27;border-color:#2c394d;color:#fff}.live-chat{height:380px;overflow:auto;display:grid;align-content:start;gap:8px;padding:10px;border:1px solid #28364a;border-radius:10px;background:#080d14}.chat-line{display:grid;gap:2px;padding:8px 9px;border-radius:9px;background:#121c29}.chat-line strong{font-size:.78rem;color:#d89a45}.chat-line span{overflow-wrap:anywhere}.dice-result{display:grid;gap:4px;margin-top:16px;padding:16px;border:1px solid #2c394d;border-radius:12px;background:#101925}.dice-result strong{font:800 2.2rem/1 Georgia,serif;color:#f0b75e}.dice-result span{color:#9ba9bd}.live-table-shell .initiative-row{background:#121c29}@media(max-width:980px){.grid.two-live{grid-template-columns:1fr}.live-table-main{grid-template-columns:1fr}.live-panel{border-left:0;border-top:1px solid #263247}.live-map{min-height:500px}}@media(max-width:640px){.live-table-bar{align-items:flex-start;flex-direction:column}.live-table-bar>div{width:100%;flex-wrap:wrap}.live-table-main{display:block}.live-map-wrap{padding:6px}.live-map{min-height:420px;border-radius:8px}.live-panel{padding:10px}.live-token{width:46px;height:46px}.mini-form{flex-direction:column}.auth-photo{display:none}}.hero-media{position:relative;margin:0;min-height:470px;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:var(--panel);box-shadow:var(--shadow)}.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(4,7,11,.9))}.hero-media figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;display:grid;gap:5px;color:#fff}.hero-media figcaption strong{font:700 1.35rem Georgia,serif}.hero-media figcaption span{color:#d5deeb;max-width:46ch}.actual-system{min-height:235px}@media(max-width:980px){.hero-media{min-height:420px}}@media(max-width:640px){.hero-media{min-height:300px;border-radius:18px}.hero-media figcaption{left:15px;right:15px;bottom:14px}}
.account-action{max-width:720px;margin:40px auto}.campaign-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:-6px 0 22px}.campaign-stats{margin-top:22px}.character-sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.character-sheet-grid .span-all{grid-column:1/-1}.check-row{display:flex;align-items:center;gap:10px;color:var(--muted)}.compact-card{padding:19px}.gm-quick{grid-template-columns:repeat(3,minmax(0,1fr))}.mini-results{display:grid;gap:6px;max-height:220px;overflow:auto}.mini-result{display:grid;gap:2px;width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text);text-align:left;cursor:pointer}.mini-result small{color:var(--muted)}
.vtt-app{position:fixed;z-index:90;inset:0;background:#05070b;color:#edf3fb;display:grid;grid-template-rows:auto 1fr}.vtt-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 14px;border-bottom:1px solid #263247;background:#0c121b}.vtt-bar>div{display:flex;align-items:center;gap:10px;min-width:0}.vtt-bar span{color:#98a6b8;font-size:.8rem}.vtt-back{color:#d89a45;font-weight:900}.vtt-presence{display:flex!important;justify-content:center;flex:1;overflow:hidden}.presence-pill{padding:4px 8px;border:1px solid #314056;border-radius:999px;background:#141e2b;color:#dfe8f4!important;white-space:nowrap}.vtt-body{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px}.vtt-stage-wrap{position:relative;min-width:0;min-height:0;overflow:auto;background:#030508;padding:52px 12px 12px}.vtt-toolbar{position:absolute;z-index:25;left:14px;top:10px;display:flex;flex-wrap:wrap;gap:5px}.vtt-toolbar button{border:1px solid #334158;border-radius:8px;background:#0e1723;color:#aebbd0;padding:7px 9px;font-weight:800;cursor:pointer}.vtt-toolbar button.active{border-color:#d89a45;color:#fff;background:#2a1d10}.vtt-stage{position:relative;width:min(100%,1600px);aspect-ratio:16/9;min-height:560px;margin:auto;overflow:hidden;border:1px solid #263247;border-radius:12px;background:#101823 center/contain no-repeat;box-shadow:0 20px 60px rgba(0,0,0,.38);touch-action:none}.vtt-grid{position:absolute;z-index:2;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:var(--grid) var(--grid)}.vtt-grid.gridless{background-image:none}.vtt-grid.hex{background-image:linear-gradient(30deg,rgba(255,255,255,.05) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.05) 87.5%,rgba(255,255,255,.05)),linear-gradient(150deg,rgba(255,255,255,.05) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.05) 87.5%,rgba(255,255,255,.05)),linear-gradient(30deg,rgba(255,255,255,.05) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.05) 87.5%,rgba(255,255,255,.05))}
.vtt-overlay{position:absolute;z-index:4;inset:0;width:100%;height:100%;pointer-events:none}.scene-object{vector-effect:non-scaling-stroke}.scene-object.wall{stroke:#e5e9ef;stroke-width:5}.scene-object.door{stroke:#d89a45;stroke-width:7;stroke-dasharray:12 7}.scene-object.drawing{stroke:#76c9c4;stroke-width:4;stroke-linecap:round}.scene-object.measurement{stroke:#f3c273;stroke-width:3;stroke-dasharray:8 6}.scene-object.fog{fill:rgba(1,2,4,.82)}.scene-object.light{fill:rgba(255,220,120,.2);stroke:rgba(255,220,120,.75);stroke-width:2}.scene-object.template{fill:rgba(118,201,196,.16);stroke:#76c9c4;stroke-width:2}.scene-object.preview-object{opacity:.75}.vtt-stage[data-tool="erase"] .scene-object{pointer-events:stroke;cursor:not-allowed}.vtt-stage[data-tool="erase"] rect.scene-object{pointer-events:all}.vtt-token{position:absolute;z-index:12;transform:translate(-50%,-50%);display:grid;place-items:center;width:calc(52px * var(--token-size));height:calc(52px * var(--token-size));border:3px solid var(--token-colour);border-radius:50%;background:#172637;color:#fff;box-shadow:0 0 0 4px rgba(0,0,0,.35),0 8px 18px rgba(0,0,0,.45);font-weight:900;cursor:grab;touch-action:none}.vtt-token>i{position:absolute;left:50%;bottom:-16px;transform:translateX(-50%);font:700 10px/1 sans-serif;padding:2px 5px;border-radius:99px;background:#06090e;color:#fff;white-space:nowrap}.vtt-token>b{position:absolute;right:-8px;top:-8px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#d25b5b;font-size:10px}.vtt-effects{position:absolute;z-index:20;inset:0;pointer-events:none}.vtt-ping{position:absolute;transform:translate(-50%,-50%);width:70px;height:70px;border:4px solid #76c9c4;border-radius:50%;animation:vttPing 1.4s ease-out}.vtt-ping span{position:absolute;top:72px;left:50%;transform:translateX(-50%);padding:3px 7px;border-radius:7px;background:#061019;color:#fff;font-size:11px;white-space:nowrap}.measure-label{position:absolute;transform:translate(-50%,-50%);padding:5px 8px;border-radius:8px;background:#111a27;color:#fff;border:1px solid #d89a45;font-weight:800}@keyframes vttPing{from{opacity:1;scale:.3}to{opacity:0;scale:1.3}}
.vtt-side{min-width:0;overflow:auto;border-left:1px solid #263247;background:#0c121b;padding:12px}.vtt-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:14px}.vtt-tabs button{border:1px solid #2c394d;border-radius:8px;background:#121b28;color:#aab7c8;padding:8px 5px;font-weight:800;cursor:pointer}.vtt-tabs button.active{border-color:#d89a45;color:#fff}.initiative-token{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid #263247;border-radius:10px;background:#111a27;color:#edf3fb;text-align:left;cursor:pointer;margin-bottom:7px}.initiative-token span{display:grid}.initiative-token small{color:#96a5b9}.initiative-token>b{font-size:1.2rem;color:#d89a45}.dice-tray{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.die-button{aspect-ratio:1;border:1px solid #3b4a61;background:linear-gradient(145deg,#182333,#0d131d);color:#fff;clip-path:polygon(50% 0,94% 22%,100% 70%,70% 100%,30% 100%,0 70%,6% 22%);cursor:pointer;font-weight:900}.die-button:hover{background:linear-gradient(145deg,#d89a45,#774517);color:#080a0d}.dice-builder{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:7px;align-items:end;margin-top:14px}.dice-builder label{display:grid;gap:4px;font-size:.72rem;color:#9aa9bc}.dice-builder input{min-width:0}.live-roll-history{display:grid;gap:6px;margin-top:12px;max-height:240px;overflow:auto}.roll-line{display:flex;justify-content:space-between;gap:8px;padding:8px;border-radius:8px;background:#101925}.roll-line b{color:#f0b75e}.handout-card{width:100%;display:grid;gap:4px;margin-bottom:8px;padding:10px;border:1px solid #28364a;border-radius:10px;background:#111a27;color:#fff;text-align:left;cursor:pointer}.handout-card span{color:#9aabba;font-size:.82rem}.vtt-side .live-chat{height:42vh}
@media(max-width:980px){.vtt-app{position:fixed}.vtt-body{grid-template-columns:1fr}.vtt-stage-wrap{min-height:55vh}.vtt-side{border-left:0;border-top:1px solid #263247;max-height:42vh}.vtt-stage{min-height:420px}.gm-quick{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.character-sheet-grid{grid-template-columns:1fr}.character-sheet-grid .span-all{grid-column:auto}.gm-quick{grid-template-columns:1fr}.vtt-bar{align-items:flex-start;flex-direction:column}.vtt-bar>div{width:100%;flex-wrap:wrap}.vtt-presence{justify-content:flex-start}.vtt-stage-wrap{padding:48px 4px 4px}.vtt-toolbar{left:5px;right:5px;overflow:auto;flex-wrap:nowrap}.vtt-stage{min-height:380px}.vtt-side{max-height:45vh}.dice-builder{grid-template-columns:1fr 1fr}.dice-tray{grid-template-columns:repeat(4,1fr)}}
.vtt-vision{position:absolute;z-index:13;inset:0;width:100%;height:100%;pointer-events:none}.vtt-vision .vision-darkness{fill:rgba(1,3,6,.94)}.gm-view .vtt-vision{display:none}.player-view .scene-object.wall,.player-view .scene-object.door{stroke:transparent}.gm-view .vtt-stage[data-tool="select"] .scene-object.door{pointer-events:stroke;cursor:pointer}.scene-object.door.open{stroke:#76c9c4;stroke-dasharray:3 12;opacity:.8}.gm-view .scene-object.door:hover{filter:drop-shadow(0 0 5px rgba(216,154,69,.9))}
.character-sheet-section{grid-column:1/-1;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}.character-sheet-section h3{margin:0 0 14px}.library-detail-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.library-info{position:sticky;top:88px}.library-info dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 12px;margin:0 0 18px}.library-info dt{font-weight:800;color:var(--muted)}.library-info dd{margin:0;overflow-wrap:anywhere}.library-main{min-width:0}.library-reader{display:grid;gap:12px}.library-reader-bar{position:sticky;z-index:5;top:72px;display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:10px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(12px)}.library-reader-bar label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.84rem}.library-reader-bar input{width:76px}.library-spacer{flex:1}.library-page-stage,.library-image-stage{min-height:70vh;max-height:calc(100vh - 170px);overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:18px;border:1px solid var(--line);border-radius:14px;background:#05070b}.library-page-stage img,.library-image-stage img{display:block;width:100%;height:auto;object-fit:contain;box-shadow:0 18px 50px rgba(0,0,0,.5)}.library-image-stage img{max-width:1400px}.library-text{border:1px solid var(--line);border-radius:12px;background:var(--panel)}.library-text summary{cursor:pointer;padding:12px 14px;font-weight:800}.library-page-text{padding:0 14px 16px;line-height:1.7;white-space:pre-wrap}.library-audio{width:100%;margin-top:12px}.catalogue-row{text-decoration:none}@media(max-width:900px){.library-detail-grid{grid-template-columns:1fr}.library-info{position:static}.library-reader-bar{top:64px}.library-page-stage,.library-image-stage{min-height:55vh;max-height:70vh;padding:8px}}
.friend-list{display:grid;gap:9px}.friend-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.friend-row strong,.friend-row small{display:block}.friend-row small{margin-top:2px;color:var(--muted)}.presence-dot{width:11px;height:11px;border-radius:50%;background:#6b7280;box-shadow:0 0 0 3px color-mix(in srgb,#6b7280 18%,transparent)}.presence-dot.online{background:#39b870;box-shadow:0 0 0 3px color-mix(in srgb,#39b870 18%,transparent)}.presence-dot.offline{background:#788494}.presence-dot.pending{background:#d89a45}.compact-list{margin-top:14px}.module-access-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.module-access-copy strong,.module-access-copy small{display:block}.module-access-copy small{margin-top:3px;color:var(--muted)}.module-switch{display:flex;align-items:center;gap:8px;white-space:nowrap;font-weight:800}.module-switch input{width:20px;height:20px;accent-color:var(--accent)}.protected-core{opacity:.96}@media(max-width:640px){.friend-row,.module-access-row{grid-template-columns:auto 1fr}.friend-row>.button,.friend-row>.toolbar-group,.module-access-row>.chip,.module-switch{grid-column:2;justify-self:start}}
.character-detail-layout{display:grid;gap:18px}.character-features{display:grid;gap:16px}.feature-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px}.feature-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.feature-card strong,.feature-card small{display:block}.feature-card small{margin-top:4px;color:var(--muted)}.feature-add-form{padding-top:15px;border-top:1px solid var(--line)}.roll-table-card{display:grid;align-content:start}.table-roll-result{display:grid;gap:3px;margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--panel-2);min-height:0}.table-roll-result:empty{display:none}.table-roll-result span{color:var(--muted)}.chat-line.whisper{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.chat-line.whisper em{font-size:.78em;color:var(--accent);font-style:normal}.presence-pill.ready{border-color:color-mix(in srgb,#39b870 55%,var(--line));background:color-mix(in srgb,#39b870 12%,var(--panel-2))}.bookmark-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center}.library-bookmarks{display:grid;gap:8px;margin:18px 0}.library-bookmarks h3{margin:0}.campaign-member-row .select.compact{min-width:110px}.grid.three-live{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}@media(max-width:720px){.grid.three-live{grid-template-columns:1fr}.feature-list{grid-template-columns:1fr}}
.vtt-token>img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;pointer-events:none}.vtt-token.has-image{overflow:visible;padding:0}.vtt-token.has-image>img{overflow:hidden}.asset-thumb{display:block;width:96px;height:96px;object-fit:cover;border:1px solid var(--line);border-radius:12px;margin:8px 0}.character-portrait-editor{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}.character-portrait-preview,.character-portrait-placeholder{width:132px;height:160px;border-radius:14px;border:1px solid var(--line);object-fit:cover;background:var(--panel);display:grid;place-items:center;color:var(--muted);text-align:center}.form-note input[type=file]{display:block;width:100%;margin-top:9px}.form-note strong,.form-note small{display:block}.form-note small{margin-top:5px}@media(max-width:640px){.character-portrait-editor{grid-template-columns:1fr}.character-portrait-preview,.character-portrait-placeholder{width:112px;height:136px}}

.upload-card{overflow:hidden}.upload-preview{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:var(--panel-2);margin-bottom:12px}.upload-audio{display:block;width:100%;margin:0 0 12px}.upload-card h3{overflow-wrap:anywhere}.upload-card small{display:block;overflow-wrap:anywhere}.upload-card .form-actions{margin-top:12px}

/* Platform administration */
.admin-site-editor details{border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.admin-site-editor details+details{margin-top:10px}
.admin-site-editor summary{cursor:pointer;font-weight:700;padding:4px 0}
.admin-site-editor details[open] summary{margin-bottom:14px}
.draft-status{display:block;color:var(--muted);margin-top:8px}
.draft-recovery{display:grid;gap:8px}
.admin-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:16px 0 22px}
.media-card{display:grid;grid-template-columns:88px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px}
.media-card img{width:88px;height:70px;object-fit:cover;border-radius:10px}
.media-card div{display:grid;gap:3px;min-width:0}
.media-card small{color:var(--muted);overflow-wrap:anywhere}
.admin-preview{display:grid;gap:12px}
.character-history{grid-column:1/-1}
@media(max-width:700px){.media-card{grid-template-columns:72px 1fr}.media-card img{width:72px;height:60px}.media-card>button{grid-column:1/-1}}

.audit-output{max-height:260px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:rgba(0,0,0,.18);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:.8rem}

/* Campaign journal */
.journal-note{display:flex;flex-direction:column;gap:8px}
.journal-note h3,.journal-note p{margin:0}
.journal-note .form-actions{margin-top:auto}
.journal-body{white-space:normal;line-height:1.65}
.journal-revisions{margin-top:18px}
.compact-search{max-width:260px}

/* D20Realm brand identity */
.brand-logo{display:block;width:auto;height:42px}
.footer-brand{display:inline-flex;align-items:center;gap:.55rem}
.footer-brand img{display:block;width:26px;height:26px}
@media(max-width:640px){.brand-logo{height:38px}}

/* GM Prep cross-links */
.prep-link-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin:18px 0}
.prep-links{display:grid;gap:10px}
.prep-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--panel-2) 65%,transparent)}
.prep-link-row>a{display:grid;gap:3px;min-width:0;padding:8px;border-radius:10px}
.prep-link-row>a:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.prep-link-row strong{overflow-wrap:anywhere}
.prep-link-arrow{display:grid;place-items:center;min-width:90px;color:var(--muted);font-size:.75rem;text-align:center}
.prep-link-arrow b{color:var(--accent-2);font-size:1.05rem}
@media(max-width:980px){.prep-link-form{grid-template-columns:1fr 1fr}.prep-link-row{grid-template-columns:1fr auto 1fr}.prep-link-row>.button{grid-column:1/-1;justify-self:start}}
@media(max-width:640px){.prep-link-form{grid-template-columns:1fr}.prep-link-row{grid-template-columns:1fr}.prep-link-arrow{min-width:0;justify-items:start}.prep-link-row>.button{grid-column:auto}}

.site-section-list{display:grid;gap:14px}
.site-section-editor{border:1px solid var(--line);border-radius:12px;padding:12px;background:color-mix(in srgb,var(--panel-2) 72%,transparent)}
.site-section-editor h4{margin:0 0 10px}
.admin-live-preview{display:grid;gap:12px;min-width:min(980px,82vw)}
.admin-preview-controls{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.admin-preview-controls label{display:grid;gap:6px;min-width:220px}
.admin-preview-frame-wrap{display:flex;justify-content:center;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}
.admin-preview-frame-wrap iframe{display:block;width:100%;height:650px;border:0;border-radius:10px;background:#fff;transition:width .18s ease}
.admin-preview-frame-wrap[data-preview-size="mobile"] iframe{width:390px;max-width:390px;flex:0 0 390px}
@media(max-width:700px){.admin-live-preview{min-width:0}.admin-preview-frame-wrap{padding:4px}.admin-preview-frame-wrap iframe{height:560px}.admin-preview-controls{align-items:stretch}.admin-preview-controls label{min-width:0;width:100%}}
