:root{color:#e9edf6;font-synthesis:none;background:#101722;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}#app{max-width:1000px;margin:1rem auto 5rem;padding:clamp(1rem,4vw,2.5rem)}h1{letter-spacing:-.055em;margin:0 0 .5rem;font-size:clamp(2rem,5vw,3rem);line-height:1.1}h2{letter-spacing:.01em;margin:2.5rem 0 .8rem;font-size:1.1rem}h3{margin:2rem 0 .5rem;font-size:1rem}p{margin:.8rem 0}.subtitle,.hint,.status{color:#bbcadc}.status{font-variant-numeric:tabular-nums;margin:1.7rem 0 .7rem}.practicing{max-width:1200px!important}.practice-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.practice-header nav{align-items:center;display:flex}.practice-header button{margin:0 0 0 .6rem}.icon-button{padding:.55rem .8rem;font-size:1.35rem;line-height:1}.practicing .prompt{--line-height:1.85em;height:calc(3 * var(--line-height) + 2 * clamp(1rem, 3vw, 2rem) + 4px);background:#1b2939;border:2px solid #455a73;border-radius:.8rem;padding:clamp(1rem,3vw,2rem);font:clamp(1.55rem,4vw,2.85rem)/1.85 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden}.prompt-line{height:var(--line-height);white-space:nowrap;gap:1ch;display:flex}.prompt:focus-visible{outline-offset:3px;outline:3px solid #c1e1ff}.token{white-space:pre;flex:none;position:relative}.char.pending{color:#a3b2c6}.char.correct{color:#a4e2c0}.char.incorrect{color:#ff9fa6;text-decoration:underline;text-decoration-thickness:.1em}.char.caret{position:relative}.char.caret:before{content:"";border-left:2px solid #fff;height:1.15em;position:absolute;top:.08em;left:0}.end-caret{border-left:2px solid #fff;height:1.15em;position:absolute;top:.4em;left:100%}.ranges{gap:.8rem;max-width:55rem;margin:0 0 1rem;display:grid}.range{flex-wrap:wrap;align-items:center;gap:.7rem 1.2rem;display:flex}.range label:first-child{min-width:8rem}.range span{color:#bbcadc;font-size:.9rem}label{flex-wrap:wrap;align-items:center;gap:.3rem;display:inline-flex}input[type=checkbox]{accent-color:#9fc8fa;width:1.15rem;height:1.15rem}input[type=number],select,input[type=file]{font:inherit;color:inherit}input[type=number],select{background:#1b2939;border:1px solid #97b6d8;border-radius:.35rem;width:7rem;padding:.5rem}input:focus-visible,select:focus-visible,.table-scroll:focus-visible{outline-offset:2px;outline:3px solid #c1e1ff}.controls{flex-wrap:wrap;gap:.7rem;margin:1rem 0;display:flex}button{color:#fff;font:inherit;cursor:pointer;background:#294565;border:1px solid #97b6d8;border-radius:.4rem;margin-bottom:.4rem;margin-right:.6rem;padding:.68rem 1.1rem;font-weight:600}button:hover,button:focus-visible{outline-offset:2px;background:#3c648b;outline:2px solid #c1e1ff}button:disabled{opacity:.5;cursor:not-allowed}.backup-file{margin:1rem 0;display:flex}.backup-file input{max-width:100%}.table-scroll{overflow-x:auto}.session-list,.priority-list{font-variant-numeric:tabular-nums;padding-left:2rem}.session-list li,.priority-list li{padding:.35rem 0}details{margin:1rem 0}details>summary{cursor:pointer;color:#c1e1ff}details>summary:focus-visible{outline:3px solid #c1e1ff}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-bottom:1px solid #455a73;padding:.65rem}th{white-space:nowrap}.summary{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:1rem;display:grid}.summary dt{color:#bbcadc}.summary dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.5rem;font-weight:650}.notice{color:#9ef2bc}.error{color:#ff9fa6}@media (width<=600px){#app{margin:0 auto 3rem}.range{align-items:flex-start}.range label:first-child{min-width:100%}}
