:root{font-family:system-ui,-apple-system,sans-serif;color:#253329;background:#f5f5f0;--nav-height: calc(64px + env(safe-area-inset-bottom,0px)) }*{box-sizing:border-box}body{margin:0;min-width:320px;-webkit-text-size-adjust:100%}button,input{font:inherit}button,a,summary{touch-action:manipulation}button{min-height:44px;padding:9px 14px;border:1px solid #cbd4c7;border-radius:8px;background:#fff;color:#30513d;cursor:pointer}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:2px solid #527137;outline-offset:2px}input{min-height:48px;font-size:16px;padding:12px;border:1px solid #becab8;border-radius:8px;max-width:100%;min-width:0;background:#fff}h1{font-size:24px;margin:0 0 24px}p{line-height:1.7}a{color:#30513d}[hidden]{display:none!important}.app-shell{min-height:100dvh;padding-bottom:var(--nav-height)}.page{max-width:760px;margin:auto;padding:32px max(20px,env(safe-area-inset-right)) 32px max(20px,env(safe-area-inset-left))}.url-form{display:flex;flex-direction:column;gap:14px}.url-form label{font-weight:600}.url-form input{width:100%}.primary,.save-word>button{background:#30513d;color:#fff;border-color:#30513d}.text-button{background:transparent;border-color:transparent}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;height:var(--nav-height);padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:flex;background:#fff;border-top:1px solid #dfe5da}.bottom-nav button{flex:1;border:0;background:transparent;font-size:14px;font-weight:600}.bottom-nav button[aria-current=page]{color:#284832;background:#eaf0e3}.watch-screen{position:fixed;inset:0 0 var(--nav-height);display:flex;flex-direction:column;overflow:hidden}.video-area{flex-shrink:0}.player-frame{position:relative;width:100%;height:auto;aspect-ratio:16/9;max-height:34dvh;min-height:0;background:#17241c}.player-frame>#youtube-player,.player-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.player-controls{display:flex;align-items:center;gap:8px;padding:8px max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left))}.player-controls button{font-size:14px}.learning-panel{display:flex;flex-direction:column;min-height:0;height:40%;flex-shrink:1;margin-top:auto;border-top:1px solid #dce4d4;border-radius:16px 16px 0 0;background:#fff;overflow:hidden;padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left)}.learning-panel.has-explanation{flex:1;height:auto;margin-top:8px}.caption-list{position:relative;flex:1;min-height:0;overflow:auto;padding:8px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.caption-line{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:start;padding:8px;border-radius:8px;color:#66705f;line-height:1.7}.caption-line.active{background:#eaf1e2;color:#253f2c}.caption-line>span{min-width:0;overflow-wrap:anywhere}.caption-seek{border:0;background:transparent;padding:8px 0;font-size:12px;font-variant-numeric:tabular-nums;color:#687d5a}.word-button{border:0;border-bottom:1px dotted #aab99c;background:transparent;color:inherit;min-height:44px;padding:4px;max-width:100%;overflow-wrap:anywhere;font-size:16px;border-radius:3px}.word-button:hover{background:#e0ead4}.caption-toolbar{display:flex;justify-content:flex-end;padding:4px 12px;border-bottom:1px solid #edf0e9}.caption-toolbar button{font-size:13px}.panel-message{padding:12px 18px;margin:0;overflow:auto;flex-shrink:1}.panel-message button{margin:4px}.error-banner{background:#fae9e3;color:#933a27;padding:12px;font-size:14px;overflow-wrap:anywhere}.error-banner button{margin:8px}.video-area>.error-banner{max-height:100px;overflow:auto;margin:0}.word-explanation{display:flex;flex-direction:column;flex:1;min-height:0}.explanation-top{display:flex;align-items:center;gap:16px;padding:8px 16px;border-bottom:1px solid #e5eadd}.explanation-top button{flex-shrink:0}.explanation-top h2{font-size:20px;margin:0;overflow-wrap:anywhere}.explanation-body{flex:1;min-height:0;overflow:auto;padding:0 20px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.explanation-actions{padding:8px 16px;border-top:1px solid #e5eadd;background:#fff}.save-word>button{width:100%}.save-word p{font-size:13px;margin:4px 0}.explanation-note,.saved-date{font-size:12px;color:#68725f;line-height:1.7}blockquote{margin:16px 0;padding:12px;border-left:3px solid #9eb58a;background:#f0f4ea;overflow-wrap:anywhere}.explanation-details dt{font-size:13px;color:#61794f;margin-top:16px;font-weight:700}.explanation-details dd{margin:4px 0;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.uncertainty{background:#fff1d7;padding:12px;line-height:1.7}.auth-panel{padding:16px;background:#edf2e6;border-radius:10px;font-size:14px}.auth-account,.wordbook-tools,.word-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.auth-account span{flex:1;min-width:0;overflow-wrap:anywhere}.word-search{display:flex;align-items:end;gap:10px;margin:20px 0}.word-search label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.word-search input{width:100%}.wordbook-tools{margin:16px 0}.word-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}.word-list>li{background:#fff;border:1px solid #dfe5d9;border-radius:10px;padding:18px;overflow-wrap:anywhere}.word-list h3{margin:0;font-size:20px}.word-list small{font-weight:400;font-size:13px;color:#68725f}.word-list summary{min-height:44px;padding:10px 0;cursor:pointer}.word-actions{margin-top:12px}.word-actions a{display:inline-flex;align-items:center;min-height:44px}.import-panel{border:1px solid #dfe5d9;background:#fff;border-radius:10px;padding:16px;min-width:0}.subtitle-import{font-size:14px;line-height:1.7;min-width:0}.subtitle-import label{display:block;font-weight:600;margin:12px 0}.subtitle-import input{width:100%;padding:0;border:0}.subtitle-import input::file-selector-button{min-height:44px;padding:8px;border:1px solid #becab3;border-radius:6px;background:#f1f4eb;color:#314d3d;font:inherit}.subtitle-import p{overflow-wrap:anywhere}.subtitle-import>button{width:100%;background:#30513d;color:#fff}.subtitle-preview{max-height:160px;overflow:auto;padding:12px;background:#f0f4ea;white-space:pre-wrap;overflow-wrap:anywhere}@media (max-height:500px) and (orientation:landscape){.watch-screen{display:grid;grid-template-columns:1fr 1fr;gap:8px}.player-frame{height:calc(100dvh - var(--nav-height) - 64px);min-height:0}.learning-panel,.learning-panel.has-explanation{height:100%;margin:0;border-radius:0}.player-controls{gap:4px;padding:6px}.player-controls button{padding:8px;font-size:12px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.eyebrow{font-size:12px;letter-spacing:.08em;color:#687d5a;margin:0 0 8px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.page-heading h1,.input-page h1{margin:0}.page-description{color:#66705f;margin:12px 0 24px}.video-library{list-style:none;padding:0;margin:24px 0;display:grid;gap:16px}.video-card{width:100%;display:flex;align-items:center;text-align:left;gap:16px;padding:12px;border-radius:16px;box-shadow:0 3px 14px #25332908;overflow:hidden}.video-card:hover{border-color:#789565;background:#fbfcf8}.video-card img{width:36%;max-width:200px;aspect-ratio:16/9;object-fit:cover;border-radius:9px;background:#eaf0e3}.video-card-copy{display:flex;flex-direction:column;gap:12px;min-width:0}.video-card-copy strong{font-size:16px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.video-card-copy>span{font-size:12px;color:#687d5a}.library-empty{padding:32px 24px;border:1px solid #dfe5d9;border-radius:16px;background:#fff;text-align:center;margin-top:24px}.library-empty h2{font-size:19px;line-height:1.6}.library-empty p{color:#66705f}.watch-header{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:4px max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left));padding-top:max(4px,env(safe-area-inset-top));border-bottom:1px solid #dfe5da;background:#fff}.watch-header button{flex-shrink:0;font-size:14px}.watch-header>span{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#66705f}.player-controls{justify-content:center;padding:8px 12px 0}.player-controls .playback-toggle{min-height:56px;width:100%;font-size:18px;font-weight:600;border-radius:14px}.learning-panel,.learning-panel.has-explanation{flex:1;height:auto;margin-top:8px}.caption-list{padding-bottom:min(30dvh,180px)}@media (max-height:500px) and (orientation:landscape){.watch-screen{grid-template-rows:auto minmax(0,1fr)}.watch-header{grid-column:1/-1}.player-frame{height:calc(100dvh - var(--nav-height) - 128px);max-height:none;aspect-ratio:auto}.learning-panel,.learning-panel.has-explanation{height:100%;margin:0}.player-controls .playback-toggle{min-height:48px;font-size:16px}}.input-page{display:flex;flex-direction:column;max-width:680px;gap:24px;padding-top:28px;padding-bottom:32px}.input-page .add-page-heading h1{font-size:26px;font-weight:700;letter-spacing:-.04em}.input-page .subtitle-requests{min-width:0}.input-page .reservation-card{padding:24px;background:#fff;border:1px solid #e0e5dc;border-radius:20px;box-shadow:0 4px 24px #25332905}.input-page .reservation-intro{display:flex;align-items:center;gap:12px;margin-bottom:24px}.input-page .add-symbol{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:14px;background:#edf3e7;color:#365640;font-size:26px;font-weight:400}.input-page .reservation-intro h2{margin:0;font-size:17px;line-height:1.5;letter-spacing:-.02em}.input-page .reservation-intro p{margin:4px 0 0;font-size:12px;color:#697266}.input-page .url-form{gap:9px}.input-page .url-form label{font-size:12px;letter-spacing:.02em;color:#52614f;font-weight:600}.input-page .url-form input{border:1px solid #dce3d7;border-radius:11px;background:#f8faf6;min-height:54px;padding:14px;width:100%;color:#253329}.input-page .url-form input::placeholder{color:#778172;font-size:14px}.input-page .url-form input:focus{background:#fff;border-color:#60865f}.input-page .field-error{font-size:12px;color:#963d30;margin:0}.input-page .reserve-button{width:100%;min-height:52px;margin-top:18px;border-radius:11px;display:flex;justify-content:center;align-items:center;gap:16px;font-size:15px;font-weight:600;box-shadow:0 2px 4px #2533290a}.input-page .reserve-button:disabled{background:#e5e9e0;border-color:#e5e9e0;color:#727c6b;opacity:1;box-shadow:none}.input-page .reservation-hint{margin:12px 0 0;text-align:center;font-size:11px;color:#697266;line-height:1.7}.input-page .local-connection{margin:14px 0 0;border:1px solid #dfe5d9;border-radius:12px;background:#f2f5ee}.input-page .local-connection summary{min-height:48px;display:flex;align-items:center;gap:9px;padding:10px 14px;list-style:none;font-size:12px;cursor:pointer}.input-page .local-connection summary::-webkit-details-marker{display:none}.input-page .connection-indicator{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#8a957f}.input-page .connection-connected .connection-indicator{background:#448151}.input-page .connection-error{border-color:#e7c8bf;background:#fff7f2}.input-page .connection-error .connection-indicator{background:#ad543d}.input-page .connection-label{margin-left:auto;color:#52614f;font-weight:600}.input-page .connection-error .connection-label{color:#963d30}.input-page .disclosure-chevron{font-size:16px;color:#697266;transition:transform .15s}.input-page details[open] .disclosure-chevron{transform:rotate(180deg)}.input-page .connection-details{padding:0 14px 14px;border-top:1px solid #e0e5d9}.input-page .connection-details p{font-size:12px;overflow-wrap:anywhere;color:#58664f}.input-page .connection-details [role=alert]{color:#963d30}.input-page .connection-details button{font-size:12px;background:transparent;min-height:44px}.input-page .queue-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 12px}.input-page .queue-heading h2{display:flex;align-items:center;gap:8px;font-size:16px;margin:0}.input-page .queue-count{display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;background:#e7ecdf;border-radius:8px;font-size:11px;font-weight:600;color:#52614f}.input-page .queue-refresh{font-size:12px;padding:8px 4px;color:#62705b}.input-page .queue-refresh>span{font-size:17px;vertical-align:middle;margin-right:3px}.input-page .request-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}.input-page .request-card{min-width:0;overflow:hidden;background:#fff;border:1px solid #e0e5dc;border-radius:16px}.input-page .request-card-main{display:flex;gap:14px;align-items:center;padding:16px}.input-page .request-card-main>img{width:112px;max-width:36%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:#e8eddf;flex-shrink:0}.input-page .request-card-info{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}.input-page .request-status{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;line-height:1.5;padding:3px 8px;border-radius:6px;background:#f5eedb;color:#785d20}.input-page .status-running{background:#e9effb;color:#3a5c8a}.input-page .status-completed{background:#edf3e7;color:#365640}.input-page .status-failed{background:#faeae4;color:#963d30}.input-page .request-card-info>a{font-size:14px;font-weight:600;line-height:1.5;text-decoration:none;overflow-wrap:anywhere;min-height:44px;display:flex;align-items:center;gap:8px}.input-page .request-card-info>a>span{font-size:12px;color:#778172}.input-page .request-card-info time{font-size:10px;color:#697266;font-variant-numeric:tabular-nums}.input-page .request-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:10px 14px;background:#fbfcf9;border-top:1px solid #edf0e8;flex-wrap:wrap}.input-page .request-card-actions>span{flex:1;min-width:100px;font-size:11px;color:#697266;line-height:1.6}.input-page .request-card-actions>button{font-size:12px;min-height:44px;border-radius:8px;flex-shrink:0}.input-page .request-error{font-size:12px;color:#963d30;margin:0;padding:0 16px 14px;overflow-wrap:anywhere}.input-page .queue-feedback{font-size:13px;line-height:1.8;border:1px solid #dfe5d9;border-radius:12px;background:#fff;padding:12px 16px;margin:0 0 14px;overflow-wrap:anywhere}.input-page .feedback-success{background:#edf3e7;border-color:#dae5ce;color:#365640}.input-page .feedback-error{background:#fff4ee;border-color:#e7c8bf;color:#963d30}.input-page .queue-empty{padding:30px 16px;text-align:center;border:1px dashed #d6dfcd;border-radius:16px;background:#f9faf6}.input-page .queue-empty>span:first-child{display:grid;place-items:center;width:40px;height:40px;margin:auto;border:1px solid #dfe5d9;border-radius:50%;font-size:22px;color:#87957a}.input-page .queue-empty p{font-size:13px;font-weight:600;margin:14px 0 6px}.input-page .queue-empty>span:last-child{font-size:12px;color:#697266;line-height:1.8}.input-page .queue-update-note{text-align:center;font-size:10px;color:#697266;margin:14px 0 0}.input-page .manual-import{border-top:1px solid #e0e5dc}.input-page .manual-import>summary{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:12px 0;list-style:none;font-size:12px;color:#62705b;cursor:pointer}.input-page .manual-import>summary::-webkit-details-marker{display:none}.input-page .manual-import>summary:after{content:"＋";font-size:17px}.input-page .manual-import[open]>summary:after{content:"−"}.input-page .manual-import .import-panel{border-radius:14px}@media (max-width:360px){.input-page .reservation-card{padding:18px}.input-page .request-card-main{padding:12px;gap:10px}.input-page .reservation-intro h2{font-size:15px}}
