.speaking-time-page{--bg:#f8fafc;--card:#fff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--accent:#667eea;--accent2:#764ba2;--danger:#ef4444;--ok:#16a34a;--shadow:0 16px 30px rgba(15,23,42,.08);--radius:16px;--focus:0 0 0 3px rgba(102,126,234,.2);color-scheme:light;background:radial-gradient(900px 520px at 15% -10%,rgba(102,126,234,.12),transparent 60%),radial-gradient(820px 520px at 85% 0,rgba(118,75,162,.1),transparent 55%),var(--bg);color:var(--text);line-height:1.55;min-height:100vh}.speaking-time-page *{box-sizing:border-box}.speaking-time-page a{color:var(--accent2);text-decoration:none}.speaking-time-page a:hover{text-decoration:underline}.speaking-time-page .wrap{max-width:1100px;margin:0 auto;padding:20px 16px 50px}.speaking-time-page header{padding:14px 0 10px}.speaking-time-page .hero{padding:18px 20px;border-radius:var(--radius);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 16px 30px rgba(102,126,234,.25)}.speaking-time-page .hero h1{color:#fff}.speaking-time-page .hero .sub{color:#e2e8f0}.speaking-time-page .brand{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-weight:700;letter-spacing:.2px}.speaking-time-page .dot{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 0 0 4px rgba(122,167,255,.18)}.speaking-time-page h1{margin:6px 0 8px;font-size:clamp(24px,3.3vw,40px);line-height:1.15}.speaking-time-page .sub{color:var(--muted);max-width:none;margin:0}.speaking-time-page .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-top:16px}@media (max-width:920px){.speaking-time-page .grid{grid-template-columns:1fr}}.speaking-time-page .card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:visible}.speaking-time-page .card .hd{padding:14px 14px 10px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(102,126,234,.08),transparent)}.speaking-time-page .card .hd h2{margin:0;font-size:16px;letter-spacing:.2px;font-weight:700}.speaking-time-page .card .bd{padding:14px}.speaking-time-page label{display:block;font-size:13px;color:var(--muted);margin:0 0 8px}.speaking-time-page .text-wrap{position:relative;width:100%;min-height:220px;border-radius:12px;border:1px solid var(--border);background:#f8fafc;overflow:hidden}.speaking-time-page .text-wrap:focus-within{box-shadow:var(--focus);border-color:rgba(102,126,234,.5)}.speaking-time-page .text-input{width:100%;min-height:220px;resize:vertical;padding:12px;border:none;background:transparent;color:transparent;outline:none;font:inherit;line-height:1.7;caret-color:var(--text);position:relative;z-index:1;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word}.speaking-time-page .text-input::-moz-placeholder{color:var(--muted);-webkit-text-fill-color:var(--muted)}.speaking-time-page .text-input::placeholder{color:var(--muted);-webkit-text-fill-color:var(--muted)}.speaking-time-page .text-highlight{position:absolute;inset:0;padding:12px;overflow:auto;pointer-events:none;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;color:var(--text);font:inherit;line-height:1.7;scrollbar-width:none;z-index:0}.speaking-time-page .text-highlight::-webkit-scrollbar{display:none}.speaking-time-page .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.speaking-time-page .row>*{flex:1;min-width:160px}.speaking-time-page .btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.speaking-time-page button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#fff;color:var(--text);padding:10px 12px;border-radius:12px;cursor:pointer;font-weight:600;letter-spacing:.2px;transition:transform .05s ease,background .15s ease,border-color .15s ease}.speaking-time-page button:hover{background:#f1f5f9;border-color:#d7dde4}.speaking-time-page button:active{transform:translateY(1px)}.speaking-time-page button:focus{outline:none;box-shadow:var(--focus)}.speaking-time-page button.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:rgba(102,126,234,.5);color:#fff}.speaking-time-page button.danger{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08);color:#b91c1c}.speaking-time-page button:disabled{opacity:.45;cursor:not-allowed}.speaking-time-page .pill{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--muted);font-size:12.5px;white-space:nowrap}.speaking-time-page .pill strong{color:var(--text);font-weight:700}.speaking-time-page .statusDot{width:8px;height:8px;border-radius:999px;background:rgba(15,23,42,.35)}.speaking-time-page .statusDot.ok{background:var(--ok)}.speaking-time-page .statusDot.bad{background:var(--danger)}.speaking-time-page .ctrl{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#f8fafc}.speaking-time-page .ctrl .top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.speaking-time-page .ctrl .top .name{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.speaking-time-page .ctrl .top label{display:inline-flex;align-items:center;gap:6px;margin:0}.speaking-time-page .ctrl .top .val{font-size:13px;color:var(--text);font-weight:700}.speaking-time-page input[type=range]{width:100%}.speaking-time-page input[type=number],.speaking-time-page select{width:100%;padding:10px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--text);outline:none}.speaking-time-page select{background:#fff}.speaking-time-page .ctrl select{border:none;background:#fff;border-radius:10px;padding:8px 10px}.speaking-time-page .ctrl select:focus{box-shadow:none;border-color:transparent}.speaking-time-page select option{background:#fff;color:var(--text)}.speaking-time-page .hint{position:relative;display:inline-flex;align-items:center}.speaking-time-page .hint-btn{width:18px;height:18px;padding:0;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--muted);font-size:12px;line-height:1;cursor:pointer}.speaking-time-page .hint-btn:hover{color:var(--text);border-color:#cbd5e1}.speaking-time-page .hint-btn:focus{outline:none;box-shadow:var(--focus)}.speaking-time-page .hint-text{position:absolute;top:100%;left:0;width:min(260px,70vw);margin-top:8px;padding:10px 12px;border-radius:10px;border:1px solid rgba(15,23,42,.3);background:#111827;color:#f8fafc;font-size:12.5px;line-height:1.4;box-shadow:0 10px 18px rgba(0,0,0,.35);opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:3}.speaking-time-page .hint:focus-within .hint-text,.speaking-time-page .hint:hover .hint-text{opacity:1;transform:translateY(0)}.speaking-time-page .section-title{margin:6px 0 10px;font-size:16px;font-weight:700;letter-spacing:.2px;color:var(--text)}.speaking-time-page input[type=number]:focus,.speaking-time-page select:focus{box-shadow:var(--focus);border-color:rgba(102,126,234,.5)}.speaking-time-page .note{margin-top:10px;color:var(--muted);font-size:13px}.speaking-time-page .outBox{padding:12px;border-radius:12px;border:1px dashed #cbd5e1;background:#f8fafc}.speaking-time-page .kvs{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}.speaking-time-page .kv{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0}.speaking-time-page .kv .k{font-size:12.5px;color:var(--muted);font-weight:700}.speaking-time-page .kv .v{margin-top:0;font-size:15px;font-weight:800}.speaking-time-page .word{display:inline;border-radius:8px}.speaking-time-page .word.active{background:rgba(102,126,234,.18);box-shadow:0 0 0 1px rgba(102,126,234,.35)}.speaking-time-page .warn{margin-top:12px;padding:10px 12px;border-radius:12px;border:1px solid rgba(239,68,68,.3);background:rgba(239,68,68,.08);color:#991b1b;font-size:13px}.speaking-time-page .okbox{margin-top:12px;padding:10px 12px;border-radius:12px;border:1px solid rgba(34,197,94,.3);background:rgba(34,197,94,.08);color:#166534;font-size:13px}.speaking-time-page footer{margin-top:18px;color:var(--muted);font-size:13px}.speaking-time-page details{margin-top:10px;border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}.speaking-time-page summary{cursor:pointer;padding:12px;font-weight:700;color:var(--text);list-style:none}.speaking-time-page summary::-webkit-details-marker{display:none}.speaking-time-page details .content{padding:0 12px 12px;color:var(--muted)}.speaking-time-page .tiny{font-size:12px;color:var(--muted)}