:root { color-scheme: light; --ink:#14213d; --muted:#65708a; --paper:#f7f5ef; --card:#fff; --accent:#ec6a35; --line:#dedbd2; }
/* Final character art may use a transparent background; preserve the full silhouette. */
.times-ai-character-grid img{object-fit:contain!important;object-position:center top;background:#f4f6fa}.times-ai-fab img,.times-ai-character-identity img,.times-ai-message>img{object-fit:contain!important;object-position:center;background:#f4f6fa}
.times-loading-overlay[hidden] { display:none; }
.times-loading-overlay { position:fixed; inset:0; z-index:9999; display:grid; place-items:center; padding:20px; background:rgba(20,33,61,.35); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.times-loading-card { display:grid; justify-items:center; min-width:180px; padding:25px 28px; border:1px solid #e6ded2; border-radius:18px; background:#fffdf9; box-shadow:0 24px 60px rgba(7,21,45,.22); color:var(--ink); }
.times-loading-card strong { margin-top:13px; font:700 22px Georgia,serif; }
.times-loading-card small { margin-top:5px; color:var(--muted); }
.times-loading-spinner { width:38px; height:38px; border:4px solid #f6d6c7; border-top-color:var(--accent); border-radius:50%; animation:times-loading-spin .72s linear infinite; }
@keyframes times-loading-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .times-loading-spinner { animation-duration:1.5s; } }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter, "Noto Sans KR", system-ui, sans-serif; }
a { color:inherit; }
.times-header { position:sticky; top:0; z-index:1000; min-height:72px; padding:0 max(24px, calc((100vw - 1180px)/2)); display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); background:rgba(247,245,239,.96); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.times-header-navigation { display:flex; align-items:center; gap:18px; }
.times-brand { font-family:Georgia,serif; font-weight:800; font-size:24px; letter-spacing:.14em; text-decoration:none; }
.times-enie-logo{display:flex;width:96px;height:48px;align-items:center;justify-content:flex-start;line-height:1}.times-enie-logo img{display:block!important;width:92px;height:46px;object-fit:contain;object-position:left center}
.times-header span { color:var(--muted); font-size:14px; text-decoration:none; }
.swal2-container .times-swal-popup { width:min(430px,calc(100vw - 28px)); padding:28px 26px 24px; border:1px solid #e4ded2; border-radius:18px; background:#fffdf9; box-shadow:0 24px 60px rgba(20,33,61,.2); color:var(--ink); }
.swal2-container .times-swal-title { padding:0; color:var(--ink); font:800 28px/1.2 Georgia,serif; }
.swal2-container .times-swal-popup .swal2-html-container { margin:12px 4px 0; color:var(--muted); font-size:15px; line-height:1.6; }
.swal2-container .times-swal-popup .swal2-actions { width:100%; margin:24px 0 0; gap:10px; }
.swal2-container .times-swal-confirm,.swal2-container .times-swal-cancel { min-width:112px; min-height:44px; padding:0 18px; border:1px solid transparent; border-radius:10px; font:800 14px/1 inherit; cursor:pointer; }
.swal2-container .times-swal-confirm { background:var(--accent); color:#fff; box-shadow:0 7px 16px rgba(236,106,53,.22); }
.swal2-container .times-swal-confirm:hover { background:#d85b2a; }
.swal2-container .times-swal-cancel { border-color:#d7d2c8; background:#fff; color:var(--ink); }
.swal2-container .times-swal-cancel:hover { border-color:#bcb5a8; background:#f7f4ed; }
.swal2-container .times-swal-confirm:focus-visible,.swal2-container .times-swal-cancel:focus-visible { outline:3px solid rgba(236,106,53,.24); outline-offset:2px; }
@media(max-width:620px){.times-header{min-height:60px;padding-left:12px;padding-right:12px;gap:10px}.times-header-navigation{gap:12px}}
.times-shell,.times-article-shell { width:min(1180px, calc(100% - 40px)); margin:0 auto; padding:64px 0 88px; }
.times-intro { max-width:790px; margin-bottom:42px; }
.times-kicker { color:var(--accent); font-weight:800; letter-spacing:.15em; font-size:12px; }
.times-intro h1,.times-article-heading h1 { font-family:Georgia,"Times New Roman",serif; line-height:1.06; margin:10px 0 18px; }
.times-intro h1 { font-size:clamp(40px,6vw,72px); }
.times-intro > p:last-child { color:var(--muted); font-size:18px; line-height:1.7; }
.times-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.times-card { background:var(--card); border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 14px 40px rgba(20,33,61,.06); }
.times-card-image { display:block; aspect-ratio:16/9; background:#e7e2d8; overflow:hidden; }
.times-card-image img,.times-hero-image img { width:100%; height:100%; object-fit:cover; display:block; }
.times-card-body { padding:24px; }
.times-meta { display:flex; gap:10px 14px; flex-wrap:wrap; align-items:center; color:var(--muted); font-size:13px; }
.times-badge { display:inline-flex; border-radius:999px; padding:6px 10px; background:var(--ink); color:#fff; font-weight:800; letter-spacing:.05em; }
.times-card h2 { font-family:Georgia,serif; font-size:28px; line-height:1.18; margin:16px 0 10px; }
.times-card h2 a { text-decoration:none; }
.times-title-ko { color:var(--muted); min-height:48px; line-height:1.55; }
.times-detail-link { display:inline-block; margin-top:10px; color:var(--accent); font-weight:800; text-decoration:none; }
.times-article-shell { width:min(900px, calc(100% - 40px)); }
.times-article-heading { margin-bottom:36px; }
.times-article-heading h1 { font-size:clamp(42px,7vw,78px); max-width:880px; }
.times-article-title-ko { color:var(--muted); font-size:21px; line-height:1.55; }
.times-hero-image { aspect-ratio:16/9; margin:0 0 48px; overflow:hidden; border-radius:22px; background:#e7e2d8; }
.times-copy { max-width:740px; margin:0 auto 48px; }
.times-copy h2,.times-panel h2 { font-family:Georgia,serif; font-size:29px; }
.times-copy p { font-family:Georgia,"Noto Serif KR",serif; font-size:20px; line-height:1.9; }
.times-translation { padding-top:32px; border-top:1px solid var(--line); color:#29334c; }
.times-panel { padding:28px; margin:24px 0; border:1px solid var(--line); border-radius:16px; background:var(--card); }
.times-word-list { columns:2; margin:0; padding-left:20px; }
.times-word-list li { break-inside:avoid; margin:0 24px 12px 0; line-height:1.5; }
.times-word-list span { display:block; color:var(--muted); }
.times-note { color:var(--muted); font-size:14px; }
.times-reference-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.times-preline { white-space:pre-line; line-height:1.7; }
@media (max-width:720px) { .times-grid,.times-reference-grid { grid-template-columns:1fr; } .times-word-list { columns:1; } .times-header span { display:none; } .times-shell,.times-article-shell { padding-top:40px; } }
.times-auth-page { min-height:100vh; background:linear-gradient(135deg,#14213d 0 50%,#f7f5ef 50%); }
.times-login-shell { width:min(1080px,calc(100% - 40px)); min-height:100vh; margin:auto; display:grid; grid-template-columns:1fr 440px; align-items:center; gap:80px; }
.times-login-story { color:#fff; }
.times-login-story .times-brand { display:inline-block; margin-bottom:80px; }
.times-login-story h1 { max-width:600px; margin:14px 0 20px; font:700 clamp(44px,6vw,78px)/1.02 Georgia,serif; }
.times-login-story > p:last-child { max-width:530px; color:#c7cde0; font-size:18px; line-height:1.7; }
.times-login-card { padding:38px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.18); }
.times-login-card h2 { margin:8px 0 24px; font:700 36px/1.1 Georgia,serif; }
.times-form { display:grid; gap:10px; }
.times-form label { margin-top:8px; font-size:13px; font-weight:800; }
.times-form input { width:100%; padding:14px 15px; border:1px solid #cfd2da; border-radius:10px; background:#fff; color:var(--ink); font:inherit; }
.times-form input:focus { outline:3px solid rgba(236,106,53,.18); border-color:var(--accent); }
.times-primary-button { display:inline-flex; justify-content:center; align-items:center; width:100%; margin-top:14px; padding:15px 20px; border:0; border-radius:10px; background:var(--accent); color:#fff; font:800 15px/1.2 inherit; text-decoration:none; cursor:pointer; }
.times-alert { margin-bottom:16px; padding:12px 14px; border-radius:9px; background:#fff0eb; color:#a63f18; font-size:14px; }
.times-security-note { margin:18px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.times-login-links { display:flex; align-items:center; gap:10px; margin:18px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.times-login-links a { color:inherit; text-underline-offset:3px; }
.times-login-links a:hover { color:var(--accent); }
.times-account-actions { display:flex; align-items:center; gap:16px; }
.times-account-actions form { margin:0; }
.times-account-actions button { border:0; background:none; color:var(--accent); font-weight:800; cursor:pointer; }
.times-student-shell { width:min(1080px,calc(100% - 40px)); margin:auto; padding:64px 0 90px; }
.times-student-greeting { margin-bottom:36px; }
.times-student-greeting h1 { margin:8px 0; font:700 clamp(40px,5vw,64px)/1.08 Georgia,serif; }
.times-student-greeting > p:last-child { color:var(--muted); font-size:18px; }
.times-today-card { display:grid; grid-template-columns:1.05fr .95fr; overflow:hidden; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:0 20px 50px rgba(20,33,61,.08); }
.times-today-image { min-height:480px; background:#e7e2d8; }
.times-today-image img { width:100%; height:100%; object-fit:cover; display:block; }
.times-today-content { padding:48px; display:flex; flex-direction:column; justify-content:center; }
.times-today-content h2 { margin:18px 0 10px; font:700 40px/1.12 Georgia,serif; }
.times-progress-row { display:flex; justify-content:space-between; margin:28px 0 12px; }
.times-progress-row div { display:grid; gap:5px; }
.times-progress-row span { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.times-progress-track { height:8px; overflow:hidden; border-radius:99px; background:#e6e7eb; }
.times-progress-track span { display:block; height:100%; border-radius:inherit; background:var(--accent); }
.times-learning-shell { width:min(820px,calc(100% - 40px)); margin:auto; padding:70px 0 90px; }
.times-learning-heading h1 { margin:10px 0; font:700 clamp(38px,6vw,62px)/1.06 Georgia,serif; }
.times-learning-heading > p:last-child { color:var(--muted); font-size:18px; }
.times-step-list { display:grid; gap:12px; margin:44px 0 24px; padding:0; list-style:none; }
.times-step-list li { padding:0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#eeece6; color:#8a8f9d; }
.times-step-card-link,.times-step-card-locked { display:flex; width:100%; box-sizing:border-box; align-items:center; gap:18px; padding:20px 22px; color:inherit; text-decoration:none; }
.times-step-card-link { cursor:pointer; transition:transform .15s ease,background .15s ease; }
.times-step-card-link:hover { transform:translateY(-1px); background:rgba(255,255,255,.38); }
.times-step-card-link:focus-visible { outline:3px solid rgba(236,106,53,.35); outline-offset:-3px; }
.times-step-card-locked { cursor:not-allowed; }
.times-step-card-link > span,.times-step-card-locked > span { font:700 22px Georgia,serif; }
.times-step-card-link > div,.times-step-card-locked > div { display:flex; flex:1; justify-content:space-between; align-items:center; }
.times-step-list small { text-transform:uppercase; letter-spacing:.08em; }
.times-step-list .times-step-ready { background:#fff; color:var(--ink); border-color:var(--accent); box-shadow:0 10px 30px rgba(20,33,61,.06); }
.times-step-ready small { color:var(--accent); font-weight:800; }
.times-step-list .times-step-completed { background:#eef8f1; color:#1e6b3c; border-color:#91c9a5; }
.times-step-completed small { color:#1e6b3c; font-weight:800; }
.times-vocabulary-shell,.times-result-shell { width:min(760px,calc(100% - 40px)); margin:auto; padding:64px 0 90px; }
.times-vocabulary-heading { margin-bottom:34px; }
.times-vocabulary-heading h1 { margin:8px 0 12px; font:700 clamp(40px,6vw,64px)/1.05 Georgia,serif; }
.times-vocabulary-heading > p:last-child { color:var(--muted); line-height:1.6; }
.times-quiz-form { display:grid; gap:20px; }
.times-question-card { min-width:0; margin:0; padding:24px 26px 26px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.times-question-heading { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:20px; margin-bottom:22px; }
.times-question-heading span { color:var(--muted); font-size:13px; font-weight:800; letter-spacing:.08em; }
.times-question-heading strong { min-width:0; font:700 32px/1.1 Georgia,serif; text-align:right; overflow-wrap:anywhere; }
.times-question-word{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.times-question-word button{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;border:1px solid #efb092;border-radius:50%;background:#fff7f2;color:var(--accent);cursor:pointer;transition:.15s}.times-question-word button:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}.times-question-word button:focus-visible{outline:3px solid #ec6a3540;outline-offset:2px}.times-question-word button.is-speaking{background:var(--accent);color:#fff;box-shadow:0 0 0 6px #ec6a3525}.times-question-word svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.times-option-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:0; }
.times-option-list label { display:flex; align-items:center; gap:12px; min-height:62px; padding:12px 14px; border:1px solid #d9dbe1; border-radius:11px; cursor:pointer; transition:.15s ease; }
.times-option-list label:hover { border-color:var(--accent); background:#fff8f5; }
.times-option-list input { position:absolute; opacity:0; pointer-events:none; }
.times-option-list label:has(input:checked) { border-color:var(--accent); background:#fff0e9; box-shadow:0 0 0 2px rgba(236,106,53,.14); }
.times-option-marker { display:grid; place-items:center; flex:0 0 30px; height:30px; border-radius:50%; background:#e9eaf0; font-size:13px; font-weight:800; }
.times-option-list label:has(input:checked) .times-option-marker { background:var(--accent); color:#fff; }
.times-submit-button { margin-top:10px; }
.times-result-hero { padding:46px; text-align:center; border-radius:22px; background:var(--ink); color:#fff; }
.times-result-hero h1 { margin:8px 0; font:700 82px/1 Georgia,serif; }
.times-result-hero h1 span { color:#9ba4bb; font-size:30px; }
.times-result-hero > p:last-child { margin-bottom:0; color:#c9cfdd; font-size:18px; }
.times-answer-review { display:grid; gap:10px; margin:28px 0; }
.times-answer-review article { display:flex; gap:16px; padding:18px 20px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.times-answer-review p { margin:5px 0 0; color:var(--muted); }
.times-answer-mark { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:50%; font-weight:900; }
.times-answer-correct .times-answer-mark { background:#daf2e2; color:#176b38; }
.times-answer-wrong .times-answer-mark { background:#fde2db; color:#a83e22; }
@media (max-width:800px) { .times-auth-page { background:#14213d; } .times-login-shell { grid-template-columns:1fr; align-content:center; gap:28px; padding:40px 0; } .times-login-story .times-brand { margin-bottom:30px; } .times-login-story h1 { font-size:46px; } .times-today-card { grid-template-columns:1fr; } .times-today-image { min-height:260px; } .times-today-content { padding:30px; } .times-account-actions > span { display:none; } }
@media (max-width:620px) { .times-option-list { grid-template-columns:1fr; } .times-question-card{padding:18px 16px}.times-question-heading{grid-template-columns:1fr;gap:8px;margin-bottom:18px}.times-question-heading strong{text-align:left;font-size:27px}.times-question-word{justify-content:space-between}.times-question-word button{flex-basis:36px;width:36px;height:36px}.times-result-hero { padding:36px 20px; } }
.times-listening-shell { width:min(860px,calc(100% - 40px)); margin:auto; padding:64px 0 90px; }
.times-listening-heading h1 { margin:16px 0 10px; font:700 clamp(42px,6vw,68px)/1.05 Georgia,serif; }
.times-listening-heading > p:last-child { color:var(--muted); font-size:19px; }
.times-listening-image { aspect-ratio:16/9; margin:34px 0; overflow:hidden; border-radius:20px; background:#e7e2d8; }
.times-listening-image img { width:100%; height:100%; object-fit:cover; display:block; }
.times-audio-panel { display:grid; gap:18px; margin:0 0 40px; padding:26px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.times-audio-panel h2 { margin:5px 0; font:700 24px/1.2 Georgia,serif; }
.times-audio-panel p:last-child { margin-bottom:0; color:var(--muted); }
.times-audio-player { display:grid; grid-template-columns:52px 44px minmax(100px,1fr) 44px 40px 70px; align-items:center; gap:12px; padding:13px 16px; border:1px solid #e4e0d7; border-radius:999px; background:#f4f2ed; box-shadow:inset 0 1px 0 rgba(255,255,255,.9); }
.times-audio-player audio { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.times-audio-play,.times-audio-volume { display:grid; place-items:center; padding:0; border:0; cursor:pointer; }
.times-audio-play { width:48px; height:48px; border-radius:50%; background:var(--accent); color:#fff; font-size:17px; box-shadow:0 8px 18px rgba(236,106,53,.25); }
.times-audio-play:hover { background:#d85b2a; transform:translateY(-1px); }
.times-audio-play:focus-visible,.times-audio-volume:focus-visible,.times-audio-range:focus-visible { outline:3px solid rgba(236,106,53,.28); outline-offset:3px; }
.times-audio-volume { width:40px; height:40px; border-radius:50%; background:transparent; color:var(--muted); }
.times-audio-volume:hover { background:#fff; }
.times-audio-volume svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.times-audio-volume.is-muted { color:#a7a9ad; opacity:.55; }
.times-audio-speed { position:relative; display:inline-flex; flex:0 0 auto; }
.times-speed-trigger { display:flex; align-items:center; justify-content:space-between; width:76px; min-height:40px; padding:0 10px 0 13px; border:1px solid #d7d2c8; border-radius:10px; background:#fff; box-shadow:0 2px 8px rgba(20,33,61,.07); color:var(--ink); font:800 13px/1 inherit; cursor:pointer; transition:border-color .16s ease,box-shadow .16s ease,background .16s ease; }
.times-speed-trigger svg { width:15px; height:15px; fill:none; stroke:var(--accent); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .18s ease; }
.times-audio-speed.is-open .times-speed-trigger svg { transform:rotate(180deg); }
.times-speed-trigger:hover { border-color:#ef9b78; background:#fffaf7; }
.times-speed-trigger:focus-visible { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(236,106,53,.18); }
.times-speed-menu { position:absolute; right:0; top:calc(100% + 8px); z-index:30; width:116px; padding:6px; border:1px solid #e1ddd4; border-radius:12px; background:#fff; box-shadow:0 14px 30px rgba(20,33,61,.18); }
.times-speed-menu[hidden] { display:none; }
.times-speed-menu button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:38px; padding:0 10px; border:0; border-radius:8px; background:transparent; color:var(--ink); font:750 13px/1 inherit; cursor:pointer; }
.times-speed-menu button:hover,.times-speed-menu button:focus-visible { outline:none; background:#fff2eb; color:#bd471b; }
.times-speed-menu button[aria-selected="true"] { background:var(--accent); color:#fff; }
.times-speed-menu button span { font-size:12px; }
.times-sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.times-audio-time { color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; text-align:center; }
.times-audio-range { --times-audio-progress:0%; width:100%; height:6px; margin:0; border-radius:999px; background:linear-gradient(to right,var(--accent) 0 var(--times-audio-progress),#cfd1d3 var(--times-audio-progress) 100%); appearance:none; cursor:pointer; }
.times-audio-range::-webkit-slider-thumb { width:17px; height:17px; border:3px solid #fff; border-radius:50%; background:var(--accent); box-shadow:0 2px 7px rgba(20,33,61,.24); appearance:none; }
.times-audio-range::-moz-range-thumb { width:12px; height:12px; border:3px solid #fff; border-radius:50%; background:var(--accent); box-shadow:0 2px 7px rgba(20,33,61,.24); }
.times-audio-unavailable { padding:16px 18px; border-radius:10px; background:#fff3e9; color:#8d451f; line-height:1.55; }
.times-listening-copy { max-width:740px; margin:0 auto; }
.times-listening-copy h2 { font:700 31px/1.2 Georgia,serif; }
.times-listening-copy p { font:20px/1.9 Georgia,"Noto Serif KR",serif; }
.times-translation-toggle { max-width:740px; margin:38px auto; padding:20px 24px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.times-translation-toggle summary { color:var(--accent); font-weight:800; cursor:pointer; }
.times-translation-toggle div { padding-top:16px; color:#29334c; line-height:1.85; }
.times-listening-complete { max-width:740px; margin:38px auto 0; }
.times-video-shell,.times-placeholder-shell { width:min(860px,calc(100% - 40px)); margin:auto; padding:64px 0 90px; }
.times-video-heading h1,.times-placeholder-shell h1 { margin:16px 0 10px; font:700 clamp(42px,6vw,68px)/1.05 Georgia,serif; }
.times-video-heading > p:last-child,.times-placeholder-shell > p:last-child { color:var(--muted); font-size:19px; }
.times-video-panel { margin:34px 0; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:#fff; }
.times-video-panel video { display:block; width:100%; aspect-ratio:16/9; background:#111; }
.times-video-unavailable { min-height:300px; padding:40px; display:grid; place-content:center; gap:10px; text-align:center; background:#ede9df; }
.times-video-unavailable strong { font-size:24px; }
.times-video-unavailable p { margin:0; color:var(--muted); line-height:1.6; }
.times-video-unavailable span { color:var(--muted); font-size:13px; letter-spacing:.08em; }
.times-link-button { border:0; background:none; color:var(--accent); font:800 14px/1 inherit; cursor:pointer; }
.times-placeholder-shell { min-height:calc(100vh - 72px); display:flex; flex-direction:column; justify-content:center; }
.times-sentence-shell { width:min(900px,calc(100% - 40px)); margin:auto; padding:64px 0 90px; }
.times-sentence-heading h1 { margin:10px 0; font:700 clamp(40px,6vw,64px)/1.05 Georgia,serif; }
.times-sentence-heading > p:last-child { color:var(--muted); font-size:18px; }
.times-sentence-form { display:grid; gap:22px; margin-top:38px; }
.times-sentence-card { padding:26px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.times-sentence-card h2 { margin:22px 0 10px; color:var(--muted); font-size:12px; letter-spacing:.14em; }
.times-sentence-count { color:var(--accent); font-weight:800; }
.times-sentence-card-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.times-sentence-listen { display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:8px 14px; border:1px solid #f0b79e; border-radius:999px; background:#fff8f3; color:var(--accent); font:800 13px/1 Inter,"Noto Sans KR",system-ui,sans-serif; cursor:pointer; }
.times-sentence-listen:hover { background:#fff0e7; }
.times-sentence-listen:focus-visible { outline:3px solid rgba(236,106,53,.25); outline-offset:2px; }
.times-sentence-listen svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.times-sentence-listen.is-speaking { background:var(--accent); color:#fff; }
.times-sentence-listen.is-speaking svg { animation:times-sentence-pulse .8s ease-in-out infinite alternate; }
@keyframes times-sentence-pulse { to { transform:scale(1.15); } }
.times-token-zone { min-height:68px; padding:12px; display:flex; flex-wrap:wrap; align-items:center; gap:9px; border:1px dashed #c6c8cf; border-radius:12px; background:#faf9f5; }
.times-answer-zone { border-style:solid; border-color:#9da5b7; background:#fff; }
.times-token { padding:10px 13px; border:1px solid #cdd0d8; border-radius:9px; background:#fff; color:var(--ink); font:700 15px/1 inherit; cursor:pointer; }
.times-answer-zone .times-token { border-color:var(--accent); background:#fff0e9; }
.times-answer-placeholder { color:#959aa6; font-size:14px; }
.times-reset-button { margin-top:12px; padding:8px 0; border:0; background:none; color:var(--accent); font-weight:800; cursor:pointer; }
.times-speaking-shell { width:min(900px,calc(100% - 40px)); margin:auto; padding:64px 0 90px; }
.times-speaking-heading h1 { margin:10px 0; font:700 clamp(40px,6vw,64px)/1.05 Georgia,serif; }
.times-speaking-heading > p { color:var(--muted); }
.times-mic-notice { margin:24px 0; padding:14px 16px; border-radius:10px; background:#fff3e9; color:#82421f; }
.times-speaking-card { margin:18px 0; padding:26px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.times-speaking-card > span { color:var(--accent); font-weight:800; }
.times-speaking-card h2 { font:700 26px/1.4 Georgia,serif; }
.times-recording-status { margin:14px 0; color:var(--muted); }
.times-recording-actions { display:flex; gap:10px; flex-wrap:wrap; }
.times-recording-actions button { padding:10px 15px; border:1px solid #cfd2da; border-radius:9px; background:#fff; color:var(--ink); font-weight:800; cursor:pointer; }
.times-recording-actions button:disabled { opacity:.45; cursor:not-allowed; }
.times-speaking-card audio { width:100%; margin-top:18px; }
.times-speaking-review { margin:28px 0; }
.times-speaking-review article { display:grid; gap:12px; padding:20px; margin:12px 0; border:1px solid var(--line); border-radius:13px; background:#fff; }
.times-speaking-review audio { width:100%; }
.times-complete-banner { padding:16px; border-radius:12px; background:#eef8f1; color:#1e6b3c; font-weight:900; text-align:center; }
.times-teacher-shell,.times-teacher-detail { width:min(1180px,calc(100% - 40px)); margin:auto; padding:54px 0 90px; }
.times-teacher-heading h1,.times-detail-hero h1 { margin:8px 0; font:700 clamp(40px,6vw,64px)/1.05 Georgia,serif; }
.times-teacher-heading>p:last-child,.times-detail-hero>p { color:var(--muted); }
.times-teacher-list { display:grid; gap:16px; margin-top:34px; }
.times-student-row { display:grid; grid-template-columns:170px 1.5fr 2fr 130px; gap:24px; align-items:center; padding:24px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.times-student-row h2 { margin:10px 0 3px; font:700 24px Georgia,serif; }.times-student-row p { margin:0;color:var(--muted); }
.times-teacher-article { display:grid; gap:6px; }.times-teacher-article small { color:var(--accent);font-weight:900; }.times-teacher-article span { color:var(--muted);font-size:13px; }
.times-mini-steps { display:flex;gap:6px;flex-wrap:wrap; }.times-mini-step { padding:7px 8px;border-radius:7px;background:#eee;color:#777;font-size:10px; }.times-mini-step b { display:block;margin-top:3px;font-size:9px; }
.times-status-completed { background:#e2f3e8;color:#176b38; }.times-status-in_progress,.times-status-ready { background:#fff0e9;color:#a34b28; }
.times-row-progress { display:grid;gap:7px;text-align:right; }.times-row-progress strong { font:700 30px Georgia,serif; }.times-row-progress span { color:var(--muted);font-size:12px; }.times-row-progress a { color:var(--accent);font-weight:800; }
.times-empty { padding:50px;text-align:center;border:1px solid var(--line);border-radius:16px;background:#fff; }
.times-detail-hero { padding:34px;border-radius:18px;background:#fff;border:1px solid var(--line); }.times-detail-hero h2 { margin-top:28px;font:700 25px Georgia,serif; }.times-detail-hero .times-progress-track { margin:20px 0 10px; }
.times-result-grid { display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:20px 0; }.times-result-grid article { padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff; }.times-result-grid span,.times-result-grid strong { display:block; }.times-result-grid span { color:var(--muted);font-size:11px;font-weight:800; }.times-result-grid strong { margin-top:8px; }.times-result-grid p { font-size:13px;color:var(--muted); }
.times-teacher-recordings,.times-feedback-panel { margin-top:20px;padding:26px;border:1px solid var(--line);border-radius:16px;background:#fff; }.times-teacher-recordings article { padding:14px 0;border-top:1px solid var(--line); }.times-teacher-recordings audio { width:100%; }.times-feedback-panel textarea { box-sizing:border-box;width:100%;margin:14px 0;padding:14px;border:1px solid #cfd2da;border-radius:10px;font:inherit; }.times-save-message { color:#176b38;font-weight:800; }
.times-teacher-ai-history{margin-top:20px;padding:26px;border:1px solid var(--line);border-radius:16px;background:#fff}.times-teacher-ai-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.times-teacher-ai-heading h2{margin:5px 0 0;font:700 27px Georgia,serif}.times-teacher-ai-heading>span{color:var(--muted);font-size:13px}.times-teacher-ai-list{display:grid;gap:10px;max-height:620px;margin-top:20px;padding:16px;overflow:auto;border-radius:12px;background:#f7f5ef}.times-teacher-ai-list article{max-width:82%;padding:12px 14px;border-radius:14px;background:#fff;box-shadow:0 2px 8px #14213d12}.times-teacher-ai-list article.is-user{justify-self:end;background:var(--ink);color:#fff}.times-teacher-ai-list article.is-assistant{justify-self:start}.times-teacher-ai-list article header{display:flex;justify-content:space-between;gap:16px;font-size:12px}.times-teacher-ai-list article time,.times-teacher-ai-list article small{opacity:.68}.times-teacher-ai-list article p{margin:8px 0;line-height:1.55;white-space:pre-wrap}.times-teacher-ai-list article small{display:block;font-size:11px}.times-teacher-ai-empty{margin:20px 0 0;color:var(--muted)}
.times-ai-chat-count{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:999px;background:#fff0e8;color:#b9471c!important;font-size:11px!important;font-weight:800}
@media(max-width:900px){.times-student-row{grid-template-columns:1fr}.times-row-progress{text-align:left}.times-result-grid{grid-template-columns:1fr 1fr}}
.times-carousel{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:14px;align-items:center}.times-carousel-viewport{overflow:hidden;touch-action:pan-y;cursor:grab}.times-carousel-viewport:active{cursor:grabbing}.times-carousel-track{display:flex;transition:transform .35s ease;user-select:none}.times-carousel-track.is-dragging{transition:none}.times-carousel-card{flex:0 0 100%;margin:0}.times-carousel-card img{-webkit-user-drag:none}.times-carousel-arrow{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:32px;cursor:pointer;z-index:2}.times-carousel-dots{display:flex;justify-content:center;gap:8px;margin:22px}.times-carousel-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#b9bbc1}.times-carousel-dots button.active{width:24px;border-radius:5px;background:var(--accent)}.times-card-feedback{margin-top:18px;padding:14px;border-radius:10px;background:#f4f1e9}.times-card-feedback p{margin:6px 0 0}.times-reset-form{display:flex;justify-content:flex-end}.times-reset-form button{padding:9px 13px;border:1px solid #cfd2da;border-radius:9px;background:#fff;color:#8a3f28;font-weight:800;cursor:pointer}
@media(max-width:800px){.times-carousel{grid-template-columns:38px minmax(0,1fr) 38px;gap:8px}.times-carousel-arrow{width:38px;height:38px;font-size:27px}.times-carousel-card{grid-template-columns:1fr}.times-carousel-card .times-today-image{min-height:0;height:320px}.times-carousel-card .times-today-image img{object-fit:cover;object-position:center}.times-carousel-card .times-today-content{padding:26px 28px}.times-carousel-card .times-today-content h2{margin:10px 0;font-size:clamp(29px,5.5vw,40px);line-height:1.08}.times-carousel-card .times-title-ko{margin:8px 0 16px;line-height:1.45}.times-carousel-card .times-progress-row{margin-top:18px}.times-card-feedback{margin-top:14px}}
@media(max-width:620px){.times-student-shell{width:min(100% - 24px,1100px);padding-top:38px}.times-student-greeting{margin-bottom:24px}.times-student-greeting h1{font-size:42px}.times-carousel{position:relative;display:block}.times-carousel-track{align-items:flex-start}.times-carousel-arrow{position:absolute;top:142px}.times-carousel-arrow[data-prev]{left:8px}.times-carousel-arrow[data-next]{right:8px}.times-carousel-card{align-self:flex-start;grid-template-rows:300px auto;height:auto}.times-carousel-card .times-today-image{height:300px}.times-carousel-card .times-today-content{justify-content:flex-start;align-self:start;padding:12px 18px 16px}.times-carousel-card .times-today-content>.times-kicker{margin:0 0 7px}.times-carousel-card .times-today-content h2{margin:7px 0 5px;font-size:30px}.times-carousel-card .times-meta{margin-bottom:3px}.times-carousel-card .times-title-ko{min-height:0;margin:5px 0 9px;line-height:1.4}.times-carousel-card .times-progress-row{gap:12px;margin:10px 0 7px}.times-carousel-card .times-primary-button{margin-top:12px}.times-carousel-dots{margin:14px 0}}
@media(max-width:620px){.times-carousel-viewport{transition:height .2s ease}}
.times-speaking-single{min-height:480px}.times-live-result{margin:22px 0;padding:18px;border-radius:12px;background:#f4f1e9}.times-live-result small{color:var(--muted);font-weight:800}.times-live-result p{min-height:28px;line-height:1.55}.times-live-result strong{color:var(--accent);white-space:nowrap}.times-match-row{display:flex;align-items:center;gap:16px}.times-match-meter{flex:1;height:8px;overflow:hidden;border-radius:999px;background:#d8d6cf}.times-match-meter span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .16s ease}.times-next-sentence{margin-top:24px}
.times-word-feedback{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 20px;padding:15px;border:1px solid #dedbd2;border-radius:12px;background:#faf9f5}.times-word-feedback span{padding:6px 9px;border-radius:8px;background:#eceae4;color:#777;font-weight:800;transition:background .16s,color .16s,transform .16s}.times-word-feedback span.is-correct{background:#ddf5e5;color:#14733b;transform:translateY(-1px)}.times-word-feedback span.is-wrong{background:#ffe3df;color:#b52c24;text-decoration:underline;text-decoration-thickness:2px}.times-word-feedback span.is-perfect{background:#dcecff;color:#1558a6}.times-word-feedback.is-perfect-sentence{border-color:#82afe8;background:#f3f8ff;box-shadow:0 0 0 3px #dcecff}.times-speaking-signal{display:flex;align-items:center;gap:12px;min-height:42px;margin:12px 0;color:var(--muted)}.times-speaking-signal b{font-size:13px}.times-mic-pulse{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e7e5df;color:#aaa;font-size:10px}.times-voice-bars{display:flex;align-items:center;gap:3px;height:28px}.times-voice-bars i{display:block;width:4px;height:7px;border-radius:4px;background:#aaa}.times-speaking-card.is-listening .times-mic-pulse{background:#fff0e9;color:var(--accent);animation:timesMicPulse 1.15s infinite}.times-speaking-card.is-listening .times-voice-bars i{background:var(--accent);animation:timesVoiceBar .7s ease-in-out infinite alternate}.times-speaking-card.is-listening .times-voice-bars i:nth-child(2),.times-speaking-card.is-listening .times-voice-bars i:nth-child(4){animation-delay:.15s}.times-speaking-card.is-listening .times-voice-bars i:nth-child(3){animation-delay:.3s}.times-speaking-card.is-listening .times-speaking-signal b{color:var(--accent)}.times-speaking-card.has-mic-error .times-mic-pulse{background:#ffe3df;color:#b52c24}.times-speaking-card.has-mic-error .times-speaking-signal b{color:#b52c24}@keyframes timesMicPulse{50%{box-shadow:0 0 0 9px #f2673440}}@keyframes timesVoiceBar{to{height:25px}}
.times-word-feedback span{display:inline-grid;gap:2px;text-decoration:none}.times-word-feedback span::after{content:attr(data-state);font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.06em;opacity:.78}
.times-completion-hero{display:grid;grid-template-columns:280px 1fr;gap:32px;align-items:center;padding:28px;border-radius:20px;background:#fff;border:1px solid var(--line)}.times-completion-hero img{width:100%;height:220px;object-fit:cover;border-radius:14px}.times-completion-hero h1{font:700 38px/1.1 Georgia,serif}.times-completion-hero strong{color:var(--accent);font-size:24px}.times-completion-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0}.times-completion-steps span{display:grid;gap:5px;padding:14px;border-radius:10px;background:#eef8f1;color:#1e6b3c;font-size:12px}.times-completion-steps b{font-size:20px}.times-completion-steps small{font-weight:800}.times-completion-summary{margin:18px 0 24px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#fff}.times-completion-summary p{display:flex;justify-content:space-between;border-bottom:1px solid #eee;padding:10px 0}
.times-admin-shell{width:min(1280px,calc(100% - 40px));margin:auto;padding:50px 0 90px}.times-admin-shell>h1{font:700 52px/1 Georgia,serif}.times-admin-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:30px 0}.times-admin-summary article{padding:20px;border:1px solid var(--line);border-radius:13px;background:#fff}.times-admin-summary span{display:block;color:var(--muted);font-size:12px}.times-admin-summary strong{display:block;margin-top:8px;font:700 34px Georgia,serif}.times-admin-panel{margin:18px 0;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff}.times-admin-panel h2{font:700 26px Georgia,serif}.times-admin-table-wrap{overflow-x:auto}.times-admin-panel table{width:100%;border-collapse:collapse;font-size:13px}.times-admin-panel th,.times-admin-panel td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left}.times-admin-panel th{color:var(--muted);font-size:11px;text-transform:uppercase}.times-admin-panel a{color:var(--accent);font-weight:800}
@media(max-width:800px){.times-completion-hero{grid-template-columns:1fr}.times-completion-steps{grid-template-columns:1fr 1fr}.times-admin-summary{grid-template-columns:1fr 1fr 1fr}}

/* Student responsive, completion and history */
.times-account-actions>a{color:var(--accent);font-size:14px;font-weight:800;text-decoration:none}.times-secondary-button{display:inline-flex;justify-content:center;align-items:center;width:100%;min-height:48px;margin-top:14px;padding:14px 20px;border:1px solid var(--ink);border-radius:10px;background:#fff;color:var(--ink);font:800 15px/1.2 inherit;text-decoration:none;cursor:pointer}.times-card-actions,.times-completion-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.times-card-actions form{margin:0}.times-complete-banner{display:block;text-decoration:none}.times-completion-hero h1{margin:12px 0 6px;overflow-wrap:anywhere}.times-completion-hero>div>p{line-height:1.55}.times-completion-hero time{display:block;color:var(--muted);font-size:13px}.times-completion-score{display:flex;gap:22px;margin:18px 0 6px}.times-completion-score strong{color:var(--accent);font-size:24px}.times-completion-summary h2{font:700 28px Georgia,serif}.times-completion-summary>p{gap:20px}.times-completion-feedback{padding:16px;margin-top:14px;border-radius:10px;background:#f4f1e9}.times-completion-feedback p{margin-bottom:0;line-height:1.6}
.times-history-shell{width:min(960px,calc(100% - 40px));margin:auto;padding:64px 0 90px}.times-history-heading{margin-bottom:32px}.times-history-heading h1{margin:8px 0;font:700 clamp(40px,6vw,64px)/1.06 Georgia,serif}.times-history-heading>p:last-child{color:var(--muted);font-size:18px}.times-history-list{display:grid;gap:16px}.times-history-card{display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff}.times-history-card>img{width:100%;height:100%;min-height:260px;object-fit:cover}.times-history-content{min-width:0;padding:26px}.times-history-content h2{margin:14px 0 7px;font:700 28px/1.15 Georgia,serif;overflow-wrap:anywhere}.times-history-progress{display:flex;justify-content:space-between;margin:20px 0 9px}.times-history-progress strong{color:var(--accent);font-size:13px;letter-spacing:.05em}.times-history-content small{display:block;margin-top:10px;color:var(--muted)}
@media (min-width:621px) and (max-width:1024px){.times-student-shell,.times-learning-shell,.times-vocabulary-shell,.times-listening-shell,.times-video-shell,.times-sentence-shell,.times-speaking-shell,.times-result-shell,.times-history-shell{width:min(100% - 56px,900px);padding-top:48px}.times-carousel-card .times-today-image{height:340px}.times-carousel-card .times-today-content{padding:30px 34px}.times-listening-copy p{font-size:19px;line-height:1.8}.times-step-card-link,.times-step-card-locked{padding:18px 20px}.times-speaking-single{min-height:420px}.times-history-card{grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:620px){.times-enie-logo{display:flex!important;width:82px;height:42px}.times-enie-logo img{display:block!important;width:80px;height:40px}}
@media(max-width:620px){.times-audio-player{grid-template-columns:46px minmax(70px,1fr) 36px 68px;padding:10px 12px;gap:6px}.times-audio-play{width:44px;height:44px}.times-audio-player [data-audio-current],.times-audio-player [data-audio-volume]{display:none}.times-audio-time{font-size:11px}.times-speed-trigger{width:68px;min-height:38px;padding:0 8px 0 10px}.times-speed-menu{right:0;width:108px}}
.times-ai-character[hidden]{display:none}.times-ai-character{flex:1;padding:24px 22px;overflow:auto;background:linear-gradient(180deg,#fffaf2,#fffdf8)}.times-ai-character>small{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.12em}.times-ai-character h3{margin:8px 0 10px;font:700 28px/1.22 Georgia,serif}.times-ai-character>p{margin:0 0 20px;color:var(--muted);line-height:1.5}.times-ai-character-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.times-ai-character-grid button{display:grid;gap:8px;padding:9px;border:2px solid transparent;border-radius:14px;background:#fff;box-shadow:0 5px 16px #14213d12;color:var(--ink);text-align:left;cursor:pointer}.times-ai-character-grid button.is-selected{border-color:var(--accent);background:#fff5e9}.times-ai-character-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.times-ai-character-grid span{display:grid;gap:3px}.times-ai-character-grid small{color:var(--muted);font-size:10px;line-height:1.35}.times-ai-character-save{width:100%;min-height:48px;margin-top:16px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-weight:800;cursor:pointer}.times-ai-character-save:disabled{opacity:.5}.times-ai-character-identity{display:flex!important;align-items:center;gap:10px}.times-ai-character-identity img,.times-ai-message>img{width:34px;height:34px;flex:none;border-radius:50%;object-fit:cover}.times-ai-character-identity span{display:grid;min-width:0;gap:3px}.times-ai-settings{display:flex!important;gap:5px!important}.times-ai-article .times-ai-settings button{padding:6px 7px;border:1px solid #e0b89f;border-radius:999px;background:#fff;color:#7a3d22;font-size:9px;font-weight:800;cursor:pointer}.times-ai-message.assistant,.times-ai-message.error{display:flex;align-items:flex-start;gap:8px;max-width:92%;background:transparent;padding:0}.times-ai-message.assistant>span,.times-ai-message.error>span{padding:11px 13px;border-radius:14px;background:#f1eee6}.times-ai-message.error>span{background:#fff0e9}.times-ai-message.user{display:block}.times-ai-typing>span{display:flex;align-items:center;gap:5px;min-height:42px}.times-ai-typing i{display:block;width:7px;height:7px;border-radius:50%;background:#8991a2;animation:times-ai-dot 1s ease-in-out infinite}.times-ai-typing i:nth-child(2){animation-delay:.14s}.times-ai-typing i:nth-child(3){animation-delay:.28s}
/* Times AI Friend */
.times-ai{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:1200}.times-ai-fab{position:relative;display:block;width:84px;height:84px;padding:0;overflow:hidden;border:3px solid #fff;border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 14px 35px #0b1b3c45;cursor:pointer}.times-ai-fab img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 43%;transform:scale(1.08)}.times-ai-fab b{position:absolute;right:5px;bottom:5px;left:5px;padding:4px 2px;border-radius:999px;background:#14213de8;color:#fff;font-size:8px;letter-spacing:.08em}.times-ai-panel{position:absolute;right:0;bottom:98px;display:flex;flex-direction:column;width:min(390px,calc(100vw - 32px));height:min(650px,calc(100vh - 140px));overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fffdf8;box-shadow:0 24px 70px #0b1b3c38;opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s}.times-ai.is-open .times-ai-panel{opacity:1;pointer-events:auto;transform:none}.times-ai-panel>header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--ink);color:#fff}.times-ai-panel h2{margin:2px 0 0;font:700 24px Georgia,serif}.times-ai-panel header small{color:#ffab78;font-weight:800}.times-ai-panel header button{border:0;background:none;color:#fff;font-size:30px;cursor:pointer}.times-ai-article{display:grid;gap:5px;padding:15px 18px;border-bottom:1px solid var(--line);background:#fff5e9}.times-ai-article small{color:var(--accent);font-weight:800}.times-ai-article strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.times-ai-messages{flex:1;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:16px}.times-ai-message{max-width:85%;padding:11px 13px;border-radius:14px;background:#f1eee6;line-height:1.5;white-space:pre-wrap}.times-ai-message.user{align-self:flex-end;background:var(--ink);color:#fff}.times-ai-message.error{background:#fff0e9;color:#943b1e}.times-ai-suggestions{display:flex;gap:7px;overflow-x:auto;padding:0 16px 12px}.times-ai-suggestions button{flex:none;padding:8px 10px;border:1px solid #e0b89f;border-radius:999px;background:#fff;color:#7a3d22;cursor:pointer}.times-ai-form{display:grid;grid-template-columns:1fr 48px;gap:8px;padding:12px 16px 6px;border-top:1px solid var(--line)}.times-ai-form textarea{resize:none;padding:11px;border:1px solid #cfd2da;border-radius:10px;font:inherit}.times-ai-form button{border:0;border-radius:10px;background:var(--accent);color:#fff;font-size:20px;cursor:pointer}.times-ai-form button:disabled{opacity:.5}.times-ai-status{min-height:20px;margin:0;padding:0 16px 10px;color:var(--muted);font-size:12px}.times-ai-backdrop{display:none}
@media(max-width:620px){.times-ai{right:16px;bottom:max(20px,env(safe-area-inset-bottom))}.times-ai-fab{width:64px;height:64px}.times-ai-panel{position:fixed;inset:auto 0 0;width:100%;height:min(82vh,720px);border-radius:22px 22px 0 0;transform:translateY(100%)}.times-ai.is-open .times-ai-panel{transform:none}.times-ai-backdrop{position:fixed;inset:0;background:#07152d66}.times-ai.is-open .times-ai-backdrop{display:block}}
.times-ai-typing{display:flex;align-items:center;gap:5px;width:max-content;min-height:42px;padding:13px 16px}.times-ai-typing span{width:7px;height:7px;border-radius:50%;background:#8991a2;animation:times-ai-dot 1s ease-in-out infinite}.times-ai-typing span:nth-child(2){animation-delay:.14s}.times-ai-typing span:nth-child(3){animation-delay:.28s}@keyframes times-ai-dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}@media(prefers-reduced-motion:reduce){.times-ai-typing span{animation:none;opacity:.75}}
.times-ai-chat{display:flex;flex:1;min-height:0;flex-direction:column}.times-ai-chat[hidden],.times-ai-persona[hidden]{display:none}.times-ai-chat .times-ai-article{grid-template-columns:minmax(0,1fr) auto;align-items:center}.times-ai-article>div{display:grid;min-width:0;gap:5px}.times-ai-article [data-persona-change]{padding:7px 9px;border:1px solid #e0b89f;border-radius:999px;background:#fff;color:#7a3d22;font-size:11px;font-weight:800;cursor:pointer}.times-ai-persona{flex:1;padding:24px 22px;overflow:auto;background:linear-gradient(180deg,#fffaf2,#fffdf8)}.times-ai-persona-progress{display:flex;gap:7px;margin-bottom:28px}.times-ai-persona-progress span{width:34px;height:5px;border-radius:99px;background:#e8dfd2}.times-ai-persona-progress span.is-active{background:var(--accent)}.times-ai-persona small{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.12em}.times-ai-persona h3{margin:8px 0 10px;font:700 28px/1.22 Georgia,serif;color:var(--ink)}.times-ai-persona p{margin:0 0 22px;color:var(--muted);line-height:1.55}.times-ai-persona-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.times-ai-persona-options button,.times-ai-persona-actions button,.times-ai-persona-back{min-height:48px;padding:12px;border:1px solid #dccbbb;border-radius:12px;background:#fff;color:var(--ink);font:800 14px inherit;cursor:pointer}.times-ai-persona-options button:hover,.times-ai-persona-options button:focus-visible{border-color:var(--accent);background:#fff4e9;color:#9a421f}.times-ai-persona-options button:last-child:nth-child(odd){grid-column:1/-1}.times-ai-persona-tones{grid-template-columns:1fr}.times-ai-persona-back{margin-top:14px;border:0;background:transparent;color:var(--muted);font-size:12px}.times-ai-persona-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin-top:28px}.times-ai-persona-actions .is-primary{border-color:var(--accent);background:var(--accent);color:#fff}.times-ai-persona-actions button:disabled{opacity:.55}
@media(max-width:620px){.times-ai-persona{padding:26px 20px max(28px,env(safe-area-inset-bottom))}.times-ai-persona h3{font-size:27px}.times-ai-persona-options button{min-height:52px}.times-ai-persona-actions{grid-template-columns:1fr}}
.times-ai-character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.times-ai-character-grid button{position:relative;min-width:0}.times-ai-character-grid button.is-selected{border-color:var(--accent);background:#fff5e9;box-shadow:0 0 0 2px #ffd8bf}.times-ai-character-grid button.is-selected::after{content:'✓';position:absolute;top:7px;right:7px;display:grid;width:24px;height:24px;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:900}.times-ai-character-grid strong{font-size:13px}.times-ai-character-grid small{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.times-ai-confirm-character{display:flex;align-items:center;gap:16px;margin:20px 0;padding:16px;border:1px solid #ead7c5;border-radius:16px;background:#fff}.times-ai-confirm-character img{width:104px;height:104px;flex:none;border-radius:16px;background:#f4f6fa;object-fit:contain}.times-ai-confirm-character h3{margin:0 0 6px}.times-ai-confirm-character strong{color:var(--accent);font-size:17px}.times-ai-confirm-character p{margin:7px 0 0}
.times-ai-persona label[for="timesAiCharacterName"]{display:block;margin:4px 0 7px;font-weight:800}.times-ai-persona [data-character-name]{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid #d8c3af;border-radius:10px;font-size:16px}
@media(min-width:621px) and (max-width:1100px){.times-ai-character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.times-ai-character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.times-ai-character-grid img{display:block;width:100%;height:auto;aspect-ratio:1/1;box-sizing:border-box;padding:10px;object-fit:contain!important;object-position:center center!important;border-radius:10px;background:#f4f6fa}
.times-ai-fab.is-initializing{visibility:hidden;opacity:0;pointer-events:none}
