:root{--primary: #2f9be0;--primary-deep: #2280bd;--primary-soft: #e0f2fc;--navy: #1d3a5f;--ink: #14273d;--ink2: #3c5269;--dim: #647a92;--faint: #92a5b8;--line: rgba(20, 39, 61, .1);--line2: rgba(20, 39, 61, .16);--glass: rgba(255, 255, 255, .52);--glass-strong: rgba(255, 255, 255, .72);--glass-brd: rgba(255, 255, 255, .72);--gold: #c0852d;--gold-deep: #966318;--gold-soft: #f7efdd;--sage: #3e8e6b;--sage-soft: #e4f2eb;--rose: #c2554f;--rose-soft: #f9e8e6;--radius: 18px;--radius-lg: 20px;--shadow-s: 0 2px 6px rgba(31, 72, 120, .06), 0 10px 28px rgba(31, 72, 120, .08);--shadow-m: 0 6px 16px rgba(31, 72, 120, .1), 0 20px 48px rgba(31, 72, 120, .14);--font-ui: "Geist", "HarmonyOS Sans SC", "Noto Sans SC", "PingFang SC", -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif;--font-display: "Manrope", "HarmonyOS Sans SC", "Noto Sans SC", "PingFang SC", sans-serif;--font-read: "Source Serif 4", "Noto Sans SC", "PingFang SC", Georgia, serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-ui);color:var(--ink);min-height:100vh;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-anchor:none}.bg-layer{position:fixed;inset:0;z-index:-2;background-image:url(img/bg-1.jpg?v=3);background-size:cover;background-position:center;transition:background-image .8s ease}.bg-tint{position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,#ffffff24,#f3f8fd61 45%,#edf4fb9e)}[data-ico] svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px;margin-right:6px}.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border:1px solid var(--glass-brd);box-shadow:var(--shadow-s),inset 0 1px #ffffffd9}header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;position:sticky;top:12px;z-index:50;margin:10px 18px 0;border-radius:18px}.brand{display:flex;gap:12px;align-items:center;min-width:0}.mark{width:40px;height:40px;border-radius:13px;background:var(--primary);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 16px #2f9be059}.mark svg{width:21px;height:21px}.mark.lg{width:52px;height:52px;border-radius:16px;margin:0 auto 14px}h1{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--ink);line-height:1.2;letter-spacing:-.2px}.sub{font-size:11px;color:var(--dim);letter-spacing:.5px}.proj-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 15px;border-radius:20px;border:1px solid var(--glass-brd);background:var(--glass-strong);color:var(--ink2);cursor:pointer;font-size:13px;font-weight:600;font-family:inherit;max-width:260px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-s);transition:all .16s ease;white-space:nowrap}.proj-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-m);color:var(--primary-deep)}.proj-btn-label{overflow:hidden;text-overflow:ellipsis}.proj-btn-chev svg{width:13px;height:13px;margin-right:0}.proj-btn [data-ico] svg{width:15px;height:15px;color:var(--primary);margin-right:0}.proj-panel{width:100%;max-width:560px;border-radius:24px;padding:24px;max-height:88vh;overflow-y:auto;background:#ffffffe6;backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%)}.proj-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.proj-panel-head h2{font-family:var(--font-display);font-size:17px;font-weight:700}.proj-list{display:flex;flex-direction:column;gap:8px}.proj-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid var(--line2);cursor:pointer;background:#ffffffb3;transition:all .15s ease}.proj-item:hover{border-color:#2f9be080;transform:translate(2px)}.proj-item.active{border-color:var(--primary);background:var(--primary-soft)}.proj-item .pi-name{font-weight:700;font-size:14px;color:var(--ink);flex:1;min-width:0}.proj-item .pi-sub{font-size:11.5px;color:var(--dim);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-item.active .pi-name{color:var(--primary-deep)}.proj-item [data-ico]{margin-left:auto}.proj-item [data-ico] svg{width:16px;height:16px;margin-right:0;color:var(--primary)}.pi-current{font-size:11px;font-weight:700;color:var(--primary-deep)}.proj-divider{height:1px;background:var(--line);margin:16px 0}.proj-section-title{font-size:13px;font-weight:700;color:var(--ink2);margin-bottom:8px}.proj-section-title+.row{margin-bottom:10px}.proj-panel input,.proj-panel select,.proj-panel textarea{background:#ffffffd9}nav{display:flex;gap:6px;justify-content:center;position:sticky;top:78px;z-index:40;margin:12px auto 4px;width:fit-content;padding:5px;border-radius:20px;background:#ffffff8c;backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border:1px solid var(--glass-brd);box-shadow:var(--shadow-s)}nav button{background:none;border:none;color:var(--dim);font-size:13px;font-weight:500;padding:7px 16px;cursor:pointer;border-radius:16px;white-space:nowrap;transition:all .18s ease;display:flex;align-items:center}nav button:hover{color:var(--ink)}nav button.active{background:var(--ink);color:#fff;font-weight:600;box-shadow:0 4px 12px #184a6e47}nav button [data-ico] svg{width:15px;height:15px;margin-right:6px}main{padding:18px 22px 80px;max-width:1280px;margin:0 auto}.view{display:none}.view.active{display:block;animation:fadein .3s ease}@keyframes fadein{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.panel{border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:14px}.panel h2{font-family:var(--font-display);font-size:15px;font-weight:700;margin-bottom:13px;display:flex;align-items:center;gap:9px;color:var(--ink)}.panel h2 [data-ico] svg{width:18px;height:18px;color:var(--primary)}.panel h2 [data-ico]{margin-right:0}.grid{display:grid;gap:13px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:22px;font-size:12.5px;font-weight:600;color:var(--ink2);background:var(--glass-strong);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-brd);box-shadow:var(--shadow-s)}.chip b{font-size:15px;font-family:var(--font-display)}.chip{transition:all .18s ease}.chip:hover{transform:translateY(-2px) scale(1.02)}.chip.blue{color:var(--primary-deep)}.chip.gold{color:var(--gold)}.chip.sage{color:var(--sage)}.chip.rose{color:var(--rose)}.chip .dot{width:7px;height:7px;border-radius:50%;background:var(--primary)}.home-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:22px}.home-top .title{flex:1;min-width:220px}.home-top .title h2{font-family:var(--font-display);font-size:23px;font-weight:700;letter-spacing:-.2px}.home-top .title .muted{font-size:13px;margin-top:2px}.gacha-zone{text-align:center;border-radius:22px;padding:24px 18px 22px;position:relative;overflow:hidden;background:#ffffff6b;backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border:1px solid var(--glass-brd);box-shadow:var(--shadow-m),inset 0 1px #ffffffe6}.gacha-zone:before{content:"";position:absolute;inset:0;background:radial-gradient(640px 300px at 50% -12%,rgba(255,255,255,.85),transparent 70%);pointer-events:none}.gacha-zone:after{content:"";position:absolute;left:12%;top:18%;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fffffff2,#2f9be029 70%);filter:blur(2px);pointer-events:none;animation:floaty2 7s ease-in-out infinite}.gacha-zone .bub2{position:absolute;right:10%;bottom:16%;width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#ffffffe6,#c0852d24 70%);pointer-events:none;animation:floaty2 9s ease-in-out infinite reverse}@keyframes floaty2{50%{transform:translateY(-14px) scale(1.05)}}.gacha-deck{position:relative;width:176px;height:220px;margin:0 auto 20px;z-index:1}.deck-under{position:absolute;inset:0;border-radius:18px;border:1px solid var(--line2);background:#ffffffbf;backdrop-filter:blur(6px)}.deck-under.u1{transform:rotate(-6deg) translate(-10px,5px)}.deck-under.u2{transform:rotate(5deg) translate(10px,4px)}.deck-top{position:absolute;inset:0;border-radius:18px;border:1px solid var(--glass-brd);background:linear-gradient(150deg,#fffffff2,#e9f0fce6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;box-shadow:var(--shadow-m);transition:transform .25s ease;animation:bob 4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-7px)}}.deck-top .d-mark{width:54px;height:54px;border-radius:16px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #2f9be066}.deck-top .d-mark svg{width:27px;height:27px}.deck-top .d-txt{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--ink2);letter-spacing:3px}.deck-top.pull{animation:deckpull .72s cubic-bezier(.3,.9,.3,1.2)}@keyframes deckpull{30%{transform:translateY(-30px) rotate(-5deg) scale(1.04)}60%{transform:translateY(6px) rotate(1deg)}}.gacha-btn{padding:15px 54px;font-size:16px;border-radius:15px;border:none;cursor:pointer;background:var(--primary);color:#fff;font-weight:700;letter-spacing:5px;text-indent:5px;box-shadow:0 10px 28px #2f9be066;transition:all .2s ease;font-family:inherit;z-index:1;position:relative}.gacha-btn:hover{transform:translateY(-3px);box-shadow:0 14px 36px #2f9be080}.gacha-btn:active{transform:translateY(0) scale(.97)}.gacha-btn:disabled{filter:grayscale(.5);cursor:wait}.gacha-note{color:var(--dim);font-size:12.5px;margin-top:15px;position:relative;z-index:1}.card-stage{max-width:620px;margin:18px auto 0;min-height:220px;perspective:1200px}.qcard{position:relative;width:100%;min-height:220px;border-radius:20px;border:1px solid var(--glass-brd);background:var(--glass-strong);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);padding:22px;text-align:left;animation:flipin .7s cubic-bezier(.25,.8,.3,1.05);box-shadow:var(--shadow-m)}@keyframes flipin{0%{transform:rotateY(88deg) translateY(10px);opacity:0}to{transform:rotateY(0);opacity:1}}.qcard .rarity{display:inline-block;padding:5px 13px;border-radius:18px;font-size:11.5px;font-weight:700;letter-spacing:1.2px;margin-bottom:14px}.rarity.SSR{background:var(--gold-soft);color:var(--gold);border:1px solid #ead9b4}.rarity.SR{background:var(--primary-soft);color:var(--primary-deep);border:1px solid #c7dcfb}.rarity.R{background:#eef2f7;color:var(--dim);border:1px solid #d9e1ea}.rarity.N{background:#f4f6f8;color:var(--faint);border:1px solid var(--line)}.qcard .cat{font-size:11.5px;color:var(--dim);letter-spacing:1.4px;text-transform:uppercase;margin-bottom:12px}.qcard .q-en{font-family:var(--font-read);font-size:20px;font-weight:600;line-height:1.55;margin-bottom:12px;color:var(--ink)}.qcard .q-zh{font-size:13px;color:var(--dim);margin-bottom:14px}.qcard .q-src{font-size:12px;color:var(--faint);border-top:1px dashed var(--line2);padding-top:12px}.qcard.SSR-card{border-color:#ecd9ae;box-shadow:0 10px 34px #c0852d29,var(--shadow-m)}.qcard.SR-card{border-color:#c7dcfb}.qcard.R-card{border-color:#d9e1ea}.home-status{display:flex;flex-wrap:wrap;gap:9px;align-items:center;padding:11px 16px;margin:13px 0;border-radius:16px}.home-status .sep{flex:1}.home-tip{text-align:center;color:var(--dim);font-size:12.5px;padding:8px 14px;border-radius:14px;margin:0 auto;max-width:620px;background:#ffffff6b;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-brd)}.home-tip b{color:var(--primary-deep);font-weight:600}.confetti{position:fixed;top:-12px;z-index:400;pointer-events:none;border-radius:2.5px;animation:confFall linear forwards}@keyframes confFall{to{transform:translateY(110vh) rotate(680deg);opacity:.8}}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.filters select,.filters input{width:auto;min-width:130px}.qrow{display:flex;gap:15px;align-items:flex-start;padding:16px 18px;border:1px solid var(--glass-brd);border-radius:var(--radius);margin-bottom:10px;cursor:pointer;transition:all .16s ease;background:var(--glass);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:var(--shadow-s)}.qrow:hover{transform:translate(3px);box-shadow:var(--shadow-m);border-color:#2f9be066}.qrow .qc{font-family:ui-monospace,SF Mono,monospace;font-size:12px;color:var(--primary);white-space:nowrap;padding-top:3px;font-weight:600}.qrow .body{flex:1;min-width:0}.qrow .qen{font-family:var(--font-read);font-size:14.5px;margin-bottom:4px;font-weight:600;color:var(--ink)}.qrow .qzh{font-size:12px;color:var(--dim)}.badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.badge{font-size:11px;padding:3px 10px;border-radius:11px;border:1px solid var(--line);color:var(--dim);background:#ffffffb3}.badge.gold{color:var(--gold);border-color:#ead9b4;background:var(--gold-soft)}.badge.green{color:var(--sage);border-color:#bfe0d1;background:var(--sage-soft)}.badge.red{color:var(--rose);border-color:#efc9c6;background:var(--rose-soft)}.badge.blue{color:var(--primary-deep);border-color:#c7dcfb;background:var(--primary-soft)}.badge.orange{color:var(--gold);border-color:#ead9b4;background:#faf3e6}.qdetail{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;display:none}.qdetail.open{display:block;animation:fadein .25s ease}.sample-box{background:#ffffffbf;border-radius:14px;padding:15px;margin:10px 0;font-size:13.5px;line-height:1.75;white-space:pre-wrap;border:1px solid var(--glass-brd);font-family:var(--font-read)}.sample-box .anchor{color:var(--gold);font-size:12px;margin-top:8px;font-weight:500;font-family:var(--font-ui)}.btn{padding:10px 18px;border-radius:12px;border:1px solid var(--line2);background:#ffffffbf;color:var(--ink2);cursor:pointer;font-size:13.5px;font-weight:600;transition:all .15s ease;font-family:inherit;display:inline-flex;align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn:hover{border-color:#2f9be080;color:var(--primary-deep);transform:translateY(-1px);box-shadow:var(--shadow-s)}.btn:active{transform:translateY(0) scale(.97)}.btn.primary{background:var(--primary);color:#fff;border:none;font-weight:700;box-shadow:0 5px 16px #2f9be061}.btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 22px #2f9be080}.btn.primary:hover{color:#fff;box-shadow:0 8px 24px #2f9be073}.btn.danger{background:#ffffffbf;border-color:#efc9c6;color:var(--rose)}.btn.danger:hover{background:var(--rose-soft);border-color:var(--rose)}.btn.ghost{background:none;color:var(--dim);border-color:transparent}.btn.ghost:hover{color:var(--ink);border-color:var(--line2)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn.small{padding:6px 13px;font-size:12.5px;border-radius:10px}.btn.wide{width:100%;justify-content:center;margin-top:10px}.btn [data-ico] svg{width:15px;height:15px}input,select,textarea{background:#fffc;border:1px solid var(--line2);color:var(--ink);border-radius:12px;padding:10px 13px;font-size:14px;width:100%;font-family:inherit;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2f9be02e}textarea{resize:vertical}.field-label{display:block;font-size:12.5px;color:var(--dim);margin:14px 0 6px;font-weight:600}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.overlay{position:fixed;inset:0;background:#0d1c3073;backdrop-filter:blur(12px);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.overlay.hidden{display:none}.practice-box{width:100%;max-width:780px;border-radius:26px;padding:34px;max-height:92vh;overflow-y:auto;background:#ffffffe0;backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);border:1px solid var(--glass-brd);box-shadow:0 30px 90px #0d1c3059}.stage-title{font-family:var(--font-display);font-size:19px;font-weight:700;margin-bottom:10px;color:var(--ink)}.p-meta{font-size:12px;color:var(--dim);letter-spacing:.5px;margin-bottom:16px}.p-q-en{font-family:var(--font-read);font-size:22px;font-weight:600;line-height:1.55;margin-bottom:10px;color:var(--ink)}.p-q-zh{font-size:13.5px;color:var(--dim);margin-bottom:24px}.p-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.p-actions.center{justify-content:center}.timer-ring-wrap{position:relative;width:230px;height:230px;margin:12px auto}.timer-ring-wrap.small{width:118px;height:118px;margin:0}.ring{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--line);stroke-width:8}.ring-fg{fill:none;stroke:var(--primary);stroke-width:8;stroke-linecap:round;stroke-dasharray:565.5;stroke-dashoffset:0;transition:stroke-dashoffset 1s linear,stroke .3s;filter:drop-shadow(0 0 6px rgba(47,155,224,.4))}.timer-ring-wrap.small .ring-fg{stroke-dasharray:439.8}.timer-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.timer-num{font-family:var(--font-display);font-size:62px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}.timer-ring-wrap.small .timer-num{font-size:34px}.timer-label{font-size:12px;color:var(--dim);text-align:center;max-width:190px}.prep-tip{margin:8px auto 0;max-width:500px;color:var(--dim);font-size:13px;text-align:center;line-height:1.7}.answer-head{display:flex;gap:26px;align-items:center;margin-bottom:18px}.answer-side{flex:1}.rec-indicator{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:var(--rose);padding:7px 15px;border-radius:20px;border:1px solid #efc9c6;background:var(--rose-soft);margin-bottom:12px;letter-spacing:1px}.rec-indicator .dot{width:8px;height:8px;border-radius:50%;background:var(--rose);animation:blink 1.1s infinite}@keyframes blink{50%{opacity:.3}}.live-transcript{background:#ffffffbf;border-radius:14px;padding:17px;min-height:110px;font-size:14.5px;line-height:1.75;margin-bottom:10px;max-height:200px;overflow-y:auto;white-space:pre-wrap;border:1px solid var(--glass-brd)}.typed-box{background:#ffffffbf;border-radius:14px;padding:10px 17px 15px;margin-bottom:10px;border:1px dashed var(--line2)}.typed-box summary{cursor:pointer;font-size:13px;color:var(--dim);padding:4px 0;font-weight:600}.typed-box textarea{margin-top:9px;background:#ffffffe6}.review-stats{display:flex;gap:18px;margin:12px 0;font-size:13px;color:var(--dim);flex-wrap:wrap}.audio-row{margin:10px 0 4px}.audio-row audio{width:100%;height:38px}.score-big{text-align:center;margin:10px 0 4px}.score-big .n{font-family:var(--font-display);font-size:72px;font-weight:800;background:var(--primary);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-2px}.score-subs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:18px 0}.score-sub{background:#ffffffbf;border-radius:14px;padding:14px;border:1px solid var(--glass-brd)}.score-sub .k{font-size:11.5px;color:var(--dim);letter-spacing:.6px}.score-sub .v{font-family:var(--font-display);font-size:24px;font-weight:800;margin-top:2px;color:var(--ink)}.bar-track{height:6px;background:var(--line);border-radius:3px;margin-top:8px;overflow:hidden}.bar-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .6s ease}.eval-list{margin:12px 0}.eval-list b{font-size:13.5px;display:inline-flex;align-items:center;gap:6px}.eval-list li{font-size:13.5px;line-height:1.65;margin:5px 0 5px 18px;color:var(--ink2)}.eval-zh{background:var(--primary-soft);border-left:3px solid var(--primary);padding:12px 16px;border-radius:10px;font-size:13.5px;line-height:1.75;margin:12px 0;color:var(--ink2)}.model-answer{white-space:pre-wrap;font-size:13.5px;line-height:1.8;background:#ffffffbf;border-radius:14px;padding:16px;margin-top:10px;border:1px solid var(--glass-brd);font-family:var(--font-read)}.stat-card{border-radius:var(--radius-lg);padding:17px;transition:transform .18s ease,box-shadow .18s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-m)}.stat-card .k{font-size:11.5px;color:var(--dim);letter-spacing:.8px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.stat-card .k [data-ico] svg{width:15px;height:15px;color:var(--primary);margin-right:0}.stat-card .v{font-family:var(--font-display);font-size:27px;font-weight:800;color:var(--ink);letter-spacing:-.5px}.stat-card .v small{font-size:14px;color:var(--dim);font-weight:500}.stat-card .s{font-size:12px;color:var(--dim);margin-top:7px}.stat-card .v.hero{font-size:34px;color:var(--primary-deep)}.progress-track{height:8px;background:#14273d14;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:4px;transition:width .8s cubic-bezier(.2,.8,.3,1)}.tip-item{padding:12px 0;border-bottom:1px dashed var(--line)}.tip-item:last-child{border:none}.tip-item b{color:var(--primary-deep);font-size:13.5px}.tip-item div{font-size:12.5px;color:var(--dim);margin-top:4px;line-height:1.65}.share-row{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.qr-box{background:#fff;padding:12px;border-radius:16px;width:168px;height:168px;flex-shrink:0;border:1px solid var(--line2);box-shadow:var(--shadow-s)}.qr-box canvas,.qr-box img{width:142px!important;height:142px!important}.share-url{font-family:ui-monospace,SF Mono,monospace;font-size:14px;color:var(--primary-deep);word-break:break-all;background:#ffffffbf;padding:9px 13px;border-radius:10px;border:1px solid var(--line)}.share-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:1px;color:var(--sage);background:var(--sage-soft);border:1px solid #bfe0d1;padding:3px 10px;border-radius:11px;margin-bottom:8px}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;color:var(--dim);font-size:11.5px;letter-spacing:.5px;padding:9px 8px;border-bottom:1px solid var(--line2);font-weight:600}.tbl td{padding:9px 8px;border-bottom:1px solid var(--line);color:var(--ink2)}.tbl tr:last-child td{border:none}.pin-card{width:100%;max-width:380px;border-radius:24px;padding:34px 32px;text-align:center;background:#ffffffeb;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.pin-card h2{font-family:var(--font-display);font-size:20px;font-weight:800;margin-bottom:8px;color:var(--ink)}.pin-card p{margin-bottom:18px}.err{color:var(--rose);font-size:13px;margin-top:10px;min-height:18px}.toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:12px 24px;border-radius:14px;z-index:300;font-size:13.5px;box-shadow:0 12px 34px #0d1c3059;max-width:88vw;animation:fadein .25s ease;letter-spacing:.3px}.toast.hidden{display:none}.toast.error{background:var(--rose)}.chart-box{position:relative;height:290px}.chart-box.sm{height:220px}canvas{max-width:100%}.spin{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{color:var(--faint);font-size:13px;text-align:center;padding:28px 0}.hidden{display:none!important}.muted{color:var(--dim);font-size:12.5px}.mt{margin-top:12px}.gap8{display:flex;gap:8px;flex-wrap:wrap;align-items:center}@media(max-width:760px){header{padding:9px 12px;margin:8px 10px 0;flex-wrap:nowrap}.brand{min-width:0}.mark{width:34px;height:34px;border-radius:11px}h1{font-size:16px}.sub{display:none}.proj-btn{padding:7px 12px;font-size:12.5px;max-width:46vw;flex-shrink:1}nav{position:sticky;top:76px;max-width:94vw;overflow-x:auto}nav button{padding:8px 14px;font-size:13px}main{padding:16px 14px 90px}.panel{padding:18px}.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}.stat-card .v{font-size:26px}.chart-box{height:240px}.home-top .title h2{font-size:21px}.gacha-zone{padding:26px 14px 24px;border-radius:24px}.gacha-deck{width:172px;height:216px}.gacha-btn{padding:14px 42px;font-size:15px}.qcard .q-en{font-size:17.5px}.practice-box{padding:22px 16px;border-radius:20px}.answer-head{flex-direction:column;align-items:flex-start;gap:10px}.timer-ring-wrap{width:180px;height:180px}.timer-ring-wrap.small{width:104px;height:104px}.timer-num{font-size:50px}.p-q-en{font-size:19px}.score-big .n{font-size:56px}.filters select,.filters input{min-width:0;flex:1}.qr-box{width:150px;height:150px}.qr-box canvas,.qr-box img{width:124px!important;height:124px!important}.tbl{font-size:12px}}.card-popup{width:100%;max-width:640px;position:relative;animation:popupIn .3s ease}@keyframes popupIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.card-popup-close{position:absolute;top:-6px;right:-4px;z-index:5;width:36px;height:36px;border-radius:50%;border:1px solid var(--line2);background:#ffffffe6;color:var(--dim);font-size:15px;cursor:pointer;transition:all .15s}.card-popup-close:hover{color:var(--ink);transform:rotate(90deg)}.card-pop-in{animation:popCard .62s cubic-bezier(.22,1.2,.36,1);transform-origin:50% 120%;position:relative;overflow:hidden}@keyframes popCard{0%{transform:translateY(60px) rotate(7deg) scale(.6);opacity:0}55%{transform:translateY(-10px) rotate(-2deg) scale(1.05);opacity:1}to{transform:translateY(0) rotate(0) scale(1)}}.card-shine{position:absolute;top:-60%;bottom:-60%;width:42%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skew(-20deg);left:-60%;animation:shine 1s ease .35s forwards;pointer-events:none}@keyframes shine{to{left:130%}}.card-sample{margin-top:16px;max-height:300px;overflow-y:auto}.card-sample .sample-box{margin:0}.filters-row2{align-items:center}.filter-label{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--dim)}.filter-label select{min-width:110px;width:auto;padding:8px 10px;font-size:13px}.filter-label input[type=date]{width:auto;min-width:0;padding:8px 10px;font-size:13px}.stats-hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.stat-mini{text-align:left}.stat-mini+.stat-mini{border-left:1px solid var(--line);padding-left:18px}.stat-mini .k{font-size:11.5px;color:var(--dim);letter-spacing:.8px;margin-bottom:6px;display:flex;align-items:center;gap:6px}.stat-mini .k [data-ico] svg{width:14px;height:14px;color:var(--primary);margin-right:0}.stat-mini .v{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--ink)}.stat-mini .v small{font-size:13px;color:var(--dim);font-weight:500}.stat-mini .v.hero{color:var(--primary-deep)}.stat-mini .s{font-size:11.5px;color:var(--dim);margin-top:4px}.gacha-zone{margin-bottom:10px}.home-status{margin:0 0 12px}@media(max-width:760px){.stat-mini+.stat-mini{border-left:none;padding-left:0}.stats-hero-grid{grid-template-columns:1fr 1fr}.card-popup{max-width:94vw}.card-popup-close{top:4px;right:4px}.card-pop-in{padding:20px}.filter-label{width:100%}.filter-label select{flex:1;width:100%}}.p-q-mini{background:#ffffffb8;border:1px solid var(--glass-brd);border-left:3px solid var(--primary);border-radius:12px;padding:12px 16px;margin-bottom:18px;text-align:left}.p-q-mini-en{font-family:var(--font-read);font-size:15px;font-weight:600;color:var(--ink);line-height:1.5}.p-q-mini-zh{font-size:12px;color:var(--dim);margin-top:3px}@media(max-width:760px){.p-q-mini-en{font-size:14px}}.stt-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 14px;border-radius:12px;font-size:12.8px;font-weight:600;margin:8px 0;border:1px solid var(--line2);background:#fffc;color:var(--ink2)}.stt-banner.running{background:var(--primary-soft);border-color:#c7dcfb;color:var(--primary-deep)}.stt-banner.done{background:var(--sage-soft);border-color:#bfe0d1;color:var(--sage)}.stt-banner.warn{background:var(--gold-soft);border-color:#ead9b4;color:var(--gold-deep)}.sent-review-section{margin:16px 0}.sent-review-title{font-size:14px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px;margin-bottom:10px}.sent-review-title [data-ico] svg{width:16px;height:16px;color:var(--primary);margin-right:0}.sent-review-list{display:flex;flex-direction:column;gap:9px}.sent-item{background:#ffffffc2;border:1px solid var(--glass-brd);border-radius:13px;padding:12px 15px}.sent-item.good{border-left:3px solid var(--sage)}.sent-item.polish{border-left:3px solid var(--gold)}.sent-item.issue{border-left:3px solid var(--rose)}.sent-head{display:flex;align-items:flex-start;gap:9px;margin-bottom:6px}.sent-tag{flex-shrink:0;font-size:11px;font-weight:700;padding:2px 8px;border-radius:9px;margin-top:2px}.sent-tag.good{background:var(--sage-soft);color:var(--sage);border:1px solid #bfe0d1}.sent-tag.polish{background:var(--gold-soft);color:var(--gold-deep);border:1px solid #ead9b4}.sent-tag.issue{background:var(--rose-soft);color:var(--rose);border:1px solid #efc9c6}.sent-orig{font-family:var(--font-read);font-size:14px;font-weight:600;color:var(--ink);line-height:1.55}.sent-comment{font-size:12.8px;color:var(--ink2);line-height:1.6}.sent-better{margin-top:6px;padding:8px 11px;border-radius:10px;background:#e0f2fc8c;border:1px solid #d2e6fa;font-size:13px;color:var(--ink);line-height:1.6}.sent-better .lbl{font-size:11.5px;font-weight:700;color:var(--primary-deep);margin-right:4px}.sent-better .en{font-family:var(--font-read)}.polish-section{margin:16px 0 14px;padding:14px 16px;border-radius:14px;background:#ffffffb8;border:1px solid var(--glass-brd)}.polish-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.polish-bar-info b{font-size:13.8px;color:var(--ink);display:block}.polish-bar-info span{font-size:12px;color:var(--dim)}.polish-card{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line2)}.polish-note{font-size:12.5px;color:var(--primary-deep);background:var(--primary-soft);padding:8px 12px;border-radius:10px;margin-bottom:10px;line-height:1.6}.polish-text{white-space:pre-wrap;font-family:var(--font-read);font-size:14px;line-height:1.8;color:var(--ink);background:#ffffffd9;border:1px solid var(--line);border-radius:12px;padding:14px 16px}.im-progress{margin-top:10px;padding:10px 12px;border-radius:12px;background:#ffffffc7;border:1px solid var(--line)}.hist-card{background:#ffffffa8;border:1px solid var(--line);border-radius:12px;padding:10px 13px;margin-bottom:8px}
