:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#263932;background:#f8f7f3;font-synthesis:none;--green:#234d42;--muted:#626e66;--line:#dce2d9;--paper:#fffefb}*{box-sizing:border-box}body{margin:0}body.has-player{padding-bottom:245px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{min-height:48px;border:1px solid transparent;border-radius:12px;background:var(--green);color:white;padding:12px 20px;font-weight:600;cursor:pointer}button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #b47a31;outline-offset:4px}a{color:var(--green)}[hidden]{display:none!important}.top{height:90px;max-width:1080px;margin:auto;padding:20px 32px;display:flex;justify-content:space-between;align-items:center;gap:10px}.brand{display:flex;align-items:center;gap:12px;color:var(--green);font-weight:700;text-decoration:none;font-size:18px}.mark{font-size:23px;background:#e5eadf;padding:9px;border-radius:14px;letter-spacing:-5px;padding-right:14px}.quiet{color:var(--green);border-color:var(--line);background:transparent}.top .quiet{font-size:14px}main{max-width:960px;margin:40px auto;padding:0 32px 64px}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(32px,5vw,46px);letter-spacing:-1.1px;margin:12px 0 24px;line-height:1.12;overflow-wrap:anywhere}h2{font-size:20px;line-height:1.4;margin:0 0 16px;overflow-wrap:anywhere}p{line-height:1.6}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--muted);margin:0 0 10px}.muted,.hint{color:var(--muted)}.hint{font-size:13px;margin:8px 0 14px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:28px;margin:24px 0}.narrow{max-width:460px}form{display:grid;gap:12px}label{font-weight:600;font-size:14px}input:not([type=range]){width:100%;min-height:50px;padding:12px;border:1px solid #bbc8bd;border-radius:10px;background:white;color:#263932}input[type=file]{font-size:14px}input::file-selector-button{border:0;background:#edf1e9;border-radius:5px;padding:8px;margin-right:10px;color:var(--green)}form button{justify-self:start;margin-top:8px}.small-link{font-size:14px;display:inline-block;padding:14px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.course-card{text-align:left;padding:28px;background:var(--paper);color:#263932;border:1px solid var(--line);border-radius:18px;min-height:165px;display:flex;flex-direction:column;gap:18px;align-items:flex-start}.course-card .symbol{font-size:20px;color:var(--green)}.course-card strong{font-family:Georgia,serif;font-size:26px;font-weight:400;overflow-wrap:anywhere}.course-card small{color:var(--muted);font-weight:400;line-height:1.6}.resume{width:100%;text-align:left;margin:0 0 26px;background:#e8eee3;color:var(--green);border:1px solid #cbd8c8;line-height:1.6;overflow-wrap:anywhere}.episode-list{list-style:none;padding:0;margin:24px 0}.episode-list li{border-bottom:1px solid var(--line)}.episode-button{width:100%;background:transparent;color:#263932;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:20px 8px;gap:20px;border-radius:0;font-weight:500}.episode-button span{overflow-wrap:anywhere}.episode-button small{white-space:nowrap;color:var(--muted)}.episode-button.active{color:var(--green);background:#e8eee3}.notice{background:#fff1d4;color:#72521e;padding:16px;border-radius:12px}.empty{padding:48px 24px;border:1px dashed #c1cbbb;border-radius:18px;text-align:center;color:var(--muted)}#message:not(:empty),#login-error:not(:empty),#audio-error:not(:empty){color:#9a3624;margin-top:12px}.player{position:fixed;bottom:0;left:0;right:0;background:#fffefbf5;backdrop-filter:blur(16px);border-top:1px solid #cbd8c8;padding:18px 24px calc(16px + env(safe-area-inset-bottom));z-index:10}.player-inner{max-width:896px;margin:auto;display:grid;grid-template-columns:1fr auto;gap:10px 20px}.now{min-width:0}.now h2{font-size:16px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now .eyebrow{margin:0 0 5px;font-size:9px}.now .hint{margin:3px 0}.transport{display:flex;align-items:center;gap:12px}.round{border-radius:50%;width:48px;padding:0;font-size:16px}.primary-play{width:56px;min-height:56px;font-size:20px}.timeline{grid-column:1/-1;display:flex;align-items:center;gap:12px;font-size:12px;font-variant-numeric:tabular-nums}.timeline input{width:100%;height:36px;accent-color:var(--green)}#audio-error{grid-column:1/-1;font-size:13px;margin:0}.spaced{margin-top:44px}.upload-items{list-style:none;margin:0;padding:0}.upload-items li{padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;overflow-wrap:anywhere}progress{display:block;width:100%;margin:8px 0;accent-color:var(--green)}details{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:20px;margin:14px 0}summary{cursor:pointer;font-weight:600;min-height:48px;overflow-wrap:anywhere}.admin-episode{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:14px 0}.admin-episode span{flex:1 1 200px;overflow-wrap:anywhere;font-size:14px}.danger{background:transparent;border-color:#e5c2b8;color:#99351f}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}dialog{max-width:440px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:20px;padding:28px;color:#263932;background:var(--paper)}dialog::backdrop{background:#10231b66}@media(max-width:600px){.top{padding:16px 20px;height:80px}.brand{font-size:15px;gap:8px}.mark{font-size:18px}main{margin-top:28px;padding:0 20px 40px}.course-grid{grid-template-columns:1fr;gap:14px}.course-card{min-height:145px;padding:24px;gap:12px}.panel{padding:20px}.section-heading{align-items:flex-start}.section-heading .small-link{max-width:105px;text-align:right}.player{padding:16px 20px calc(12px + env(safe-area-inset-bottom))}.player-inner{grid-template-columns:1fr;gap:6px}.transport{justify-content:center;grid-row:2}.timeline{grid-row:3}.now .eyebrow{display:none}.now h2{text-align:center}.now .hint{text-align:center}body.has-player{padding-bottom:240px}.episode-button{min-height:80px}.top button{padding:10px 12px}}
