:root{--bg: #ece7dc;--panel: #ffffff;--panel-2: #f6f3ec;--input: #ffffff;--text: #1b1820;--muted: #5b554d;--line: rgba(27, 24, 32, .12);--line-soft: rgba(27, 24, 32, .06);--accent: #0b9780;--danger: #c2384b;--radius: 14px;--shadow: 0 1px 2px rgba(70, 58, 44, .08), 0 8px 24px rgba(70, 58, 44, .07);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#app{height:100%}.page{max-width:820px;margin:0 auto;padding:calc(16px + var(--safe-t)) 16px calc(24px + var(--safe-b));min-height:100%;display:flex;flex-direction:column;gap:16px}.topbar{display:flex;align-items:center;gap:12px}.topbar h1{font-size:22px;margin:0;flex:1;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--text);text-decoration:none;font-size:15px;font-weight:600;padding:10px 14px;border-radius:var(--radius);cursor:pointer;min-height:44px}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.small{padding:8px 12px;font-size:14px;min-height:40px}.btn.danger{color:var(--danger);border-color:#c2384b4d;background:#c2384b0f}.btn.wide{width:100%}.btn.ghost{background:transparent;border-color:var(--line)}.sections{display:flex;flex-direction:column;gap:24px}.sec{display:flex;flex-direction:column;gap:10px}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 0 2px}.list{display:flex;flex-direction:column;gap:10px}.card{display:flex;align-items:stretch;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.card-main{flex:1;padding:14px 16px;text-decoration:none;color:var(--text);min-width:0}.card-title{font-size:17px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sub{font-size:13px;color:var(--muted);margin-top:3px;display:flex;gap:8px;align-items:center}.tag{display:inline-flex;align-items:center;gap:4px;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;color:var(--muted)}.card-actions{display:flex;align-items:center;gap:6px;padding:8px 10px 8px 0}.folder-row{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;text-decoration:none;color:var(--text);box-shadow:var(--shadow)}.folder-row .ic{font-size:20px}.folder-row .fname{flex:1;font-weight:700;font-size:16px}.folder-row .fcount{color:var(--muted);font-size:13px}.folder-row .chev{color:var(--muted)}.input,.textarea{width:100%;background:var(--input);border:1px solid var(--line);color:var(--text);border-radius:var(--radius);padding:14px;font-size:16px;font-family:inherit}.textarea{flex:1;min-height:300px;resize:vertical;line-height:1.5}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:600;color:var(--muted);padding-left:2px}.row{display:flex;gap:10px}.muted{color:var(--muted)}.modehint{color:var(--muted);font-size:12px;margin-top:auto;padding-top:8px}.banner{border-radius:var(--radius);padding:12px 14px;font-size:14px;line-height:1.5}.banner code{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:8px;background:#1b182014;font-size:13px;word-break:break-all}.danger-banner{background:#c2384b14;border:1px solid rgba(194,56,75,.35);color:var(--danger)}.login-page{justify-content:center;align-items:center}.login-card{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.login-card h1{margin:0 0 4px;font-size:22px;letter-spacing:-.01em}.login-card p{margin:0 0 16px;font-size:14px}.login-card form{display:flex;flex-direction:column;gap:12px}.login-error{margin:0;color:var(--danger);font-size:14px;font-weight:600}.prompter{position:fixed;inset:0;overflow:hidden}.prompter{background:var(--p-bg, #000);color:var(--p-text, #fff)}.scroll{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.scroll::-webkit-scrollbar{display:none}.text{transform-origin:center}.para{margin:0 0 .7em}.para.section{margin-top:1.8em}.w.active{color:var(--accent);text-shadow:0 0 18px var(--accent-glow)}.prompter[data-scheme=light] .w.active{text-shadow:none;background:var(--accent-soft);border-radius:4px}.w.spoken{opacity:.32;transition:opacity .25s ease}.reading-line{position:absolute;left:0;right:0;height:0;pointer-events:none;border-top:2px solid var(--accent)}.reading-line:before,.reading-line:after{content:"";position:absolute;top:-9px;border:9px solid transparent}.reading-line:before{left:0;border-left-color:var(--accent)}.reading-line:after{right:0;border-right-color:var(--accent)}.controls{position:absolute;left:0;right:0;bottom:0;padding:8px 8px calc(8px + var(--safe-b));background:linear-gradient(to top,#000000d9,#0000);z-index:10}.prompter[data-scheme=light] .controls{background:linear-gradient(to top,#ffffffeb,#fff0)}.cbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;max-width:820px;margin:0 auto}.cbtn{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:48px;padding:0 10px;border-radius:12px;border:1px solid rgba(128,128,128,.35);background:#28282eeb;color:#fff;font-size:17px;font-weight:700;text-decoration:none;cursor:pointer}.prompter[data-scheme=light] .cbtn{background:#f5f5f5f5;color:#111;border-color:#0003}.cbtn:active{transform:translateY(1px)}.cbtn.play,.cbtn.voice{background:var(--accent);border-color:var(--accent);color:#fff}.cbtn.play.on{background:#28282eeb;border-color:#80808059;color:#fff}.prompter[data-scheme=light] .cbtn.play.on{background:#f5f5f5f5;color:#111}.cval{display:inline-flex;flex-direction:column;align-items:center;line-height:1;min-width:56px;font-weight:700;font-size:16px}.cval small{font-size:10px;color:#96969cf2;font-weight:600}.settings-panel{position:absolute;left:50%;bottom:calc(72px + var(--safe-b));transform:translate(-50%);width:min(440px,calc(100% - 24px));z-index:12;background:#18181cf7;color:#fff;border:1px solid rgba(128,128,128,.3);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:0 12px 40px #00000080;max-height:min(70vh,560px);overflow-y:auto;overscroll-behavior:contain}.prompter[data-scheme=light] .settings-panel{background:#fffffffa;color:#111;border-color:#00000026}.settings-panel[hidden]{display:none}.set-row{display:flex;align-items:center;gap:8px}.set-label{flex:1;font-size:14px;font-weight:600;opacity:.85}.chip{border:1px solid rgba(128,128,128,.4);background:#ffffff14;color:inherit;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;min-height:40px;cursor:pointer}.prompter[data-scheme=light] .chip{background:#0000000a}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.stepper{display:inline-flex;gap:6px}.stepper button{width:40px;height:40px;border-radius:10px;border:1px solid rgba(128,128,128,.4);background:#ffffff14;color:inherit;font-size:18px;font-weight:700;cursor:pointer}.prompter[data-scheme=light] .stepper button{background:#0000000a}.set-group{display:flex;flex-direction:column;gap:8px;padding-bottom:10px;border-bottom:1px solid rgba(128,128,128,.22)}.set-group:last-child{border-bottom:0;padding-bottom:0}.set-group-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;opacity:.55}.set-row[hidden]{display:none}.set-label small{font-weight:700;opacity:.6;margin-left:4px}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch-btn{width:52px;height:44px;border-radius:10px;border:2px solid transparent;font-size:16px;font-weight:800;cursor:pointer;flex:1 1 auto}.swatch-btn.active{outline:2px solid var(--accent);outline-offset:2px}.swatch{width:56px;height:40px;padding:2px;border:1px solid rgba(128,128,128,.4);border-radius:10px;background:transparent;cursor:pointer}.swatch::-webkit-color-swatch-wrapper{padding:0}.swatch::-webkit-color-swatch{border:none;border-radius:7px}.wide-chip{width:100%}.preset-list{display:flex;flex-direction:column;gap:6px}.preset-row{display:flex;gap:6px}.preset-apply{flex:1;text-align:left}.preset-del{flex:0 0 auto;padding:8px 12px}.preset-empty{font-size:13px;opacity:.5}.voice-status{position:absolute;top:calc(12px + var(--safe-t));left:50%;transform:translate(-50%);max-width:90%;z-index:11;padding:8px 16px;border-radius:999px;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#141418eb;color:#fff;border:1px solid var(--accent-half)}.voice-status[hidden]{display:none}.tap-hint{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;font-size:15px;opacity:.55;pointer-events:none;padding:0 24px}html.tpcam-on,html.tpcam-on body{overflow:hidden}.tpcam{position:fixed;inset:0;z-index:2147483000;background:#000;color:#fff;overflow:hidden;color-scheme:dark;outline:none;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--tpcam-size: 32px;--tpcam-tint: .55;--tpcam-accent: #ff2d95;--tpcam-accent-glow: rgba(255, 45, 149, .55);--tpcam-accent-line: rgba(255, 45, 149, .75);--tpcam-accent-on: rgba(255, 45, 149, .85);--tpcam-accent-half: rgba(255, 45, 149, .5);user-select:none;-webkit-user-select:none}.tpcam [hidden]{display:none!important}.tpcam-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}.tpcam.mirror .tpcam-v{transform:scaleX(-1)}.tpcam-tint{position:absolute;inset:0;background:rgba(0,0,0,var(--tpcam-tint));pointer-events:none}.tpcam-scroll{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(to bottom,transparent 0,transparent 52px,#000 104px,#000 calc(100% - 150px),transparent calc(100% - 64px));mask-image:linear-gradient(to bottom,transparent 0,transparent 52px,#000 104px,#000 calc(100% - 150px),transparent calc(100% - 64px))}.tpcam-scroll::-webkit-scrollbar{display:none}.tpcam-text{max-width:980px;margin:0 auto;padding-left:max(6vw,18px);padding-right:max(6vw,18px);font-size:var(--tpcam-size);font-weight:700;line-height:1.42;letter-spacing:.01em;text-align:left;text-shadow:0 1px 3px rgba(0,0,0,.7)}.tpcam-text .para{margin:0 0 .55em}.tpcam-text .para.section{margin-top:1.6em}.tpcam-text .w{cursor:pointer;transition:color .12s ease}.tpcam-text .w.active{color:var(--tpcam-accent);background:none;text-shadow:0 0 18px var(--tpcam-accent-glow),0 1px 3px rgba(0,0,0,.7)}.tpcam-text .w.spoken{opacity:.32;transition:opacity .25s ease}.tpcam-line{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--tpcam-accent-line);pointer-events:none}.tpcam-line:before,.tpcam-line:after{content:"";position:absolute;top:-9px;border:8px solid transparent}.tpcam-line:before{left:0;border-left-color:var(--tpcam-accent)}.tpcam-line:after{right:0;border-right-color:var(--tpcam-accent)}.tpcam-top{position:absolute;z-index:6;left:0;right:0;top:0;display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top,0px)) 10px 18px;background:linear-gradient(#0009,#0000);pointer-events:none}.tpcam-top>*{pointer-events:auto}.tpcam-what{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25;text-shadow:0 1px 2px rgba(0,0,0,.8)}.tpcam-what b{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tpcam-what span{font-size:12px;color:#ffffffbf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tpcam-rt{display:flex;align-items:center;gap:7px;padding:6px 11px;border-radius:99px;background:#0000008c;font-size:13px;font-variant-numeric:tabular-nums}.tpcam-rt i{width:10px;height:10px;border-radius:50%;background:#ff3b30;animation:tpcamblink 1s steps(2,start) infinite}.tpcam-rt span{color:#ffffffbf}@keyframes tpcamblink{to{visibility:hidden}}.tpcam.recording .tpcam-what{visibility:hidden}.tpcam-b{width:48px;height:48px;flex:none;display:grid;place-items:center;padding:0;border:none;border-radius:50%;background:#0000007a;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}.tpcam-b:disabled{opacity:.35;cursor:default}.tpcam-b.on{background:var(--tpcam-accent-on)}.tpcam-b.busy{animation:tpcampulse 1.2s ease-in-out infinite}@keyframes tpcampulse{50%{background:var(--tpcam-accent-half)}}.tpcam-bar{position:absolute;z-index:4;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:clamp(10px,4vw,26px);padding:22px 12px calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(#0000,#0000008c)}.tpcam-rec{width:74px;height:74px;flex:none;display:grid;place-items:center;padding:0;border:4px solid #fff;border-radius:50%;background:#00000040;cursor:pointer;-webkit-tap-highlight-color:transparent}.tpcam-rec i{width:54px;height:54px;border-radius:50%;background:#ff3b30;transition:all .18s ease}.tpcam-rec.on i{width:28px;height:28px;border-radius:6px}.tpcam-rec:disabled{opacity:.4;cursor:default}.tpcam.recording .tpcam-bar .tpcam-b{visibility:hidden}.tpcam-say{position:absolute;z-index:7;left:50%;bottom:calc(126px + env(safe-area-inset-bottom,0px));transform:translate(-50%);width:max-content;max-width:calc(100% - 28px);padding:10px 14px;border-radius:10px;background:#101114e0;font-size:14px;font-weight:600;line-height:1.4;text-align:center}.tpcam-count{position:absolute;z-index:5;inset:0;display:grid;place-items:center;font-size:min(34vw,220px);font-weight:800;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.6);pointer-events:none}.tpcam.counting .tpcam-text{opacity:.35}.tpcam-set{position:absolute;z-index:8;left:0;right:0;bottom:0;max-height:78%;overflow-y:auto;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px));background:#0e0f12f0;border-radius:16px 16px 0 0;box-shadow:0 -10px 30px #00000080}@media(min-width:700px){.tpcam-set{left:auto;right:16px;bottom:16px;width:380px;border-radius:14px}}.tpcam-sethead{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:16px}.tpcam-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-bottom:1px solid rgba(255,255,255,.08);font-size:15px}.tpcam-row small{color:#fff9;font-size:13px;margin-left:4px}.tpcam-row.mic{flex-wrap:wrap;padding:8px 0}.tpcam-row select{flex:1 1 180px;min-width:0;height:44px;padding:0 10px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#1b1e24;color:#fff;font-size:16px;font-family:inherit}.tpcam-step{display:flex;gap:8px}.tpcam-step button,.tpcam-chip{min-width:44px;height:44px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#ffffff14;color:#fff;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer}.tpcam-note{margin:12px 0 0;font-size:12.5px;color:#fff9;line-height:1.45}.tpcam-after{position:absolute;z-index:5;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(70px + env(safe-area-inset-top,0px)) 14px calc(14px + env(safe-area-inset-bottom,0px));background:#08090b;overflow-y:auto}.tpcam-afterbox{width:min(720px,100%);display:flex;flex-direction:column;gap:12px}.tpcam-afterbox video{width:100%;max-height:58vh;border-radius:12px;background:#000}.tpcam-facts{font-size:14px;color:#ffffffbf;line-height:1.5}.tpcam-facts b{color:#fff}.tpcam-btns{display:flex;flex-wrap:wrap;gap:10px}.tpcam-btns .tpcam-btn{flex:1 1 150px}.tpcam-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 16px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:#ffffff14;color:#fff;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer}.tpcam-btn.primary{background:var(--tpcam-accent);border-color:var(--tpcam-accent)}.tpcam-btn.danger{background:none;border-color:#ff6b6b;color:#ff6b6b}.tpcam-up{margin:0;min-height:1.4em;font-size:14px;color:#ffffffbf}.tpcam-ask{position:absolute;z-index:9;inset:0;display:grid;place-items:center;padding:16px;background:#0009}.tpcam-askbox{width:min(420px,100%);padding:20px;border-radius:14px;background:#16181d;border:1px solid #383e49}.tpcam-askbox h3{margin:0 0 6px;font-size:18px}.tpcam-askbox p{margin:0 0 16px;color:#ffffffb3;font-size:14px;line-height:1.45}.tpcam .w.tpcam-start{text-decoration:underline;text-decoration-color:var(--tpcam-accent);text-decoration-thickness:3px;text-underline-offset:6px}.tpcam .w.tpcam-start:before{content:"▶";color:var(--tpcam-accent);font-size:.6em;margin-right:.25em;vertical-align:middle}.tpcam.high .tpcam-top{top:auto;bottom:calc(112px + env(safe-area-inset-bottom,0px));padding:18px 10px 8px;background:linear-gradient(#0000,#0009)}.tpcam.high .tpcam-scroll{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 240px),transparent calc(100% - 160px));mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 240px),transparent calc(100% - 160px))}
