:root{color-scheme:light;--ink:#203338;--muted:#617478;--green:#176d5b;--green-dark:#0d5145;--cream:#f7f5ee;--line:#dce5e0;--paper:#fff;--gold:#deb863;--danger:#a22f30}
*{box-sizing:border-box}html{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--cream);color:var(--ink)}body{margin:0;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:var(--green-dark)}.shell{width:min(1120px,calc(100% - 32px));margin-inline:auto}.site-header{background:var(--green-dark);color:#fff;box-shadow:0 3px 14px #123d3020}.topbar{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{color:#fff;text-decoration:none;display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.1rem;letter-spacing:.06em}.brand small{display:block;font-size:.7rem;font-weight:500;letter-spacing:0;color:#d6eee4}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:#f1d386;color:var(--green-dark);border-radius:12px;font-family:serif;font-size:1.65rem}.topbar nav{display:flex;gap:20px}.topbar nav a{color:#effaf5;text-decoration:none;font-size:.9rem}.topbar nav a:hover{text-decoration:underline}main.shell{padding-block:36px 64px;min-height:calc(100vh - 130px)}.site-footer{border-top:1px solid var(--line);padding:22px 0;color:var(--muted);font-size:.88rem}.intro{max-width:760px;margin-bottom:28px}.intro p:last-child{font-size:1.04rem;color:var(--muted);line-height:1.7}.eyebrow{margin:0 0 7px;color:var(--green);font-weight:800;font-size:.73rem;text-transform:uppercase;letter-spacing:.13em}h1,h2,h3{line-height:1.2}h1{font-size:clamp(1.8rem,4vw,2.7rem);margin:0 0 12px;letter-spacing:-.03em}h2{font-size:1.3rem;margin:0 0 20px}h3{font-size:1rem;margin:0 0 14px}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 30px #1d59430b;padding:25px;margin-bottom:22px}.narrow{max-width:520px;margin:20px auto;padding:32px}.notice{padding:14px 18px;border-radius:11px;background:#e6f3ed;color:#145c47;margin-bottom:18px;border:1px solid #c4e0d2}.notice.error{background:#fff0ed;color:#8f2b2c;border-color:#efcbc4}.notice.warning{background:#fff8e5;color:#765817;border-color:#ead8a3}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:9px 16px;background:#fff;border:1px solid #c9d6cf;border-radius:10px;color:var(--ink);font-weight:700;font-size:.88rem;text-decoration:none;white-space:nowrap}.button:hover:not(:disabled){background:#ecf5ef}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.primary:hover:not(:disabled){background:var(--green-dark)}.button.subtle{background:#f6faf7}.text-danger{border:0;background:transparent;color:var(--danger);font-weight:700;text-decoration:underline;padding:8px 0}.muted,.hint{color:var(--muted)}.hint{font-size:.84rem;line-height:1.5}.file-state{color:var(--green-dark);font-weight:700;font-size:.9rem}label{display:block;font-size:.88rem;font-weight:700;margin:0 0 16px}input:not([type=checkbox]):not([type=range]),select{display:block;width:100%;border:1px solid #b9ccc3;border-radius:9px;background:#fff;padding:11px 12px;min-height:43px;margin-top:6px;color:var(--ink)}input[type=file]{font-size:.82rem}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #e6be5b;outline-offset:2px}.check{display:flex;align-items:center;gap:9px}.check input{width:18px;height:18px}.empty-state{padding:50px 24px;text-align:center;border:2px dashed #c9d8cf;border-radius:18px;background:#ffffffa8;color:var(--muted)}.empty-state h2{color:var(--ink)}
.lesson-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:17px}.lesson-toolbar label{margin:0;min-width:230px}.lesson-toolbar select{max-width:330px}.lesson{padding:0;overflow:hidden}.lesson-head{padding:23px 26px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.lesson-head h2{margin:0}.play-status{font-size:.85rem;color:var(--muted);max-width:290px;text-align:right}.sheet-layout{display:grid;grid-template-columns:58px minmax(0,1fr);max-width:820px;margin:24px auto 12px;padding-right:20px}.sheet-rail{position:relative;background:#ecf4ee;border:1px solid var(--line);border-right:0;border-radius:12px 0 0 12px}.rail-button{position:absolute;left:9px;width:39px;height:39px;transform:translateY(-50%);border:1px solid #9dbfae;border-radius:50%;background:#fff;color:var(--green-dark);font-weight:800;z-index:2;box-shadow:0 2px 8px #123d3020}.rail-button:hover:not(:disabled),.rail-button.active{background:var(--green);color:white}.sheet-wrap{position:relative;border:1px solid var(--line);border-radius:0 10px 10px 0;overflow:hidden;background:#fff}.sheet-image{width:100%;height:auto;display:block}.line-mark{position:absolute;border:2px solid transparent;pointer-events:none;border-radius:4px;transition:background .2s,border-color .2s}.line-mark.active{background:#efc84c38;border-color:#d99e1b}.line-list{border-top:1px solid var(--line);padding:24px 26px}.line-list h3{margin-bottom:16px}.line-item{border:1px solid var(--line);border-radius:11px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px}.line-item.active{border-color:var(--green);background:#eff7f1}.line-item small{display:block;color:var(--muted);margin-top:3px}.line-actions{display:flex;gap:7px}.page-navigation{display:flex;justify-content:space-between;gap:20px;margin-top:20px}.zoom-open{overflow:hidden}.zoom-dialog[open]{position:fixed;inset:0;z-index:20;background:#172922eb;display:flex;flex-direction:column}.zoom-toolbar{background:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 18px;flex-wrap:wrap}.zoom-toolbar label{margin:0;display:flex;align-items:center;gap:8px}.zoom-toolbar input{width:140px}.zoom-scroller{overflow:auto;flex:1;padding:20px;text-align:center}.zoom-scroller img{width:160%;max-width:none;height:auto;display:block;margin:auto;background:white;box-shadow:0 6px 30px #0006}
.admin-heading{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:22px}.admin-heading p:last-child{color:var(--muted)}.heading-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.admin-grid>.card{min-width:0}.create-form{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:12px;align-items:end}.create-form label{margin:0}.create-form button{margin-bottom:1px}.page-list{display:grid;gap:8px}.page-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto 22px;gap:14px;align-items:center;text-decoration:none;padding:14px;border:1px solid var(--line);color:var(--ink)}.page-row:hover{background:#f4f9f5}.page-row small{display:block;color:var(--muted);margin-top:3px}.page-number{background:#e9f3ec;color:var(--green-dark);font-weight:800;border-radius:9px;padding:8px;text-align:center}.badge{font-size:.76rem;font-weight:800;color:#795c23;background:#fff3d7;border-radius:30px;padding:5px 10px}.badge.live{background:#e2f4e8;color:#236848}.line-editor{padding:28px}.section-title{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.section-title h2{margin:0}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,1fr);gap:28px}.editor-preview{position:sticky;top:15px;align-self:start}.editor-image{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;touch-action:none;user-select:none}.editor-image img{width:100%;height:auto;display:block;pointer-events:none}.editor-image.drawing{cursor:crosshair;outline:3px solid var(--gold)}.editor-mark,.selection-mark{position:absolute;border:2px solid #14866f;background:#24a67a29;pointer-events:none}.selection-mark{border-color:#e2a624;background:#f7d24b55}.editor-forms{min-width:0}.line-form{border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}.line-form.selecting{border:2px solid var(--gold);background:#fffaee}.form-row{display:grid;grid-template-columns:1fr 100px;gap:10px}.coords{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.coords label{font-size:.76rem}.coords input{padding:8px!important}.form-actions{display:flex;gap:8px;flex-wrap:wrap}.existing-line{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.existing-line h3{display:flex;justify-content:space-between}.audio-tools{padding:0 5px 15px}.audio-tools form{margin-bottom:10px}.audio-tools audio{display:block;width:100%;margin:12px 0}.danger-zone{padding:10px 0 30px}
@media(max-width:800px){.admin-grid,.editor-layout{grid-template-columns:1fr}.editor-preview{position:static}.create-form{grid-template-columns:1fr 110px}.create-form button{grid-column:1/-1}.section-title{align-items:start;flex-direction:column}}@media(max-width:560px){.shell{width:min(100% - 22px,1120px)}main.shell{padding-top:24px}.card{padding:18px;border-radius:14px}.lesson{padding:0}.lesson-head{padding:18px;display:block}.play-status{text-align:left;margin-top:10px}.sheet-layout{grid-template-columns:44px minmax(0,1fr);margin:15px auto;padding-right:8px}.rail-button{width:33px;height:33px;left:5px;font-size:.8rem}.line-list{padding:18px}.line-item{align-items:start;flex-direction:column}.line-actions{width:100%}.line-actions .button{flex:1}.admin-heading{flex-direction:column}.page-row{grid-template-columns:32px minmax(0,1fr) auto;gap:8px}.page-row>span:last-child{display:none}.coords{grid-template-columns:repeat(2,1fr)}.zoom-toolbar{font-size:.82rem}.zoom-toolbar input{width:80px}}
.audio-trim{border:1px solid var(--line);border-radius:10px;background:#f7faf7;padding:14px;margin:16px 0}.audio-trim h4{margin:0 0 8px;font-size:.95rem}.audio-trim .hint{margin:6px 0 12px}.audio-trim audio{margin:10px 0}.trim-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}.trim-fields label{margin-bottom:8px}.trim-fields button{white-space:normal;width:100%}.audio-trim .form-actions{margin-top:12px}@media(max-width:560px){.trim-fields{grid-template-columns:1fr}}
.voice-slot{border:1px solid var(--line);border-radius:11px;margin:10px 0;background:#fff}.voice-slot>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:13px 15px;font-weight:700;list-style:none}.voice-slot>summary::-webkit-details-marker{display:none}.voice-slot>summary:before{content:"▸";color:var(--green);margin-right:3px}.voice-slot[open]>summary:before{content:"▾"}.voice-slot>summary strong{flex:1}.voice-slot>summary .file-state{font-size:.78rem}.voice-slot .audio-tools{padding:14px 15px;border-top:1px solid var(--line)}.voice-slot .audio-trim{margin:14px 0}.voice-choice{min-width:190px}.voice-choice select{margin-top:6px}
.volume-form{border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px;margin:12px 0}.volume-form>label{margin:0 0 8px}.volume-controls{display:flex;align-items:center;gap:14px}.volume-controls>input[type=range]{flex:1;min-width:80px;accent-color:var(--green)}.volume-controls>div{display:flex;align-items:center;gap:4px}.volume-controls input[type=number]{width:75px!important;margin:0!important;padding:8px!important}.volume-form .hint{margin:9px 0}.volume-form button{margin-top:4px}

/* Compact reader layout keeps the page and its playback controls in view on phones. */
.rail-button.no-audio:disabled{display:grid;place-items:center;opacity:1;cursor:default;background:#fff4f1;border-color:#d7aaa2;color:#85433d}
.rail-button.no-audio svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sheet-zoom-row{display:none}
.reader-toolbar~.lesson .line-details{border-top:1px solid var(--line)}
.reader-toolbar~.lesson .line-details>summary{display:flex;align-items:center;gap:9px;min-height:48px;padding:12px 22px;cursor:pointer;color:var(--green-dark);font-size:.88rem;font-weight:750;list-style:none}
.reader-toolbar~.lesson .line-details>summary::-webkit-details-marker{display:none}
.reader-toolbar~.lesson .line-details>summary:before{content:'▸';font-size:1.05rem}
.reader-toolbar~.lesson .line-details[open]>summary:before{content:'▾'}
.reader-toolbar~.lesson .line-details>summary:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.reader-toolbar~.lesson .line-list{padding:8px 22px 14px}
.reader-toolbar~.lesson .line-list .hint{margin:0 0 9px}
.reader-toolbar~.lesson .line-item{min-height:48px;padding:6px 11px;margin-bottom:5px}
.reader-toolbar~.lesson .line-actions .button{min-height:34px;padding:5px 10px}
@media(max-width:560px){
  main.shell:has(.reader-intro){padding-top:14px;padding-bottom:32px}
  .reader-intro{margin-bottom:13px}
  .reader-intro .eyebrow{margin-bottom:3px;font-size:.66rem}
  .reader-intro h1{font-size:1.46rem;margin-bottom:3px}
  .reader-intro p:last-child{margin:0;font-size:.8rem;line-height:1.35}
  .reader-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:8px;margin-bottom:10px}
  .reader-toolbar label,.reader-toolbar .voice-choice{min-width:0;margin:0;font-size:.76rem}
  .reader-toolbar select{max-width:none;min-width:0;min-height:44px;margin-top:4px;padding:8px 7px;font-size:.82rem}
  .reader-toolbar .toolbar-zoom{display:none}
  .reader-toolbar~.lesson{box-shadow:0 12px 32px #1d594319;border-radius:15px}
  .reader-toolbar~.lesson .lesson-head{padding:11px 14px 10px}
  .reader-toolbar~.lesson .lesson-head .eyebrow{font-size:.65rem;margin-bottom:2px}
  .reader-toolbar~.lesson .lesson-head h2{font-size:1.03rem}
  .reader-toolbar~.lesson .play-status{font-size:.76rem;line-height:1.3;margin-top:5px;max-width:none}
  .reader-toolbar~.lesson .sheet-layout{grid-template-columns:47px minmax(0,1fr);margin:9px auto 9px;padding:0 8px}
  .reader-toolbar~.lesson .rail-button{width:39px;height:39px;left:3px;font-size:.83rem}
  .reader-toolbar~.lesson .sheet-image{filter:contrast(1.08) brightness(1.04)}
  .reader-toolbar~.lesson .sheet-zoom-row{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:5px}
  .reader-toolbar~.lesson .sheet-zoom-row .button{min-height:36px;padding:6px 10px;font-size:.76rem}
  .reader-toolbar~.lesson .line-details>summary{padding:12px 16px;font-size:.84rem}
  .reader-toolbar~.lesson .line-list{padding:8px 14px 12px}
  .reader-toolbar~.lesson .line-item{align-items:center;flex-direction:row;padding:6px 8px}
  .reader-toolbar~.lesson .line-actions{width:auto}
  .reader-toolbar~.lesson .line-actions .button{flex:none;min-height:34px;padding:5px 8px;font-size:.78rem}
  .page-navigation{margin-top:12px}
}

.zoom-dialog{max-width:none;max-height:none;width:100vw;height:100dvh;margin:0;border:0;padding:0}
.zoom-dialog::backdrop{background:#172922eb}
.review-card{padding:18px 22px}
.review-card h2{margin-bottom:10px}
.review-card ul{margin:7px 0 14px;padding-left:21px;line-height:1.55}
.review-card .notice{margin:12px 0 5px;padding:10px 12px}
.review-card .hint{margin-bottom:0}
.review-card{padding:13px 18px;margin-bottom:14px}
.review-summary{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}
.review-summary h2{font-size:1rem;margin:0}
.review-summary .file-state,.review-blocked{margin:0;font-size:.86rem;font-weight:700}
.review-blocked{color:var(--danger)}
.review-card .review-blockers{margin:9px 0 0}
.review-more{margin-top:8px;color:var(--muted);font-size:.84rem}
.review-more summary{cursor:pointer}
.review-more ul{margin-bottom:0}
.page-tools{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin:-3px 0 14px}
.page-tools[hidden],.page-tools [hidden]{display:none}
.page-finder{min-width:min(100%,270px);border:1px solid var(--line);border-radius:10px;background:#fff}
.page-finder>summary{padding:11px 14px;cursor:pointer;color:var(--green-dark);font-size:.86rem;font-weight:700}
.page-finder[open]>summary{border-bottom:1px solid var(--line)}
.page-finder label{margin:12px 14px 8px}
.page-finder input{margin-top:4px}
.page-results{max-height:240px;overflow:auto;padding:0 14px 12px;display:grid;gap:5px}
.page-results a{padding:9px 10px;border-radius:8px;text-decoration:none;background:#f4f8f5;color:var(--ink);font-size:.84rem}
.page-results a:hover,.page-results a:focus-visible{background:#e4f1e9}
.page-finder .hint{margin:4px 14px 12px}
@media(max-width:560px){.review-card{padding:16px}.page-tools{margin:-2px 0 10px}.page-finder{width:100%}}

/* Full-screen image viewer: fixed to the viewport rather than the page layout. */
.zoom-dialog[hidden]{display:none!important}
.zoom-dialog:not([hidden]){position:fixed;inset:0;z-index:9999;width:auto;height:auto;max-width:none;max-height:none;margin:0;border:0;padding:0;background:#172922;display:flex;flex-direction:column;min-width:0;min-height:0}
.zoom-toolbar{background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 16px;box-shadow:0 2px 12px #0002;z-index:1}
.zoom-toolbar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zoom-toolbar label{margin:0;display:flex;align-items:center;gap:8px;white-space:nowrap}
.zoom-toolbar input{width:140px}
.zoom-scroller{overflow:auto;overscroll-behavior:contain;flex:1;min-height:0;min-width:0;padding:12px;text-align:center;touch-action:pan-x pan-y}
.zoom-scroller img{width:100%;max-width:none;height:auto;display:block;margin:auto;background:white;box-shadow:0 6px 30px #0006}
@media(max-width:560px){
  .zoom-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:8px 12px}
  .zoom-toolbar strong{font-size:.88rem}
  .zoom-toolbar .button{grid-column:2;grid-row:1;min-height:38px;padding:6px 10px}
  .zoom-toolbar label{grid-column:1/-1;grid-row:2;justify-content:space-between;font-size:.78rem}
  .zoom-toolbar input{flex:1;width:auto;max-width:none}
  .zoom-scroller{padding:8px}
}

/* Reader color choices share the same layout and keep the printed lesson image intact. */
.theme-switcher{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:-4px 0 18px}
.theme-switcher>span{font-size:.78rem;font-weight:750;color:var(--muted);margin-right:3px}
.theme-switcher button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font-size:.78rem;font-weight:700;box-shadow:0 2px 7px #142b2510}
.theme-switcher button:hover{background:var(--theme-soft,#eff7f1)}
.theme-switcher button[aria-pressed="true"]{border-color:var(--green);background:var(--theme-soft,#eff7f1);color:var(--green-dark);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 18%,transparent)}
.theme-switcher i{display:block;width:15px;height:15px;flex:none;border-radius:50%;border:1px solid #0002;box-shadow:inset 0 1px 2px #fff8}
.theme-switcher [data-theme-choice="hijau"] i{background:#176d5b}
.theme-switcher [data-theme-choice="biru"] i{background:#236aa4}
.theme-switcher [data-theme-choice="ungu"] i{background:#7054a0}
.theme-switcher [data-theme-choice="pasir"] i{background:#9a663c}
html[data-theme="biru"]{--ink:#1e354a;--muted:#5e7286;--green:#236aa4;--green-dark:#164c79;--cream:#f3f7fc;--line:#d8e3ee;--paper:#fff;--gold:#e2be75;--theme-soft:#edf5fc;--theme-rail:#e8f2fc;--theme-hover:#e5f1fa;--theme-subtle:#f4f9fe;--theme-shadow:#22588118}
html[data-theme="ungu"]{--ink:#302941;--muted:#706981;--green:#7054a0;--green-dark:#4b387c;--cream:#f8f5fc;--line:#e4ddee;--paper:#fff;--gold:#dfbd77;--theme-soft:#f4effb;--theme-rail:#f0eafa;--theme-hover:#eee7f8;--theme-subtle:#faf7fd;--theme-shadow:#513d7b18}
html[data-theme="pasir"]{--ink:#41342c;--muted:#75675e;--green:#976039;--green-dark:#714429;--cream:#fcf7ee;--line:#eadfce;--paper:#fffdfa;--gold:#e3ba74;--theme-soft:#fbf0e1;--theme-rail:#f8eddc;--theme-hover:#f7e9d7;--theme-subtle:#fff8ed;--theme-shadow:#71442918}
html[data-theme="biru"] .brand-mark,html[data-theme="ungu"] .brand-mark,html[data-theme="pasir"] .brand-mark{background:var(--gold);color:var(--green-dark)}
html[data-theme="biru"] .card,html[data-theme="ungu"] .card,html[data-theme="pasir"] .card{box-shadow:0 8px 30px var(--theme-shadow)}
html[data-theme="biru"] .button:hover:not(:disabled),html[data-theme="ungu"] .button:hover:not(:disabled),html[data-theme="pasir"] .button:hover:not(:disabled){background:var(--theme-hover)}
html[data-theme="biru"] .button.primary:hover:not(:disabled),html[data-theme="ungu"] .button.primary:hover:not(:disabled),html[data-theme="pasir"] .button.primary:hover:not(:disabled){background:var(--green-dark)}
html[data-theme="biru"] .button.subtle,html[data-theme="ungu"] .button.subtle,html[data-theme="pasir"] .button.subtle{background:var(--theme-subtle)}
html[data-theme="biru"] .sheet-rail,html[data-theme="ungu"] .sheet-rail,html[data-theme="pasir"] .sheet-rail{background:var(--theme-rail)}
html[data-theme="biru"] .rail-button,html[data-theme="ungu"] .rail-button,html[data-theme="pasir"] .rail-button{border-color:var(--line);color:var(--green-dark)}
html[data-theme="biru"] .rail-button:hover:not(:disabled),html[data-theme="ungu"] .rail-button:hover:not(:disabled),html[data-theme="pasir"] .rail-button:hover:not(:disabled),html[data-theme="biru"] .rail-button.active,html[data-theme="ungu"] .rail-button.active,html[data-theme="pasir"] .rail-button.active{background:var(--green);color:#fff}
html[data-theme="biru"] .line-item.active,html[data-theme="ungu"] .line-item.active,html[data-theme="pasir"] .line-item.active{background:var(--theme-soft)}
html[data-theme="biru"] .page-results a,html[data-theme="ungu"] .page-results a,html[data-theme="pasir"] .page-results a{background:var(--theme-subtle)}
html[data-theme="biru"] .page-results a:hover,html[data-theme="ungu"] .page-results a:hover,html[data-theme="pasir"] .page-results a:hover{background:var(--theme-hover)}
html[data-theme="biru"] .zoom-dialog:not([hidden]),html[data-theme="ungu"] .zoom-dialog:not([hidden]),html[data-theme="pasir"] .zoom-dialog:not([hidden]){background:var(--green-dark)}
@media(max-width:560px){
  .theme-switcher{gap:5px;margin:-2px 0 10px}
  .theme-switcher>span{width:100%;font-size:.68rem}
  .theme-switcher button{flex:1 1 auto;min-height:34px;padding:6px 8px;font-size:.73rem}
  .theme-switcher i{width:13px;height:13px}
}

/* Keep the reader menu compact while providing space for supporting information. */
.reader-header .topbar{gap:14px}
.reader-header .topbar nav{margin-left:auto}
.reader-menu{position:relative;z-index:30;flex:none;color:var(--ink)}
.reader-menu>summary{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff66;border-radius:11px;background:#ffffff1c;color:#fff;cursor:pointer;list-style:none}
.reader-menu>summary::-webkit-details-marker{display:none}
.reader-menu>summary:hover,.reader-menu[open]>summary{background:#ffffff33}
.reader-menu>summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hamburger-icon,.hamburger-icon:before,.hamburger-icon:after{display:block;width:19px;height:2px;border-radius:2px;background:currentColor}
.hamburger-icon{position:relative}
.hamburger-icon:before,.hamburger-icon:after{content:"";position:absolute;left:0}
.hamburger-icon:before{top:-6px}
.hamburger-icon:after{top:6px}
.reader-menu-panel{position:absolute;right:0;top:calc(100% + 9px);width:320px;max-width:calc(100vw - 40px);max-height:calc(100dvh - 88px);overflow-y:auto;padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:0 15px 40px #142b2540;color:var(--ink)}
.reader-menu-title{display:block;padding:1px 5px 11px;font-size:.91rem}
.reader-menu-section{border-top:1px solid var(--line)}
.reader-menu-section>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 5px;list-style:none;cursor:pointer;font-size:.88rem;font-weight:700;color:var(--ink)}
.reader-menu-section>summary::-webkit-details-marker{display:none}
.reader-menu-section>summary:after{content:'+';font-size:1.25rem;font-weight:400;color:var(--green)}
.reader-menu-section[open]>summary:after{content:'−'}
.reader-menu-section>summary:hover{color:var(--green-dark)}
.reader-menu-section>summary:focus-visible{outline:3px solid var(--gold);outline-offset:-2px;border-radius:6px}
.reader-menu-content{padding:0 5px 14px;color:var(--muted);font-size:.82rem;line-height:1.5}
.reader-menu-content p{margin:1px 0 0}
.reader-menu-link{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 5px;border-top:1px solid var(--line);color:var(--ink);font-size:.88rem;font-weight:700;text-decoration:none}
.reader-menu-link:after{content:'›';font-size:1.4rem;font-weight:400;line-height:1;color:var(--green)}
.reader-menu-link:hover{color:var(--green-dark)}
.reader-menu-link:focus-visible{outline:3px solid var(--gold);outline-offset:-2px;border-radius:6px}
.reader-menu .theme-switcher{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:1px 0 0}
.reader-menu .theme-switcher button{justify-content:flex-start;min-height:42px;padding:8px 11px;font-size:.79rem}
.info-page{max-width:760px;margin-inline:auto}
.info-page .eyebrow{margin-bottom:8px}
.info-page .card{line-height:1.7}
.info-page .card p:first-child{margin-top:0}
.info-page .card p:last-child{margin-bottom:0}
.share-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.share-options .card{margin-bottom:0}
.share-options h2{margin-bottom:9px}
.share-options p{color:var(--muted);line-height:1.55}
.share-link{display:block;width:100%;overflow-wrap:anywhere;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:var(--cream);font-size:.9rem;color:var(--ink)}
.share-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
.share-actions .button{min-width:125px}
.share-actions [hidden]{display:none!important}
.share-status{min-height:1.5em;margin-top:10px!important;font-size:.83rem}
.install-steps{padding-left:21px;color:var(--ink);line-height:1.6}
.install-steps li+li{margin-top:5px}
@media(max-width:680px){.share-options{grid-template-columns:1fr}.share-options .card{padding:18px}}

/* The admin crop tool changes only the displayed page image. */
.new-line-editor{border:1px solid var(--line);border-radius:12px;margin-bottom:16px;background:var(--theme-subtle,#f7faf7)}
.new-line-editor>summary{display:flex;align-items:center;gap:9px;min-height:52px;padding:12px 16px;cursor:pointer;list-style:none;color:var(--green-dark);font-size:.95rem;font-weight:750}
.new-line-editor>summary::-webkit-details-marker{display:none}
.new-line-editor>summary:before{content:'▸';font-size:1.05rem}
.new-line-editor[open]>summary:before{content:'▾'}
.new-line-editor>summary:after{content:'Buka';margin-left:auto;color:var(--muted);font-size:.76rem;font-weight:600}
.new-line-editor[open]>summary:after{content:'Tutup'}
.new-line-editor>summary:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;border-radius:10px}
.new-line-editor .line-form{margin:0;border:0;border-top:1px solid var(--line);border-radius:0 0 12px 12px;background:#fff}
.new-line-editor+.existing-line{margin-top:8px}
.line-reposition-badge{display:inline-block;margin-left:8px;padding:4px 8px;border-radius:999px;background:#fff1cc;color:#704d00;font-size:.72rem;font-weight:750;vertical-align:middle}
.existing-line .notice.warning{margin:0 0 12px}
.site-footer .shell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center}
.site-footer p{width:100%;margin:0;text-align:center}
@media(max-width:560px){body:has(.reader-intro){display:flex;flex-direction:column;min-height:100dvh}main.shell:has(.reader-intro){flex:1;min-height:0;padding-bottom:18px}body:has(.reader-intro) .site-footer{flex:none;padding-block:14px}}
.draft-range-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px;margin:14px 0}
.draft-range-form label{margin:0}
.draft-range-form .button{margin-bottom:1px}
.single-page-add{border-top:1px solid var(--line);margin-top:18px;padding-top:15px}
.single-page-add>summary{cursor:pointer;color:var(--green-dark);font-weight:700}
.single-page-add .create-form{margin-top:15px}
@media(max-width:560px){.draft-range-form{grid-template-columns:repeat(2,minmax(0,1fr))}.draft-range-form .button{grid-column:1/-1}}
.storage-cleanup-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;border-top:1px solid var(--line)}
.storage-cleanup-item strong{display:block;font-size:.9rem}
.storage-cleanup-item p{margin:4px 0;color:var(--muted);font-size:.82rem}
.storage-cleanup-item small{display:block;max-width:620px;color:var(--muted);line-height:1.45}
.storage-cleanup-item form{flex:none}
.storage-cleanup-item .button{white-space:normal}
@media(max-width:600px){.storage-cleanup-item{align-items:stretch;flex-direction:column;gap:10px}.storage-cleanup-item form,.storage-cleanup-item .button{width:100%}}
.image-crop-editor{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}
.image-crop-editor>summary{cursor:pointer;color:var(--green-dark);font-weight:750;list-style:none}
.image-crop-editor>summary::-webkit-details-marker{display:none}
.image-crop-editor>summary:before{content:'▸';display:inline-block;margin-right:8px}
.image-crop-editor[open]>summary:before{content:'▾'}
.image-crop-editor>.hint{margin:12px 0}
.crop-frame{position:relative;width:100%;max-width:100%;margin-inline:auto;overflow:hidden;box-shadow:0 0 0 1px var(--line);border-radius:10px;background:#fff;cursor:crosshair;touch-action:none;user-select:none}
.crop-frame img{display:block;width:100%;height:auto;pointer-events:none}
.page-row{border-radius:12px}
.crop-selection,.crop-line-mark{position:absolute;pointer-events:none}
.crop-selection{z-index:2;border:2px solid #16a085;background:#16a08519;box-shadow:0 0 0 100vmax #101d2080}
.crop-quad-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.crop-quad-overlay path{fill:#101d2080}
.crop-quad-overlay polygon{fill:#16a08512;stroke:#e8b22c;stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #09291f)}
.crop-drag-rect{position:absolute;z-index:6;pointer-events:none;border:3px dashed #ffe46b;background:#f8cb2b35;box-shadow:0 0 0 1px #123b33,0 0 14px #0009}
.crop-drag-rect[hidden]{display:none}
.crop-corner{position:absolute;z-index:5;width:29px;height:29px;padding:0;border:3px solid #fff;border-radius:50%;background:#117964;box-shadow:0 1px 7px #0009;transform:translate(-50%,-50%);cursor:grab;touch-action:none}
.crop-corner{color:#fff;font-size:12px;font-weight:800;line-height:1}
.crop-corner:focus-visible{outline:3px solid #e2ac29;outline-offset:3px}
.crop-frame.drawing .crop-corner{cursor:grabbing}
.crop-line-mark{z-index:3;border:2px dashed #d39100;background:#f5b30029}
.editor-mark{z-index:1}
.selection-mark{z-index:5;border:3px dashed #ffe46b;background:#f8cb2b55;box-shadow:0 0 0 1px #123b33,0 0 12px #0009}
.selection-mark[hidden]{display:none}
.selection-mark.is-point{width:18px!important;height:18px!important;min-width:18px;min-height:18px;border-radius:50%;background:#ffda4f;transform:translate(-50%,-50%)}
.area-status{margin:0 0 10px;padding:9px 12px;border-radius:9px;background:#fff7d9;color:#4d3a08;font-size:.84rem;font-weight:650;line-height:1.4}
.editor-runtime{margin:8px 0 12px;padding:9px 12px;border-radius:9px;background:#fff1e6;color:#783d17;font-size:.84rem;font-weight:700;line-height:1.4}
.editor-runtime.ready,.area-status.ready{background:#e9f6ee;color:#14543f}
.crop-feedback{min-height:1.4em;margin:8px 0 14px}
.crop-preview{padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--theme-subtle,#f6faf7)}
.crop-preview strong{display:block;margin-bottom:9px;font-size:.82rem}
.crop-preview canvas{display:block;max-width:100%;max-height:240px;width:auto;height:auto;border:1px solid var(--line);background:#fff}
.crop-preview canvas[hidden]{display:none}
.crop-actions{margin:9px 0 12px}
.crop-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:15px 0 0}
.crop-fields label{min-width:0;margin-bottom:8px;font-size:.76rem}
.crop-fields input{min-width:0;padding:8px!important}
@media(max-width:560px){.crop-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
.image-adjust-editor{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
.image-adjust-editor>summary{cursor:pointer;color:var(--green-dark);font-weight:750;list-style:none}
.image-adjust-editor>summary::-webkit-details-marker{display:none}
.image-adjust-editor>summary:before{content:'▸';display:inline-block;margin-right:8px}
.image-adjust-editor[open]>summary:before{content:'▾'}
.image-adjust-editor>.hint{margin:12px 0}
.adjust-preview{display:block;width:auto;max-width:100%;height:auto;max-height:420px;margin:12px auto;border:1px solid var(--line);border-radius:8px;background:#fff}
.adjust-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.adjust-controls>label{min-width:0;margin:0;font-size:.83rem}
.adjust-controls output{float:right;color:var(--green-dark);font-weight:750}
.adjust-controls input[type=range]{display:block;width:100%;margin:9px 0 0;accent-color:var(--green)}
.adjust-controls .check{grid-column:1/-1;display:flex;align-items:center;gap:9px}
.adjust-controls .check input{width:auto;margin:0}
.image-adjust-editor .form-actions{margin:12px 0}
@media(max-width:560px){.adjust-controls{grid-template-columns:1fr;gap:16px}.image-adjust-editor .form-actions .button{width:100%}}
@media(max-width:560px){
  .reader-header .topbar{min-height:68px}
  .reader-header .topbar nav{display:none}
  .reader-header .reader-menu{margin-left:auto}
  .reader-menu-panel{width:min(320px,calc(100vw - 40px));padding:12px}
}
