*{box-sizing:border-box}html{scroll-behavior:smooth}body{--bg:#f4f7fc;--surface:#fff;--ink:#172343;--sub:#66738c;--border:#dce4f0;--soft:#eef3fc;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;line-height:1.65}body.dark{--bg:#0b1327;--surface:#151f38;--ink:#f2f5fd;--sub:#adb9d0;--border:#30405e;--soft:#222e4a}a{color:#3c70de;text-decoration:none}a:hover{text-decoration:underline}.sitehead{border-bottom:1px solid var(--border);background:var(--surface)}.sitehead a{font-weight:600;font-size:.9rem}.brand{font-weight:900;font-size:1.15rem;letter-spacing:.03em;color:var(--ink)}.brandlogo{display:inline-grid;place-items:center;width:32px;height:32px;background:#4778ed;color:white;border-radius:9px;margin-right:5px}.muted{color:var(--sub)}.smallbtn{border:1px solid var(--border);padding:6px 12px;border-radius:8px}.smallbtn.primary,.btn-primary{background:#386de4;border-color:#386de4;color:#fff}.iconbtn{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;padding:4px 12px}.hero{background:linear-gradient(115deg,#111f48,#263d83);color:white;border-radius:22px;padding:clamp(24px,5vw,54px);box-shadow:0 15px 35px #1126501a}.hero h1{font-size:clamp(1.9rem,4vw,3.15rem);font-weight:850;max-width:820px}.hero .lead{font-size:1.06rem;opacity:.86;max-width:800px}.tag{font-size:.7rem;letter-spacing:.13em;font-weight:800;color:#9fbbff;margin-bottom:12px}.panel,.seo{background:var(--surface);padding:clamp(17px,3vw,26px);border:1px solid var(--border);border-radius:17px;box-shadow:0 5px 14px #132a4c08}.panel h2,.seo h2{font-size:1.3rem;font-weight:800}.panel h3,.seo h3{font-size:1.1rem;font-weight:750}.panel label{font-size:.8rem;font-weight:700;color:var(--sub);margin-bottom:5px}.form-select,.form-control{background:var(--surface);color:var(--ink);border-color:var(--border)}.form-control:focus,.form-select:focus{background:var(--surface);color:var(--ink)}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.metrics>div{background:var(--soft);text-align:center;border-radius:10px;padding:11px 2px}.metrics strong{display:block;font-size:clamp(1rem,2.3vw,1.7rem);line-height:1.4;font-variant-numeric:tabular-nums}.metrics small{display:block;font-size:.68rem;color:var(--sub)}.textdisplay{font-size:clamp(1.12rem,2vw,1.5rem);line-height:2.1;background:var(--soft);border:1px solid var(--border);padding:20px;border-radius:12px;min-height:114px;max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;user-select:none}.textdisplay .ok{color:#11895e}.textdisplay .bad{background:#ffe0de;color:#b5292d;border-radius:2px}.textdisplay .cursor{border-left:3px solid #426ff5;background:#dae5ff;color:#111a32}.typinginput{font-size:1.1rem;line-height:1.75;resize:vertical;min-height:110px}.result{font-weight:650}.result:not(:empty){padding:15px;background:var(--soft);border-radius:10px}.status{font-size:.8rem;font-weight:800;color:#426ee0}.kb{overflow-x:auto;padding:10px;background:var(--soft);border-radius:12px}.kbrow{display:flex;justify-content:center;gap:4px;margin:5px auto;min-width:450px}.key{background:var(--surface);border:1px solid var(--border);border-bottom-width:3px;text-align:center;flex:1;padding:9px 0;border-radius:6px;font-size:.75rem;font-weight:700;max-width:56px}.key.target{background:#4b77e8;color:white}.key.home{border-bottom-color:#50a4cd}.courses{display:grid;gap:7px}.courseitem{padding:10px 12px;border-radius:10px;background:var(--soft);border:1px solid transparent;cursor:pointer;color:var(--ink);text-align:left}.courseitem:hover,.courseitem.active{border-color:#5d86ed}.courseitem small{display:block;color:var(--sub)}.note{font-size:.8rem;color:var(--sub)}.instructions li{margin-bottom:8px}.footer{border-top:1px solid var(--border);padding:24px 0;font-size:.83rem;color:var(--sub)}.table{--bs-table-bg:transparent;--bs-table-color:var(--ink);--bs-table-border-color:var(--border)}@media(max-width:767px){.sitehead nav{justify-content:center}.sitehead nav>div{justify-content:center;margin:auto}.metrics{grid-template-columns:repeat(3,1fr)}.hero{border-radius:12px}.textdisplay{min-height:85px}.key{padding:6px 0}.panel{border-radius:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Release 3: mobile first polish */
body{--bg:#f1f6ff;--soft:#edf4ff;--border:#d8e3f4}body.dark{--bg:#11182b;--soft:#25314d;--border:#43516a}.sitehead{position:sticky;top:0;z-index:10;box-shadow:0 2px 18px #0e2a5810}.hero{background:linear-gradient(115deg,#ecf3ff,#dceaff);color:#19315e;box-shadow:none;border:1px solid #ccdcf5}.hero .tag{color:#295bb9}.hero .lead{color:#465b7c}.brandlogo{background:#2867df}.panel{box-shadow:0 8px 30px #18386609}.typinginput{font-size:16px!important;min-height:140px;border-radius:12px}.typinginput:focus{box-shadow:0 0 0 4px #2f72d221}.keybar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.keybar>div{min-width:160px;max-width:245px;flex:1}.shift-control{display:flex;align-items:center;gap:6px;font-size:.88rem!important}.key{min-width:0;max-width:none;padding:8px 2px;line-height:1.25;cursor:pointer;touch-action:manipulation;color:var(--ink)}.key .latin{font-size:.63rem;opacity:.65;display:block}.key .glyph{font-size:clamp(.82rem,1.3vw,1.1rem);display:block;min-height:1.4em}.key:focus-visible{outline:3px solid #2f75eb;outline-offset:2px}.kbrow{min-width:0;gap:3px}.kb{overflow-x:visible}.key.target{background:#2669e3;color:#fff}.mobile-helper{background:#eef8ff;color:#24517b;padding:10px 12px;border-radius:10px;font-size:.86rem;margin-top:12px}.progress-pill{display:inline-block;background:var(--soft);border-radius:12px;padding:8px 12px;margin:5px 6px 8px 0}.progress-pill strong{font-size:1.2rem;display:block}.mini-bars{display:flex;align-items:flex-end;gap:5px;min-height:90px;overflow:auto}.mini-bars>div{background:#5488e8;min-width:13px;border-radius:4px 4px 0 0}.small-muted{color:var(--sub);font-size:.85rem}body.dark .hero{background:linear-gradient(120deg,#1c3052,#293f69);color:#f4f7ff;border-color:#415a80}body.dark .hero .lead,body.dark .hero .tag{color:#c2d4fc}body.dark .mobile-helper{background:#26394f;color:#d1e4ff}@media(max-width:767px){.sitehead{position:relative}.sitehead nav{padding:10px!important}.sitehead nav>div{gap:10px!important}.sitehead a{font-size:.79rem}.hero{padding:20px}.hero h1{font-size:1.65rem}.hero .lead{font-size:.91rem}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.metrics>div{padding:9px 2px}.metrics strong{font-size:1.15rem}.textdisplay{font-size:1.2rem;min-height:125px;max-height:220px;padding:14px;line-height:1.8}.kb{padding:5px 2px}.kbrow{gap:2px;margin:3px auto}.key{padding:8px 0;border-radius:4px}.key .glyph{font-size:.83rem}.key .latin{font-size:.56rem}.panel{padding:14px}.btn{min-height:42px}.mobile-helper{font-size:.76rem}.keybar{gap:5px}}@media(max-width:375px){.key .glyph{font-size:.69rem}.key .latin{font-size:.49rem}.kbrow{gap:1px}.metrics small{font-size:.57rem}}

/* Keyboard visibility fixes for language keys on all screen sizes */
.kb .key {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;font-family:system-ui,'Noto Sans Gurmukhi','Noto Sans Devanagari',sans-serif;}
.kb .key .latin {display:block!important;font-size:.64rem!important;line-height:1.1;opacity:.65;color:inherit;}
.kb .key .glyph {display:block!important;font-size:1.12rem!important;line-height:1.5!important;min-height:1.5em;color:inherit;font-weight:700;white-space:nowrap;}
.kbrow{min-width:max-content;max-width:100%;}
.kb{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.kb .key{width:clamp(29px,5vw,51px);flex:0 0 auto;}
@media(max-width:600px){.kb .key{min-height:46px;width:clamp(28px,7vw,39px);}.kb .key .glyph{font-size:1rem!important;}.kbrow{justify-content:flex-start;}.kb{padding:8px;}}
