/* Kleeweite portal shell. Public library tokens; scoped so shared reading pages
   keep their independent reading layout. No external assets or font services. */
.portal-page .story-workspace{max-width:100%;padding:clamp(16px,3vw,32px)}
.portal-page .story-workspace textarea[name="story_text"]{min-height:60vh;line-height:1.7;resize:vertical}
.portal-page .story-card-cover{width:100%;height:200px;object-fit:cover;border-radius:12px;margin-bottom:12px}
.portal-page .tabs .portal-public-link{display:inline-flex;align-items:center;text-decoration:none;font-family:inherit;border-radius:999px;cursor:pointer}
.portal-page #create-form [aria-invalid="true"]{border:2px solid var(--danger);outline:2px solid #922e2520;outline-offset:2px;scroll-margin-block:28px}
.portal-page #create-form .field-error{color:var(--danger);font-size:14px;font-weight:700;display:block;margin-top:6px}
.portal-page .character-image-dialog progress{width:100%;height:18px;accent-color:var(--leaf)}
.portal-page .portal-action-link{display:inline-flex;align-items:center;padding:12px 18px;min-height:44px;border-radius:22px;background:#285542;color:#fff;text-decoration:none;font-weight:600}
.portal-page .share-actions{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.portal-page [data-share-url]{width:100%;min-width:0}
.portal-page .subscription-card{padding:20px;border:2px solid transparent;border-radius:16px;margin:16px 0}
.portal-page .subscription-card.is-active{border-color:#806221;background:#f4e8c5;box-shadow:0 0 0 3px #80622118}
.portal-page .job-notifications{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.portal-page .job-message-list article{border:1px solid #ad9668;border-radius:14px;padding:14px;background:#fff7df;margin-bottom:12px}
.portal-page .job-message-list button{margin-right:10px}
.portal-page .job-dialog{position:relative;padding:20px;max-width:640px}
.portal-page .job-dialog article{padding:16px 0;border-top:1px solid #c7b68f}
.portal-page .job-dialog progress{width:100%;height:18px;accent-color:#285542}
.portal-page dialog .close{width:44px!important;min-width:44px;min-height:44px;flex:0 0 44px;color:var(--leaf);background:var(--card);float:right;padding:0;font-size:28px;line-height:1;border-radius:50%}
.portal-page img[data-enlarge]{cursor:zoom-in}
.portal-page img[data-enlarge]:focus-visible{outline:3px solid #806221;outline-offset:4px}
.portal-page .image-lightbox{width:calc(100vw - 24px);max-width:1400px;height:calc(100dvh - 24px);max-height:none;padding:12px;overflow:hidden}
.portal-page .image-lightbox-actions{display:flex;justify-content:flex-end;gap:12px;padding-bottom:12px}
.portal-page .image-lightbox-stage{height:calc(100% - 64px);overflow:auto;display:flex;align-items:flex-start;justify-content:center}
.portal-page .image-lightbox-stage img{object-fit:contain;max-width:100%;max-height:100%;margin:auto}
.portal-page .image-lightbox.original-size .image-lightbox-stage{display:block}
.portal-page .image-lightbox.original-size img{max-width:none;max-height:none}
.portal-page {
  --ink:#241204; --muted:#65543c; --paper:#fff1c2; --card:#fffae8;
  --leaf:#315f3d; --mint:#e7edce; --line:rgba(67,32,8,.24); --danger:#922e25;
  --font-display:"Iowan Old Style","Palatino Linotype","Book Antiqua",serif;
  --font-body:"Aptos","Trebuchet MS","Segoe UI",sans-serif;
  --portal-chrome:linear-gradient(135deg,rgba(23,55,36,.97),rgba(45,31,13,.96));
  padding:24px; font-family:var(--font-body); background:
    linear-gradient(90deg,rgba(7,24,17,.62),rgba(7,24,17,.26) 24%,rgba(7,24,17,.26) 76%,rgba(7,24,17,.62)),
    url("../geschichten/assets/aventara-forest-bg-wide.png") center top / cover fixed no-repeat,#28482f;
}
.portal-header {
  height:auto; min-height:82px; gap:24px; margin:0 auto 20px; padding:18px 24px;
  border:1px solid rgba(255,232,166,.28); border-radius:14px;
  background:var(--portal-chrome); box-shadow:0 12px 36px rgba(12,23,13,.22);
}
.portal-header .brand { color:#fff2b8; font-family:var(--font-display); font-size:30px; font-weight:700; line-height:1.15; }
.brand-context { color:#e5dec4; font-size:13px; line-height:1.5; margin:3px 0 0; }
.header-account { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:22px; }
.portal-header .balance { min-width:0; background:transparent; border-radius:0; padding:0; text-align:right; }
.portal-header .balance span { color:#e5dec4; font-size:12px; }.portal-header .balance strong { color:#fff2b8; font-size:1.15rem; }
.portal-header .quiet { color:#fff2b8; background:transparent; border:1px solid rgba(255,232,166,.38); min-height:44px; }
.portal-page main { padding:0 0 56px; }
.portal-page .tabs {
  gap:8px; margin:0 0 20px; padding:14px; background:var(--portal-chrome);
  border:1px solid rgba(255,232,166,.28); border-radius:14px; box-shadow:0 12px 30px rgba(12,23,13,.2);
}
.portal-page .tabs :is(button,.portal-public-link) { color:#f8edc7; background:transparent; border:1px solid transparent; min-height:44px; padding:10px 17px; font-size:15px; font-weight:700; }
.portal-page .tabs :is(button,.portal-public-link):hover { background:rgba(255,239,184,.1); border-color:rgba(255,232,166,.28); }
.portal-page .tabs button.active { color:#241204; background:linear-gradient(180deg,#f9e4a0,#d7b55e); border-color:#e8cd83; box-shadow:inset 0 1px 0 #fff4cc; font-weight:800; }
.portal-content,.portal-page .login-card {
  background:linear-gradient(160deg,rgba(255,246,214,.98),rgba(246,233,184,.97));
  border:1px solid rgba(67,32,8,.32); border-radius:14px;
  box-shadow:0 18px 46px rgba(24,12,4,.26),inset 0 1px 0 rgba(255,255,240,.78); padding:32px; min-width:0;
}
.portal-content { min-height:380px; }.portal-page .view { min-width:0; }
.portal-page h1,.portal-page h2,.portal-page h3 { font-family:var(--font-display); font-weight:700; }
.portal-page h1 { font-size:clamp(30px,4vw,48px); }
.portal-page h2 { font-size:clamp(26px,3vw,38px); margin:8px 0 18px; line-height:1.14; }
.portal-page h3 { font-size:1.45rem; line-height:1.2; }
.portal-page p { line-height:1.65; }
.portal-page .eyebrow { font-size:12px; letter-spacing:.14em; font-weight:800; }
.section-heading { padding-bottom:12px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.portal-page .panel,.portal-page .profile-card,.portal-page .profile-empty,.portal-page .story-card,.portal-page .profile-body > form {
  border-radius:12px; padding:24px; background:var(--card); box-shadow:0 5px 14px rgba(65,41,13,.05),inset 0 1px 0 #fffdf5;
}
.portal-page .profile-card,.portal-page .story-card { border-left:4px solid var(--leaf); }
.portal-page .profile-heading h2 { font-size:clamp(30px,3.6vw,42px); }
.portal-page .profile-heading { border-bottom:1px solid var(--line); padding-bottom:4px; margin-bottom:22px; }
.portal-page .personal-profiles { max-width:none; }
.portal-page .story-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); }
.portal-page input,.portal-page textarea,.portal-page select { background:#fffdf3; color:var(--ink); border:1px solid #b5a880; border-radius:8px; font-size:16px; min-height:46px; }
.portal-page input[type=checkbox],.portal-page input[type=radio] { width:18px; min-height:18px; height:18px; flex:0 0 18px; margin:3px 8px 0 0; accent-color:var(--leaf); }
.portal-page label { color:var(--ink); line-height:1.5; }
.portal-page fieldset { border-radius:10px; }
.portal-page button { min-height:44px; border:1px solid #284d32; }
.portal-page button:where(:not(.quiet,.text-button,.danger-button)) { background:linear-gradient(180deg,#376948,#285337); }
.portal-page .quiet { border-color:rgba(49,95,61,.2); }.portal-page .text-button { border-color:transparent; }
.portal-page .portal-header .quiet { border-color:rgba(255,232,166,.38); }
.portal-page .profile-privacy,.portal-page .region-preview { background:#edf0d7; border-color:#c4cfab; color:#344832; }
.portal-page .profile-drafts { background:#eee6c6; }.portal-page .profile-notice { background:var(--mint); }
.portal-page .region-preview h3 { color:var(--leaf); }
.portal-page .profile-card .actions { margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }
.portal-page .profile-toolbar button[aria-pressed="true"] { background:#eee6c6; color:var(--ink); }
.portal-page :focus-visible { outline:3px solid #315f3d; outline-offset:4px; }
.portal-page .tabs :focus-visible,.portal-page .portal-header :focus-visible { outline-color:#ffe08c; }
.portal-page dialog { background:#fff8df; }.portal-page dialog::backdrop { background:rgba(13,29,18,.7); }
.portal-page #view-account > .panel + .panel { margin-top:24px; }
.portal-page #view-account > .panel { max-width:none; overflow-wrap:anywhere; }
.account-session-actions { margin-top:24px; }
.support-actions { margin:20px 0; }
.account-settings [data-account-sessions] + .account-actions { margin-top:12px; }
.account-settings { display:grid; gap:24px; margin-top:24px; }
.account-settings .panel { max-width:none; min-width:0; overflow-wrap:anywhere; }
.account-settings h3 { margin:0 0 16px; }.account-settings h4 { margin:8px 0; font-size:1rem; }
.account-settings form { max-width:640px; margin-top:20px; }
.account-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.account-list article { border-top:1px solid var(--line); margin-top:20px; padding-top:14px; }
.account-list article button { margin:4px 8px 4px 0; }
.account-check { display:flex; align-items:flex-start; gap:8px; }
.account-note { background:var(--mint); border:1px solid #c4cfab; padding:20px; border-radius:10px; margin:18px 0; }
.account-settings [hidden] { display:none; }
.account-settings .message:empty { display:none; }
.account-settings [data-account-form="delete"] { border-top:1px solid #d2a698; padding-top:20px; }
#support-dialog { width:min(820px,calc(100% - 24px)); max-height:90dvh; padding:24px; overflow:auto; }
.support-dialog { min-width:0; overflow-wrap:anywhere; }
.support-dialog h2 { padding-right:38px; }
.support-preview { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:20px; margin:20px 0; max-height:45dvh; overflow:auto; }
.support-preview dt { font-weight:700; margin-top:12px; }.support-preview dd { margin:4px 0 12px; white-space:pre-wrap; }
.support-text { white-space:pre-wrap; line-height:1.65; }
.support-dialog form { margin:20px 0; }.support-dialog .account-check { display:flex; }
.support-history { padding:16px; margin-top:12px; background:var(--mint); border-radius:10px; }
#account-support code { overflow-wrap:anywhere; font-size:.82rem; }
.portal-page #token-account { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.portal-page #token-account > .panel { max-width:none; min-width:0; }
.portal-page #token-account > .panel:nth-child(-n+2) { grid-column:1/-1; }
.portal-page #token-account form { background:#fffdf3; border:1px solid var(--line); border-radius:10px; padding:22px; margin-top:20px; }
.portal-page #token-account form h3,.portal-page #token-account form p { margin:0; }
.portal-page #token-account form label { display:flex; align-items:flex-start; }
.portal-page #token-account article + article { border-top:1px solid var(--line); margin-top:20px; padding-top:16px; }
.portal-page #token-account details summary { cursor:pointer; padding:12px 0; min-height:44px; }
.portal-page .danger { border-color:#d2a698; }.portal-page .danger-button { background:var(--danger); border-color:var(--danger); }
.visually-hidden { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link { position:absolute; top:0; left:24px; z-index:100; transform:translateY(-150%); padding:12px 18px; background:#fff8df; color:#241204; border-radius:8px; }
.skip-link:focus { transform:translateY(0); }
.story-local-nav { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
#story-detail { min-width:0; overflow-wrap:anywhere; }
#story-detail [data-detail-section="covers"],#story-detail [data-detail-section="sharing"] { margin-top:28px; }
#story-detail .panel { max-width:none; }
.story-selected-cover { margin:20px 0; }.story-selected-cover img { display:block; width:min(100%,480px); height:auto; border-radius:10px; }
.story-selected-cover figcaption { color:var(--muted); margin-top:8px; font-size:.85rem; }
.cover-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:20px; }
.cover-candidate { background:var(--card); border:2px solid var(--line); border-radius:12px; padding:14px; min-width:0; }
.cover-candidate.selected { border-color:var(--leaf); }.cover-candidate h4 { margin:0 0 12px; }
.character-image-dialog { background:var(--paper); border:1px solid var(--line); width:min(960px,calc(100% - 24px)); max-height:90dvh; overflow:auto; padding:24px; }
.character-image-heading { display:flex; height:auto; margin:0; padding:0; align-items:flex-start; justify-content:space-between; gap:16px; }.character-image-heading > div { min-width:0; overflow-wrap:anywhere; }.character-image-heading h2 { margin-bottom:12px; }
.character-image-heading > button { flex-shrink:0; }.character-image-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; margin:20px 0 28px; }
.character-image-preview { margin:0; min-width:0; }.character-image-preview img,.character-image-candidate img { display:block; width:100%; aspect-ratio:1; object-fit:contain; background:var(--card); border-radius:10px; }
.character-image-preview figcaption { padding:12px 0; color:var(--muted); }.character-image-preview figcaption p { border-left:3px solid var(--leaf); padding-left:12px; }
.character-image-placeholder { display:flex; flex-direction:column; justify-content:center; text-align:center; padding:24px; border:1px dashed var(--leaf); border-radius:12px; background:var(--mint); }
.character-image-placeholder h3 { margin:0; }.character-image-explanation { min-width:0; overflow-wrap:anywhere; }.character-image-explanation h3 { margin-top:0; }
.character-image-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-bottom:20px; }.character-image-candidate { padding:12px; border:2px solid var(--line); border-radius:12px; background:var(--card); min-width:0; }
.character-image-candidate.selected { border-color:var(--leaf); }.character-image-candidate button { width:100%; }.character-image-candidate p { font-size:.9rem; }
.profile-character-image { display:block; width:100%; height:180px; object-fit:contain; border-radius:10px; background:var(--mint); }.profile-image-action { margin:16px 0; }.character-image-dialog button { min-height:44px; white-space:normal; }
.profile-image-frame{position:relative}.profile-image-frame:not(:has(img)):has(button){min-height:60px}
.portal-page .profile-gallery-button{position:absolute;bottom:8px;left:8px;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:9px;border:1px solid var(--leaf);border-radius:12px;background:var(--paper);color:var(--leaf);box-shadow:0 2px 8px #172b2426}
.profile-gallery-button svg{width:26px;height:26px;pointer-events:none}
.character-image-explanation a{color:var(--leaf);text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px) { .character-image-dialog { padding:18px 14px; }.character-image-heading { flex-direction:column-reverse; gap:8px; }.character-image-heading > button { align-self:flex-end; }.character-image-layout { grid-template-columns:minmax(0,1fr); gap:20px; }.character-image-grid { grid-template-columns:minmax(0,1fr); }.character-image-explanation > button { width:100%; } }
.cover-candidate img { display:block; width:100%; height:auto; border-radius:8px; }
.cover-candidate .story-actions { margin-bottom:0; }.cover-candidate button { width:100%; padding-inline:12px; }
.story-progress { border:1px solid #c4cfab; border-radius:10px; padding:16px; margin:16px 0 24px; background:var(--mint); }
.story-progress h3 { margin:0 0 12px; }.story-progress p:last-child { margin-bottom:0; }
#story-dialog { max-height:90dvh; overflow:auto; }
@media(max-width:500px) { .cover-comparison { grid-template-columns:minmax(0,1fr); } #story-dialog { padding:20px 16px; } }
@media(max-width:700px) {
  .portal-page { padding:12px; background-attachment:scroll; }
  .portal-header { padding:16px; gap:16px; flex-wrap:wrap; margin-bottom:14px; }
  .portal-header .brand { font-size:26px; }.brand-context { font-size:12px; }
  .header-account { width:100%; justify-content:space-between; gap:12px; border-top:1px solid rgba(255,232,166,.22); padding-top:12px; }
  .portal-header .balance { text-align:left; width:auto; }
  .portal-page main { padding-bottom:32px; }
  .portal-page .tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:10px; margin-bottom:14px; }
  .portal-page .tabs :is(button,.portal-public-link) { padding:11px 8px; font-size:13px; line-height:1.4; border-radius:8px; }
  .portal-content,.portal-page .login-card { padding:20px 16px; }
  .portal-page .panel,.portal-page .profile-card,.portal-page .profile-empty,.portal-page .profile-body > form,.portal-page .story-card { padding:20px 16px; }
  .portal-page #token-account { grid-template-columns:minmax(0,1fr); gap:18px; }
  .portal-page #token-account form { padding:18px 14px; }
  .portal-page h2 { font-size:28px; }
  .portal-page .toolbar label { white-space:normal; }
  .portal-page .profile-card .actions { align-items:stretch; }.portal-page .profile-card .actions button { flex:1 1 auto; }
}

/* Portal reading and creation use the available page width. */
.portal-page .login-card,#view-create > .panel {width:100%;max-width:none;box-sizing:border-box;}
#login-form {max-width:620px;} #login-form button,#create-form > button,#token-account form button {width:auto;justify-self:start;}
#jobs-nav[hidden] {display:none;}
.header-account {flex-wrap:wrap;}.portal-header .portal-public-link {display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid #ffecd25c;border-radius:10px;color:inherit;text-decoration:none;}
/* Match the public landing page's parchment footer and rounded link surfaces. */
.portal-footer {position:relative;display:grid;gap:6px;max-width:1180px;margin:28px auto 0;padding:20px;overflow:hidden;border:1px solid rgba(67,32,8,.48);border-radius:14px;background:linear-gradient(180deg,rgba(255,228,150,.9),rgba(255,239,184,.86)),rgba(255,225,143,.88);box-shadow:0 18px 46px rgba(24,12,4,.26),inset 0 1px 0 rgba(255,244,196,.62),inset 0 -1px 0 rgba(72,35,9,.18);backdrop-filter:blur(10px);}
.portal-footer::before {content:"";position:absolute;inset:auto -10% -54px auto;width:280px;height:180px;background:radial-gradient(circle at 50% 50%,rgba(49,95,61,.16),transparent 62%);pointer-events:none;}
.portal-footer nav {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;width:100%;}
.portal-footer a {display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid rgba(67,32,8,.22);border-radius:999px;background:rgba(255,238,174,.42);color:var(--ink);font-weight:800;text-align:center;text-decoration:none;}
.portal-footer a:focus-visible {outline:3px solid var(--leaf);outline-offset:3px;}
.portal-footer .footer-copyright {max-width:46rem;margin:4px 0 0;color:rgba(36,18,4,.72);font-size:.9rem;line-height:1.7;}
@media(max-width:720px){.portal-footer nav {grid-template-columns:1fr;}}
.inline-check {display:flex!important;align-items:center;gap:10px;}.inline-check input {width:auto;flex:0 0 auto;margin:0;}
.idea-label {display:flex;align-items:center;gap:8px;}
.idea-label label {margin:0;}
.idea-label .idea-hints {width:44px;height:44px;min-width:44px;padding:0;border-radius:50%;font-size:20px;}
#story-idea::placeholder {color:#666;opacity:1;}
#story-idea:placeholder-shown {background:#f0f0ed;}
.story-setting-fields {display:grid;grid-template-columns:minmax(0,1fr);gap:16px;}
.idea-hints-dialog {width:min(580px,calc(100% - 32px));max-height:85dvh;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:28px;background:var(--paper);color:var(--ink);}.idea-hints-dialog::backdrop {background:#0b1512aa;}.idea-hints-dialog li {margin:10px 0;}
.profile-card-content {display:grid;grid-template-columns:minmax(130px,38%) minmax(0,1fr);gap:20px;}.profile-card-description p:first-child {margin-top:0;}.profile-card-visual:empty {display:none;}.profile-card-content:has(.profile-card-visual:empty) {grid-template-columns:1fr;}
.story-mode-nav,#story-modes,.reader-buttons {display:flex;flex-wrap:wrap;align-items:center;gap:10px;}.story-mode-nav {margin-bottom:24px;}#story-modes [aria-pressed="true"] {background:var(--leaf);color:white;}
.portal-reader {max-width:760px;margin:auto;}.portal-reader .story-text {font-size:var(--reader-font-size,1.12rem);line-height:1.85;white-space:normal;}.reader-summary {font-size:1.1rem;}.reader-toolbar {margin:22px 0;padding:14px;border:1px solid var(--line);border-radius:12px;}.reader-buttons {padding-top:14px;}
#story-detail.hide-detail-image .story-selected-cover {display:none;}
#story-detail.reader-night {background:#15251f;color:#f4eedc;padding:22px;border-radius:14px;--ink:#f4eedc;--muted:#d0cdbf;--paper:#20362b;--card:#20362b;--line:#526858;}#story-detail.reader-night .panel {background:#20362b;color:#f4eedc;}
.portal-content:has(#view-detail:not(.hidden) #story-detail.reader-night),.story-workspace:has(#story-detail.reader-night) {background:#15251f;color:#f4eedc;border-color:#526858;box-shadow:none;--ink:#f4eedc;--muted:#d0cdbf;--paper:#20362b;--card:#20362b;--line:#526858;}
.story-workspace:has(#story-detail.reader-night) .story-mode-nav button {background:#20362b;color:#f4eedc;border-color:#728a7b;}
.story-workspace:has(#story-detail.reader-night) #story-modes [aria-pressed="true"] {background:#d9edc8;color:#15251f;}
.story-workspace:has(#story-detail.reader-night) button:focus-visible {outline:3px solid #ffe39c;outline-offset:3px;}
.protagonist-preview {display:grid;grid-template-columns:100px minmax(0,1fr);align-items:start;gap:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card);}
.protagonist-preview[hidden] {display:none;}.protagonist-portrait img {display:block;width:100%;height:120px;object-fit:contain;border-radius:8px;}.protagonist-preview dl {margin:0;min-width:0;overflow-wrap:anywhere;}.protagonist-preview dt {font-weight:700;}.protagonist-preview dd {margin:4px 0 12px;}.protagonist-preview dd:last-child {margin-bottom:0;}
@media(max-width:450px){.protagonist-preview {grid-template-columns:72px minmax(0,1fr);gap:12px;}.protagonist-portrait img {height:90px;}}
body:has(#view-detail:not(.hidden) #story-detail.reader-focus) > .portal-header,body:has(#view-detail:not(.hidden) #story-detail.reader-focus) .tabs,body:has(#view-detail:not(.hidden) #story-detail.reader-focus) > .portal-footer {display:none;}
@media(max-width:700px){.profile-card-content {grid-template-columns:1fr;}.profile-character-image {height:auto;max-height:300px;}.portal-header .portal-public-link {font-size:.85rem;}.story-mode-nav {align-items:stretch;}.reader-buttons button {max-width:100%;}#story-detail.reader-night {padding:12px;}}

.portal-header :is(.portal-public-link,.quiet) {color:#fff2b8;background:transparent;border:1px solid rgba(255,232,166,.38);padding:10px 17px;font-size:15px;font-weight:700;border-radius:999px;min-height:44px;}

/* Dialogs own their scrolling; the document is locked while one is open. */
.portal-page dialog:not(.common-image-lightbox){max-height:90vh;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.story-reader-heading{display:flex;align-items:flex-start;gap:12px}.story-reader-heading h2{flex:1;min-width:0}.portal-page .story-pdf-button{display:inline-grid;place-items:center;width:44px;min-width:44px;height:44px;padding:10px;flex:none}.story-pdf-button svg{display:block}
.portal-page .reader-tools{container-type:inline-size;margin-inline:-8px}
.portal-page .reader-action-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px;width:max-content;max-width:100%;margin:0 auto 22px;padding:6px;border:1px solid var(--line);border-radius:32px;background:var(--mint)}
@container(max-width:241px){.portal-page .reader-action-bar{width:150px;border-radius:26px}}
.portal-page .reader-tools .reader-action-bar>button,.portal-page .story-favorite-button{display:inline-grid;place-items:center;flex:none;width:44px;min-width:44px;height:44px;padding:9px;border:0;border-radius:50%;background:transparent;color:var(--leaf);box-shadow:none}
.portal-page .reader-action-bar svg,.portal-page .story-favorite-button svg{display:block;pointer-events:none}
.portal-page .reader-tools .reader-action-bar>button:hover{background:var(--card)}
.portal-page .reader-tools .reader-action-bar>button:focus-visible{outline:3px solid var(--leaf);outline-offset:2px}
.portal-page .reader-tools .reader-action-bar>[aria-expanded=true]{background:var(--card)}
.portal-page .reader-tools .reader-action-bar>[data-mode][aria-pressed=true]{background:var(--leaf);color:white;box-shadow:inset 0 0 0 1px currentColor}
.portal-page .story-favorite-button[aria-pressed=true],.portal-page .reader-action-bar>.story-favorite-button[aria-pressed=true]{color:#a13950}
.portal-page .reader-tools .reader-toolbar[hidden]{display:none!important}
.portal-page .reader-tools .reader-toolbar{margin:0 0 22px}.portal-page .reader-tools .reader-buttons{padding-top:0}
.portal-page .reader-night .reader-action-bar{background:#20362b;border-color:#728a7b}
.portal-page .reader-night .reader-tools .reader-action-bar>button{color:#f4eedc;background:transparent}
.portal-page .reader-night .reader-tools .reader-action-bar>button:hover,.portal-page .reader-night .reader-tools .reader-action-bar>[aria-expanded=true]{background:#385744}
.portal-page .reader-night .story-favorite-button[aria-pressed=true],.portal-page .reader-night .reader-action-bar>.story-favorite-button[aria-pressed=true]{color:#ffabbc}
.portal-page .reader-night .reader-tools .reader-action-bar>button:focus-visible{outline-color:#ffe39c}
.portal-page .reader-night .reader-tools .reader-action-bar>[data-mode][aria-pressed=true]{background:#d9edc8;color:#15251f}
.portal-page .account-share-list{display:grid;gap:16px}
.portal-page .account-share-row{display:grid;grid-template-columns:64px minmax(0,1fr) 44px;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #c8c5aa}
.portal-page .account-share-row img,.portal-page .account-share-placeholder{width:64px;height:64px;object-fit:cover;border-radius:12px}
.portal-page .account-share-placeholder{display:grid;place-items:center;background:#e8ebcf;color:#365d43;font-size:32px}
.portal-page .account-share-row h4{margin:0;font-size:1.05rem;overflow-wrap:anywhere}
.portal-page .account-share-row h4 a{font:inherit;color:inherit;text-decoration:none}
.portal-page .account-share-row h4 a:hover{text-decoration:underline}
.portal-page .account-share-link{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center}
.portal-page .account-share-link input{min-width:0;width:100%;height:44px;margin:0;padding:10px 12px;font-size:16px;text-overflow:ellipsis}
.portal-page .account-share-row button{width:44px;min-height:44px;padding:10px;display:grid;place-items:center}
.portal-page .story-share-options{margin-bottom:24px}
.portal-page #story-edit-summary{min-height:180px;resize:vertical}
.portal-page .story-cover-picker [data-cover-message]{margin:12px 20px}
.portal-page .story-cover-picker .kw-cast-photo{height:auto;min-height:180px;display:grid;place-items:center}
.portal-page .story-cover-picker .kw-cast-photo img{height:auto;max-height:360px;object-fit:contain;display:block}
.portal-page .story-cover-picker .kw-pick-actions{flex-direction:column}
@media(max-width:480px){.portal-page .account-share-row{grid-template-columns:48px minmax(0,1fr) 44px;gap:9px}.portal-page .account-share-row img,.portal-page .account-share-placeholder{width:48px;height:48px}}

.portal-page #story-filters[hidden]{display:none}
.portal-page .story-search-field{display:block;font-weight:600}
.portal-page .story-search-field input{display:block;width:100%;min-width:0;margin-top:8px;font-weight:400}
