@keyframes cfl-shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}@keyframes cfl-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.cfl-analytics-skeleton-wrap{padding:16px;display:flex;flex-direction:column;gap:10px}.cfl-sk-block{border-radius:8px;background:var(--cfl-analytics-shimmer);background-size:936px 100%;animation:cfl-shimmer 1.5s linear infinite}.cfl-sk-header-block{height:68px}.cfl-sk-strip-block{height:52px}.cfl-sk-section-block{height:40px}.cfl-sk-content-block{height:120px}.cfl-sk-group{display:flex;flex-direction:column;gap:6px}.cfl-analytics-header,.cfl-analytics-inner{background:var(--cfl-analytics-bg)}.cfl-analytics-header{border-bottom:none}.cfl-analytics-player-card{display:flex;gap:14px;align-items:center;padding:14px 16px;border-radius:12px;background:var(--cfl-analytics-player-bg);border:1px solid var(--cfl-analytics-line)}.cfl-analytics-avatar-wrap{position:relative;flex-shrink:0}.cfl-analytics-avatar-wrap.has-rating:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid;pointer-events:none;opacity:.65;box-shadow:0 0 10px rgba(0,0,0,.08)}.cfl-analytics-avatar-wrap.has-rating.cfl-rating-newbie:after{color:grey}.cfl-analytics-avatar-wrap.has-rating.cfl-rating-pupil:after{color:#77b053}.cfl-analytics-avatar-wrap.has-rating.cfl-rating-specialist:after{color:#3bb9ae}.cfl-analytics-avatar-wrap.has-rating.cfl-rating-expert:after{color:#5a82ff}.cfl-analytics-avatar-wrap.has-rating.cfl-rating-cm:after{color:#a4f}.cfl-analytics-avatar-wrap.has-rating.cfl-rating-master:after{color:#f77f00}.cfl-analytics-avatar-wrap.has-rating.cfl-rating-gm:after{color:#ef4743}.cfl-analytics-avatar{-o-object-fit:cover;object-fit:cover;display:block}.cfl-analytics-avatar,.cfl-analytics-avatar-fallback{width:52px;height:52px;border-radius:50%;flex-shrink:0;background:var(--cfl-analytics-surface)}.cfl-analytics-avatar-fallback{border:1px solid var(--cfl-analytics-line);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--cfl-fg-muted)}.cfl-analytics-header-text{flex:1;min-width:0}.cfl-analytics-handle-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.cfl-analytics-handle{font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--cfl-fg-strong)}.cfl-analytics-rank-pill{font-size:10px;font-weight:600;padding:6px 12px;border-radius:99px;letter-spacing:.06em;text-transform:uppercase;line-height:1;box-shadow:0 1px 3px rgba(0,0,0,.12)}.cfl-analytics-rank-pill.cfl-rating-newbie{background:hsla(0,0%,50%,.18);color:grey}.cfl-analytics-rank-pill.cfl-rating-pupil{background:rgba(119,176,83,.18);color:#77b053}.cfl-analytics-rank-pill.cfl-rating-specialist{background:rgba(59,185,174,.18);color:#3bb9ae}.cfl-analytics-rank-pill.cfl-rating-expert{background:rgba(90,130,255,.18);color:#5a82ff}.cfl-analytics-rank-pill.cfl-rating-cm{background:rgba(170,68,255,.18);color:#a4f}.cfl-analytics-rank-pill.cfl-rating-master{background:rgba(247,127,0,.18);color:#f77f00}.cfl-analytics-rank-pill.cfl-rating-gm{background:rgba(239,71,67,.18);color:#ef4743}.cfl-analytics-rating-block{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.cfl-analytics-rating-current{font-size:24px;font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.cfl-analytics-rating-max-chip{font-size:11px;font-weight:500;color:var(--cfl-fg-muted);padding:4px 8px;border-radius:6px;background:var(--cfl-analytics-surface);border:1px solid var(--cfl-analytics-line);font-variant-numeric:tabular-nums}.cfl-analytics-trend{font-size:11px;font-weight:600;color:#f97316}.cfl-analytics-stat-strip{display:flex;align-items:center;padding:10px 14px;background:var(--cfl-analytics-surface);border-radius:10px;border:1px solid var(--cfl-analytics-line)}.cfl-analytics-stat-pill{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.cfl-analytics-stat-pill-league{flex:1;display:flex;align-items:center;justify-content:center}.cfl-analytics-stat-value{font-size:15px;font-weight:800;color:var(--cfl-fg-strong);line-height:1.2}.cfl-analytics-stat-label{font-size:9px;color:var(--cfl-fg-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.cfl-analytics-stat-sep{width:1px;height:34px;background:var(--cfl-analytics-line);flex-shrink:0;margin:0 2px}.cfl-analytics-xp-week{color:#f97316}.cfl-analytics-section{border-bottom:1px solid var(--cfl-analytics-line);border-left:2px solid transparent;transition:border-left-color .18s ease}.cfl-analytics-section.open{border-left-color:#f97316}.cfl-analytics-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border:none;background:transparent;color:var(--cfl-fg);font:inherit;font-size:12px;font-weight:600;cursor:pointer;text-align:left;transition:background .15s}.cfl-analytics-section-toggle:hover{background:var(--cfl-analytics-hover)}.cfl-analytics-section-head{display:flex;align-items:center;gap:8px}.cfl-analytics-section-icon{font-size:13px;line-height:1;opacity:.9}.cfl-analytics-section-body{padding:0 16px 16px}.cfl-analytics-league-hero{padding:16px;border-radius:10px;background:var(--cfl-analytics-surface);border:1px solid var(--cfl-analytics-line)}.cfl-analytics-league-tier-row{display:flex;align-items:center;gap:14px;margin-bottom:16px}.cfl-analytics-league-tier-icon{font-size:36px;line-height:1;flex-shrink:0}.cfl-analytics-league-tier-info{display:flex;flex-direction:column;gap:4px}.cfl-analytics-league-tier-name{font-size:24px;font-weight:900;line-height:1;letter-spacing:-.02em}.cfl-league-stone .cfl-analytics-league-tier-name{color:#999}.cfl-league-bronze .cfl-analytics-league-tier-name{color:#cd7f32}.cfl-league-silver .cfl-analytics-league-tier-name{color:silver}.cfl-league-gold .cfl-analytics-league-tier-name{color:#ffb800;text-shadow:0 0 20px rgba(255,184,0,.3)}.cfl-league-platinum .cfl-analytics-league-tier-name{color:#5a82ff}.cfl-league-diamond .cfl-analytics-league-tier-name{color:#38bdf8;text-shadow:0 0 20px rgba(56,189,248,.3)}.cfl-analytics-league-weekly-xp{font-size:12px;color:var(--cfl-fg-muted)}.cfl-analytics-league-progress-section{display:flex;flex-direction:column;gap:8px}.cfl-league-track-tall{height:10px!important;border-radius:99px;background:var(--cfl-analytics-league-track);overflow:hidden}.cfl-analytics-league-bar-labels{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--cfl-fg-subtle)}.cfl-analytics-league-remaining-xp{color:#f97316;font-weight:700}.cfl-analytics-league-max{margin:0;font-size:12px;color:var(--cfl-fg-muted);text-align:center;padding:8px 0}.cfl-analytics-streak-hero{display:flex;flex-direction:column;align-items:center;padding:8px 0 16px;margin-bottom:4px}.cfl-analytics-streak-big{display:flex;align-items:center;justify-content:center;gap:10px;line-height:1}.cfl-analytics-streak-big-num{font-size:56px;font-weight:900;color:#f97316;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;text-shadow:0 0 32px rgba(249,115,22,.28)}.cfl-analytics-streak-fire{font-size:36px;line-height:1;filter:drop-shadow(0 0 8px rgba(249,115,22,.4))}.cfl-analytics-streak-big-label{font-size:12px;font-weight:500;color:var(--cfl-fg-muted);margin-top:8px;letter-spacing:.08em;text-transform:uppercase}.cfl-analytics-streak-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.cfl-analytics-streak-card{position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:72px;padding:12px 14px;border-radius:10px;background:var(--cfl-analytics-stat-tile);border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease}.cfl-analytics-streak-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--cfl-shadow)}.cfl-analytics-streak-dot{position:absolute;top:10px;right:10px;width:6px;height:6px;border-radius:50%;background:#f97316;box-shadow:0 0 8px rgba(249,115,22,.65)}.cfl-analytics-streak-value{font-size:28px;font-weight:800;color:var(--cfl-fg-strong);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.cfl-analytics-streak-label{font-size:9px;font-weight:600;color:var(--cfl-fg-muted);text-transform:uppercase;letter-spacing:.1em}.cfl-analytics-streak-accent{border-color:rgba(249,115,22,.28);background:linear-gradient(145deg,rgba(249,115,22,.1) 0,var(--cfl-analytics-stat-tile) 72%);box-shadow:inset 0 1px 0 rgba(249,115,22,.12)}.cfl-analytics-streak-accent .cfl-analytics-streak-value{color:#f97316}.cfl-analytics-cal-cell{aspect-ratio:1;border-radius:5px;background:var(--cfl-analytics-heat-base);border:1px solid transparent}.cfl-analytics-cal-cell.solved{background:rgba(249,115,22,.35)}.cfl-analytics-cal-cell.streak{background:#f97316;box-shadow:0 0 0 1px rgba(249,115,22,.5)}.cfl-analytics-cal-cell.today{border-color:var(--cfl-analytics-today-border);outline:1px solid var(--cfl-analytics-today-border)}.cfl-analytics-heatmap-wrap{overflow-x:auto;padding:4px 0 2px}.cfl-analytics-heatmap-months{display:grid;grid-template-columns:repeat(26,13px);margin-bottom:4px}.cfl-analytics-heatmap-months span{font-size:9px;color:var(--cfl-fg-subtle);white-space:nowrap;overflow:hidden}.cfl-analytics-heatmap-grid{display:grid;grid-template-rows:repeat(7,10px);grid-auto-flow:column;grid-auto-columns:10px;gap:3px}.cfl-analytics-heat-cell{width:10px;height:10px;border-radius:2px;background:var(--cfl-analytics-heat-base)}.cfl-analytics-heat-cell[data-level="0"]{background:var(--cfl-analytics-heat-0)}.cfl-analytics-heat-cell[data-level="1"]{background:#7c3100}.cfl-analytics-heat-cell[data-level="2"]{background:#c2440c}.cfl-analytics-heat-cell[data-level="3"]{background:#f97316}.cfl-analytics-heat-cell[data-level="4"]{background:#ffb347;box-shadow:0 0 4px rgba(255,179,71,.4)}.cfl-analytics-heatmap-caption{margin-top:8px;font-size:10px;color:var(--cfl-fg-subtle)}.cfl-analytics-histogram{display:flex;align-items:flex-end;gap:5px;height:100px;padding-top:0}.cfl-analytics-hist-col{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0;gap:0}.cfl-analytics-hist-count{font-size:10px;font-weight:700;color:var(--cfl-fg-muted);margin-bottom:4px}.cfl-analytics-hist-bar{width:100%;max-width:28px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#fb923c,#c2440c);transition:background .15s}.cfl-analytics-hist-col:hover .cfl-analytics-hist-bar{background:linear-gradient(180deg,#ffb347,#f97316)}.cfl-analytics-hist-label{font-size:8px;color:var(--cfl-fg-subtle);text-align:center;line-height:1.2;margin-top:4px;word-break:break-all}.cfl-analytics-diff-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.cfl-analytics-diff-chip{font-size:11px;padding:3px 10px;border-radius:99px;background:var(--cfl-analytics-surface);border:1px solid var(--cfl-analytics-line);color:var(--cfl-fg-muted);font-weight:500}.cfl-analytics-badges{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cfl-analytics-badge{position:relative;padding:10px;border-radius:10px;border:1px solid var(--cfl-analytics-line);background:var(--cfl-analytics-surface);display:flex;gap:10px;align-items:flex-start;animation:cfl-fade-in .3s ease both;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s;overflow:hidden}.cfl-analytics-badge.locked{opacity:.38}.cfl-analytics-badge.earned{border-color:rgba(249,115,22,.28);background:rgba(249,115,22,.04)}.cfl-analytics-badge.earned:hover{transform:translateY(-2px);border-color:rgba(249,115,22,.5);box-shadow:0 6px 18px rgba(249,115,22,.14)}.cfl-analytics-badge-icon-area{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:17px}.cfl-analytics-badge-icon-area.earned{background:rgba(249,115,22,.14);border:1px solid rgba(249,115,22,.28)}.cfl-analytics-badge-icon-area.locked{background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.08);filter:blur(3px)}.cfl-analytics-badge-icon-emoji{display:block;line-height:1}.cfl-analytics-badge-body{flex:1;min-width:0}.cfl-analytics-badge-xp{position:absolute;top:7px;right:8px;font-size:9px;font-weight:700;color:#f97316}.cfl-analytics-badge-title{display:block;font-size:11px;font-weight:700;color:var(--cfl-fg-strong);margin-bottom:2px;padding-right:32px;line-height:1.3}.cfl-analytics-badge-detail{display:block;font-size:10px;color:var(--cfl-fg-muted);line-height:1.35}.cfl-analytics-badge-progress{height:3px;margin-top:6px;border-radius:99px;background:var(--cfl-analytics-bar-track);overflow:hidden}.cfl-analytics-badge-progress div{height:100%;border-radius:99px;background:rgba(249,115,22,.55)}.cfl-analytics-insights{display:flex;flex-direction:column;gap:8px}.cfl-analytics-insight-card{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:8px;background:var(--cfl-analytics-surface);border-left:1px solid var(--cfl-analytics-line);border:1px solid var(--cfl-analytics-line);border-left-width:3px;animation:cfl-fade-in .3s ease both}.cfl-insight-milestone{border-left-color:#f97316;background:rgba(249,115,22,.04)}.cfl-insight-activity{border-left-color:#22c55e;background:rgba(34,197,94,.04)}.cfl-insight-tip{border-left-color:#3b82f6;background:rgba(59,130,246,.04)}.cfl-analytics-insight-icon{font-size:14px;line-height:1.45;flex-shrink:0}.cfl-analytics-insight-text{margin:0;font-size:12px;line-height:1.5;color:var(--cfl-fg-dim)}@keyframes cfl-magic-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes cfl-magic-glow{0%,to{box-shadow:0 2px 8px rgba(0,0,0,.25)}50%{box-shadow:0 4px 16px rgba(249,115,22,.08)}}@keyframes cfl-magic-active-pulse{0%,to{box-shadow:0 4px 16px rgba(249,115,22,.18),0 0 0 1px rgba(249,115,22,.35),inset 0 1px 0 hsla(0,0%,100%,.06)}50%{box-shadow:0 6px 22px rgba(249,115,22,.28),0 0 0 1px rgba(249,115,22,.55),0 0 18px rgba(249,115,22,.15),inset 0 1px 0 hsla(0,0%,100%,.08)}}@keyframes cfl-magic-icon-glow{0%,to{box-shadow:0 3px 10px var(--cfl-shadow)}50%{box-shadow:0 4px 14px rgba(249,115,22,.22),0 0 12px rgba(249,115,22,.12)}}@keyframes cfl-magic-icon-float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}}@keyframes cfl-card-enter{0%{opacity:0;transform:translateY(18px) scale(.9)}60%{opacity:1;transform:translateY(-3px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cfl-sparkle-pop{0%{opacity:0;transform:scale(.4) rotate(0deg)}35%{opacity:1;transform:scale(1) rotate(12deg)}to{opacity:0;transform:scale(1.35) rotate(-8deg)}}@keyframes cfl-icon-pop{0%{transform:scale(1)}35%{transform:scale(1.18)}65%{transform:scale(.94)}to{transform:scale(1)}}@keyframes cfl-shimmer-sweep{0%{left:-120%}to{left:220%}}@keyframes cfl-detail-slide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cfl-analytics-header{padding:16px 16px 8px}.cfl-analytics-stat-strip{display:none!important}.cfl-analytics-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:8px 16px 12px}.cfl-analytics-content:not([hidden]) .cfl-analytics-magic-card{animation:cfl-card-enter .5s cubic-bezier(.16,1,.3,1) both,cfl-magic-glow 5s ease-in-out .5s infinite}.cfl-analytics-content:not([hidden]) .cfl-analytics-magic-card:first-child{animation-delay:.06s,.56s}.cfl-analytics-content:not([hidden]) .cfl-analytics-magic-card:nth-child(2){animation-delay:.12s,1.8s}.cfl-analytics-content:not([hidden]) .cfl-analytics-magic-card:nth-child(3){animation-delay:.18s,3s}.cfl-analytics-content:not([hidden]) .cfl-analytics-magic-card:nth-child(4){animation-delay:.24s,4.2s}.cfl-analytics-magic-card{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:12px;min-height:108px;padding:14px 14px 12px;border:1px solid var(--cfl-analytics-magic-border);border-radius:14px;background:var(--cfl-analytics-magic-card);color:var(--cfl-fg);font:inherit;cursor:pointer;text-align:left;overflow:hidden;transition:transform .32s cubic-bezier(.16,1,.3,1),border-color .25s ease,box-shadow .32s ease,background .25s ease}.cfl-analytics-magic-blob{position:absolute;top:-24px;right:-16px;width:88px;height:88px;border-radius:50%;pointer-events:none;opacity:.55;filter:blur(2px)}.cfl-analytics-magic-card--streaks .cfl-analytics-magic-blob{background:radial-gradient(circle,rgba(249,115,22,.35) 0,transparent 70%)}.cfl-analytics-magic-card--activity .cfl-analytics-magic-blob{background:radial-gradient(circle,rgba(56,189,248,.32) 0,transparent 70%)}.cfl-analytics-magic-card--difficulty .cfl-analytics-magic-blob{background:radial-gradient(circle,rgba(167,139,250,.32) 0,transparent 70%)}.cfl-analytics-magic-card--suggested .cfl-analytics-magic-blob{background:radial-gradient(circle,rgba(20,184,166,.32) 0,transparent 70%)}.cfl-analytics-magic-top{position:relative;z-index:1;display:flex;align-items:flex-start;gap:10px}.cfl-analytics-magic-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(145deg,hsla(0,0%,100%,.04),transparent 48%);pointer-events:none;opacity:.85;transition:opacity .25s ease}.cfl-analytics-magic-card:hover{transform:translateY(-5px) scale(1.06);border-color:rgba(249,115,22,.45);box-shadow:0 10px 28px var(--cfl-shadow),0 0 24px rgba(249,115,22,.2),0 0 48px rgba(249,115,22,.08);background:var(--cfl-analytics-magic-card-hover)}.cfl-analytics-magic-card:hover:before{opacity:1}.cfl-analytics-magic-card.active{border-color:rgba(249,115,22,.5);background:var(--cfl-analytics-magic-card-active);box-shadow:0 0 0 1px rgba(249,115,22,.2),0 6px 20px var(--cfl-shadow),inset 0 1px 0 hsla(0,0%,100%,.06);animation:cfl-magic-active-pulse 2.4s ease-in-out infinite!important}.cfl-analytics-magic-card--streaks.active{background:linear-gradient(155deg,rgba(249,115,22,.14) 0,var(--cfl-analytics-magic-card-active) 55%)!important;border-color:rgba(249,115,22,.55)!important}.cfl-analytics-magic-card--activity.active{background:linear-gradient(155deg,rgba(56,189,248,.12) 0,var(--cfl-analytics-magic-card-active) 55%)!important;border-color:rgba(56,189,248,.45)!important}.cfl-analytics-magic-card--difficulty.active{background:linear-gradient(155deg,rgba(167,139,250,.14) 0,var(--cfl-analytics-magic-card-active) 55%)!important;border-color:rgba(167,139,250,.48)!important}.cfl-analytics-magic-card--suggested.active{background:linear-gradient(155deg,rgba(20,184,166,.12) 0,var(--cfl-analytics-magic-card-active) 55%)!important;border-color:rgba(20,184,166,.45)!important}.cfl-analytics-magic-shimmer{position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.06),hsla(0,0%,100%,.18),hsla(0,0%,100%,.06),transparent);transform:skewX(-20deg);pointer-events:none;opacity:0}.cfl-analytics-magic-card:hover .cfl-analytics-magic-shimmer{opacity:1;animation:cfl-shimmer-sweep .55s cubic-bezier(.16,1,.3,1) forwards}.cfl-analytics-magic-sparkle{position:absolute;top:10px;right:12px;width:5px;height:5px;border-radius:50%;background:#ffb347;box-shadow:0 0 8px rgba(255,179,71,.9),-16px 10px 0 -1px rgba(255,179,71,.45),10px 16px 0 -2px rgba(249,115,22,.35),-8px -6px 0 -2px rgba(255,215,120,.3);opacity:0;pointer-events:none}.cfl-analytics-magic-card:hover .cfl-analytics-magic-sparkle{animation:cfl-sparkle-pop .75s ease-out}.cfl-analytics-magic-icon-wrap{position:relative;z-index:1;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;overflow:hidden;border:none;padding:0;box-sizing:border-box;animation:cfl-magic-icon-float 3s ease-in-out infinite;transition:transform .36s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.12),inset 0 -1px 2px rgba(0,0,0,.08),0 2px 8px rgba(0,0,0,.12)}.cfl-analytics-magic-icon-wrap--streaks{background:linear-gradient(145deg,#3d2200,#2a1800);color:#fb923c}.cfl-analytics-magic-icon-wrap--activity{background:linear-gradient(145deg,#0c2a3a,#071e2c);color:#38bdf8}.cfl-analytics-magic-icon-wrap--difficulty{background:linear-gradient(145deg,#2a1f3d,#1a1428);color:#a78bfa}.cfl-analytics-magic-icon-wrap--suggested{background:linear-gradient(145deg,#0c2e2a,#071f1c);color:#2dd4bf}.cfl-analytics-magic-icon-wrap:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(circle at 28% 22%,hsla(0,0%,100%,.55) 0 1px,transparent 2px),radial-gradient(circle at 72% 68%,hsla(0,0%,100%,.45) 0 1.5px,transparent 3px),radial-gradient(circle at 48% 88%,hsla(0,0%,100%,.35) 0 1px,transparent 2px);transition:opacity .2s ease}.cfl-analytics-magic-card:hover .cfl-analytics-magic-icon-wrap:after{opacity:1;animation:cfl-sparkle-pop .85s ease-out}.cfl-analytics-magic-icon{width:28px;height:28px;display:block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.cfl-analytics-magic-card:first-child .cfl-analytics-magic-icon-wrap{animation-delay:0s}.cfl-analytics-magic-card:nth-child(2) .cfl-analytics-magic-icon-wrap{animation-delay:-.75s}.cfl-analytics-magic-card:nth-child(3) .cfl-analytics-magic-icon-wrap{animation-delay:-1.5s}.cfl-analytics-magic-card:nth-child(4) .cfl-analytics-magic-icon-wrap{animation-delay:-2.25s}.cfl-analytics-magic-card:hover .cfl-analytics-magic-icon-wrap{transform:scale(1.1) rotate(-3deg);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.18),inset 0 -1px 2px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.2)}.cfl-analytics-magic-card.active .cfl-analytics-magic-icon-wrap{animation:cfl-magic-icon-float 3s ease-in-out infinite,cfl-magic-icon-glow 2.2s ease-in-out infinite}.cfl-analytics-magic-card--streaks.active .cfl-analytics-magic-icon-wrap{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.14),0 0 14px rgba(249,115,22,.25)}.cfl-analytics-magic-card--activity.active .cfl-analytics-magic-icon-wrap{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.14),0 0 14px rgba(56,189,248,.25)}.cfl-analytics-magic-card--difficulty.active .cfl-analytics-magic-icon-wrap{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.14),0 0 14px rgba(167,139,250,.25)}.cfl-analytics-magic-card--suggested.active .cfl-analytics-magic-icon-wrap{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.14),0 0 14px rgba(20,184,166,.25)}.cfl-analytics-magic-icon-wrap.cfl-icon-pop{animation:cfl-icon-pop .45s cubic-bezier(.34,1.56,.64,1)!important}.cfl-analytics-magic-label{flex:1;min-width:0;padding-top:6px;font-size:12px;font-weight:700;color:var(--cfl-fg-strong);line-height:1.25;letter-spacing:-.01em}.cfl-analytics-magic-preview{position:relative;z-index:1;font-size:15px;font-weight:700;color:var(--cfl-fg-strong);line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfl-analytics-magic-card.active .cfl-analytics-magic-preview{color:var(--cfl-fg-strong)}.cfl-analytics-magic-card--streaks.active .cfl-analytics-magic-preview{color:#fb923c}.cfl-analytics-magic-card--activity.active .cfl-analytics-magic-preview{color:#38bdf8}.cfl-analytics-magic-card--difficulty.active .cfl-analytics-magic-preview{color:#a78bfa}.cfl-analytics-detail{padding:4px 16px 16px}.cfl-analytics-detail-open{border-top:1px solid var(--cfl-analytics-line);margin-top:4px;padding-top:16px}.cfl-analytics-detail[hidden]{display:none!important}.cfl-analytics-detail-panel{animation:cfl-detail-slide .28s ease both}.cfl-analytics-detail-panel[hidden]{display:none!important}.cfl-analytics-detail-heading{margin:0 0 12px;font-size:13px;font-weight:700;color:var(--cfl-fg-strong);letter-spacing:.02em}.cfl-analytics-detail-body{padding-bottom:4px}.cfl-detail-card{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:14px;background:var(--cfl-analytics-surface);border:1px solid var(--cfl-analytics-line)}.cfl-detail-card,.cfl-detail-enter{animation:cfl-fade-in .32s ease both}.cfl-detail-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding-top:10px;margin-top:2px;border-top:1px solid var(--cfl-analytics-line)}.cfl-detail-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--cfl-fg-muted);min-width:0}.cfl-detail-legend-icon{font-size:11px;line-height:1;opacity:.85;flex-shrink:0}.cfl-detail-legend-label{text-transform:uppercase;letter-spacing:.06em;font-weight:600;font-size:9px}.cfl-detail-legend-value{font-weight:700;color:var(--cfl-fg-strong);font-variant-numeric:tabular-nums}.cfl-streak-header{display:flex;flex-direction:column;gap:8px}.cfl-streak-header-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cfl-streak-header-text{display:flex;flex-direction:column;gap:4px;min-width:0}.cfl-streak-day-label{font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--cfl-fg-strong);line-height:1.1}.cfl-streak-sub{font-size:11px;color:var(--cfl-fg-muted);line-height:1.4}.cfl-streak-hex-badge{flex-shrink:0;width:44px;height:50px;display:flex;align-items:center;justify-content:center;background:rgba(249,115,22,.12);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.cfl-streak-hex-inner{font-size:18px;font-weight:800;color:#f97316;font-variant-numeric:tabular-nums}.cfl-streak-month-row{display:flex;align-items:center;justify-content:space-between}.cfl-streak-month-label{font-size:11px;font-weight:600;color:var(--cfl-fg-muted);letter-spacing:.04em;text-transform:uppercase}.cfl-analytics-streak-cal{margin-top:0}.cfl-analytics-cal-grid--days{gap:6px}.cfl-analytics-cal-day{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:0;border:2px solid transparent;border-radius:50%;background:var(--cfl-analytics-heat-base);cursor:default;font:inherit;color:var(--cfl-fg-muted);transition:transform .15s ease,box-shadow .15s ease}.cfl-analytics-cal-day:hover{transform:scale(1.08)}.cfl-cal-day-num{font-size:10px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.cfl-analytics-cal-day.solved{background:rgba(34,197,94,.22);color:#4ade80;border-color:rgba(34,197,94,.35)}.cfl-analytics-cal-day.streak{background:#f97316;color:#fff;border-color:rgba(249,115,22,.6);box-shadow:0 0 10px rgba(249,115,22,.35)}.cfl-analytics-cal-day.today{border-color:var(--cfl-analytics-today-border);box-shadow:0 0 0 2px rgba(249,115,22,.2)}.cfl-analytics-cal-day.today:not(.solved){background:transparent}.cfl-cal-dot-indicator{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:currentColor}.cfl-cal-key{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:10px;color:var(--cfl-fg-muted)}.cfl-cal-key-item{display:inline-flex;align-items:center;gap:5px}.cfl-cal-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.cfl-cal-dot.solved{background:rgba(34,197,94,.55)}.cfl-cal-dot.streak{background:#f97316}.cfl-cal-dot.today{background:transparent;border:2px solid var(--cfl-analytics-today-border)}.cfl-activity-summary{display:flex;flex-direction:column;gap:4px}.cfl-activity-headline{font-size:13px;font-weight:600;color:var(--cfl-fg-strong);line-height:1.45}.cfl-activity-headline strong{color:#f97316;font-weight:800}.cfl-activity-sub{font-size:11px;color:var(--cfl-fg-muted)}.cfl-activity-progress{display:flex;flex-direction:column;gap:6px}.cfl-activity-progress-track{position:relative;height:10px;border-radius:99px;background:var(--cfl-analytics-bar-track);overflow:visible}.cfl-activity-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#c2440c,#f97316 55%,#ffb347);transition:width .45s ease;box-shadow:0 0 12px rgba(249,115,22,.25)}.cfl-activity-progress-badge{position:absolute;right:-2px;top:50%;transform:translate(50%,-50%);width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:11px;background:var(--cfl-analytics-surface);border:2px solid #f97316;border-radius:50%;box-shadow:0 0 8px rgba(249,115,22,.35)}.cfl-activity-progress-label{font-size:10px;color:var(--cfl-fg-subtle);text-align:right}.cfl-activity-recent{display:flex;flex-wrap:wrap;gap:5px;padding:8px 0 2px}.cfl-activity-dot{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--cfl-analytics-line);background:var(--cfl-analytics-heat-base);display:flex;align-items:center;justify-content:center;flex-shrink:0}.cfl-activity-dot.active{background:rgba(34,197,94,.18);border-color:rgba(34,197,94,.45);color:#4ade80}.cfl-activity-dot svg{width:10px;height:10px}.cfl-detail-card .cfl-analytics-heat-cell{width:11px;height:11px;border-radius:3px}.cfl-detail-card .cfl-analytics-heatmap-grid{grid-template-rows:repeat(7,11px);grid-auto-columns:11px;gap:4px}.cfl-detail-card .cfl-analytics-heatmap-months{grid-template-columns:repeat(26,15px);margin-bottom:6px}.cfl-activity-divider{height:1px;background:var(--cfl-analytics-line);margin:4px 0 2px}.cfl-activity-block{display:flex;flex-direction:column;gap:8px}.cfl-activity-block--insights{gap:6px}.cfl-activity-block-title{margin:0;font-size:13px;font-weight:600;color:var(--cfl-fg-muted);letter-spacing:.01em}.cfl-activity-chart-host{width:100%;overflow:hidden}.cfl-activity-chart-svg{display:block;width:100%;height:auto;max-height:96px}.cfl-activity-chart-grid{stroke:var(--cfl-analytics-line);stroke-width:1;stroke-dasharray:3 3;opacity:.7}.cfl-activity-chart-line{stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.cfl-activity-chart-dot,.cfl-activity-chart-line{vector-effect:non-scaling-stroke}.cfl-activity-chart-label{font-size:9px;fill:var(--cfl-fg-subtle);font-family:inherit}.cfl-activity-rating-labels{display:flex;justify-content:space-between;gap:8px;margin-top:-2px}.cfl-activity-rating-endpoint{font-size:10px;font-weight:600;color:var(--cfl-fg-muted);font-variant-numeric:tabular-nums}.cfl-activity-tag-sparklines{display:flex;flex-direction:column;gap:6px}.cfl-activity-spark-row{display:flex;align-items:center;gap:10px}.cfl-activity-spark-tag{flex:0 0 72px;font-size:11px;font-weight:600;color:var(--cfl-fg-dim);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfl-activity-sparkline{flex:1;display:block;height:20px;min-width:0}.cfl-activity-sparkline-line{stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.9}.cfl-activity-spark-empty{margin:0;font-size:11px}.cfl-activity-insights .cfl-analytics-insight-card{padding:8px 10px}.cfl-activity-insights .cfl-analytics-insight-text{font-size:11px}.cfl-difficulty-guidance-title{margin:0;font-size:13px;font-weight:800;letter-spacing:.02em;color:var(--cfl-fg-strong)}.cfl-difficulty-zones{display:flex;flex-direction:column;gap:10px}.cfl-detail-hist-row{display:grid;grid-template-columns:76px 1fr 56px;align-items:center;gap:8px;animation:cfl-fade-in .28s ease both}.cfl-difficulty-zone-label-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}.cfl-detail-hist-row--growth .cfl-diff-label{color:#fb923c;font-weight:800}.cfl-detail-hist-row--growth .cfl-diff-bar-track{height:12px;border-color:rgba(249,115,22,.25);box-shadow:inset 0 0 0 1px rgba(249,115,22,.08)}.cfl-detail-hist-row--growth .cfl-diff-bar-fill{background:linear-gradient(90deg,#ea580c,#f97316 55%,#ffb347);box-shadow:0 0 12px rgba(249,115,22,.35)}.cfl-detail-hist-row--comfort .cfl-diff-bar-fill{background:var(--cfl-analytics-bar-track);opacity:.85}.cfl-detail-hist-row--stretch .cfl-diff-bar-fill{background:linear-gradient(90deg,rgba(124,58,237,.35),rgba(167,139,250,.55))}.cfl-difficulty-zone-badge{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:4px;background:rgba(249,115,22,.2);color:#fb923c;white-space:nowrap}.cfl-difficulty-zone-range{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--cfl-fg-strong);text-align:right;line-height:1.2}.cfl-difficulty-insight-card{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--cfl-analytics-line);background:var(--cfl-bg-elevated)}.cfl-difficulty-insight-icon{flex-shrink:0;font-size:14px;line-height:1.4}.cfl-difficulty-insight-text{margin:0;font-size:11px;line-height:1.5;color:var(--cfl-fg-body)}.cfl-difficulty-rec-heading{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cfl-fg-muted)}.cfl-difficulty-recommendations{display:flex;flex-direction:column;gap:8px}.cfl-difficulty-rec-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--cfl-analytics-bar-track);background:var(--cfl-bg-elevated);text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease,transform .15s ease}.cfl-difficulty-rec-row:hover{border-color:rgba(249,115,22,.4);background:rgba(249,115,22,.06);transform:translateX(2px)}.cfl-difficulty-rec-main{display:flex;flex-direction:column;gap:3px;min-width:0}.cfl-difficulty-rec-name{font-size:12px;font-weight:700;color:var(--cfl-fg-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cfl-difficulty-rec-reason{font-size:10px;line-height:1.35;color:var(--cfl-fg-muted)}.cfl-difficulty-rec-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.cfl-difficulty-rec-rating{display:inline-flex;padding:2px 8px;border-radius:99px;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.cfl-difficulty-rec-tags{display:none}@media (min-width:380px){.cfl-difficulty-rec-tags{display:inline-flex;flex-wrap:wrap;gap:4px;max-width:100px}}.cfl-difficulty-rec-chip{font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;background:var(--cfl-analytics-bar-track);color:var(--cfl-fg-muted);text-transform:lowercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72px}.cfl-difficulty-rec-arrow{font-size:14px;font-weight:700;color:var(--cfl-fg-muted);line-height:1}.cfl-difficulty-rec-row:hover .cfl-difficulty-rec-arrow{color:#fb923c}.cfl-difficulty-explore-link{display:inline-flex;align-self:flex-start;margin-top:4px;font-size:11px;font-weight:600;color:#fb923c;text-decoration:none}.cfl-difficulty-explore-link:hover{text-decoration:underline}.cfl-difficulty-rec-empty,.cfl-difficulty-unrated{margin:0}#cfl-root[data-theme=light] .cfl-detail-hist-row--growth .cfl-diff-bar-track,body.cfl-active[data-theme=light] .cfl-detail-hist-row--growth .cfl-diff-bar-track{border-color:rgba(234,88,12,.3)}#cfl-root[data-theme=light] .cfl-difficulty-rec-row:hover,body.cfl-active[data-theme=light] .cfl-difficulty-rec-row:hover{background:rgba(249,115,22,.08)}#cfl-root[data-theme=light] .cfl-difficulty-insight-card,body.cfl-active[data-theme=light] .cfl-difficulty-insight-card{background:rgba(0,0,0,.03)}.cfl-progression-wrap{display:flex;flex-direction:column;gap:12px}.cfl-progression-empty{margin:0}.cfl-progression-hero{gap:14px;background:linear-gradient(145deg,rgba(249,115,22,.08) 0,var(--cfl-analytics-surface) 55%);border-color:rgba(249,115,22,.22)}.cfl-progression-hero--secondary{opacity:.92;border-color:rgba(249,115,22,.14);background:linear-gradient(145deg,rgba(249,115,22,.04) 0,var(--cfl-analytics-surface) 55%)}.cfl-progression-hero--secondary .cfl-progression-hero-ring-wrap{width:56px;height:56px}.cfl-progression-hero--secondary .cfl-progression-hero-score{font-size:16px}.cfl-progression-hero-inner{display:flex;align-items:center;gap:16px}.cfl-progression-hero-ring-wrap{position:relative;width:72px;height:72px;flex-shrink:0}.cfl-progression-ring{width:100%;height:100%;transform:rotate(-90deg)}.cfl-progression-ring-track{fill:none;stroke:rgba(249,115,22,.15);stroke-width:8}.cfl-progression-ring-fill{fill:none;stroke:url(#cfl-progression-gradient);stroke:#f97316;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.cfl-progression-hero-score{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:var(--cfl-fg-strong);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.cfl-progression-hero-pct{font-size:11px;font-weight:700;opacity:.7;margin-left:1px}.cfl-progression-hero-text{display:flex;flex-direction:column;gap:4px;min-width:0}.cfl-progression-hero-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--cfl-fg-muted)}.cfl-progression-hero-value{font-size:17px;font-weight:800;letter-spacing:-.02em;color:var(--cfl-fg-strong);line-height:1.15}.cfl-progression-badge{display:inline-flex;align-self:flex-start;margin-top:2px;font-size:10px;font-weight:700;padding:4px 10px;border-radius:99px;letter-spacing:.02em}.cfl-progression-badge--beginner{background:rgba(148,163,184,.15);border:1px solid rgba(148,163,184,.35);color:#94a3b8}.cfl-progression-badge--intermediate{background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.3);color:#60a5fa}.cfl-progression-badge--advanced{background:rgba(249,115,22,.14);border:1px solid rgba(249,115,22,.32);color:#fb923c}.cfl-progression-badge--ready{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.32);color:#4ade80}.cfl-progression-hero-bar{height:8px;border-radius:99px;background:rgba(249,115,22,.12);overflow:hidden}.cfl-progression-hero-bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#fb923c,#f97316 50%,#ea580c);box-shadow:0 0 12px rgba(249,115,22,.35);transition:width .5s ease}.cfl-progression-quote{margin:0;padding:12px 14px;border-left:3px solid #f97316;background:rgba(249,115,22,.06)}.cfl-progression-quote p{margin:0;font-size:12px;line-height:1.55;color:var(--cfl-fg-muted);font-style:italic}.cfl-progression-section-title{margin:4px 0 0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--cfl-fg-muted)}.cfl-progression-skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cfl-progression-skill-card{display:flex;flex-direction:column;gap:5px;padding:11px 12px;border-radius:12px;background:var(--cfl-analytics-surface);border:1px solid var(--cfl-analytics-line);position:relative;overflow:hidden;animation:cfl-fade-in .32s ease both}.cfl-progression-skill-card:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(249,115,22,.45),rgba(59,130,246,.25));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.cfl-progression-skill-label{font-size:14px;font-weight:800;letter-spacing:-.02em;color:var(--cfl-fg-strong)}.cfl-progression-skill-stat{font-size:10px;color:var(--cfl-fg-muted)}.cfl-progression-skill-stat strong{color:var(--cfl-fg-strong);font-weight:700}.cfl-progression-skill-target{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--cfl-fg-muted);opacity:.85}.cfl-progression-skill-bar{height:5px;border-radius:99px;background:rgba(249,115,22,.12);overflow:hidden;margin-top:2px}.cfl-progression-skill-bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#60a5fa,#f97316);transition:width .45s ease}.cfl-progression-skill-pct{font-size:10px;font-weight:700;color:#fb923c;font-variant-numeric:tabular-nums;align-self:flex-end;margin-top:-2px}.cfl-progression-gaps{display:flex;flex-direction:column;gap:10px}.cfl-progression-gap-card{padding:10px 12px;border-radius:10px;background:var(--cfl-analytics-surface);border:1px solid var(--cfl-analytics-line);animation:cfl-fade-in .28s ease both}.cfl-progression-gap-card p{margin:0;font-size:11px;line-height:1.5;color:var(--cfl-fg-muted)}.cfl-progression-gap-card--orange{border-left:3px solid #f97316;background:rgba(249,115,22,.05)}.cfl-progression-gap-card--blue{border-left:3px solid #3b82f6;background:rgba(59,130,246,.05)}.cfl-progression-path{gap:14px}.cfl-progression-path-header{display:flex;flex-direction:column;gap:3px}.cfl-progression-path-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--cfl-fg-muted)}.cfl-progression-path-stage{font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--cfl-fg-strong)}.cfl-progression-milestones{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cfl-progression-milestone{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:10px;background:hsla(0,0%,100%,.03);border:1px solid var(--cfl-analytics-line)}.cfl-progression-milestone--done{opacity:.65;border-color:rgba(34,197,94,.25);background:rgba(34,197,94,.06)}.cfl-progression-milestone-num{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:11px;font-weight:800;background:rgba(249,115,22,.15);color:#fb923c;border:1px solid rgba(249,115,22,.3)}.cfl-progression-milestone--done .cfl-progression-milestone-num{background:rgba(34,197,94,.15);color:#4ade80;border-color:rgba(34,197,94,.35)}.cfl-progression-milestone-text{font-size:11px;line-height:1.45;color:var(--cfl-fg-muted);padding-top:2px}.cfl-progression-milestone--done .cfl-progression-milestone-text{text-decoration:line-through;text-decoration-color:rgba(34,197,94,.4)}.cfl-progression-path-footer{padding-top:10px;border-top:1px solid var(--cfl-analytics-line)}.cfl-progression-path-quote{font-size:11px;line-height:1.5;color:var(--cfl-fg-muted);font-style:italic}#cfl-root[data-theme=light] .cfl-progression-hero,body.cfl-active[data-theme=light] .cfl-progression-hero{background:linear-gradient(145deg,rgba(249,115,22,.06) 0,var(--cfl-analytics-surface) 55%)}#cfl-root[data-theme=light] .cfl-progression-milestone,body.cfl-active[data-theme=light] .cfl-progression-milestone{background:rgba(0,0,0,.02)}#cfl-root[data-theme=light] .cfl-progression-gap-card--orange,body.cfl-active[data-theme=light] .cfl-progression-gap-card--orange{background:rgba(249,115,22,.04)}#cfl-root[data-theme=light] .cfl-progression-gap-card--blue,body.cfl-active[data-theme=light] .cfl-progression-gap-card--blue{background:rgba(59,130,246,.04)}.cfl-coach-zones{padding:12px}.cfl-coach-zones-grid{display:flex;flex-direction:column;gap:8px}.cfl-zone-card{padding:10px 12px;border-radius:10px;border:1px solid var(--cfl-analytics-line);background:hsla(0,0%,100%,.02)}.cfl-zone-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.cfl-zone-card-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.cfl-zone-card-range{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--cfl-fg-strong)}.cfl-zone-card-desc{margin:0;font-size:10px;line-height:1.45;color:var(--cfl-fg-muted)}.cfl-zone-card--comfort{border-left:3px solid #14b8a6;background:rgba(20,184,166,.06)}.cfl-zone-card--comfort .cfl-zone-card-title{color:#2dd4bf}.cfl-zone-card--growth{border-left:3px solid #f97316;background:rgba(249,115,22,.06)}.cfl-zone-card--growth .cfl-zone-card-title{color:#fb923c}.cfl-zone-card--stretch{border-left:3px solid #a78bfa;background:rgba(167,139,250,.06)}.cfl-zone-card--stretch .cfl-zone-card-title{color:#c4b5fd}.cfl-coach-reasons{display:flex;flex-direction:column;gap:6px}.cfl-coach-reason{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;font-size:11px;line-height:1.45;border:1px solid var(--cfl-analytics-line)}.cfl-coach-reason--strong{background:rgba(34,197,94,.06);border-color:rgba(34,197,94,.2)}.cfl-coach-reason--weak{background:rgba(249,115,22,.05);border-color:rgba(249,115,22,.2)}.cfl-coach-reason-icon{flex-shrink:0;font-weight:800}.cfl-coach-reason--strong .cfl-coach-reason-icon{color:#4ade80}.cfl-coach-reason--weak .cfl-coach-reason-icon{color:#fb923c}.cfl-coach-reason-text{color:var(--cfl-fg-muted)}.cfl-coach-rec-grid{display:flex;flex-direction:column;gap:8px}.cfl-coach-rec-card{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:var(--cfl-analytics-surface);border:1px solid var(--cfl-analytics-line);text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease,transform .15s ease}.cfl-coach-rec-card:hover{border-color:rgba(249,115,22,.4);background:rgba(249,115,22,.05);transform:translateY(-1px)}.cfl-coach-rec-name{font-size:12px;font-weight:700;color:var(--cfl-fg-strong);line-height:1.35}.cfl-coach-rec-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cfl-coach-rec-rating{font-size:11px;font-weight:800;padding:2px 7px;border-radius:6px;background:rgba(249,115,22,.15);color:#fb923c;font-variant-numeric:tabular-nums}.cfl-coach-rec-reason{font-size:10px;color:var(--cfl-fg-muted)}.cfl-coach-rec-tags{display:flex;flex-wrap:wrap;gap:4px}.cfl-coach-rec-tag{font-size:9px;font-weight:600;padding:2px 6px;border-radius:99px;background:hsla(0,0%,100%,.05);border:1px solid var(--cfl-analytics-line);color:var(--cfl-fg-muted);text-transform:lowercase}.cfl-coach-rec-empty{margin:0;padding:0 2px}.cfl-coach-topics-grid{grid-template-columns:1fr}.cfl-coach-objectives-label{margin:0 0 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--cfl-fg-muted)}.cfl-coach-progress-row{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px solid var(--cfl-analytics-line);margin-top:4px}.cfl-coach-progress-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cfl-fg-muted)}.cfl-coach-progress-value{font-size:16px;font-weight:800;color:var(--cfl-fg-strong);font-variant-numeric:tabular-nums}.cfl-coach-progress-bar{margin-top:2px}#cfl-root[data-theme=light] .cfl-zone-card,body.cfl-active[data-theme=light] .cfl-zone-card{background:rgba(0,0,0,.02)}#cfl-root[data-theme=light] .cfl-coach-rec-card:hover,body.cfl-active[data-theme=light] .cfl-coach-rec-card:hover{background:rgba(249,115,22,.04)}.cfl-bucket-readiness-card{gap:12px;border-color:rgba(20,184,166,.22);background:linear-gradient(145deg,rgba(20,184,166,.06) 0,var(--cfl-analytics-surface) 60%)}.cfl-bucket-readiness-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cfl-bucket-readiness-eyebrow{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--cfl-fg-muted)}.cfl-bucket-readiness-title{margin:4px 0 0;font-size:16px;font-weight:800;color:var(--cfl-fg-strong)}.cfl-bucket-readiness-band{margin:4px 0 0;font-size:12px;color:var(--cfl-fg-muted)}.cfl-bucket-readiness-score-wrap{flex-shrink:0;padding:8px 12px;border-radius:10px;background:rgba(20,184,166,.12);border:1px solid rgba(20,184,166,.28)}.cfl-bucket-readiness-score-wrap--unknown{background:rgba(148,163,184,.1);border-color:rgba(148,163,184,.3)}.cfl-bucket-readiness-score{font-size:14px;font-weight:800;color:#2dd4bf;white-space:nowrap}.cfl-bucket-readiness-score-wrap--unknown .cfl-bucket-readiness-score{color:var(--cfl-fg-muted);font-size:12px}.cfl-bucket-readiness-levels-label{font-size:11px;color:var(--cfl-fg-muted)}.cfl-bucket-readiness-rows{display:flex;flex-direction:column;gap:6px}.cfl-bucket-readiness-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;border:1px solid var(--cfl-analytics-line);background:hsla(0,0%,100%,.02)}.cfl-bucket-readiness-topic{font-size:12px;font-weight:700;color:var(--cfl-fg-strong)}.cfl-bucket-readiness-role{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cfl-fg-muted)}.cfl-bucket-readiness-level{font-size:11px;font-weight:700}.cfl-bucket-readiness-row--strong .cfl-bucket-readiness-level{color:#4ade80}.cfl-bucket-readiness-row--developing .cfl-bucket-readiness-level{color:#60a5fa}.cfl-bucket-readiness-row--gap .cfl-bucket-readiness-level{color:#fb923c}.cfl-bucket-readiness-row--unknown .cfl-bucket-readiness-level{color:var(--cfl-fg-muted)}.cfl-readiness-why{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:8px;background:hsla(0,0%,100%,.03);border:1px solid var(--cfl-analytics-line)}.cfl-readiness-why-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--cfl-fg-muted)}.cfl-readiness-why-rows{display:flex;flex-direction:column;gap:4px}.cfl-readiness-why-row{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.45;color:var(--cfl-fg)}.cfl-readiness-why-row--strong .cfl-readiness-why-icon{color:#4ade80}.cfl-readiness-why-row--weak .cfl-readiness-why-icon{color:#fbbf24}.cfl-band-coverage-card{gap:10px;border-color:rgba(249,115,22,.35);background:linear-gradient(145deg,rgba(249,115,22,.1) 0,var(--cfl-analytics-surface) 55%);box-shadow:0 0 0 1px rgba(249,115,22,.08)}.cfl-band-coverage-header{display:flex;flex-direction:column;gap:2px}.cfl-band-coverage-eyebrow{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#fb923c}.cfl-band-coverage-title{margin:0;font-size:17px;font-weight:800;color:var(--cfl-fg-strong)}.cfl-band-coverage-subtitle{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cfl-fg-muted)}.cfl-band-coverage-rows{display:flex;flex-direction:column;gap:5px}.cfl-band-coverage-row{display:grid;grid-template-columns:1fr 28px 1fr;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;border:1px solid var(--cfl-analytics-line);background:rgba(0,0,0,.15)}.cfl-band-coverage-topic{font-size:13px;font-weight:700;color:var(--cfl-fg-strong)}.cfl-band-coverage-status{font-size:14px;text-align:center}.cfl-band-coverage-level{font-size:11px;font-weight:700;color:var(--cfl-fg-muted);text-align:right}.cfl-band-coverage-summary{margin:4px 0 0;font-size:13px;font-weight:800;color:#fb923c}.cfl-why-not-card{gap:10px;border-color:rgba(251,191,36,.35);background:linear-gradient(145deg,rgba(251,191,36,.08) 0,var(--cfl-analytics-surface) 60%)}.cfl-why-not-title{margin:0;font-size:15px;font-weight:800;color:var(--cfl-fg-strong)}.cfl-why-not-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.cfl-why-not-row{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;color:var(--cfl-fg)}.cfl-why-not-bullet{flex-shrink:0;color:#fbbf24;font-weight:700}.cfl-foundation-plan-card{gap:10px;border-color:rgba(148,163,184,.35);background:linear-gradient(145deg,rgba(148,163,184,.08) 0,var(--cfl-analytics-surface) 60%)}.cfl-foundation-plan-volume{margin:0;font-size:14px;font-weight:700;color:var(--cfl-fg-strong)}.cfl-foundation-plan-label{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cfl-fg-muted)}.cfl-foundation-plan-focus{margin:0;padding-left:18px;font-size:12px;line-height:1.6;color:var(--cfl-fg)}.cfl-bucket-readiness-confidence,.cfl-foundation-plan-meta{margin:0;font-size:11px;color:var(--cfl-fg-muted)}.cfl-early-assessment-card{border-color:rgba(148,163,184,.28);background:rgba(148,163,184,.06)}.cfl-early-assessment-lead{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--cfl-fg-strong)}.cfl-early-assessment-focus{margin:0 0 6px;font-size:12px;line-height:1.5;color:var(--cfl-fg-muted)}.cfl-early-assessment-meta{margin:0;font-size:11px;color:var(--cfl-fg-muted)}.cfl-progression-hero-ring-wrap--muted .cfl-progression-ring-fill{stroke:rgba(148,163,184,.35)}.cfl-coach-summary{padding:14px 12px;background:linear-gradient(135deg,rgba(249,115,22,.06),rgba(20,184,166,.04));border:1px solid rgba(249,115,22,.15)}.cfl-coach-summary-title{margin:0 0 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--cfl-fg-strong)}.cfl-coach-summary-rows{display:flex;flex-direction:column;gap:8px}.cfl-coach-summary-row{padding:8px 10px;border-radius:8px;border:1px solid var(--cfl-analytics-line);background:hsla(0,0%,100%,.02)}.cfl-coach-summary-label{display:block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.cfl-coach-summary-row--help .cfl-coach-summary-label{color:#4ade80}.cfl-coach-summary-row--limit .cfl-coach-summary-label{color:#fb923c}.cfl-coach-summary-row--focus .cfl-coach-summary-label{color:#38bdf8}.cfl-coach-summary-text{margin:0;font-size:11px;line-height:1.5;color:var(--cfl-fg-muted)}.cfl-coach-rec-why{margin:2px 0 0;font-size:10px;line-height:1.45;color:var(--cfl-fg-muted)}.cfl-coach-rec-why-label{font-weight:700;color:var(--cfl-fg-strong)}.cfl-gap-block{display:flex;flex-direction:column;gap:6px}.cfl-gap-block-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--cfl-fg-muted);padding-left:2px}.cfl-coach-depth-breadth{display:flex;flex-direction:column;gap:6px}.cfl-coach-depth-row{padding:9px 11px;border-radius:8px;border:1px solid var(--cfl-analytics-line);background:hsla(0,0%,100%,.02)}.cfl-coach-depth-row p{margin:0;font-size:11px;line-height:1.45;color:var(--cfl-fg-muted)}.cfl-coach-depth-row--breadth{border-left:3px solid #38bdf8}.cfl-coach-depth-row--depth{border-left:3px solid #a78bfa}.cfl-coach-depth-row--neglected{border-left:3px solid #fb923c}.cfl-coach-depth-row--strong{border-left:3px solid #4ade80}.cfl-coach-depth-row--pattern{border-left:3px solid #14b8a6}#cfl-root[data-theme=light] .cfl-coach-summary,body.cfl-active[data-theme=light] .cfl-coach-summary{background:linear-gradient(135deg,rgba(249,115,22,.04),rgba(20,184,166,.03))}.cfl-coach-bottlenecks{gap:10px}.cfl-coach-bottleneck-list{display:flex;flex-direction:column;gap:8px}.cfl-coach-bottleneck-row{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:10px;background:hsla(0,0%,100%,.02);border:1px solid var(--cfl-analytics-line)}.cfl-coach-bottleneck-text{margin:0;font-size:11px;line-height:1.5;color:var(--cfl-fg-muted)}.cfl-coach-priority{align-self:flex-start;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:99px}.cfl-coach-priority--critical{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.35);color:#f87171}.cfl-coach-priority--important{background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.3);color:#fb923c}.cfl-coach-priority--optional{background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.28);color:#94a3b8}.cfl-coach-milestone-why{margin:6px 0 0;font-size:10px;line-height:1.5;color:var(--cfl-fg-muted)}.cfl-coach-milestone-why-label{font-weight:700;color:var(--cfl-fg-strong)}.cfl-progression-milestone-body{display:flex;flex-direction:column;gap:4px;min-width:0}.cfl-progression-skill-kind{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;align-self:flex-start;padding:2px 7px;border-radius:99px}.cfl-progression-skill-kind--strong{background:rgba(34,197,94,.1);color:#4ade80}.cfl-progression-skill-kind--developing{background:rgba(59,130,246,.12);color:#60a5fa}.cfl-progression-skill-kind--broad_but_shallow{background:rgba(249,115,22,.12);color:#fb923c}.cfl-progression-skill-kind--underexposed{background:rgba(239,68,68,.12);color:#f87171}.cfl-practice-level-card{background:linear-gradient(145deg,rgba(59,130,246,.1) 0,var(--cfl-analytics-surface) 60%);border-color:rgba(59,130,246,.25);gap:12px}.cfl-practice-level-card--hero{border-width:2px;border-color:rgba(59,130,246,.55);box-shadow:0 0 24px rgba(59,130,246,.18);padding:14px 16px;gap:14px}.cfl-practice-level-title{font-size:12px;letter-spacing:.08em}.cfl-practice-level-card--hero .cfl-practice-level-stat-value{font-size:28px}.cfl-practice-level-card--hero .cfl-practice-level-bar{height:16px}.cfl-practice-level-card--hero .cfl-practice-level-bar-marker{height:22px;width:5px}.cfl-practice-level-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cfl-practice-level-stat{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:hsla(0,0%,100%,.03);border:1px solid var(--cfl-analytics-line)}.cfl-practice-level-stat--target{border-color:rgba(59,130,246,.3);background:rgba(59,130,246,.06)}.cfl-practice-level-stat-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cfl-fg-muted)}.cfl-practice-level-stat-value{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--cfl-fg-strong);letter-spacing:-.03em;line-height:1.1}.cfl-practice-level-stat-value--gap{color:#fb923c}.cfl-practice-level-stat-hint{font-size:9px;color:var(--cfl-fg-muted)}.cfl-practice-level-bar-wrap{display:flex;flex-direction:column;gap:6px}.cfl-practice-level-bar-labels{display:flex;justify-content:space-between;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--cfl-fg-muted)}.cfl-practice-level-bar{position:relative;height:12px;border-radius:99px;background:rgba(59,130,246,.12);overflow:visible}.cfl-practice-level-bar-current{height:100%;border-radius:inherit;background:linear-gradient(90deg,#60a5fa,#3b82f6);box-shadow:0 0 10px rgba(59,130,246,.35);transition:width .5s ease}.cfl-practice-level-bar-marker{position:absolute;top:50%;width:4px;height:18px;border-radius:2px;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 6px hsla(0,0%,100%,.5)}.cfl-practice-contest-card{gap:10px}.cfl-practice-contest-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cfl-practice-contest-stat{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:hsla(0,0%,100%,.03);border:1px solid var(--cfl-analytics-line)}.cfl-practice-contest-stat-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cfl-fg-muted)}.cfl-practice-contest-stat-value{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--cfl-fg-strong)}.cfl-practice-contest-interpretation{margin:0;font-size:12px;font-weight:700;color:var(--cfl-fg-strong);line-height:1.4}.cfl-practice-contest-insight{margin:0;font-size:11px;line-height:1.5;color:var(--cfl-fg-muted)}.cfl-practice-contest--ahead{border-left:3px solid #a78bfa}.cfl-practice-contest--behind{border-left:3px solid #14b8a6}.cfl-practice-contest--aligned{border-left:3px solid #94a3b8}.cfl-skill-profile-card{padding:12px}.cfl-skill-profile{display:flex;flex-direction:column;gap:8px}.cfl-skill-profile-row{display:grid;grid-template-columns:108px 1fr;align-items:center;gap:10px}.cfl-skill-profile-visual{display:flex;flex-direction:column;gap:4px;min-width:0}.cfl-skill-profile-blocks{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;line-height:1;letter-spacing:.02em;color:var(--cfl-accent-teal,#14b8a6);opacity:.85;white-space:nowrap;overflow:hidden}.cfl-coach-bottleneck-title{margin:0;font-size:12px;font-weight:700;line-height:1.4;color:var(--cfl-fg-strong)}.cfl-coach-bottleneck-impact{margin:0;font-size:11px;line-height:1.45;color:var(--cfl-fg-muted)}.cfl-coach-bottleneck-impact-label{font-weight:700;color:var(--cfl-fg-strong)}.cfl-coach-bottleneck-evidence{margin:0;font-size:11px;line-height:1.5;color:var(--cfl-fg-muted)}.cfl-coach-bottleneck-evidence-label{font-weight:700;color:var(--cfl-fg-strong)}.cfl-highest-leverage-card{gap:10px;border-color:rgba(34,197,94,.28);background:linear-gradient(145deg,rgba(34,197,94,.08) 0,var(--cfl-analytics-surface) 60%)}.cfl-highest-leverage-action{margin:0;font-size:14px;font-weight:700;line-height:1.4;color:var(--cfl-fg-strong)}.cfl-highest-leverage-reason{margin:0;font-size:11px;line-height:1.45;color:var(--cfl-fg-muted)}.cfl-training-plan-primary{display:flex;flex-direction:column;gap:4px;padding:10px 12px;margin-bottom:10px;border-radius:10px;border:1px solid rgba(59,130,246,.35);background:rgba(59,130,246,.08)}.cfl-training-plan-primary-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#60a5fa}.cfl-training-plan-primary-text{margin:0;font-size:13px;font-weight:700;line-height:1.4;color:var(--cfl-fg-strong)}.cfl-efficient-improvement-card{border-left:3px solid #14b8a6;background:linear-gradient(135deg,rgba(20,184,166,.06),rgba(249,115,22,.03))}.cfl-efficient-improvement-body{display:flex;flex-direction:column;gap:8px}.cfl-efficient-improvement-impact,.cfl-efficient-improvement-topic{display:flex;align-items:center;justify-content:space-between;gap:8px}.cfl-efficient-improvement-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cfl-fg-muted)}.cfl-efficient-improvement-value{font-size:13px;font-weight:800;color:var(--cfl-fg-strong)}.cfl-efficient-improvement-reason{margin:0;font-size:11px;line-height:1.55;color:var(--cfl-fg-muted)}.cfl-efficient-impact-badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:99px}.cfl-efficient-impact--high{background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.35);color:#4ade80}.cfl-efficient-impact--medium{background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.3);color:#fb923c}.cfl-efficient-impact--moderate{background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.28);color:#94a3b8}.cfl-skill-profile-label{font-size:11px;font-weight:700;color:var(--cfl-fg-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfl-skill-profile-bar-track{height:10px;border-radius:4px;background:hsla(0,0%,100%,.06);overflow:hidden}.cfl-skill-profile-bar-fill{height:100%;border-radius:inherit;min-width:4px;transition:width .45s ease}.cfl-skill-profile-bar-fill--strong{background:linear-gradient(90deg,#4ade80,#22c55e)}.cfl-skill-profile-bar-fill--developing{background:linear-gradient(90deg,#60a5fa,#3b82f6)}.cfl-skill-profile-bar-fill--broad_but_shallow{background:linear-gradient(90deg,#fb923c,#f97316)}.cfl-skill-profile-bar-fill--underexposed{background:linear-gradient(90deg,#f87171,#ef4444)}.cfl-training-plan{display:flex;flex-direction:column;gap:12px}.cfl-training-plan-group-label{display:block;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;padding-left:2px}.cfl-training-plan-group--critical .cfl-training-plan-group-label{color:#f87171}.cfl-training-plan-group--important .cfl-training-plan-group-label{color:#fb923c}.cfl-training-plan-group--optional .cfl-training-plan-group-label{color:#94a3b8}.cfl-training-plan-list{margin:0}.cfl-training-plan-item{align-items:center}.cfl-training-plan-check{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:4px;border:1.5px solid var(--cfl-analytics-line);background:hsla(0,0%,100%,.03);font-size:11px;font-weight:800;color:transparent}.cfl-training-plan-check--done{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.12);color:#4ade80}.cfl-coach-bottleneck-action{margin:0;font-size:10px;line-height:1.45;color:var(--cfl-fg-muted);padding-left:2px}.cfl-coach-bottleneck-action-label{font-weight:700;color:var(--cfl-fg-strong)}#cfl-root[data-theme=light] .cfl-practice-level-card,body.cfl-active[data-theme=light] .cfl-practice-level-card{background:linear-gradient(145deg,rgba(59,130,246,.06) 0,var(--cfl-analytics-surface) 60%)}#cfl-root[data-theme=light] .cfl-practice-contest-stat,#cfl-root[data-theme=light] .cfl-practice-level-stat,body.cfl-active[data-theme=light] .cfl-practice-contest-stat,body.cfl-active[data-theme=light] .cfl-practice-level-stat{background:rgba(0,0,0,.02)}.cfl-diff-header{display:flex;flex-direction:column;gap:8px}.cfl-diff-headline{font-size:13px;font-weight:700;color:var(--cfl-fg-strong);line-height:1.45}.cfl-diff-peak{font-weight:600;color:var(--cfl-fg-muted)}.cfl-diff-mode-chip{display:inline-flex;align-self:flex-start;font-size:11px;font-weight:600;padding:5px 12px;border-radius:99px;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.28);color:#fb923c}.cfl-diff-rows{display:flex;flex-direction:column;gap:8px}.cfl-diff-row{display:grid;grid-template-columns:72px 1fr 28px;align-items:center;gap:8px;animation:cfl-fade-in .28s ease both}.cfl-diff-row--mode .cfl-diff-label{color:#f97316;font-weight:700}.cfl-diff-row--mode .cfl-diff-bar-fill{box-shadow:0 0 10px rgba(249,115,22,.3)}.cfl-diff-label{font-size:10px;font-weight:600;color:var(--cfl-fg-muted);font-variant-numeric:tabular-nums;line-height:1.2}.cfl-diff-bar-track{height:8px;border-radius:99px;background:var(--cfl-analytics-bar-track);overflow:hidden}.cfl-diff-bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#7c3aed,#f97316 70%,#ffb347);transition:width .45s ease;min-width:4px}.cfl-diff-count{font-size:11px;font-weight:700;color:var(--cfl-fg-strong);text-align:right;font-variant-numeric:tabular-nums}.cfl-sk-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px}.cfl-sk-magic-card{height:108px;border-radius:14px}.cfl-analytics-badge-xp{display:none!important}.cfl-analytics-badge-title{padding-right:0}@media (prefers-reduced-motion:reduce){.cfl-analytics-content:not([hidden]) .cfl-analytics-magic-card,.cfl-analytics-detail-panel,.cfl-analytics-magic-card,.cfl-analytics-magic-icon-wrap,.cfl-analytics-magic-icon-wrap:after,.cfl-analytics-magic-shimmer,.cfl-analytics-magic-sparkle{animation:none!important;transition:none!important}.cfl-analytics-magic-card:hover,.cfl-analytics-magic-card:hover .cfl-analytics-magic-icon-wrap{transform:none}.cfl-analytics-magic-card:hover .cfl-analytics-magic-shimmer{opacity:0}}.cfl-analytics-magic-card--streaks{background:linear-gradient(180deg,#1c1a18 0,var(--cfl-analytics-magic-card) 100%)}.cfl-analytics-magic-card--activity{background:linear-gradient(180deg,#151c22 0,var(--cfl-analytics-magic-card) 100%)}.cfl-analytics-magic-card--difficulty{background:linear-gradient(180deg,#1a1822 0,var(--cfl-analytics-magic-card) 100%)}.cf-orig-demo{font-family:verdana,arial,sans-serif;font-size:13px;color:#000;background:#fff;height:100%;overflow:auto;line-height:1.4}.cf-orig-demo .cf-header{display:flex;align-items:flex-start;justify-content:space-between;padding:8px 12px 4px;border-bottom:1px solid #b9b9b9}.cf-orig-demo .cf-logo-row{display:flex;align-items:center;gap:6px}.cf-orig-demo .cf-logo-bars{display:flex;gap:2px;align-items:flex-end;height:22px}.cf-orig-demo .cf-logo-bars span{width:5px;display:block}.cf-orig-demo .cf-logo-bars span:first-child{height:14px;background:#ffc164}.cf-orig-demo .cf-logo-bars span:nth-child(2){height:18px;background:#5cb85c}.cf-orig-demo .cf-logo-bars span:nth-child(3){height:22px;background:#428bca}.cf-orig-demo .cf-logo-text{font-size:18px;font-weight:700;letter-spacing:-.5px;color:#000}.cf-orig-demo .cf-logo-sub{font-size:9px;color:#888;margin-top:-2px}.cf-orig-demo .cf-user{font-size:12px;color:#888}.cf-orig-demo .cf-user a{color:#06c;text-decoration:none}.cf-orig-demo .cf-nav{display:flex;flex-wrap:wrap;align-items:center;gap:0;padding:0 8px;background:#eee;border-bottom:1px solid #b9b9b9;font-size:11px;font-weight:700;text-transform:uppercase}.cf-orig-demo .cf-nav a{color:#06c;text-decoration:none;padding:6px 8px;white-space:nowrap}.cf-orig-demo .cf-nav a:hover{text-decoration:underline}.cf-orig-demo .cf-nav-search{margin-left:auto;display:flex;align-items:center;gap:4px;padding:4px 8px}.cf-orig-demo .cf-nav-search input{width:120px;font-size:11px;border:1px solid #aaa;padding:2px 4px}.cf-orig-demo .cf-tabs{display:flex;gap:2px;padding:8px 12px 0;background:#fff}.cf-orig-demo .cf-tab{font-size:11px;font-weight:700;text-transform:uppercase;color:#06c;text-decoration:none;padding:4px 10px;border:1px solid #b9b9b9;border-bottom:none;border-radius:4px 4px 0 0;background:#f5f5f5;margin-bottom:-1px}.cf-orig-demo .cf-tab-btn{cursor:pointer;font-family:inherit}.cf-orig-demo .cf-tab-btn:hover{background:#fafafa}.cf-orig-demo .cf-tab.active{background:#fff;color:#000;border-bottom:1px solid #fff;position:relative;z-index:1}.cf-orig-demo .cf-body{display:flex;gap:12px;padding:0 12px 12px;border-top:1px solid #b9b9b9}.cf-orig-demo .cf-main{flex:1;min-width:0;padding-top:12px}.cf-orig-demo .cf-sidebar{width:220px;flex-shrink:0;padding-top:12px}.cf-orig-demo .cf-roundbox{border:1px solid #b9b9b9;margin-bottom:10px;background:#fff}.cf-orig-demo .cf-roundbox-title{background:#eee;border-bottom:1px solid #b9b9b9;padding:4px 8px;font-size:12px;font-weight:700;color:#06c}.cf-orig-demo .cf-roundbox-title:before{content:"→ "}.cf-orig-demo .cf-roundbox-content{padding:8px;font-size:12px;color:#333}.cf-orig-demo .cf-problem-title{font-size:16px;font-weight:700;margin-bottom:12px}.cf-orig-demo .cf-problem-title a{color:#06c;text-decoration:none}.cf-orig-demo .cf-form-row{margin-bottom:10px}.cf-orig-demo .cf-form-row label{display:block;font-size:12px;margin-bottom:4px;color:#333}.cf-orig-demo .cf-lang-select{max-width:360px;padding:2px 4px}.cf-orig-demo .cf-code-area,.cf-orig-demo .cf-lang-select{width:100%;font-size:12px;border:1px solid #aaa;background:#fff}.cf-orig-demo .cf-code-area{min-height:260px;font-family:consolas,courier new,monospace;line-height:1.45;padding:6px 8px;color:#000;resize:none;box-sizing:border-box}.cf-orig-demo .cf-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.cf-orig-demo .cf-btn{font-family:verdana,arial,sans-serif;font-size:12px;padding:4px 14px;border:1px solid #888;border-radius:3px;background:linear-gradient(180deg,#f8f8f8 0,#e0e0e0);color:#000;cursor:default;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.6)}.cf-orig-demo .cf-btn-primary{background:linear-gradient(180deg,#5cb85c 0,#449d44);border-color:#398439;color:#fff}.cf-orig-demo .cf-sample{margin-top:16px;border:1px solid #b9b9b9;background:#f9f9f9}.cf-orig-demo .cf-sample-header{background:#eee;border-bottom:1px solid #b9b9b9;padding:4px 8px;font-size:12px;font-weight:700}.cf-orig-demo .cf-sample-body{display:flex;gap:0}.cf-orig-demo .cf-sample-col{flex:1;padding:8px;border-right:1px solid #b9b9b9}.cf-orig-demo .cf-sample-col:last-child{border-right:none}.cf-orig-demo .cf-sample-label{font-size:11px;font-weight:700;color:#666;margin-bottom:4px}.cf-orig-demo .cf-sample-pre{font-family:consolas,courier new,monospace;font-size:12px;margin:0;white-space:pre-wrap;color:#000}.cf-orig-demo .cf-orig-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#888;background:#f0f0f0;border:1px solid #ccc;border-radius:3px;padding:2px 6px;margin-left:8px;vertical-align:middle}.cf-orig-demo .cf-problem-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:12px;color:#666;margin-bottom:14px}.cf-orig-demo .cf-problem-statement{font-size:13px;line-height:1.55;color:#222;margin-bottom:16px}.cf-orig-demo .cf-problem-statement p{margin:0 0 10px}.cf-orig-demo .cf-problem-section{margin:14px 0}.cf-orig-demo .cf-problem-section-title{font-size:12px;font-weight:700;color:#06c;margin-bottom:6px}.cf-orig-demo .cf-problem-note{margin-top:18px;padding:10px 12px;background:#fff8e6;border:1px solid #e6d9a8;border-radius:4px;font-size:12px;color:#650}.cf-orig-demo .cf-inline-tab-link{border:none;background:none;padding:0;font:inherit;color:#06c;text-decoration:underline;cursor:pointer}.cf-orig-demo .cf-inline-tab-link:hover{color:#049}@media (max-width:640px){.cf-orig-demo .cf-body{flex-direction:column}.cf-orig-demo .cf-sidebar{width:100%}.cf-orig-demo .cf-nav a{padding:4px 5px;font-size:10px}}