/* Source: /css/achievements.css *//* ==========================================================
   TypingTutor.Online
   Achievement System v11.0
========================================================== */.achievements-dashboard{width:min(1180px, calc(100% - 24px));margin:22px auto 40px}.achievements-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;background:var(--surface);border:1px solid var(--border-soft);border-radius:16px;box-shadow:var(--shadow-sm)}.achievements-eyebrow{color:var(--primary);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.achievements-header h2{margin:5px 0 6px;color:var(--text);font-size:28px}.achievements-header p{max-width:700px;margin:0;color:var(--text-light);font-size:12px;line-height:1.55}.achievement-total{display:grid;flex:0 0 auto;min-width:120px;padding:14px;text-align:center;background:var(--surface-alt);border:1px solid var(--border-soft);border-radius:13px}.achievement-total strong{color:var(--primary);font-size:28px;line-height:1}.achievement-total span{margin-top:5px;color:var(--text-light);font-size:10px}.achievement-overall-progress{overflow:hidden;height:8px;margin:12px 0 16px;background:var(--border-soft);border-radius:99px}.achievement-overall-progress span{display:block;height:100%;background:linear-gradient(90deg, var(--primary), #22c55e);border-radius:inherit}.new-achievement-banner{display:flex;align-items:center;gap:12px;margin-bottom:15px;padding:14px 16px;background:color-mix(in srgb, #f59e0b 12%, var(--surface));border:1px solid color-mix(in srgb, #f59e0b 35%, var(--border-soft));border-radius:13px}.new-achievement-banner > span{font-size:24px}.new-achievement-banner strong,.new-achievement-banner small{display:block}.new-achievement-banner small{margin-top:3px;color:var(--text-light)}.achievement-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px}.achievement-card{position:relative;display:flex;gap:13px;min-width:0;padding:17px;background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;box-shadow:var(--shadow-sm)}.achievement-card.locked{opacity:.72}.achievement-card.unlocked{border-color:color-mix(in srgb, #22c55e 40%, var(--border-soft))}.achievement-icon{display:grid;flex:0 0 auto;width:42px;height:42px;place-items:center;color:#fff;background:var(--primary);border-radius:11px;font-size:18px;font-weight:800}.achievement-card.locked .achievement-icon{color:var(--text-light);background:var(--surface-alt);border:1px solid var(--border-soft)}.achievement-card-copy{min-width:0;flex:1}.achievement-group{color:var(--primary);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.achievement-card h3{margin:3px 0 5px;color:var(--text);font-size:15px}.achievement-card p{min-height:34px;margin:0 0 10px;color:var(--text-light);font-size:10px;line-height:1.45}.achievement-progress{overflow:hidden;height:6px;background:var(--border-soft);border-radius:99px}.achievement-progress span{display:block;height:100%;background:var(--primary);border-radius:inherit}.achievement-card.unlocked .achievement-progress span{background:#22c55e}.achievement-card small{display:block;margin-top:6px;color:var(--text-light);font-size:9px}.achievement-status{position:absolute;top:12px;right:12px;color:#16a34a;font-size:12px}@media (max-width: 920px){.achievement-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (max-width: 620px){.achievements-header{align-items:stretch;flex-direction:column}.achievement-total{width:100%}.achievement-grid{grid-template-columns:1fr}}/* Source: /css/statistics-dashboard.css *//* ==========================================================
   TypingTutor.Online
   Statistics Dashboard v17.1.8
========================================================== */#statisticsDashboard{width:min(1180px, calc(100% - 24px));margin:22px auto}.statistics-dashboard{display:grid;gap:16px}.statistics-dashboard-header,.statistics-card,.statistics-rules{background:var(--surface);border:1px solid var(--border-soft);border-radius:18px;box-shadow:var(--shadow-md)}.statistics-dashboard-header{padding:22px}.dashboard-eyebrow{color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.statistics-dashboard-header h2{margin:5px 0;color:var(--text);font-size:25px}.statistics-dashboard-header p{margin:0;color:var(--text-light)}.statistics-summary-grid{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:10px}.statistics-summary-card{display:grid;gap:6px;padding:15px;background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;box-shadow:var(--shadow-sm)}.statistics-summary-card span{color:var(--text-light);font-size:10px;font-weight:800;text-transform:uppercase}.statistics-summary-card strong{color:var(--primary);font-size:23px}.statistics-summary-card small{color:var(--text-muted);font-size:10px;line-height:1.35}.statistics-content-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:16px}.statistics-card{padding:18px}.statistics-card h3{margin:0 0 16px;color:var(--text);font-size:16px}.daily-bars{display:flex;align-items:end;gap:10px;min-height:220px}.daily-bar-item{display:grid;grid-template-rows:150px auto auto;gap:5px;flex:1;min-width:0;text-align:center}.daily-bar-track{position:relative;display:flex;align-items:end;overflow:hidden;background:var(--surface-alt);border-radius:9px}.daily-bar-track span{width:100%;min-height:6px;background:linear-gradient(180deg, #4d9aff, var(--primary));border-radius:9px}.daily-bar-item strong{color:var(--text);font-size:11px}.daily-bar-item small{color:var(--text-muted);font-size:9px}.recent-attempts{display:grid;gap:8px}.recent-attempt{display:grid;grid-template-columns:1fr auto auto minmax(100px, auto);gap:10px;align-items:center;padding:10px 12px;background:var(--surface-alt);border-radius:10px}.recent-attempt span,.recent-attempt small{color:var(--text-light);font-size:11px}.recent-attempt strong{color:var(--primary);font-size:12px}.recent-attempt b{color:var(--success);font-size:12px}.statistics-rules{display:flex;flex-wrap:wrap;gap:8px 18px;padding:13px 16px;color:var(--text-light);font-size:11px}.statistics-rules strong{color:var(--text)}.statistics-empty{color:var(--text-light);font-size:12px}@media (max-width: 1050px){.statistics-summary-grid{grid-template-columns:repeat(3, 1fr)}}@media (max-width: 760px){.statistics-content-grid{grid-template-columns:1fr}.recent-attempt{grid-template-columns:1fr auto auto}.recent-attempt small{grid-column:1/-1}}@media (max-width: 520px){.statistics-summary-grid{grid-template-columns:repeat(2, 1fr)}.daily-bars{gap:5px}}/* ==========================================================
   COURSE PROGRESS CARDS v10.2
========================================================== */.course-progress-grid{display:grid;grid-template-columns:repeat(5, minmax(0, 1fr));gap:12px;margin-bottom:16px}.course-progress-card{min-width:0;padding:16px;background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;box-shadow:var(--shadow-sm)}.course-progress-card::before{content:"";display:block;width:34px;height:4px;margin-bottom:12px;background:var(--primary);border-radius:99px}.course-progress-card.completed::before{background:#16a34a}.course-progress-card.current::before{background:#2563eb}.course-progress-card.ongoing::before{background:#f59e0b}.course-progress-card.remaining::before{background:#64748b}.course-progress-card.percentage::before{background:#7c3aed}.course-progress-card > span{display:block;margin-bottom:7px;color:var(--text-light);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.course-progress-card > strong{display:block;overflow:hidden;color:var(--text);font-size:23px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.course-progress-card.current > strong{font-size:18px}.course-progress-card > small{display:block;margin-top:7px;overflow:hidden;color:var(--text-light);font-size:10px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1100px){.course-progress-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media (max-width: 720px){.course-progress-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (max-width: 460px){.course-progress-grid{grid-template-columns:1fr}}/* ==========================================================
   RESPONSIVE GROWING 60-DAY PRACTICE HISTORY v17.1.8
========================================================== *//* Grid children must be allowed to shrink inside the theme width. */#statisticsModePanel,#statisticsDashboard,.statistics-dashboard,.statistics-content-grid,.statistics-card,.practice-history-card,.daily-bars-frame{box-sizing:border-box;min-width:0;max-width:100%}/* The history and recent-results cards use the full dashboard width. */.statistics-content-grid{grid-template-columns:minmax(0, 1fr)}.statistics-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.statistics-card-heading h3{margin-bottom:3px}.statistics-card-heading p,.statistics-card-heading > span{margin:0;color:var(--text-muted);font-size:10px;line-height:1.35}.statistics-card-heading > span{flex:0 0 auto;padding:5px 8px;background:var(--surface-alt);border-radius:999px;font-weight:700}.daily-bars-frame{width:100%;overflow:hidden;padding:2px}/*
 * The chart begins narrow and gains one column each calendar day.
 * It stops growing at the dashboard width, then its columns become
 * proportionally narrower until the rolling 60-day maximum is reached.
 */.practice-history-card .daily-bars{display:grid;grid-template-columns:repeat(var(--practice-day-count, 1), minmax(0, 1fr));align-items:end;gap:clamp(2px, .45vw, 7px);width:min(
        100%,
        calc(var(--practice-day-count, 1) * 54px)
    );min-width:0;min-height:222px}.practice-history-card .daily-bar-item{display:grid;grid-template-rows:142px 13px 11px 10px;gap:3px;min-width:0;text-align:center}.practice-history-card .daily-bar-track{position:relative;display:flex;min-width:0;align-items:end;overflow:hidden;background:var(--surface-alt);border:1px solid var(--border-soft);border-radius:clamp(4px, .55vw, 9px)}.practice-history-card .daily-bar-track span{width:100%;min-height:0;background:linear-gradient(180deg, #4d9aff, var(--primary));border-radius:8px 8px 4px 4px}.practice-history-card .daily-bar-item.goal-complete .daily-bar-track{border-color:rgba(22, 163, 74, .30);background:rgba(22, 163, 74, .07)}.practice-history-card .daily-bar-item.goal-complete .daily-bar-track span{background:linear-gradient(180deg, #42d87b, #16a34a)}.practice-history-card .daily-bar-item strong,.practice-history-card .daily-bar-item small,.practice-history-card .daily-bar-item em{display:block;min-width:0;overflow:hidden;line-height:1.1;text-overflow:clip;white-space:nowrap}.practice-history-card .daily-bar-item strong{color:var(--text);font-size:clamp(7px, .72vw, 10px)}.practice-history-card .daily-bar-item small{color:var(--text-muted);font-size:clamp(6px, .6vw, 8px)}.practice-history-card .daily-bar-item em{color:var(--success, #16a34a);font-size:clamp(6px, .53vw, 7px);font-style:normal;font-weight:800}@media (max-width: 760px){.statistics-card-heading{align-items:flex-start;flex-direction:column;gap:7px}.statistics-card-heading > span{padding:0;background:transparent}.practice-history-card .daily-bars{gap:2px;min-height:188px;width:min(
            100%,
            calc(var(--practice-day-count, 1) * 42px)
        )}.practice-history-card .daily-bar-item{grid-template-rows:116px 12px 10px 9px;gap:2px}}/* Source: /css/universal-footer-v17.10.21.css *//* TypingTutor.Online global footer v17.10.21 */.universal-site-footer{display:block;box-sizing:border-box;width:100%;margin-top:48px;padding:36px clamp(18px,4vw,56px) 24px;color:var(--text-light,#64748b);background:linear-gradient(180deg,#fbfdff 0%,#f6f9fd 100%);border-top:1px solid var(--border,#d9e2ef);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.universal-footer-inner{box-sizing:border-box;width:min(1500px,100%);margin:0 auto}.universal-footer-main{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,2.15fr);gap:clamp(32px,5vw,72px);align-items:start}.universal-footer-brand{display:grid;gap:9px;max-width:340px;text-align:left}.universal-footer-home{width:max-content;color:var(--text,#0f172a) !important;font-size:18px;font-weight:850;line-height:1.25;text-decoration:none;letter-spacing:-.01em}.universal-footer-home:hover,.universal-footer-home:focus-visible{color:var(--primary,#1769ff) !important}.universal-footer-brand span{color:var(--text-light,#64748b);font-size:13px;font-weight:550;line-height:1.6}.universal-footer-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px clamp(22px,4vw,54px)}.universal-footer-group{min-width:0}.universal-footer-group>strong{display:block;margin:0 0 10px;color:var(--text,#0f172a);font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.universal-footer-group-links{display:grid;gap:8px}.universal-footer-group-links a{width:max-content;max-width:100%;color:var(--text-light,#64748b);font-size:13px;font-weight:700;line-height:1.45;text-decoration:none;transition:color .16s ease,transform .16s ease}.universal-footer-group-links a:hover,.universal-footer-group-links a:focus-visible{color:var(--primary,#1769ff);text-decoration:underline;text-underline-offset:3px}.universal-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:28px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--border,#d9e2ef) 82%,transparent);color:var(--text-light,#64748b);font-size:11px;font-weight:600;line-height:1.5}html[data-theme="dark"] .universal-site-footer{color:#94a3b8;background:#0f172a;border-top-color:#334155}html[data-theme="dark"] .universal-footer-home,html[data-theme="dark"] .universal-footer-group>strong{color:#f8fafc!important}html[data-theme="dark"] .universal-footer-brand span,html[data-theme="dark"] .universal-footer-group-links a,html[data-theme="dark"] .universal-footer-bottom{color:#a8b5c7}html[data-theme="dark"] .universal-footer-bottom{border-top-color:#334155}html[data-theme="dark"] .universal-footer-home:hover,html[data-theme="dark"] .universal-footer-home:focus-visible,html[data-theme="dark"] .universal-footer-group-links a:hover,html[data-theme="dark"] .universal-footer-group-links a:focus-visible{color:#60a5fa!important}@media(prefers-color-scheme:dark){html[data-theme="system"] .universal-site-footer{color:#94a3b8;background:#0f172a;border-top-color:#334155}html[data-theme="system"] .universal-footer-home,html[data-theme="system"] .universal-footer-group>strong{color:#f8fafc!important}html[data-theme="system"] .universal-footer-brand span,html[data-theme="system"] .universal-footer-group-links a,html[data-theme="system"] .universal-footer-bottom{color:#a8b5c7}html[data-theme="system"] .universal-footer-bottom{border-top-color:#334155}html[data-theme="system"] .universal-footer-home:hover,html[data-theme="system"] .universal-footer-home:focus-visible,html[data-theme="system"] .universal-footer-group-links a:hover,html[data-theme="system"] .universal-footer-group-links a:focus-visible{color:#60a5fa!important}}@media(max-width:900px){.universal-site-footer{padding-top:30px}.universal-footer-main{grid-template-columns:1fr;gap:26px}.universal-footer-brand{max-width:620px}.universal-footer-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.universal-site-footer{margin-top:32px;padding:28px 18px 20px}.universal-footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.universal-footer-group:last-child{grid-column:1/-1}.universal-footer-group:last-child .universal-footer-group-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.universal-footer-group-links a{width:auto;padding:2px 0}.universal-footer-bottom{align-items:flex-start;flex-direction:column;gap:5px;margin-top:24px}}@media(max-width:390px){.universal-footer-nav{grid-template-columns:1fr}.universal-footer-group:last-child{grid-column:auto}.universal-footer-group:last-child .universal-footer-group-links{grid-template-columns:1fr}}@media print{.universal-site-footer{display:none!important}}