:root{--ios-bg:#f2f2f7;--ios-card:#fff;--ios-label:#1c1c1e;--ios-secondary-label:#3c3c43;--ios-tertiary-label:#8e8e93;--ios-separator:#3c3c434a;--ios-blue:#007aff;--ios-green:#34c759;--ios-orange:#ff9500;--ios-red:#ff3b30;--ios-gray:#8e8e93;--ios-fill:#7878801f;--ios-fill-2:#7878802e;--ios-green-tint:#34c75924;--ios-orange-tint:#ff950024;--ios-red-tint:#ff3b301f;--ios-blue-tint:#007aff1f;--ios-tabbar:#f9f9f9db;--ios-shadow:0 1px 3px #00000014, 0 8px 24px #0000000d;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--ios-bg:#000;--ios-card:#1c1c1e;--ios-label:#fff;--ios-secondary-label:#d1d1d6;--ios-tertiary-label:#8e8e93;--ios-separator:#54545899;--ios-fill:#7878803d;--ios-fill-2:#78788052;--ios-tabbar:#161617e0;--ios-shadow:0 1px 3px #0006, 0 8px 24px #0000004d}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--ios-bg);color:var(--ios-label);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;touch-action:manipulation;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif}body{min-height:100dvh}button{cursor:pointer;color:inherit;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:12px;min-height:44px;padding:0 16px;font-family:inherit;font-size:17px;transition:transform .16s cubic-bezier(.32,.72,0,1),opacity .15s,background-color .2s,color .2s,box-shadow .2s}button:disabled{opacity:.4;cursor:not-allowed}input,textarea,select{color:var(--ios-label);font-family:inherit;font-size:16px}textarea{background:var(--ios-fill);width:100%;min-height:120px;color:var(--ios-label);resize:vertical;border:none;border-radius:10px;outline:none;padding:14px;line-height:1.55}textarea::placeholder{color:var(--ios-tertiary-label)}a{color:var(--ios-blue);text-decoration:none}.app{min-height:100dvh}.content{max-width:640px;padding:calc(12px + var(--safe-top)) 16px calc(88px + var(--safe-bottom));margin:0 auto}.page{position:relative}.fade-enter-active,.fade-leave-active{transition:opacity .18s}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active{animation:.34s cubic-bezier(.32,.72,0,1) both ios-push-in}.slide-leave-active{animation:.16s both ios-push-out}@keyframes ios-push-in{0%{opacity:.5;transform:translate(100%)}to{opacity:1;transform:none}}@keyframes ios-push-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-6%)}}.large-title{letter-spacing:-.4px;margin:8px 0 4px;font-size:32px;font-weight:800}.section-caption{color:var(--ios-tertiary-label);text-transform:uppercase;letter-spacing:.2px;margin:12px 4px 6px;font-size:13px}.error-text{color:var(--ios-red);margin:10px 4px;font-size:15px}.ios-card{background:var(--ios-card);box-shadow:var(--ios-shadow);border-radius:14px;margin:10px 0;overflow:hidden}.ios-card>.card-body{padding:16px}.ios-group{background:var(--ios-card);box-shadow:var(--ios-shadow);border-radius:14px;margin:10px 0;overflow:hidden}.ios-row{background:var(--ios-card);align-items:center;gap:12px;min-height:56px;padding:14px 16px;transition:background-color .2s,transform .16s cubic-bezier(.32,.72,0,1);display:flex;position:relative}.ios-row:active{background:var(--ios-fill);transform:scale(.985)}.ios-row+.ios-row:before{content:"";background:var(--ios-separator);height:1px;position:absolute;top:0;left:56px;right:0}.ios-row-main{flex:1;min-width:0}.ios-row-title{color:var(--ios-label);text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.ios-row-sub{color:var(--ios-tertiary-label);margin-top:2px;font-size:13px}.ios-chevron{color:var(--ios-tertiary-label);flex-shrink:0;font-size:20px;font-weight:300}.chip{color:var(--ios-label);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip.due{background:var(--ios-orange-tint);color:var(--ios-orange)}.chip.weak{background:var(--ios-red-tint);color:var(--ios-red)}.chip.new{background:var(--ios-blue-tint);color:var(--ios-blue)}.chip.domain{background:var(--ios-fill);color:var(--ios-secondary-label)}.chip.tag{background:var(--ios-fill);color:var(--ios-secondary-label);font-size:11px}.chip.parsing{background:var(--ios-blue-tint);color:var(--ios-blue)}.chip.ready{background:var(--ios-green-tint);color:var(--ios-green)}.chip.partial{background:var(--ios-orange-tint);color:var(--ios-orange)}.chip.failed{background:var(--ios-red-tint);color:var(--ios-red)}.btn-primary{background:var(--ios-blue);color:#fff;border-radius:12px;font-weight:600;transition:transform .16s cubic-bezier(.32,.72,0,1),opacity .15s,background-color .2s,filter .2s,box-shadow .2s}.btn-primary:active{opacity:.9;filter:brightness(.92);transform:scale(.96)}.btn-tint{color:var(--ios-blue);padding:0 12px;font-weight:500;transition:transform .16s cubic-bezier(.32,.72,0,1),opacity .15s}.btn-tint:active{opacity:.55;transform:scale(.96)}.btn-block{width:100%;margin-top:10px;display:block}.btn-row{align-items:center;gap:10px;margin-top:10px;display:flex}.btn-row .btn-primary,.btn-row .btn-tint{flex:1}.segmented{background:var(--ios-fill-2);border-radius:10px;gap:2px;padding:2px;display:flex;position:relative}.segmented button{z-index:1;min-height:34px;color:var(--ios-secondary-label);background:0 0;border-radius:8px;flex:1;padding:0 8px;font-size:13px;font-weight:500;transition:color .25s,transform .16s cubic-bezier(.32,.72,0,1);position:relative}.segmented button:active{transform:scale(.97)}.segmented button.active{color:var(--ios-label);font-weight:600}.segmented-thumb{background:var(--ios-card);will-change:transform, width;pointer-events:none;border-radius:8px;transition:transform .32s cubic-bezier(.32,.72,0,1),width .32s cubic-bezier(.32,.72,0,1);position:absolute;top:2px;bottom:2px;left:2px;box-shadow:0 1px 3px #0000001f}.ios-detail{background:var(--ios-card);box-shadow:var(--ios-shadow);border-radius:14px;margin:10px 0;overflow:hidden}.ios-detail summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:16px;font-size:17px;font-weight:500;list-style:none;transition:background-color .2s;display:flex}.ios-detail summary:active{background:var(--ios-fill)}.ios-detail summary::-webkit-details-marker{display:none}.ios-detail summary:after{content:"›";color:var(--ios-tertiary-label);font-size:22px;font-weight:300;transition:transform .2s}.ios-detail[open] summary:after{transform:rotate(90deg)}.detail-body{color:var(--ios-secondary-label);padding:0 16px 16px;font-size:15px;line-height:1.65}.ios-detail[open] .detail-body{animation:.28s cubic-bezier(.32,.72,0,1) detail-in}@keyframes detail-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.feedback-row{color:var(--ios-secondary-label);gap:10px;padding:12px 16px;font-size:15px;line-height:1.5;display:flex}.feedback-row+.feedback-row:before{content:"";position:absolute}.feedback-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.feedback-icon.hit{background:var(--ios-green-tint)}.feedback-icon.miss{background:var(--ios-orange-tint)}.feedback-icon.wrong{background:var(--ios-red-tint)}.feedback-icon.structure{background:var(--ios-fill)}.nav-bar{align-items:center;gap:4px;padding:4px 0 8px;display:flex}.back-link{color:var(--ios-blue);align-items:center;min-height:44px;margin-left:-10px;padding:0 10px;font-size:17px;display:inline-flex}.back-link:active{opacity:.5}.nav-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;padding-right:60px;font-size:17px;font-weight:600;overflow:hidden}.tabbar{z-index:50;background:var(--ios-tabbar);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-top:1px solid var(--ios-separator);padding-bottom:var(--safe-bottom);justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-height:52px;color:var(--ios-tertiary-label);-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10px;font-weight:500;transition:color .2s,transform .16s cubic-bezier(.32,.72,0,1);display:flex}.tabbar a:active{transform:scale(.92)}.tabbar a.active{color:var(--ios-blue)}.tabbar a.active svg{animation:.45s cubic-bezier(.34,1.56,.64,1) tab-pop}@keyframes tab-pop{0%{transform:scale(1)}35%{transform:scale(1.22)}70%{transform:scale(.94)}to{transform:scale(1)}}.tabbar svg{width:24px;height:24px}.empty-state{text-align:center;color:var(--ios-tertiary-label);padding:48px 24px}.empty-state .empty-icon{margin-bottom:12px;font-size:44px}.empty-state p{margin:4px 0;font-size:15px;line-height:1.6}.sidebar{display:none}@media (width>=900px){.app{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--ios-card);border-right:1px solid var(--ios-separator);flex-direction:column;gap:4px;padding:24px 16px;display:flex}.sidebar .brand{padding:8px 12px 20px;font-size:18px;font-weight:800}.sidebar a{color:var(--ios-label);border-radius:10px;align-items:center;gap:10px;min-height:44px;padding:12px;font-size:16px;display:flex}.sidebar a.active{background:var(--ios-fill);font-weight:600}.content{max-width:760px;margin:0;padding:32px 40px}.tabbar{display:none}}audio{width:100%;margin:8px 0}.speed-row{align-items:center;gap:8px;margin:6px 0;display:flex}.speed-row button{background:var(--ios-fill);min-height:30px;color:var(--ios-secondary-label);border-radius:8px;padding:0 12px;font-size:13px}.speed-row button.active{background:var(--ios-blue-tint);color:var(--ios-blue);font-weight:600}.audio-pending{color:var(--ios-tertiary-label);margin:8px 2px;font-size:13px}.audio-failed{color:var(--ios-red);align-items:center;margin:8px 2px;font-size:13px;display:flex}.voice-picker{margin:4px 0 12px}.voice-picker-label{color:var(--ios-tertiary-label);margin:0 2px 6px;font-size:13px;display:block}.voice-chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:2px 0 6px;display:flex;overflow-x:auto}.voice-chips::-webkit-scrollbar{display:none}.voice-chips button{background:var(--ios-fill);min-height:32px;color:var(--ios-secondary-label);white-space:nowrap;border-radius:16px;flex:none;padding:0 14px;font-size:13px}.voice-chips button.active{background:var(--ios-blue-tint);color:var(--ios-blue);font-weight:600}.voice-chips button:active,.speed-row button:active{background:var(--ios-fill-2);transform:scale(.93)}.skeleton-group{padding:6px 0}.skeleton-card{background:var(--ios-card);box-shadow:var(--ios-shadow);border-radius:14px;margin:10px 0;padding:16px}.skeleton-line{background:linear-gradient(90deg, var(--ios-fill) 25%, var(--ios-fill-2) 50%, var(--ios-fill) 75%);background-size:200% 100%;border-radius:7px;height:14px;margin-bottom:12px;animation:1.2s linear infinite shimmer}.skeleton-line.short{width:35%}.skeleton-line.mid{width:65%}.skeleton-line:last-child{margin-bottom:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ptr-wrap{position:relative}.ptr-indicator{top:calc(var(--ptr-distance,0px) - 58px);height:58px;color:var(--ios-tertiary-label);pointer-events:none;justify-content:center;align-items:flex-end;padding-bottom:16px;display:flex;position:absolute;left:0;right:0}.ptr-spinner{border:2.5px solid var(--ios-fill-2);border-top-color:var(--ios-tertiary-label);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite ptr-spin}.ptr-arrow{width:22px;height:22px;color:var(--ios-tertiary-label);transition:transform .15s}@keyframes ptr-spin{to{transform:rotate(360deg)}}.recorder{flex-direction:column;align-items:center;gap:12px;padding:18px 0 6px;display:flex}.mic-btn{background:linear-gradient(145deg, #3d9bff, var(--ios-blue) 45%, #0055d4);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:68px;height:68px;transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .2s;display:flex;position:relative;box-shadow:0 6px 18px #007aff59}.mic-btn:active{transform:scale(.9);box-shadow:0 3px 10px #007aff4d}.mic-btn svg{width:28px;height:28px}.rec-wave{align-items:center;gap:3px;height:34px;display:flex}.rec-wave span{background:var(--ios-red);border-radius:2px;width:4px;animation:.9s ease-in-out infinite wave-bounce}.rec-wave span:first-child{animation-delay:0s}.rec-wave span:nth-child(2){animation-delay:.13s}.rec-wave span:nth-child(3){animation-delay:.26s}.rec-wave span:nth-child(4){animation-delay:70ms}.rec-wave span:nth-child(5){animation-delay:.2s}.rec-wave span:nth-child(6){animation-delay:.33s}.rec-wave span:nth-child(7){animation-delay:.11s}@keyframes wave-bounce{0%,to{height:6px}50%{height:32px}}.rec-timer{font-variant-numeric:tabular-nums;color:var(--ios-red);align-items:center;gap:7px;font-size:17px;font-weight:600;display:flex}.rec-timer:before{content:"";background:var(--ios-red);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite rec-pulse}@keyframes rec-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.rec-stop{background:var(--ios-red);color:#fff;border-radius:999px;min-height:44px;padding:0 26px;font-weight:600;box-shadow:0 4px 14px #ff3b3052}.rec-stop:active{filter:brightness(.92);transform:scale(.95)}.rec-hint{color:var(--ios-tertiary-label);text-align:center;font-size:13px;line-height:1.5}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}input[type=text],input[type=url]{background:var(--ios-fill);width:100%;color:var(--ios-label);border:none;border-radius:10px;outline:none;margin-bottom:10px;padding:12px 14px}input[type=text]::placeholder,input[type=url]::placeholder{color:var(--ios-tertiary-label)}.resource-form{margin-top:12px}.file-picker{background:var(--ios-fill);width:100%;min-height:48px;color:var(--ios-secondary-label);border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:500;display:flex}.file-picker:active{background:var(--ios-fill-2);transform:scale(.98)}.file-picker svg{flex-shrink:0;width:20px;height:20px}.resource-list{padding-bottom:8px}.resource-card{overflow:hidden}.resource-head{cursor:pointer;align-items:center;gap:10px;min-height:60px;padding:14px 16px;transition:background-color .2s;display:flex}.resource-head:active{background:var(--ios-fill)}.resource-error{color:var(--ios-red);word-break:break-all;margin:0;padding:0 16px 12px;font-size:13px;line-height:1.5}.resource-body{border-top:1px solid var(--ios-separator)}.resource-pending{color:var(--ios-tertiary-label);text-align:center;padding:14px 16px;font-size:13px}.question-row{padding:12px 16px;position:relative}.question-row+.question-row:before{content:"";background:var(--ios-separator);height:1px;position:absolute;top:0;left:16px;right:0}.question-main{align-items:flex-start;gap:10px;display:flex}.question-title{color:var(--ios-label);font-size:15px;font-weight:600;line-height:1.4;display:block}.question-body{color:var(--ios-tertiary-label);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.question-actions{justify-content:flex-end;gap:4px;margin-top:4px;display:flex}.resource-actions{justify-content:flex-end;gap:4px;padding:0 8px 8px;display:flex}
