.grade-card,.plan-card,.live-card,.pf-card{--tce-brand:rgb(var(--brand));--tce-brand-hover:rgb(var(--brand-hover));--tce-brand-light:rgb(var(--brand-light));--tce-brand-lighter:rgb(var(--brand-lighter));--tce-coral:rgb(var(--coral));--tce-coral-light:rgb(var(--coral-light));--tce-coral-dark:rgb(var(--coral-dark));--tce-amber:rgb(var(--amber));--tce-amber-light:rgb(var(--amber-light));--tce-amber-dark:rgb(var(--amber-dark));--tce-emerald:rgb(var(--emerald));--tce-emerald-light:rgb(var(--emerald-light));--tce-emerald-dark:rgb(var(--emerald-dark));--tce-gray-900:#111827;--tce-gray-600:#4b5563;--tce-gray-500:#6b7280;--tce-gray-400:#9ca3af;--tce-gray-200:#e5e7eb;--tce-gray-100:#f3f4f6;--tce-gray-50:#f9fafb;--tce-white:#fff;--tce-shadow-sm:0 1px 2px 0 #0000000d;--tce-shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;font-family:var(--font-inter), "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;color:var(--tce-gray-900);background:var(--tce-white);border:1px solid var(--tce-gray-100);width:100%;max-width:360px;box-shadow:var(--tce-shadow-md);-webkit-font-smoothing:antialiased;text-align:left;border-radius:16px;flex-direction:column;margin-inline:auto;display:flex;position:relative;overflow:hidden}.grade-card *,.plan-card *,.live-card *,.pf-card *{box-sizing:border-box;margin:0;padding:0}.grade-card{gap:clamp(9px,3vw,11px);padding:clamp(14px,4vw,16px)}.grade-card .gc-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.grade-card .gc-title{align-items:center;gap:9px;min-width:0;display:flex}.grade-card .gc-title .doc{background:var(--tce-brand-light);width:30px;height:30px;color:var(--tce-brand);border-radius:9px;flex:none;place-items:center;display:grid}.grade-card .gc-title .doc svg{width:17px;height:17px;display:block}.grade-card .gc-title h3{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.95rem,3.4vw,1.05rem);font-weight:700;overflow:hidden}.grade-card .gc-pill{text-transform:uppercase;letter-spacing:.05em;color:var(--tce-brand);background:var(--tce-brand-light);border-radius:9999px;flex:none;padding:5px 10px;font-size:.66rem;font-weight:600}.grade-card .gc-rows{flex-direction:column;gap:clamp(6px,2vw,7px);display:flex}.grade-card .qrow{border-radius:10px;align-items:center;gap:11px;padding:5px 9px;transition:background .3s;display:flex;position:relative}.grade-card .qrow.scanning{background:var(--tce-brand-lighter)}.grade-card .qrow .qnum{background:var(--tce-gray-100);width:23px;height:23px;color:var(--tce-gray-500);border-radius:7px;flex:none;place-items:center;font-size:.72rem;font-weight:700;transition:color .3s,background .3s;display:grid}.grade-card .qrow .scribble{background:var(--tce-gray-100);border-radius:9999px;flex:1;min-width:0;height:8px}.grade-card .qrow .scribble.short{max-width:55%}.grade-card .qrow .scribble.mid{max-width:72%}.grade-card .mark{opacity:0;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;transition:transform .42s cubic-bezier(.34,1.56,.64,1),opacity .3s;display:grid;transform:scale(0)}.grade-card .mark.show{opacity:1;transform:scale(1)}.grade-card .mark.correct{background:var(--tce-emerald);box-shadow:0 2px 6px -1px rgb(var(--emerald) / .45)}.grade-card .mark.wrong{background:var(--tce-coral);box-shadow:0 2px 6px -1px rgb(var(--coral) / .45)}.grade-card .mark svg{stroke:#fff;width:15px;height:15px}.grade-card .mark svg path{stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:24;stroke-dashoffset:24px}.grade-card .mark.show svg path{animation:.4s ease-out .12s forwards tce-draw}.grade-card .mark.show svg path.p2{animation-delay:.24s}@keyframes tce-draw{to{stroke-dashoffset:0}}.grade-card .pts{font-variant-numeric:tabular-nums;text-align:right;opacity:0;flex:none;width:30px;font-size:.78rem;font-weight:700;transition:opacity .3s,transform .3s;transform:translateY(4px)}.grade-card .pts.show{opacity:1;transform:translateY(0)}.grade-card .pts.correct{color:var(--tce-emerald)}.grade-card .pts.wrong{color:var(--tce-gray-400)}.grade-card .gc-divider{background:var(--tce-gray-100);height:1px}.grade-card .gc-score{align-items:center;gap:clamp(12px,3.2vw,16px);display:flex}.grade-card .ring{flex:none;width:clamp(52px,14vw,56px);height:clamp(52px,14vw,56px);position:relative}.grade-card .ring svg{width:100%;height:100%;transform:rotate(-90deg)}.grade-card .ring .track{stroke:var(--tce-gray-100)}.grade-card .ring .fill{stroke:var(--tce-brand);stroke-linecap:round;stroke-dasharray:var(--circ);stroke-dashoffset:var(--circ);transition:stroke-dashoffset 1.1s cubic-bezier(.22,1,.36,1)}.grade-card .ring .pct{letter-spacing:-.02em;color:var(--tce-brand);font-variant-numeric:tabular-nums;place-items:center;font-size:clamp(.82rem,3.2vw,.95rem);font-weight:800;display:grid;position:absolute;inset:0}.grade-card .score-meta{flex:1;min-width:0}.grade-card .score-meta .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--tce-gray-400);margin-bottom:3px;font-size:.64rem;font-weight:600}.grade-card .score-meta .marks{letter-spacing:-.02em;color:var(--tce-gray-900);font-variant-numeric:tabular-nums;font-size:clamp(1.25rem,4.8vw,1.55rem);font-weight:800;line-height:1.1}.grade-card .score-meta .marks small{color:var(--tce-gray-400);font-size:.62em;font-weight:600}.grade-card .grade-badge{background:var(--tce-emerald-light);color:var(--tce-emerald-dark);opacity:0;border-radius:9999px;flex:none;align-items:center;gap:6px;padding:7px 12px;font-size:.8rem;font-weight:700;transition:opacity .4s,transform .45s cubic-bezier(.34,1.56,.64,1);display:flex;transform:scale(.7)}.grade-card .grade-badge.show{opacity:1;transform:scale(1)}.grade-card .grade-badge svg{width:14px;height:14px;stroke:var(--tce-emerald);stroke-width:2.4px;fill:none}.plan-card{gap:clamp(14px,3.4vw,17px);padding:clamp(16px,4.2vw,22px)}.plan-card .pc-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.plan-card .pc-title{align-items:center;gap:9px;min-width:0;display:flex}.plan-card .pc-title .doc{background:var(--tce-brand-light);width:30px;height:30px;color:var(--tce-brand);border-radius:9px;flex:none;place-items:center;display:grid}.plan-card .pc-title .doc svg{width:17px;height:17px;display:block}.plan-card .pc-title h3{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.95rem,3.4vw,1.05rem);font-weight:700;overflow:hidden}.plan-card .pc-pill{text-transform:uppercase;letter-spacing:.05em;color:var(--tce-brand);background:var(--tce-brand-light);border-radius:9999px;flex:none;align-items:center;gap:6px;padding:5px 10px;font-size:.66rem;font-weight:600;transition:color .3s,background .3s;display:flex}.plan-card .pc-pill .dot{background:var(--tce-brand);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite tce-pulse}.plan-card .pc-pill.done .dot{animation:none}@keyframes tce-pulse{0%,to{opacity:.35}50%{opacity:1}}.plan-card .pc-label{text-transform:uppercase;letter-spacing:.07em;color:var(--tce-gray-400);align-items:center;gap:7px;font-size:.64rem;font-weight:600;display:flex}.plan-card .pc-label>span:first-child{white-space:nowrap;flex:none}.plan-card .pc-label .ln{background:var(--tce-gray-100);flex:1;height:1px}.plan-card .focus{flex-direction:column;gap:clamp(7px,2vw,9px);margin-top:9px;display:flex}.plan-card .farea{background:var(--tce-gray-50);border:1px solid var(--tce-gray-100);opacity:0;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;transition:opacity .4s,transform .45s cubic-bezier(.22,1,.36,1);display:flex;transform:translateY(7px)}.plan-card .farea.show{opacity:1;transform:translateY(0)}.plan-card .farea .bar{border-radius:9999px;flex:none;width:4px;height:24px}.plan-card .farea .ftext{flex:1;min-width:0}.plan-card .farea .ftitle{letter-spacing:-.01em;color:var(--tce-gray-900);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;line-height:1.2;display:block;overflow:hidden}.plan-card .farea .fsub{color:var(--tce-gray-500);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:.66rem;display:block;overflow:hidden}.plan-card .farea .prio{text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;flex:none;padding:3px 8px;font-size:.6rem;font-weight:700}.plan-card .prio.high{background:var(--tce-coral-light);color:var(--tce-coral-dark)}.plan-card .prio.med{background:var(--tce-amber-light);color:var(--tce-amber-dark)}.plan-card .bar.high{background:var(--tce-coral)}.plan-card .bar.med{background:var(--tce-amber)}.plan-card .sched{margin-top:9px}.plan-card .week{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.plan-card .day{flex-direction:column;align-items:center;gap:6px;display:flex}.plan-card .day .dname{color:var(--tce-gray-400);letter-spacing:.02em;font-size:.6rem;font-weight:700}.plan-card .day.weekend .dname{color:var(--tce-gray-200)}.plan-card .lane{background:var(--tce-gray-50);border:1px solid var(--tce-gray-100);border-radius:8px;width:100%;height:70px;position:relative;overflow:hidden}.plan-card .day.weekend .lane{background:var(--tce-white);border-style:dashed}.plan-card .lane:before,.plan-card .lane:after{content:"";background:var(--tce-gray-100);height:1px;position:absolute;left:0;right:0}.plan-card .lane:before{top:33%}.plan-card .lane:after{top:66%}.plan-card .sess{background:var(--tce-brand);box-shadow:0 2px 6px -1px rgb(var(--brand) / .45);color:#fff;opacity:0;border-radius:6px;flex-direction:column;justify-content:center;padding:0 5px;transition:opacity .35s,transform .45s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;left:3px;right:3px;overflow:hidden;transform:translateY(-9px)scale(.92)}.plan-card .sess.show{opacity:1;transform:translateY(0)scale(1)}.plan-card .sess .st{font-variant-numeric:tabular-nums;font-size:.56rem;font-weight:700;line-height:1.1}.plan-card .sess .sn{opacity:.85;white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:.5rem;font-weight:500;line-height:1.1;overflow:hidden}.live-card{gap:clamp(11px,2.8vw,13px);padding:clamp(14px,3.6vw,16px)}.live-card .lc-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.live-card .lc-title{align-items:center;gap:9px;min-width:0;display:flex}.live-card .lc-title .vic{background:var(--tce-brand-light);width:30px;height:30px;color:var(--tce-brand);border-radius:9px;flex:none;place-items:center;display:grid}.live-card .lc-title .vic svg{width:17px;height:17px;display:block}.live-card .lc-title h3{letter-spacing:-.01em;white-space:nowrap;font-size:clamp(.95rem,3.4vw,1.05rem);font-weight:700}.live-card .lc-meta{flex:none;align-items:center;gap:9px;display:flex}.live-card .lc-pill{text-transform:uppercase;letter-spacing:.06em;color:var(--tce-coral-dark);background:var(--tce-coral-light);border-radius:9999px;align-items:center;gap:6px;padding:5px 10px;font-size:.63rem;font-weight:700;display:flex}.live-card .lc-pill .dot{background:var(--tce-coral);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite tce-livePulse}.live-card .lc-time{font-variant-numeric:tabular-nums;color:var(--tce-gray-500);font-size:.78rem;font-weight:600}@keyframes tce-livePulse{0%,to{opacity:.3;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}.live-card .stage{aspect-ratio:3/2;border:1px solid var(--tce-gray-200);opacity:0;background:#0e1116;border-radius:12px;width:100%;transition:opacity .55s,transform .55s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden;transform:translateY(8px)scale(.99)}.live-card .stage.show{opacity:1;transform:none}.live-card .slide{opacity:0;transition:opacity .85s;position:absolute;inset:0}.live-card .slide.active{opacity:1}.live-card .slide img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.015)}.live-card .slide.active img{animation:3.6s ease-out both tce-kenburns}@keyframes tce-kenburns{0%{transform:scale(1.015)}to{transform:scale(1.085)}}.live-card .stage:after{content:"";pointer-events:none;z-index:2;background:linear-gradient(#00000047,#0000);height:38%;position:absolute;top:0;left:0;right:0}.live-card .recdot{z-index:3;background:var(--tce-coral);width:9px;height:9px;box-shadow:0 0 0 0 rgb(var(--coral) / .55);border-radius:50%;animation:1.4s ease-out infinite tce-recPulse;position:absolute;top:9px;left:10px}@keyframes tce-recPulse{0%{box-shadow:0 0 0 0 rgb(var(--coral) / .5)}70%{box-shadow:0 0 0 7px rgb(var(--coral) / 0)}to{box-shadow:0 0 0 0 rgb(var(--coral) / 0)}}.live-card .dots{justify-content:center;align-items:center;gap:7px;display:flex}.live-card .dots i{background:var(--tce-gray-200);border-radius:9999px;width:6px;height:6px;transition:width .4s cubic-bezier(.22,1,.36,1),background .4s}.live-card .dots i.on{background:var(--tce-brand);width:18px}.pf-card{gap:clamp(13px,3.2vw,16px);padding:clamp(16px,4.2vw,22px)}.pf-card .pf-label{text-transform:uppercase;letter-spacing:.07em;color:var(--tce-gray-400);align-items:center;gap:7px;margin-bottom:9px;font-size:.64rem;font-weight:600;display:flex}.pf-card .pf-label>span:first-child{white-space:nowrap;flex:none}.pf-card .pf-label .ln{background:var(--tce-gray-100);flex:1;height:1px}.pf-card .prob{border:1px solid var(--tce-gray-100);background:var(--tce-gray-50);border-radius:12px;flex-direction:column;gap:11px;padding:13px 14px;display:flex;position:relative;overflow:hidden}.pf-card .prob-top{align-items:center;gap:9px;display:flex}.pf-card .prob-q{letter-spacing:-.01em;min-width:0;color:var(--tce-gray-900);font-variant-numeric:tabular-nums;flex:1;font-size:.95rem;font-weight:600}.pf-card .prob-q .eq{color:var(--tce-brand);font-weight:700}.pf-card .qbadge{text-transform:uppercase;letter-spacing:.04em;color:var(--tce-brand);background:var(--tce-white);border:1px solid var(--tce-brand-light);border-radius:9999px;flex:none;padding:3px 8px;font-size:.56rem;font-weight:700}.pf-card .choices{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.pf-card .choice{border:1px solid var(--tce-gray-200);background:var(--tce-white);text-align:center;color:var(--tce-gray-600);font-variant-numeric:tabular-nums;border-radius:9px;padding:8px 4px;font-size:.82rem;font-weight:600;transition:border-color .3s,background .3s,color .3s,box-shadow .3s,transform .3s;position:relative}.pf-card .choice.scan{border-color:var(--tce-brand);box-shadow:0 0 0 3px var(--tce-brand-light)}.pf-card .choice.right{background:var(--tce-emerald-light);color:var(--tce-emerald-dark);box-shadow:0 0 0 3px rgb(var(--emerald) / .18);border-color:#0000}.pf-card .choice .tick{background:var(--tce-emerald);opacity:0;border:2px solid #fff;border-radius:50%;place-items:center;width:18px;height:18px;transition:opacity .3s,transform .4s cubic-bezier(.34,1.56,.64,1);display:grid;position:absolute;top:-7px;right:-7px;transform:scale(.4)}.pf-card .choice .tick.show{opacity:1;transform:scale(1)}.pf-card .choice .tick svg{stroke:#fff;stroke-width:3px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:9px;height:9px}.pf-card .fb{opacity:0;align-items:flex-start;gap:9px;transition:opacity .4s,transform .45s cubic-bezier(.22,1,.36,1);display:flex;transform:translateY(8px)}.pf-card .fb.show{opacity:1;transform:none}.pf-card .fb .av{background:linear-gradient(135deg, var(--tce-brand), rgb(var(--teal)));color:#fff;width:30px;height:30px;box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--tce-brand-light);border-radius:50%;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:grid}.pf-card .fb .bub{background:var(--tce-brand-lighter);border:1px solid var(--tce-brand-light);border-radius:4px 12px 12px;flex:1;min-width:0;padding:9px 11px;position:relative}.pf-card .fb .bub .who{color:var(--tce-brand);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px;font-size:.6rem;font-weight:700}.pf-card .fb .bub .msg{color:var(--tce-gray-600);font-size:.8rem;font-weight:500;line-height:1.35}.pf-card .fb .bub .msg b{color:var(--tce-gray-900);font-weight:600}.pf-card .fb .typing{vertical-align:middle;gap:3px;display:inline-flex}.pf-card .fb .typing i{background:var(--tce-brand);opacity:.4;border-radius:50%;width:5px;height:5px;animation:1s ease-in-out infinite tce-typingDot}.pf-card .fb .typing i:nth-child(2){animation-delay:.15s}.pf-card .fb .typing i:nth-child(3){animation-delay:.3s}@keyframes tce-typingDot{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.pf-card .track{border:1px solid var(--tce-gray-100);border-radius:12px;flex-direction:column;gap:9px;padding:13px 14px 11px;display:flex}.pf-card .track-top{justify-content:space-between;align-items:flex-end;gap:10px;display:flex}.pf-card .track-top .mlabel{text-transform:uppercase;letter-spacing:.06em;color:var(--tce-gray-400);font-size:.62rem;font-weight:600}.pf-card .track-top .mastery{letter-spacing:-.02em;color:var(--tce-brand);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800;line-height:1}.pf-card .track-top .mastery small{color:var(--tce-gray-400);font-size:.5em;font-weight:700}.pf-card .track-top .examflag{color:var(--tce-amber-dark);background:var(--tce-amber-light);opacity:0;border-radius:9999px;align-items:center;gap:5px;padding:4px 9px;font-size:.62rem;font-weight:700;transition:opacity .35s,transform .4s cubic-bezier(.34,1.56,.64,1);display:flex;transform:scale(.7)}.pf-card .track-top .examflag.show{opacity:1;transform:none}.pf-card .track-top .examflag svg{width:11px;height:11px;stroke:var(--tce-amber-dark);stroke-width:2.2px;fill:none;stroke-linecap:round;stroke-linejoin:round}.pf-card .chart{width:100%;height:74px;position:relative}.pf-card .chart svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.pf-card .grid-ln{stroke:var(--tce-gray-100);stroke-width:1px}.pf-card .area{fill:url(#pfGrad);opacity:0;transition:opacity .6s .2s}.pf-card .area.show{opacity:1}.pf-card .line{fill:none;stroke:var(--tce-brand);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.6s cubic-bezier(.45,.05,.3,1)}.pf-card .line.draw{stroke-dashoffset:0}.pf-card .review{opacity:0;transition:opacity .3s}.pf-card .review.show{opacity:1}.pf-card .review circle{fill:#fff;stroke:var(--tce-brand);stroke-width:2.5px}.pf-card .review.r-now circle{fill:var(--tce-brand)}.pf-card .examline{stroke:var(--tce-amber);stroke-width:1.5px;stroke-dasharray:3 3;opacity:0;transition:opacity .4s}.pf-card .examline.show{opacity:1}.pf-card .dotnow{fill:var(--tce-brand);opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity .3s}.pf-card .dotnow.show{opacity:1;animation:1.6s ease-in-out infinite tce-nowPulse}@keyframes tce-nowPulse{0%,to{r:4}50%{r:5.5}}@media (prefers-reduced-motion:reduce){.grade-card .mark,.grade-card .pts,.grade-card .ring .fill,.grade-card .grade-badge,.grade-card .qrow,.plan-card .farea,.plan-card .sess,.plan-card .pc-pill,.live-card .stage,.live-card .slide,.pf-card *{transition:none!important}.grade-card .mark.show svg path{stroke-dashoffset:0!important;animation:none!important}.plan-card .pc-pill .dot,.live-card .lc-pill .dot,.live-card .recdot,.live-card .slide.active img,.pf-card .pf-pill .dot,.pf-card .fb .typing i,.pf-card .dotnow.show{animation:none!important}.pf-card .line{stroke-dashoffset:0!important}}
