:root{color-scheme:light;--bg: #f7f4ef;--surface: #fffdf9;--surface-muted: #efebe4;--text: #211f1b;--muted: #6b645b;--border: #ddd6ca;--accent: #2b6f68;--accent-soft: #dcebe8;--shadow: 0 8px 24px rgba(38, 31, 20, .08)}:root[data-theme=dark]{color-scheme:dark;--bg: #171717;--surface: #22211f;--surface-muted: #2c2a27;--text: #f2eee7;--muted: #b7afa3;--border: #3f3a34;--accent: #78b9ad;--accent-soft: #243733;--shadow: 0 8px 24px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html{min-height:100%;background:var(--bg);overflow-x:hidden}body{min-width:320px;min-height:100%;margin:0;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}button,input{font:inherit}button,a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell,.reader-shell{width:min(100%,900px);margin:0 auto;padding:calc(14px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-left)) calc(28px + env(safe-area-inset-bottom))}.app-header,.reader-toolbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;min-height:56px;gap:10px;padding:env(safe-area-inset-top) 0 8px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{flex:1;text-decoration:none;font-size:1.45rem;font-weight:760}.icon-button,.theme-button,.back-button,.toolbar-button{display:inline-grid;place-items:center;min-width:44px;height:44px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer}.icon-button:hover,.theme-button:hover,.back-button:hover,.toolbar-button:hover,.document-link:hover,.continue-button:hover{border-color:var(--accent)}.theme-button{min-width:64px;padding:0 12px}.search-box{display:block;margin:10px 0 28px}.search-box input{width:100%;min-height:48px;border:1px solid var(--border);border-radius:8px;padding:0 14px;background:var(--surface);color:var(--text);outline:none}.search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sections{display:grid;gap:28px}.category-section h2{margin:0 0 10px;color:var(--muted);font-size:.9rem;font-weight:760;letter-spacing:0;text-transform:uppercase}.document-list{display:grid;gap:8px}.document-link{display:flex;align-items:center;justify-content:space-between;min-height:52px;gap:16px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);text-decoration:none}.document-link span:first-child{overflow-wrap:anywhere}.chevron{flex:0 0 auto;color:var(--muted);font-size:1.4rem}.empty-state,.reader-message{margin:42px 0;padding:22px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.empty-state h2,.reader-message h2{margin:0 0 10px}.empty-state p{margin:0 0 8px;color:var(--muted)}.empty-state code{display:inline-block;padding:6px 8px;border-radius:6px;background:var(--surface-muted)}.reader-shell{width:min(100%,940px);padding-left:0;padding-right:0}.reader-toolbar{width:min(100% - 32px,900px);margin:0 auto}.back-button{flex:0 0 auto;font-size:2rem;line-height:1}.reader-toolbar h1{flex:1;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:740}.reader-actions{display:flex;align-items:center;gap:6px}.text-button{min-width:38px;width:38px;font-weight:720}.font-marker{display:none;color:var(--muted);font-size:.82rem;min-width:20px;text-align:center}.contents-button{min-width:82px;padding:0 10px}.reader-content{width:min(100% - 32px,860px);margin:10px auto 0;font-size:var(--reader-font-size)}.font-small{--reader-font-size: 16px}.font-medium{--reader-font-size: 18px}.font-large{--reader-font-size: 20px}.document-frame{display:block;width:100%;min-height:70vh;border:0;background:transparent}.loading-text{color:var(--muted)}.continue-button{position:sticky;top:64px;z-index:4;min-height:42px;margin:0 0 12px;border:1px solid var(--border);border-radius:8px;padding:0 14px;background:var(--surface);box-shadow:var(--shadow);cursor:pointer}.toc-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;align-items:end}.toc-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#00000057}.toc-panel{position:relative;width:min(100%,640px);max-height:min(72vh,640px);margin:0 auto;overflow:auto;border:1px solid var(--border);border-radius:8px 8px 0 0;padding:12px 16px calc(16px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:var(--shadow)}.toc-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.toc-heading h2{margin:0;font-size:1.05rem}.toc-item{display:block;width:100%;min-height:44px;border:0;border-radius:8px;padding:10px 8px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.toc-item:hover{background:var(--surface-muted)}.toc-item.level-2{padding-left:22px}.toc-item.level-3{padding-left:36px;color:var(--muted)}@media(max-width:560px){.reader-toolbar{width:min(100% - 24px,900px);gap:6px}.reader-content{width:min(100% - 32px,860px)}.reader-actions{gap:4px}.text-button{min-width:34px;width:34px}.contents-button{min-width:44px;width:44px;padding:0;overflow:hidden;font-size:0}.contents-button:before{content:"☰";font-size:1.05rem}}@media(min-width:720px){.app-shell{padding-top:calc(24px + env(safe-area-inset-top))}.document-link{min-height:56px}.font-marker{display:inline-block}}.upload-button.active{border-color:var(--accent);background:var(--accent-soft)}.upload-panel{display:grid;gap:14px;margin:10px 0 4px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.upload-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.upload-heading h2{margin:0;font-size:1.05rem}.upload-field{display:grid;gap:6px;color:var(--muted);font-size:.88rem;font-weight:650}.upload-field input{min-height:44px;border:1px solid var(--border);border-radius:8px;padding:0 12px;background:var(--bg);color:var(--text);font-size:1rem;font-weight:400;outline:none}.upload-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dropzone{display:grid;place-items:center;gap:4px;min-height:120px;padding:18px;border:2px dashed var(--border);border-radius:8px;background:var(--bg);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone span{color:var(--muted);font-size:.9rem}.dropzone:hover,.dropzone:focus-within,.dropzone.dragging{border-color:var(--accent);background:var(--accent-soft)}.dropzone.busy{cursor:progress;opacity:.7}.upload-results{display:grid;gap:6px;margin:0;padding:0;list-style:none}.upload-results li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 10px;border-radius:8px;background:var(--surface-muted);font-size:.92rem}.result-status{font-weight:720;color:var(--accent)}.upload-results li.skipped .result-status{color:#b4532a}.result-name{flex:1;min-width:0;overflow-wrap:anywhere}.result-message{width:100%;color:var(--muted);font-size:.85rem}.link-button{border:0;padding:4px 6px;background:transparent;color:var(--accent);font-weight:700;cursor:pointer}.upload-note,.upload-error{margin:0;color:var(--muted);font-size:.82rem}.upload-error{margin-top:10px;color:#b4532a}.document-row{display:flex;gap:8px}.document-row .document-link{flex:1;min-width:0}.document-meta{display:inline-flex;flex:0 0 auto;align-items:center;gap:10px}.upload-badge{padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:720}.delete-button{flex:0 0 auto;min-height:52px;height:auto;color:var(--muted)}.delete-button:hover,.viewer-action.danger:hover{border-color:#b4532a;color:#b4532a}.empty-upload{position:static;margin:4px 0 14px}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:24px;border:3px dashed var(--accent);background:color-mix(in srgb,var(--bg) 82%,transparent);pointer-events:none}.drop-overlay span{padding:14px 20px;border-radius:8px;background:var(--surface);box-shadow:var(--shadow);font-weight:720}html.viewer-open,html.viewer-open body{overflow:hidden}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;background:var(--bg)}.viewer-toolbar{position:relative;flex:0 0 auto;width:100%;margin:0;padding:calc(8px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));border-bottom:1px solid var(--border)}.viewer-toolbar h1 small{display:block;overflow:hidden;color:var(--muted);font-size:.76rem;font-weight:500;text-overflow:ellipsis}.viewer-action{gap:6px;padding:0 10px;grid-auto-flow:column}.viewer-frame{flex:1;width:100%;min-height:0;border:0;background:#fff;color-scheme:light}.viewer-body{width:min(100% - 32px,860px);margin:10px auto 0}@media(max-width:560px){.action-label{display:none}.viewer-action{min-width:40px;padding:0}.upload-button{min-width:44px;padding:0 10px}}.upload-heading-actions{display:flex;align-items:center;gap:6px}.admin-login{display:grid;gap:12px}.admin-login p{margin:0;color:var(--muted);font-size:.92rem}.admin-login .pending-note{color:var(--accent);font-weight:650}.primary-button{min-height:44px;border:0;border-radius:8px;padding:0 16px;background:var(--accent);color:var(--surface);font-weight:720;cursor:pointer}.primary-button:disabled{opacity:.6;cursor:default}.progress-track{display:block;width:min(100%,260px);height:6px;overflow:hidden;border-radius:999px;background:var(--border)}.progress-track span{display:block;height:100%;background:var(--accent);transition:width .2s}.viewer-loading{position:absolute;top:50%;left:0;right:0;margin:0;text-align:center}.viewer-frame:not(.ready){opacity:0}
