:root{color-scheme:dark;--bg:#101217;--panel:#1a1d23;--panel2:#22262d;--border:#343a43;--text:#f1eee8;--muted:#abb0ba;--accent:#a54e4b;--accent2:#dba995}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}select,input,textarea{background:#111419;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:11px;max-width:100%}textarea{resize:vertical;min-height:200px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(100%)}.topbar{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px clamp(16px,3vw,36px);background:#191b20;border-bottom:1px solid var(--border);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:13px}.brand-mark{background:var(--accent);padding:13px 10px;border-radius:7px;font-weight:900;letter-spacing:-1px}.brand strong{letter-spacing:.15em}.brand small{display:block;color:var(--muted);margin-top:4px;font-size:11px}.tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.tools select{padding:8px}.btn{padding:10px 15px;border:1px solid var(--border);background:#292e35;color:var(--text);border-radius:8px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:13px}.btn:hover,.nav-link:hover{border-color:var(--accent2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.ghost{background:transparent}.shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:calc(100dvh - 80px)}.sidebar{background:#15171c;border-right:1px solid var(--border);padding:28px 12px;display:flex;flex-direction:column;gap:8px}.sidebar-title{color:#8d919a;font-size:11px;font-weight:800;letter-spacing:.2em;padding:8px 12px 17px}.nav-link,.nav-faction,.nav-universe{border:1px solid transparent;text-align:left;color:#c4c6cc;background:transparent;border-radius:8px;padding:10px 12px;width:100%}.nav-link.active,.nav-faction.active{background:#29252b;color:#fff;border-color:#674044}.nav-universe{font-weight:750;color:#eee;margin-top:15px}.nav-faction{padding-left:25px;font-size:13px}.sidebar-foot{margin-top:auto;padding:20px 10px 0;color:#7d828b;font-size:11px;line-height:1.5}.main{padding:clamp(20px,4vw,54px);min-width:0;max-width:1550px;width:100%;margin:auto}.hero{padding:clamp(22px,4vw,50px);border:1px solid #4b3538;border-radius:18px;background:radial-gradient(circle at 95% 10%,#683638 0,transparent 35%),linear-gradient(140deg,#292026,#1b2027);margin-bottom:40px}.eyebrow{font-size:11px;color:var(--accent2);letter-spacing:.2em;font-weight:800}.hero h1{font-family:Georgia,serif;font-size:clamp(38px,5vw,62px);margin:12px 0}.hero p{max-width:650px;color:#ddd0ce;line-height:1.6}.hero-actions{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}.sectionhead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:22px}.sectionhead h2{margin:0;font-size:23px}.sectionhead p{margin:7px 0 0;color:var(--muted);font-size:13px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters input{min-width:min(290px,90vw)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:17px}.card{background:var(--panel);border:1px solid var(--border);border-radius:13px;overflow:hidden;display:flex;flex-direction:column}.card:hover{border-color:#8d5955}.card-art{height:142px;background:radial-gradient(circle at 80% 50%,#724743,#302a32 55%,#1c222a);display:grid;place-items:center;overflow:hidden}.card-art img{height:100%;width:100%;object-fit:cover}.card-art .sigil{font-family:Georgia,serif;font-size:50px;color:#d6aaa2;letter-spacing:-.08em}.card-content{padding:19px;flex:1;display:flex;flex-direction:column}.meta{color:#cd9b94;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.card h3{font-size:19px;line-height:1.25;margin:10px 0}.card p{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 20px;white-space:pre-line;overflow-wrap:anywhere}.card-footer{margin-top:auto;border-top:1px solid var(--border);padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px}.card-footer button{background:none;border:none;color:#e2b1a5;font-weight:700}.empty{border:1px dashed var(--border);text-align:center;padding:45px;color:var(--muted)}.overlay{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#050608df;height:100dvh}.overlay[hidden], [hidden]{display:none!important}.dialog{width:min(1050px,100%);max-height:100%;display:flex;flex-direction:column;background:#191c22;border:1px solid #55515a;border-radius:13px;box-shadow:0 24px 90px #000b;min-height:0}.dialog-head{padding:18px 23px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:15px;align-items:center;flex-shrink:0}.dialog-head h2{margin:6px 0 0;font-size:22px;overflow-wrap:anywhere}.close{border:1px solid var(--border);background:#292d34;color:white;font-size:28px;width:38px;height:38px;border-radius:7px;flex-shrink:0}.dialog-body{padding:23px;overflow-y:auto;min-height:0;overscroll-behavior:contain}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#d4d6dc}.field.full{grid-column:1/-1}.field label{font-weight:700}.field small,.hint{color:var(--muted);font-size:12px;line-height:1.45}.editorActions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}.imagePreview{max-width:160px;max-height:90px;object-fit:contain}.reader-info{display:flex;flex-wrap:wrap;gap:10px 20px;color:var(--muted);font-size:13px;margin-bottom:18px}.paper-wrap{background:#373536;padding:22px;display:flex;justify-content:center}.paper{width:min(100%,794px);min-height:800px;aspect-ratio:210/297;background:#efe8d8;color:#302a24;position:relative;box-shadow:0 7px 28px #0006;background-size:100% 100%;background-position:center;overflow-wrap:anywhere}.paper-content{position:relative;padding:9% 10%;font-family:Georgia,'Times New Roman',serif;font-size:16px;line-height:1.8;white-space:pre-wrap}.paper-content h1{font-size:clamp(22px,3vw,38px);line-height:1.2;margin:0 0 25px}.paper-content .byline{font:12px Segoe UI,Arial,sans-serif;text-transform:uppercase;letter-spacing:.15em;opacity:.7;margin-bottom:25px}.paperLogo{max-width:110px;max-height:110px;object-fit:contain;display:block;margin-bottom:20px}.reader-actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.toast{position:fixed;z-index:110000;bottom:18px;left:50%;transform:translateX(-50%);background:#45404a;color:white;padding:12px 18px;border-radius:10px;display:none;text-align:center}.toast.show{display:block}.checkboxLine{display:flex;gap:8px;align-items:center;font-size:13px}.checkboxLine input{width:17px;height:17px}@media(max-width:850px){.shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--border);padding:12px;display:block}.sidebar-title,.sidebar-foot{display:none}.nav-universe{margin-top:0}.nav-faction{display:inline-block;width:auto;padding:8px 10px}.main{padding:18px}.filters,.filters input,.filters select{width:100%}.formgrid{grid-template-columns:1fr}.dialog-body{padding:12px}.paper-wrap{padding:8px}.paper-content{padding:7%;font-size:14px}.tools{width:100%}.dialog-head{padding:12px}.hero{margin-bottom:24px}}@media print{body>*:not(#app){display:none!important}.topbar,.sidebar,.hero,.sectionhead,.cards{display:none!important}}

/* Alpha 0.1.1: improve grouped navigation and card actions without changing layout */
.nav-group{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:#dbb1a8;border-top:1px solid #37333a;margin:12px 10px 3px;padding:12px 3px 2px;font-weight:800}.card-art img{object-fit:contain;padding:14px}.card-menu{position:relative;flex-shrink:0}.card-menu .dots{font-size:24px;line-height:1;padding:2px 9px;border:1px solid var(--border);background:#303038;border-radius:7px;color:var(--text)}.menu-actions{position:absolute;right:0;bottom:36px;z-index:5;background:#26272e;border:1px solid #71626a;border-radius:8px;min-width:125px;padding:5px;box-shadow:0 9px 22px #0008}.menu-actions[hidden]{display:none!important}.menu-actions button{display:block;width:100%;text-align:left;color:var(--text);padding:10px;border-radius:5px}.menu-actions button:hover{background:#45404a}.card-footer{position:relative}.filters input{min-width:min(195px,80vw)}.overlay{z-index:1000000}.toast{z-index:1000001}@media(max-width:850px){.nav-group{display:block}}


/* Alpha 0.1.2 - Lost Files palette, CSS-only visual identity.
   No external textures, frames or WebP assets are required. */
:root{
  --bg:#211C19;--panel:#30251F;--panel2:#49322B;--border:#665346;
  --text:#E8DCC6;--muted:#B9AB94;--accent:#596247;--accent2:#D8C6A4;
  --wood:#49322B;--olive:#596247;--metal:#96846B;--paper:#D8C6A4;
  color-scheme:dark;
}
html,body{background:var(--bg);color:var(--text)}
.topbar{background:#2B211C;border-bottom:2px solid var(--metal)}
.brand-mark{background:var(--olive);color:#F4EAD6;border:1px solid var(--metal);border-radius:6px}
.brand strong{color:var(--paper)}
.sidebar{background:#29211C;border-color:#594638}
.sidebar-title,.sidebar-foot{color:var(--muted)}
.nav-link,.nav-faction,.nav-universe{color:var(--text)}
.nav-link.active,.nav-faction.active{background:var(--olive);color:#fff;border-color:var(--metal)}
.nav-link:hover,.nav-faction:hover,.nav-universe:hover{background:#41332A}
.nav-group{color:var(--paper);border-color:#62503F}
.hero{background:linear-gradient(125deg,#49322B 0%,#352920 65%,#2B2620 100%);border:1px solid var(--metal);border-radius:10px;margin-bottom:30px}
.hero h1{color:var(--paper)}.hero p{color:#E0D2BD}
.eyebrow,.meta{color:var(--paper)}
.sectionhead h2{color:var(--paper)}
select,input,textarea{background:#29211C;border-color:#73614E;color:var(--text);border-radius:6px}
select:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--paper);outline-offset:2px}
.btn{background:var(--wood);border-color:var(--metal);color:var(--text);border-radius:6px}
.btn:hover,.nav-link:hover{border-color:var(--paper)}
.btn.primary{background:var(--olive);border-color:var(--metal);color:#fff}
.btn.ghost{background:transparent}
.card{background:#302721;border:1px solid #6A5949;border-radius:8px}
.card:hover{border-color:var(--paper)}
.card-art{background:linear-gradient(145deg,#514035,#332A24 70%);border-bottom:1px solid #75614F}
.card-art .sigil{color:var(--paper)}
.card-footer{border-color:#685747}.card-footer button{color:var(--paper)}
.card-menu .dots{background:var(--wood);border-color:var(--metal)}
.menu-actions{background:#2D251F;border-color:var(--metal)}
.menu-actions button:hover{background:var(--wood)}
.empty{border-color:var(--metal)}
.overlay{background:rgba(16,12,10,.84);z-index:1000000}
.dialog{background:#2A211C;border-color:var(--metal);border-radius:9px;max-height:100%;min-height:0}
.dialog-head{border-color:#685747}
.close{background:var(--wood);border-color:var(--metal);color:var(--paper)}
.field{color:var(--text)}
.paper-wrap{background:#372B24}
.paper{background-color:var(--paper);color:#30251E;box-shadow:0 9px 28px #0007}
.paper-content{color:#30251E}
.toast{background:var(--olive);border:1px solid var(--metal);color:#fff}
@media(max-width:850px){.sidebar{background:#29211C}.hero{margin-bottom:22px}.overlay{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}}


/* Alpha 0.1.3 — unified material palette; no decorative backgrounds required. */
:root{
 --bg:#211C19;--panel:#302721;--panel2:#49322B;--border:#96846B;
 --text:#E9DDC9;--muted:#C0B097;--accent:#596247;--accent2:#D8C6A4;
 --wood:#49322B;--olive:#596247;--metal:#96846B;--paper:#D8C6A4;
}
body{background:var(--bg)}
.topbar{background:#2A211D;border-bottom:1px solid var(--metal);padding-top:11px;padding-bottom:11px}
.brand-mark{height:56px;width:56px;padding:0;overflow:hidden;border:1px solid var(--metal);border-radius:9px;background:#211C19;display:grid;place-items:center;flex-shrink:0}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand strong{color:var(--paper);font-family:Georgia,serif;font-size:18px;letter-spacing:.12em}
.brand small{color:var(--muted);font-size:12px}
.sidebar{background:#29211D;border-right:1px solid #5E4A3B}
.sidebar-title{color:var(--metal)}
.nav-link,.nav-faction,.nav-universe{transition:background .15s ease,border-color .15s ease}
.nav-link.active,.nav-faction.active{background:var(--olive);border-color:var(--metal);color:#F7F1E5}
.nav-universe{color:var(--paper)}
.nav-group{color:var(--metal)}
.hero{background:linear-gradient(110deg,var(--wood),#352922 74%,#2D2921);border:1px solid var(--metal);box-shadow:inset 0 1px 0 #D8C6A41A}
.hero h1{color:var(--paper)}.hero p{color:#E4D7C4}
.eyebrow{color:var(--paper)}
.sectionhead h2{font-family:Georgia,serif;color:var(--paper)}
.filters input,.filters select,.tools select{background:#30251F;border:1px solid #87715C;color:var(--text)}
input::placeholder,textarea::placeholder{color:#B7A891;opacity:1}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--paper);outline-offset:2px}
.btn{background:var(--wood);border-color:#8A755D;color:var(--paper)}
.btn:hover,.close:hover,.card-menu .dots:hover{background:#614638;border-color:var(--paper)}
.btn.primary{background:var(--olive);border-color:#929A78;color:#FFFCEF}
.btn.primary:hover{background:#6B7655}
.card{background:#302721;border-color:#725D4A}.card:hover{border-color:var(--metal);box-shadow:0 5px 22px #0003}
.card-art{background:linear-gradient(140deg,#4C3830,#302721 65%,#33392D);border-bottom:1px solid #75614E}
.meta{color:#CDBA97}.card p,.sectionhead p,.card-footer{color:var(--muted)}
.card-menu .dots{background:var(--wood);border-color:var(--metal)}
.menu-actions{background:#30251F;border-color:var(--metal)}
.menu-actions button:hover{background:#49322B}
.dialog{background:#2C241F;border:1px solid var(--metal);box-shadow:0 24px 90px #000B}
.dialog-head{background:#342821;border-bottom:1px solid #71604E}
.close{background:var(--wood);border-color:var(--metal);color:var(--paper)}
.dialog-body select,.dialog-body input,.dialog-body textarea{background:#211C19;border-color:#88715B;color:var(--text)}
.paper-wrap{background:#3B3027}.paper{background-color:var(--paper);color:#30251E}
.toast{background:var(--olive);border-color:var(--metal)}
@media(max-width:850px){.topbar{padding:12px 16px}.brand-mark{width:48px;height:48px}.sidebar{background:#29211D}}

/* Alpha 0.1.4: preserve sidebar position while universe branches expand. */
.shell{align-items:start}
.sidebar{position:sticky;top:0;align-self:start;height:100dvh;max-height:100dvh;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;overflow-anchor:none;scrollbar-gutter:stable}
#universeNav{flex:0 0 auto;overflow-anchor:none}
.sidebar-foot{margin-top:16px}
.nav-universe,.nav-faction{display:block}
@media(max-width:850px){
 .shell{display:block}
 .sidebar{position:relative;top:auto;height:220px;max-height:220px;overflow-y:auto;border-right:0;overscroll-behavior:contain;scrollbar-gutter:stable}
 .nav-universe,.nav-faction{display:block;width:100%}
 .main{min-width:0}
}

/* Alpha 0.1.5: paper-led palette, square geometry, featured logos */
:root{--border:#96846B}
*,*::before,*::after{border-radius:0!important}
.brand-mark{background:transparent!important;border:0!important;padding:0!important;overflow:visible!important}
.brand-mark img{object-fit:contain}
.sidebar{background:var(--paper)!important;border-right:2px solid var(--metal)!important;color:var(--bg)}
.sidebar-title,.nav-group{color:#66513B!important}
.nav-group{border-top-color:#A18C70!important}
.nav-link,.nav-faction,.nav-universe{color:#30251E!important}
.nav-universe{border-bottom:1px solid #B6A484}
.nav-link:hover,.nav-faction:hover,.nav-universe:hover{background:#BEAD8F!important}
.nav-link.active,.nav-faction.active{background:var(--olive)!important;color:#FFF8E8!important;border-color:#4B513C!important}
.sidebar-foot{color:#63513F!important}
.hero{background:var(--paper)!important;color:var(--bg)!important;border:5px double #65503F!important;box-shadow:0 0 0 1px var(--metal),inset 0 0 0 5px #D8C6A4!important}
.hero .eyebrow{color:#64513C!important}
.hero h1{color:#30241C!important}
.hero p{color:#46372A!important}
.hero .btn.ghost{background:var(--wood);color:#F2E5CC;border:1px solid #6E5842}
.featured{margin-bottom:18px;min-width:0}
.featured-heading{font-size:11px;font-weight:800;letter-spacing:.15em;color:var(--paper);margin-bottom:10px}
.featured-track{display:flex;gap:12px;overflow-x:auto;max-width:100%;padding:4px 2px 12px;scroll-snap-type:x proximity;scrollbar-color:var(--metal) var(--bg)}
.featured-item{display:flex;flex-direction:column;align-items:center;gap:7px;flex:0 0 120px;min-width:0;border:1px solid #75614E;background:#302720;color:var(--paper);padding:9px 7px;scroll-snap-align:start;min-height:118px}
.featured-item:hover,.featured-item:focus-visible{border-color:var(--paper);background:var(--wood)}
.featured-item img{width:100%;height:70px;object-fit:contain}
.featured-initial{display:grid;place-items:center;height:70px;font:700 30px Georgia,serif;color:var(--paper)}
.featured-name{font-size:11px;line-height:1.25;text-align:center;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
@media(max-width:850px){.sidebar{border-right:0!important;border-bottom:2px solid var(--metal)}.featured-item{flex-basis:105px}}

/* Alpha 0.1.6: compact data actions, text-only brand */
.topbar .brand{gap:0}.topbar .brand strong{display:block}.data-menu{position:relative;flex-shrink:0}.data-menu summary{cursor:pointer;list-style:none;white-space:nowrap}.data-menu summary::-webkit-details-marker{display:none}.data-menu summary:after{content:" ▾";font-size:12px}.data-menu[open] summary:after{content:" ▴"}.data-menu-panel{position:absolute;right:0;top:calc(100% + 7px);z-index:120;min-width:184px;padding:7px;background:#30251F;border:1px solid #96846B;box-shadow:0 12px 30px #0008;display:flex;flex-direction:column;gap:5px}.data-menu-panel .btn{width:100%;justify-content:flex-start;white-space:nowrap;text-align:left;cursor:pointer}.data-menu-panel .btn:hover{background:#49322B}.data-menu-panel label{display:flex}@media(max-width:850px){.data-menu-panel{right:0;max-width:calc(100vw - 24px)}}

.lf-role{font-size:12px;color:var(--muted,#d9c49a);padding:7px 9px;border:1px solid #78684c}#permissionsBtn{font-size:24px;min-width:44px;min-height:44px}#overlay{position:fixed!important;inset:0!important;z-index:2147483000!important;height:100dvh!important;overflow:auto;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;align-items:center;justify-content:center}#dialog{max-height:calc(100dvh - 28px)!important;overflow:auto;overscroll-behavior:contain}.lf-writer-row{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid #7d6e4d;padding:10px;margin:8px 0;flex-wrap:wrap}.lf-writer-row input{accent-color:#a78d58} @media(max-width:600px){#dialog{width:100%;max-width:100%}.tools{flex-wrap:wrap}}

/* beige editorial modal, matching Lost Files parchment */
#overlay{position:fixed!important;inset:0!important;height:100dvh!important;z-index:2147483000!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
#overlay[hidden]{display:none!important}
#dialog{background:#D8C6A4!important;color:#30251E!important;border:2px solid #806A50!important;border-radius:0!important;box-shadow:0 24px 90px #000b!important;max-height:calc(100dvh - max(24px,env(safe-area-inset-top) + env(safe-area-inset-bottom) + 24px))!important;overflow:hidden!important}
#dialog .dialog-head{background:#CAB592!important;border-bottom:2px solid #9E896A!important;color:#30251E!important}
#dialog .dialog-head h2,#dialog .dialog-head .eyebrow{color:#3B2B20!important}
#dialog .dialog-body{background:#D8C6A4!important;color:#30251E!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-color:#9D8568 #D8C6A4}
#dialog .field,#dialog .field label,#dialog .hint,#dialog .reader-info,#dialog .checkboxLine,#dialog .lf-writer-row{color:#392B21!important}
#dialog input:not([type=checkbox]):not([type=file]),#dialog select,#dialog textarea{background:#F2E8D5!important;color:#30251E!important;border:1px solid #978066!important;border-radius:0!important}
#dialog input::placeholder,#dialog textarea::placeholder{color:#74614D!important}
#dialog input[type=file]{color:#392B21!important}
#dialog .btn{background:#BDA584!important;border:1px solid #806A50!important;color:#30251E!important;border-radius:0!important}
#dialog .btn.primary{background:#596247!important;border-color:#465137!important;color:#FFFCEF!important}
#dialog .btn:hover{filter:brightness(.93)}
#dialog .close{background:#A98B6E!important;border:1px solid #806A50!important;color:#30251E!important;border-radius:0!important}
#dialog .lf-writer-row{border-color:#A08B6F!important}
#dialog input:focus-visible,#dialog select:focus-visible,#dialog textarea:focus-visible,#dialog button:focus-visible{outline:2px solid #596247!important;outline-offset:2px!important}
@media(max-width:600px){#overlay{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important}#dialog{width:100%!important;max-height:calc(100dvh - 20px)!important}.dialog-body{padding:14px!important}}

/* toolbar alignment, consistent square controls, translation editor */
.topbar .tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.topbar .tools > #lfReturnHome,.topbar .tools > .language,.topbar .tools > #lfRole,.topbar .tools > #permissionsBtn,.topbar .tools > .data-menu > summary{min-height:44px;height:44px;display:inline-flex;justify-content:center;align-items:center;line-height:1.2;box-sizing:border-box;border-radius:0;margin:0;vertical-align:middle}
.topbar .tools > #lfReturnHome{min-width:190px;padding:0 16px;white-space:nowrap;text-align:center}
.topbar .tools > .language{border:1px solid #92775a;min-width:108px;padding:0;position:relative}
.topbar .tools .language select{height:100%;width:100%;padding:0 28px 0 11px;border:0!important;background:transparent!important;color:var(--text);text-align:center;text-align-last:center;border-radius:0;cursor:pointer}
.topbar .tools > #lfRole{min-width:82px;padding:0 12px;text-align:center}
.topbar .tools > #permissionsBtn{min-width:44px;padding:0;font-size:22px}
.topbar .tools > .data-menu > summary{padding:0 14px;white-space:nowrap}
#dialog .close{width:46px;height:46px;min-width:46px;min-height:46px;display:grid!important;place-items:center!important;line-height:1!important;font-size:27px!important;padding:0!important;align-self:center;appearance:none}
#dialog .dialog-head{align-items:center!important}
.lf-translation-panel{grid-column:1/-1;border:1px solid #a48a6c;padding:16px;background:#e8d9bf;color:#33281e}
.lf-translation-toggle{min-height:44px}
.lf-translation-fields{margin-top:16px;display:grid;grid-template-columns:1fr;gap:14px}
.lf-translation-fields[hidden]{display:none!important}
.lf-translation-fields .field textarea{min-height:110px}
.lf-translation-fields .field:last-child textarea{min-height:270px}
.lf-about{color:#33291f;line-height:1.75;max-width:850px}
.lf-about-intro{font-size:16px;font-weight:600}
.lf-about section{border-top:1px solid #aa9276;padding:12px 0}
.lf-about h3{font-family:Georgia,serif;font-size:20px;margin:8px 0}
.lf-about p{margin:7px 0 13px}
@media(max-width:650px){.topbar .tools{gap:7px}.topbar .tools > #lfReturnHome{min-width:160px}.topbar .tools > .language{min-width:95px}.topbar .tools > #lfRole{min-width:76px}.lf-translation-panel{padding:12px}}

/* feedback must appear above the actual modal stacking layer. */
#toast.toast{position:fixed!important;z-index:2147483647!important;bottom:max(22px,env(safe-area-inset-bottom))!important;left:50%!important;transform:translateX(-50%)!important;max-width:min(92vw,720px);max-height:32dvh;overflow:auto;box-shadow:0 8px 40px #000a;border:2px solid #e1c595;background:#383322!important;color:#fff9df!important;pointer-events:none;white-space:pre-wrap;overflow-wrap:anywhere}
#dialog .lf-save-feedback{display:block;padding:14px 16px;background:#f5dfcf;border:2px solid #933e32;color:#6d211d;font-weight:700;overflow-wrap:anywhere}
#dialog .lf-save-feedback[hidden]{display:none!important}
#dialog .editorActions button[disabled]{opacity:.6;cursor:wait}
#dialog .imagePreview{max-width:min(100%,240px);max-height:180px;object-fit:contain}

/* Lost Files cards and reader reworked.
   Goals:
   - show the full logo in cards
   - remove text preview from cards
   - keep reader text justified inside an internal scroll area
   - make custom A4 background optional; without it use a built-in badge-style background */

.cards{
  grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));
  gap:20px;
}
.card{
  background:linear-gradient(180deg,#3a2c24 0%,#2f241f 100%);
  border:1px solid #96846B;
  padding:16px;
  gap:14px;
}
.card-art{
  width:100%;
  aspect-ratio:1 / 1;
  border:1px solid #96846B;
  background:#efe8dd;
  display:grid;
  place-items:center;
  padding:14px;
  overflow:hidden;
}
.card-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:0;
  display:block;
}
.card-content{
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.card .meta{
  order:0;
  color:#d7c29c;
  font-size:10px;
  letter-spacing:.12em;
}
.card-title,
.card h3.card-title{
  margin:0;
  color:#f3e6cf;
  font-size:18px;
  line-height:1.28;
}
.card-author{
  color:#c4b69e;
  font-size:13px;
  line-height:1.4;
}
.card-footer{
  margin-top:4px;
  border-top:1px solid rgba(214,193,155,.25);
  padding-top:12px;
  justify-content:flex-end;
}
.card-footer-spacer{
  display:none;
}
.card-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
}
.card-read{
  appearance:none;
  border:0;
  background:none;
  color:#e6d3ac;
  font-weight:700;
  padding:0;
}
.card-read:hover,
.card-read:focus-visible{
  color:#fff6df;
}
.card-menu .dots{
  min-width:38px;
  min-height:38px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #7f6b57;
  background:#3b322b;
}
.menu-actions{
  background:#2f261f;
  border-color:#8a735c;
}

.reader-shell{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.reader-info{
  margin-bottom:0;
}
.reader-info span{
  padding:5px 9px;
  border:1px solid #a69072;
  background:#ead7b7;
  color:#4a392b;
}
.paper-wrap{
  background:linear-gradient(180deg,#4c382b 0%,#33261f 100%);
  padding:18px;
  display:flex;
  justify-content:center;
  border:1px solid #8f785f;
}
.paper{
  width:min(100%,860px);
  min-height:0;
  max-height:min(78dvh,980px);
  display:flex;
  flex-direction:column;
  color:#30251e;
  box-shadow:0 8px 30px rgba(0,0,0,.22);
  background-position:center top;
  background-repeat:no-repeat;
  background-size:cover;
  position:relative;
  overflow:hidden;
}
.paper.paper--custom{
  border:1px solid #b29a7f;
}
.paper.paper--badge{
  background:
    radial-gradient(circle at 50% 18%,rgba(255,255,255,.88) 0,rgba(255,255,255,.88) 3px,transparent 4px),
    radial-gradient(circle at 50% 18%,rgba(142,123,97,.25) 0,transparent 170px),
    linear-gradient(180deg,#f5ebd8 0%,#eadbc2 100%);
  border:1px solid #baa483;
}
.paper.paper--badge::before{
  content:'';
  position:absolute;
  inset:14% 12% auto 12%;
  height:220px;
  opacity:.12;
  background:
    radial-gradient(circle at center,transparent 0 84px,rgba(89,98,71,.55) 85px 89px,transparent 90px),
    linear-gradient(90deg,transparent 49%,rgba(89,98,71,.48) 49.4% 50.6%,transparent 51%),
    linear-gradient(0deg,transparent 49%,rgba(89,98,71,.48) 49.4% 50.6%,transparent 51%);
  pointer-events:none;
}
.paper-head{
  position:relative;
  padding:60px 72px 22px;
  border-bottom:1px solid rgba(108,84,62,.34);
  z-index:1;
}
.paper-kicker{
  font:700 12px/1.4 Inter,Segoe UI,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:#5b4837;
  margin-bottom:14px;
}
.paper-title{
  margin:0;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(34px,4vw,58px);
  line-height:1.08;
  color:#2e231c;
}
.paper .byline{
  margin-top:16px;
  font:500 13px/1.4 Inter,Segoe UI,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:#6c5947;
}
.paper-scroll{
  position:relative;
  z-index:1;
  flex:1 1 auto;
  overflow:auto;
  padding:0 72px 56px;
  overscroll-behavior:contain;
}
.paper-body{
  padding-top:28px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:18px;
  line-height:1.82;
  white-space:pre-wrap;
  text-align:justify;
  text-justify:inter-word;
  color:#2f241d;
}
.reader-actions{
  margin:0;
}

@media(max-width:900px){
  .paper-head{padding:40px 28px 18px;}
  .paper-scroll{padding:0 28px 32px;}
  .paper-body{font-size:16px;line-height:1.72;}
  .card{padding:14px;}
}
@media(max-width:600px){
  .cards{grid-template-columns:1fr;}
  .paper-wrap{padding:10px;}
  .paper{max-height:min(72dvh,760px);}
  .paper-title{font-size:clamp(28px,8vw,42px);}
  .reader-info span{font-size:12px;}
}

/* reader viewport, paper and controls finalization */
#overlay{
  position:fixed!important;inset:0!important;
  width:100vw;height:100dvh!important;
  z-index:2147483000!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;
  overflow:hidden!important;
}
#overlay[hidden]{display:none!important}
#dialog{
  width:min(1050px,100%);min-width:0;
  height:auto;max-height:100%!important;
  display:flex;flex-direction:column;
  overflow:hidden!important;
  position:relative;z-index:1;
}
#dialog .dialog-head{flex:0 0 auto;min-width:0}
#dialog .dialog-body{
  flex:1 1 auto;min-height:0;min-width:0;
  overflow-y:auto!important;overflow-x:hidden!important;
  overscroll-behavior:contain;
}
#dialog .reader-shell{min-width:0;gap:14px}
#dialog .reader-info{min-width:0;overflow-wrap:anywhere}
#dialog .paper-wrap{min-width:0;padding:14px;overflow:hidden}
#dialog .paper{
  box-sizing:border-box;
  width:min(100%,760px);
  height:clamp(350px,62dvh,790px);
  min-height:0!important;max-height:none!important;
  aspect-ratio:auto!important;
  display:flex;flex-direction:column;
  overflow:hidden!important;
  background-repeat:no-repeat;
  background-position:center center;
  background-size:cover;
}
#dialog .paper-head{
  flex:0 0 auto;min-width:0;
  padding:clamp(18px,4vw,36px) clamp(18px,6vw,62px) 16px;
}
#dialog .paper-title{font-size:clamp(27px,3.8vw,47px);line-height:1.14;overflow-wrap:anywhere}
#dialog .paper-scroll{
  flex:1 1 auto;min-height:0;min-width:0;
  overflow-x:hidden;overflow-y:auto;
  padding:0 clamp(18px,6vw,62px) 38px;
  scrollbar-width:thin;scrollbar-color:#998267 rgba(238,220,192,.55);
  overscroll-behavior-y:auto;
}
#dialog .paper-body{
  padding-top:22px;
  font-size:clamp(15px,1.6vw,18px);
  line-height:1.78;
  text-align:justify;
  text-justify:inter-word;
  overflow-wrap:break-word;
  white-space:pre-wrap;
  hyphens:auto;
}
#dialog .paper.paper--badge{background-size:cover}
#dialog .paper.paper--custom{background-color:#eee2cf}
#dialog .reader-actions{
  display:flex;flex-wrap:wrap;gap:10px;margin:0;
  padding:8px 0 2px;
}
#dialog .reader-actions button{min-height:44px}
#dialog .close{flex:0 0 46px;display:grid!important;place-items:center!important;text-align:center}
.card-art:focus-visible,.card-read:focus-visible,.card-menu button:focus-visible{outline:2px solid #d8c6a4;outline-offset:3px}
@media(max-width:600px){
  #overlay{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important}
  #dialog{max-height:100%!important}
  #dialog .dialog-head{padding:10px 12px}
  #dialog .dialog-head h2{font-size:19px}
  #dialog .dialog-body{padding:10px!important}
  #dialog .paper-wrap{padding:7px}
  #dialog .paper{height:clamp(320px,58dvh,620px)}
  #dialog .paper-head{padding:19px 17px 12px}
  #dialog .paper-scroll{padding:0 17px 24px}
  #dialog .paper-body{font-size:15px;line-height:1.68}
  #dialog .reader-actions button{flex:1 1 125px}
  .card-art{max-height:min(72vw,260px)}
}

/* searchable writer permissions; parent modal is fixed above all overlays. */
.lf-permissions{display:flex;flex-direction:column;gap:12px;min-width:0}
.lf-permissions>.field{max-width:100%}
.lf-user-results{display:flex;flex-direction:column;gap:4px;max-height:min(36dvh,260px);overflow-y:auto;overscroll-behavior:contain;border:1px solid #aa9577;background:#eadbc2;padding:6px}
.lf-user-results:empty{display:none}
.lf-user-option{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:12px;background:#f3e8d4;color:#30251e;border:1px solid #ac9575;text-align:left;min-height:48px;cursor:pointer}
.lf-user-option:hover,.lf-user-option:focus-visible{background:#d9c7a6;border-color:#596247;outline:2px solid #596247;outline-offset:1px}
.lf-user-option small{color:#675440;font-size:12px}
.lf-selection{border-left:3px solid #596247;padding:8px 12px;background:#eadbc2}
.lf-writer-list{max-height:260px;overflow:auto;overscroll-behavior:contain}
@media(max-width:620px){.lf-user-results{max-height:25dvh}.lf-user-option{padding:11px}.lf-writer-row{align-items:flex-start}}

/* complete image framing and readable public archives */
.featured-item{flex:0 0 156px;min-height:0;padding:10px;gap:10px;background:#30251f;align-items:stretch}
.featured-item img{width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;padding:0;background:#f2ecdf;display:block}
.featured-name{font:700 15px/1.3 Georgia,serif;color:#f4e8ce;text-align:center;max-width:100%;display:block;overflow-wrap:anywhere;white-space:normal;-webkit-line-clamp:unset}
.card-art{height:auto!important;max-height:none!important;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;padding:9px!important;background:#f2ecdf!important;overflow:hidden}
.card-art img{display:block!important;object-fit:contain!important;object-position:center!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;padding:0!important}
#dialog .paper{height:clamp(380px,66dvh,850px);background-color:#f1e7d4}
#dialog .paper-head{padding-bottom:12px}
#dialog .paper-scroll{background:rgba(245,237,223,.93)!important;padding-top:3px}
#dialog .paper-body{color:#261d17!important;font-size:clamp(17px,1.75vw,20px)!important;line-height:1.75!important;font-weight:400;hyphens:auto;overflow-wrap:break-word}
#dialog .paper-title{color:#271c15!important}
#dialog .reader-info{gap:8px}
@media(max-width:600px){.featured-item{flex-basis:132px}.featured-name{font-size:13px}.card-art{max-height:none!important}#dialog .paper-body{font-size:16px!important}}

/* reading layout: single metadata header; full-height readable parchment. */
#dialog.lf-reader-dialog{height:min(94dvh,1100px)!important;max-height:calc(100dvh - 24px)!important}
#dialog.lf-reader-dialog .dialog-head{padding:12px 24px!important;gap:12px;align-items:center!important}
#dialog.lf-reader-dialog .dialog-head h2{margin:2px 0!important;font-size:clamp(23px,2.7vw,35px)!important;line-height:1.17!important}
#dialog.lf-reader-dialog .dialog-head .eyebrow{font-size:11px;letter-spacing:.1em}
#dialog .lf-reader-byline{font-size:12px;letter-spacing:.07em;font-weight:600;color:#5c4736;margin-top:4px}
#dialog.lf-reader-dialog .dialog-body{display:flex;flex-direction:column;min-height:0;padding:12px 22px!important;overflow:hidden!important}
#dialog.lf-reader-dialog .reader-shell{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;gap:10px}
#dialog.lf-reader-dialog .paper-wrap{flex:1 1 auto;min-height:0;padding:10px;overflow:hidden;display:flex}
#dialog.lf-reader-dialog .paper{flex:1 1 auto;height:100%!important;width:min(100%,850px);min-height:0!important;max-height:none!important;background:#f4ead9!important;overflow:hidden}
#dialog.lf-reader-dialog .paper-scroll{flex:1 1 auto;height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:30px clamp(24px,6vw,74px) 50px!important;background-color:#f4ead9!important}
#dialog.lf-reader-dialog .paper-scroll--custom{background-color:#f4ead9!important;background-repeat:repeat-y!important;background-position:center top!important;background-size:100% auto!important}
#dialog.lf-reader-dialog .paper-body{font:normal clamp(16px,1.4vw,18px)/1.72 Georgia,'Times New Roman',serif!important;color:#281e16!important;white-space:pre-wrap;text-align:justify!important;text-justify:inter-word;hyphens:none!important;overflow-wrap:normal!important;word-break:normal!important}
#dialog.lf-reader-dialog .reader-actions{flex:0 0 auto;padding:2px 0;gap:10px}
@media(max-width:600px){
 #dialog.lf-reader-dialog{height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important}
 #dialog.lf-reader-dialog .dialog-head{padding:10px 12px!important}
 #dialog.lf-reader-dialog .dialog-head h2{font-size:23px!important}
 #dialog.lf-reader-dialog .dialog-body{padding:8px!important}
 #dialog.lf-reader-dialog .paper-wrap{padding:5px}
 #dialog.lf-reader-dialog .paper-scroll{padding:21px 16px 35px!important}
 #dialog.lf-reader-dialog .paper-body{font-size:16px!important;line-height:1.65!important}
}

/* parchment follows the text, not the scroll viewport. */
#dialog.lf-reader-dialog .paper-scroll{background:#f4ead9!important;padding:0!important;min-height:0;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important}
#dialog.lf-reader-dialog .paper-body{box-sizing:border-box;min-height:100%;padding:30px clamp(24px,6vw,74px) 55px!important;background-color:#f4ead9!important;text-align:justify!important;text-justify:inter-word!important;white-space:pre-wrap;word-break:normal!important;overflow-wrap:break-word!important;line-height:1.7!important}
#dialog.lf-reader-dialog .paper-body--custom{background-position:center top!important;background-size:100% auto!important;background-repeat:repeat-y!important}
#dialog.lf-reader-dialog .paper-body:not(.paper-body--custom){background:linear-gradient(180deg,#f9f2e5,#f1e4d1)!important}
#dialog.lf-reader-dialog .paper{background:#f4ead9!important}
#dialog.lf-reader-dialog .paper-wrap{background:#48352a!important}
@media(max-width:600px){#dialog.lf-reader-dialog .paper-body{padding:22px 17px 38px!important;font-size:16px!important;line-height:1.65!important}}

/* stabilization after visual/functional regression checks */
#dialog.lf-reader-dialog .paper-wrap{background:#49392e!important;padding:8px!important}
#dialog.lf-reader-dialog .paper{border:1px solid #b9a182;box-shadow:none!important}
#dialog.lf-reader-dialog .paper-body{font-size:clamp(16px,1.35vw,18px)!important;line-height:1.78!important;letter-spacing:normal!important;text-align:justify!important;hyphens:none!important;overflow-wrap:break-word!important}
#dialog.lf-reader-dialog .paper-body--custom{background-color:#f2e7d5!important;background-blend-mode:normal!important}
#dialog.lf-reader-dialog .dialog-head{flex-shrink:0!important}
#dialog.lf-reader-dialog .dialog-body{min-height:0!important;flex:1 1 auto!important}
#dialog.lf-reader-dialog .reader-actions{flex:0 0 auto!important}
.card-art img,.featured-item img{object-fit:contain!important;object-position:center!important;aspect-ratio:1!important}
.card-art{aspect-ratio:1!important;min-height:0!important;overflow:hidden!important}
.card-art img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important}
.featured-item img{width:100%!important;height:auto!important;max-height:none!important}
@media(max-width:600px){#dialog.lf-reader-dialog .paper-body{font-size:15px!important;line-height:1.7!important}}

/* accessible reader and safe scrolling on tester devices */
#dialog.lf-reader-dialog .paper-scroll:focus-visible{outline:3px solid #596247!important;outline-offset:-3px!important}
#dialog.lf-reader-dialog .paper-body{text-wrap:pretty;overflow-wrap:break-word!important}
#dialog.lf-reader-dialog .dialog-head{flex:0 0 auto!important}
#dialog.lf-reader-dialog .paper-scroll{scrollbar-gutter:stable;touch-action:pan-y}
@media(max-width:600px){#dialog.lf-reader-dialog .paper-scroll{scrollbar-gutter:auto}}

/* 0.39.17 — PDF publication mode and online reader */
.lf-pdf-mode{display:grid;gap:9px;grid-column:1/-1;padding:12px;border:1px solid #9e8c76;background:#eee2cd;color:#2e241e}
.lf-pdf-mode select,.lf-pdf-input{width:100%;max-width:100%;padding:10px;border:1px solid #9b856c;background:#fff8ed;color:#292019}
.lf-pdf-mode [hidden]{display:none!important}.lf-pdf-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.1em;border:1px solid #a38b6c;padding:3px 7px;margin-top:6px}
#dialog.lf-reader-dialog:has(.lf-pdf-reader) .dialog-body{overflow:hidden;min-height:0}
.lf-pdf-reader,.lf-pdf-reader .paper-wrap{min-height:0;flex:1 1 auto;display:flex;flex-direction:column}
.lf-pdf-reader .paper-wrap{padding:8px!important;overflow:hidden}
.lf-pdf-viewer{border:0;display:block;width:100%;flex:1 1 auto;min-height:280px;background:#f5f0e7}
.lf-pdf-fallback{font:12px sans-serif;color:#e9d8c3;margin:4px}
@media(max-width:600px){.lf-pdf-reader .paper-wrap{padding:0!important}.lf-pdf-viewer{min-height:45dvh}}
