/* --- Root Variables (From 1Minit Tools Template) --- */
:root{--primary-brand-color:#0AF5F5;--primary-brand-hover:#08C7C7;--secondary-accent-color:#F50AE6;--navbar-background-base:#0D0F13;--navbar-background-scrolled:rgba(13,15,19,.88);--navbar-text-color:#B0C4DE;--navbar-text-hover:#E0FFFF;--navbar-link-active:var(--primary-brand-color);--dropdown-background:#14181F;--dropdown-border:#222831;--dropdown-shadow:rgba(10,245,245,.15);--font-primary:'Inter','Roboto',sans-serif;--font-logo:'Exo 2','Orbitron',sans-serif;--font-code:'Roboto Mono',monospace;--border-radius-main:8px;--border-radius-round:50%;--transition-speed:.35s;--transition-cubic:cubic-bezier(.68,-.6,.32,1.6);--background-color:#0A0C0F;--text-color:#C0D0F0;--card-background:#10141A;--input-bg-color:#181C23;--border-color:#282E38;--tool-header-highlight:var(--primary-brand-color);--success-color:#28a745;--danger-color:#dc3545;--navbar-height:85px}body.light-theme{--primary-brand-color:#007CF0;--primary-brand-hover:#0059B3;--secondary-accent-color:#D9006C;--navbar-background-base:#FCFCFD;--navbar-background-scrolled:rgba(252,252,253,.88);--navbar-text-color:#2E3A4D;--navbar-text-hover:#000;--dropdown-background:#FFF;--dropdown-border:#E8EBF0;--dropdown-shadow:rgba(0,124,240,.1);--background-color:#F4F6F9;--text-color:#1D232C;--card-background:#FFF;--input-bg-color:#F0F2F5;--border-color:#DDE2E9}
/* --- General Body, Navbar, and Footer Styles (From 1Minit Tools) --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-primary);background-color:var(--background-color);color:var(--text-color);line-height:1.65;transition:background-color var(--transition-speed) ease,color var(--transition-speed) ease;min-height:100vh;display:flex;flex-direction:column}body.overlay-active{overflow:hidden}.navbar-1minit-main{background-color:var(--navbar-background-base);padding:1rem 0;position:fixed;top:0;left:0;width:100%;z-index:1050;box-shadow:0 5px 25px rgba(0,0,0,.15);border-bottom:1px solid var(--dropdown-border);transition:background-color var(--transition-speed) ease,box-shadow var(--transition-speed) ease,padding var(--transition-speed) ease,transform var(--transition-speed) ease;min-height:var(--navbar-height);display:flex;align-items:center}.navbar-1minit-main.scrolled{background-color:var(--navbar-background-scrolled);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.8rem 0;box-shadow:0 8px 30px rgba(0,0,0,.2)}.navbar-container-1minit{width:100%;max-width:1400px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.navbar-logo-1minit{display:flex;align-items:center;text-decoration:none;color:var(--navbar-text-color)}.logo-image-1minit{height:42px;width:auto;margin-right:15px;border-radius:var(--border-radius-round);transition:transform .5s var(--transition-cubic),box-shadow .3s ease;border:2px solid transparent}.navbar-logo-1minit:hover .logo-image-1minit{transform:rotate(-15deg) scale(1.12);box-shadow:0 0 18px var(--primary-brand-color);border-color:var(--primary-brand-color)}.logo-text-1minit{font-family:var(--font-logo);font-size:2.6rem;font-weight:900;letter-spacing:-1.8px;line-height:1;display:flex;align-items:baseline;background:linear-gradient(135deg,var(--primary-brand-color) 0,var(--navbar-text-hover) 70%,var(--secondary-accent-color) 110%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:all .4s ease}.navbar-logo-1minit:hover .logo-text-1minit{letter-spacing:.5px;filter:brightness(1.2)}.navbar-menu-1minit{list-style:none;display:flex;margin:0;padding:0;align-items:center}.navbar-menu-1minit li{margin:0 18px}.nav-link-1minit{color:var(--navbar-text-color);text-decoration:none;font-size:1.1rem;font-weight:600;padding:12px 20px;border-radius:var(--border-radius-main);transition:color var(--transition-speed) ease,background-color var(--transition-speed) ease,transform var(--transition-speed) var(--transition-cubic);position:relative;overflow:hidden}.nav-link-1minit::before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.18),transparent);transition:left .45s ease-in-out}.nav-link-1minit:hover::before{left:100%}.nav-link-1minit:hover,.nav-link-1minit.active{color:var(--navbar-text-hover);background-color:rgba(var(--primary-brand-color),.22);transform:translateY(-3px) scale(1.04)}.nav-link-1minit.active{color:var(--primary-brand-color);font-weight:700;box-shadow:0 0 20px rgba(var(--primary-brand-color),.4)}.navbar-actions-1minit{display:flex;align-items:center;gap:18px}.theme-toggle-1minit,.tools-menu-toggle-1minit,.mobile-menu-main-toggle-1minit{background-color:transparent;border:2px solid var(--dropdown-border);color:var(--navbar-text-color);padding:0;width:46px;height:46px;border-radius:var(--border-radius-round);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.35rem;transition:all var(--transition-speed) var(--transition-cubic);position:relative;overflow:hidden}.theme-toggle-1minit:hover,.tools-menu-toggle-1minit:hover,.mobile-menu-main-toggle-1minit:hover{background-color:var(--primary-brand-color);color:var(--navbar-background-base);border-color:var(--primary-brand-color);transform:scale(1.18) rotate(22deg);box-shadow:0 0 22px rgba(var(--primary-brand-color),.65)}.theme-toggle-1minit .fa-moon{display:inline-block}body.light-theme .theme-toggle-1minit .fa-moon{display:none}.theme-toggle-1minit .fa-sun{display:none}body.light-theme .theme-toggle-1minit .fa-sun{display:inline-block}.tools-dropdown-1minit{position:fixed;top:0;right:-450px;width:400px;max-width:90vw;height:100vh;background-color:var(--dropdown-background);border-left:1px solid var(--dropdown-border);box-shadow:-10px 0 35px var(--dropdown-shadow);z-index:1100;transition:right .6s var(--transition-cubic);display:flex;flex-direction:column;overflow:hidden}.tools-dropdown-1minit.open{right:0}.dropdown-header-1minit{display:flex;justify-content:space-between;align-items:center;padding:1.3rem 2rem;border-bottom:1px solid var(--dropdown-border);background:linear-gradient(135deg,rgba(var(--primary-brand-color),.12),rgba(var(--secondary-accent-color),.07))}.dropdown-header-1minit h4{margin:0;font-size:1.35rem;color:var(--navbar-text-hover);font-weight:700}.dropdown-header-1minit h4 i{margin-right:12px;color:var(--primary-brand-color)}.close-dropdown-1minit{background:none;border:none;color:var(--navbar-text-color);font-size:2.1rem;line-height:1;cursor:pointer;transition:color var(--transition-speed) ease,transform var(--transition-speed) var(--transition-cubic)}.close-dropdown-1minit:hover{color:var(--secondary-accent-color);transform:rotate(180deg) scale(1.25)}.tools-list-container-1minit{flex-grow:1;overflow-y:auto;padding:1rem 0}.tools-list-1minit li a{display:flex;align-items:center;padding:1rem 2rem;color:var(--navbar-text-color);text-decoration:none;font-size:1.05rem;font-weight:500;border-bottom:1px solid var(--dropdown-border);transition:all .3s ease}.tools-list-1minit li a:hover{background-color:rgba(var(--primary-brand-color),.2);color:var(--primary-brand-color);padding-left:2.5rem}.tools-list-1minit li a i{margin-right:18px;width:24px;text-align:center;color:var(--primary-brand-color);transition:transform .3s ease}.tools-list-1minit li a:hover i{transform:scale(1.2) rotate(-10deg)}.dropdown-footer-1minit{padding:1.3rem 2rem;border-top:1px solid var(--dropdown-border)}.view-all-tools-1minit{display:inline-block;width:100%;padding:1rem 1.5rem;background:linear-gradient(135deg,var(--primary-brand-color),var(--secondary-accent-color) 120%);color:#0D0F13;text-decoration:none;border-radius:var(--border-radius-main);font-weight:700}.overlay-1minit{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(5,6,8,.75);backdrop-filter:blur(5px);z-index:1040;opacity:0;visibility:hidden}.overlay-1minit.active{opacity:1;visibility:visible}.mobile-menu-main-toggle-1minit{display:none}@media (max-width:1024px){.navbar-menu-1minit{display:none}.mobile-menu-main-toggle-1minit{display:flex}.navbar-menu-1minit.open{display:flex;position:absolute;top:100%;left:0;width:100%;background-color:var(--navbar-background-base);flex-direction:column}.navbar-menu-1minit li{width:100%}.navbar-menu-1minit li a{border-bottom:1px solid var(--dropdown-border)}}.footer-1minit-standard{background-color:var(--navbar-background-base);color:var(--navbar-text-color);padding:4rem 0 2rem;border-top:1px solid var(--dropdown-border);margin-top:auto}.footer-container-standard{max-width:1200px;margin:0 auto;padding:0 2rem}.footer-top-standard{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.5rem;margin-bottom:3rem}.footer-column-standard h4{color:var(--navbar-text-hover);margin-bottom:1.2rem}.footer-logo-link-standard{display:inline-flex;align-items:center;text-decoration:none;margin-bottom:1rem}.footer-logo-img-standard{height:38px}.footer-logo-text-standard{font-family:var(--font-logo);font-size:1.6rem;color:var(--primary-brand-color)}.footer-social-icons-standard a{color:var(--navbar-text-color);margin-right:1rem}.footer-links-group-standard ul{list-style:none;padding:0}.footer-links-group-standard li a{color:var(--navbar-text-color);text-decoration:none;display:block;padding:.4rem 0}.footer-bottom-standard{text-align:center;padding-top:2.5rem;border-top:1px solid var(--dropdown-border)}.footer-heart-icon{color:var(--secondary-accent-color)}

/* ----- Typing Master Specific Styles ----- */
.tm-main-content-wrapper{padding-top:calc(var(--navbar-height) + 1rem);padding-bottom:2rem;flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.tm-container{width:100%;max-width:1400px;margin:0 auto;padding:0 1.5rem;display:flex;flex-direction:column;align-items:center}
.tm-main-controls{display:flex;gap:20px;margin-bottom:2rem}
.tm-main-btn{display:inline-flex; align-items: center; gap: 12px; font-family:var(--font-logo);font-size:1.5rem;padding:1rem 2.5rem;border-radius:var(--border-radius-main);cursor:pointer;transition:all .3s ease;border:2px solid var(--primary-brand-color);background:linear-gradient(45deg, var(--primary-brand-color), var(--secondary-accent-color));color:#0D0F13; box-shadow: 0 4px 20px -5px rgba(var(--primary-brand-color),.5);}
.tm-main-btn:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 8px 30px -5px rgba(var(--primary-brand-color),.6)}
.tm-main-btn.secondary{background:transparent;color:var(--primary-brand-color); box-shadow: none;}
.tm-main-btn.secondary:hover{background:rgba(var(--primary-brand-color),.15)}
body.light-theme .tm-main-btn{color:#fff}body.light-theme .tm-main-btn.secondary{color:var(--primary-brand-color)}
:root{--tm-primary-glow:#0AF5F5;--tm-secondary-glow:#F50AE6;--tm-frame-bg:rgba(26,20,42,.6);--tm-key-bg:rgba(35,28,55,.5);--tm-key-side-color:#1e1a2f}body.light-theme{--tm-primary-glow:#007CF0;--tm-secondary-glow:#D9006C;--tm-frame-bg:rgba(230,235,240,.6);--tm-key-bg:rgba(240,242,245,.5);--tm-key-side-color:#DDE2E9}
.keyboard-frame{background:var(--tm-frame-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color);padding:20px;border-radius:20px;box-shadow:0 20px 50px rgba(0,0,0,.2),inset 0 2px 4px rgba(0,0,0,.1);display:flex;gap:10px;position:relative;transform:rotateX(10deg);transition:transform .3s ease,background .3s ease}
.key{background:var(--tm-key-bg);border:1px solid var(--border-color);border-radius:8px;min-width:58px;height:58px;display:flex;justify-content:center;align-items:center;color:var(--text-color);cursor:pointer;position:relative;user-select:none;transition:all .1s ease-out;box-shadow:0 5px 0 var(--tm-key-side-color),0 8px 15px rgba(0,0,0,.2)}
.key {animation:tm-buildUp .4s ease-out forwards; opacity: 0;}
@keyframes tm-buildUp{from{opacity:0;transform:translateY(30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
.key:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--tm-key-side-color),0 12px 20px var(--tm-primary-glow);border-color:var(--tm-primary-glow)}.key.pressed{transform:translateY(5px);box-shadow:0 0 0 var(--tm-key-side-color),inset 0 2px 3px rgba(0,0,0,.2)}.key .eng{font-size:22px;font-weight:700;line-height:1.1;text-align:center;font-family:'Rajdhani',sans-serif}.key .beng{position:absolute;bottom:6px;right:8px;color:var(--tm-primary-glow);font-size:16px;font-family:'Noto Sans Bengali',sans-serif;font-weight:500;text-shadow:0 0 6px var(--tm-primary-glow)}.main-keys,.side-panel{display:flex;flex-direction:column;gap:8px}.row{display:flex;gap:8px}.key-backspace{width:122px}.key-tab{width:89px}.key-caps{width:105px}.key-enter{width:135px}.key-shift-left{width:137px}.key-shift-right{width:147px}.key-ctrl{width:75px}.key-alt,.key-win{width:68px}.key-space{width:345px}.key-fn{height:45px}.long-key-text .eng{font-size:15px;text-align:left;padding:0 10px}.key-backspace .eng,.key-enter .eng,.key-shift-left .eng,.key-shift-right .eng{text-align:right}.numpad-cluster .long-key-text .eng{font-size:14px;text-align:center}.side-panel{gap:8px}.nav-cluster,.arrow-cluster,.numpad-cluster{display:grid;gap:8px}.nav-cluster{grid-template-columns:repeat(3,58px)}.arrow-cluster{grid-template-columns:repeat(3,58px);margin-top:19px}.arrow-placeholder{visibility:hidden}.arrow-up{grid-column:2}.numpad-cluster{grid-template-columns:repeat(4,58px)}.numpad-0{grid-column:span 2}.numpad-enter,.numpad-plus{grid-row:span 2}.brand-logo{position:absolute;font-size:22px;font-weight:500;color:rgba(120,120,120,.3);bottom:30px;right:-60px;transform:rotate(-90deg);transform-origin:bottom left;letter-spacing:2px}
#modal-root{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;pointer-events:none}
#modal-root > *{pointer-events:auto}
.modal-overlay{width:100%;height:100%;background:rgba(13,15,19,.85);backdrop-filter:blur(15px);display:flex;justify-content:center;align-items:center}
body.light-theme .modal-overlay{background:rgba(252,252,253,.85)}
.modal-content{background:var(--card-background);padding:30px 40px;border-radius:20px;border:1px solid var(--border-color);box-shadow:0 15px 50px rgba(0,0,0,.6);text-align:center;animation:modal-appear .5s cubic-bezier(.165,.84,.44,1)}
@keyframes modal-appear{from{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-content h2{font-size:32px;margin-bottom:10px;font-weight:700;color:var(--text-color);text-shadow:0 0 15px var(--tm-primary-glow); font-family: 'Rajdhani', sans-serif;}
body.light-theme .modal-content h2{text-shadow:none}
.modal-subtitle{font-size:16px;color:var(--text-color);opacity:.8;margin-top:-10px;margin-bottom:30px}
.mission-container{display:grid;grid-template-columns:1fr;gap:15px;min-width:450px}
.mission-card{display:flex;align-items:center;background:var(--input-bg-color);padding:15px 20px;border-radius:12px;border:1px solid transparent;cursor:pointer;transition:all .25s ease}
.mission-card:hover{transform:translateY(-4px) scale(1.02);border-color:var(--primary-brand-color);background:var(--card-background)}
.mission-icon{font-size:24px;color:var(--primary-brand-color);margin-right:20px}
.mission-details h3{font-size:20px;margin-bottom:2px;color:var(--text-color); font-family: 'Rajdhani', sans-serif;}
.mission-details p{font-size:14px;color:var(--text-color);opacity:.7}
.countdown{font-size:150px;font-weight:700;color:var(--tm-secondary-glow);text-shadow:0 0 30px var(--tm-secondary-glow);animation:countdown-pulse 1s infinite}
@keyframes countdown-pulse{50%{transform:scale(1.1)}}
#game-ui-container{width:100%;max-width:900px;margin-bottom:2rem;min-height:90px}
#text-preview-container{background:var(--input-bg-color);border:1px solid var(--border-color);padding:20px;border-radius:10px;font-size:28px;font-family:'Rajdhani',monospace;letter-spacing:2px;white-space:nowrap;overflow:hidden;transition:border-color .2s ease}
#text-preview-container .typed{color:var(--text-color);opacity:.5}
#text-preview-container .current{color:var(--text-color);position:relative;transition:color .2s ease}
#text-preview-container .current::after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:2px;background:var(--primary-brand-color)}
#text-preview-container .current.error{color:var(--danger-color)}
#text-preview-container .current.error::after{background:var(--danger-color)}
#key-timer-container{width:100%;height:4px;background:var(--border-color);border-radius:2px;margin-top:15px}
#key-timer-bar{width:100%;height:100%;background:linear-gradient(90deg,var(--primary-brand-color),var(--secondary-accent-color));border-radius:2px}
.key.target-key{background:var(--primary-brand-color);border-color:var(--secondary-accent-color);box-shadow:0 0 30px var(--primary-brand-color);transform:translateY(2px);animation:pulse-target 1.5s infinite}
@keyframes pulse-target{50%{box-shadow:0 0 45px var(--secondary-accent-color)}}
.key.error-press{animation:shake-error .4s;background:var(--danger-color) !important;border-color:var(--danger-color) !important}
@keyframes shake-error{0%,100%{transform:translateX(0) translateY(2px)}25%{transform:translateX(-6px) translateY(2px)}75%{transform:translateX(6px) translateY(2px)}}
.customize-modal{min-width:500px}.customize-modal .form-group{text-align:left;margin-bottom:20px}.customize-modal label{display:block;margin-bottom:8px;color:var(--text-color);opacity:.8}.customize-modal input[type=number],.customize-modal input[type=text]{width:100%;padding:10px;background:var(--input-bg-color);border:1px solid var(--border-color);border-radius:5px;color:var(--text-color);font-size:16px}.customize-modal input[type=range]{width:100%;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:15px;margin-top:30px}
.start-button,.back-button{color:#0D0F13;border:none;padding:12px 30px;border-radius:8px;font-size:18px;cursor:pointer;transition:all .2s ease}
body.light-theme .start-button{color:#fff}.start-button{background:var(--primary-brand-color)}.back-button{background:var(--input-bg-color);color:var(--text-color)}.start-button:hover{transform:scale(1.05);filter:brightness(1.1)}.back-button:hover{background:var(--border-color)}
.result-modal{min-width:550px;padding:40px}.result-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:40px}.accuracy-chart{position:relative;width:120px;height:120px;flex-shrink:0}.accuracy-chart svg{transform:rotate(-90deg)}.accuracy-chart .progress-bg,.accuracy-chart .progress-bar{fill:none;stroke-width:12}.accuracy-chart .progress-bg{stroke:var(--border-color)}.accuracy-chart .progress-bar{stroke:var(--primary-brand-color);stroke-linecap:round;transition:stroke-dashoffset 1s ease-out}.accuracy-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;font-weight:700}.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;flex-grow:1}.stat-card{background:var(--input-bg-color);padding:15px;border-radius:10px;text-align:center;transition:all .2s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:0 4px 15px rgba(0,0,0,.1)}.stat-card div:first-child{font-size:24px;line-height:1}.stat-card div:nth-child(2){font-size:22px;font-weight:700;margin:5px 0}.stat-card div:last-child{font-size:12px;color:var(--text-color);opacity:.7;text-transform:uppercase}.worst-key-char{color:var(--danger-color);font-weight:700}
.real-text-quotes .mission-card {flex-direction: column; align-items: flex-start;}
.real-text-quotes .mission-details p {white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%;}
.history-modal {max-width: 900px; width: 90vw;}.history-modal-header {display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;}.history-graph-container {width: 100%; height: 200px; background: var(--input-bg-color); border-radius: 10px; padding: 10px; margin-bottom: 20px;}.history-table-container {max-height: 300px; overflow-y: auto; border: 1px solid var(--border-color); border-radius: 10px;}.history-table {width: 100%; border-collapse: collapse; }.history-table th, .history-table td {padding: 12px 15px; text-align: left;}.history-table thead {position: sticky; top: 0; background: var(--card-background);}.history-table th {font-weight: 600; color: var(--primary-brand-color);}.history-table tbody tr {border-bottom: 1px solid var(--border-color);}.history-table tbody tr:last-child {border-bottom: none;}.history-table tbody tr:hover {background: var(--input-bg-color);}