@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f4f0;--border: #b8b5ae;--border-light: #d4d1ca;--label: #777;--label-dark: #555;--accent: #4a7fc7;--stage1: #c8e6c9;--stage1-border: #81c784;--stage2: #fff9c4;--stage2-border: #ffd54f;--stage3: #b3e5fc;--stage3-border: #4fc3f7;--stage4: #d1c4e9;--stage4-border: #9575cd;--endgame: #ffcdd2;--endgame-border: #e57373;--app: #d7ccc8;--app-border: #a1887f;--nav-bg: #2c2c2c;--nav-text: #ccc;--nav-active: #fff;--nav-hover: #444;font-family:IBM Plex Mono,SF Mono,Fira Code,monospace;font-size:12px;color:#444}html,body,#root{height:100%;width:100%;overflow:hidden}body{background:var(--bg)}.content-text-display{font-family:Georgia,serif;font-size:1.5rem;line-height:2;padding:1.5rem;max-width:48rem;white-space:pre-wrap;word-wrap:break-word}.char{transition:color .1s,background-color .15s}.char-correct{color:#2d8a4e}.char-error{color:#c0392b;text-decoration:underline;text-decoration-color:#c0392b40}.char-corrected{color:#5a9e6f;text-decoration:underline dotted;text-decoration-color:#5a9e6f80}.char-cursor{background-color:#3498db30;border-bottom:2px solid #3498db}.char-pending{color:#999}.char-static{color:#555}.char-blank{color:#bbb;font-family:monospace;letter-spacing:.05em}.char-hint{color:#7a9bbf;font-weight:600}.char-highlight{background-color:#f5e6a320;border-bottom:2px solid #d4a934}.keyboard-display{display:flex;flex-direction:column;align-items:center;gap:6px;padding:1rem;-webkit-user-select:none;user-select:none}.keyboard-row{display:flex;gap:4px}.key{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.85rem;font-family:system-ui,sans-serif;font-weight:500;text-transform:uppercase;background:#f0f0f0;color:#333;border:1px solid #ddd;transition:all .15s}.key-space{width:200px}.key-wide{font-size:.7rem}.key-highlight{background:#3498db;color:#fff;border-color:#2980b9;transform:scale(1.1);box-shadow:0 2px 8px #3498db40}.key-active{background:#e8f4fd;color:#2980b9;border-color:#3498db80}.key-dimmed{opacity:.2}.key-hidden{opacity:0}.floating-keyboard{display:flex;flex-direction:column;align-items:center;transition:opacity .4s ease}.floating-keyboard--zones .fz-0{background:#f3e8e8}.floating-keyboard--zones .fz-1{background:#f3ede8}.floating-keyboard--zones .fz-2{background:#f0f0e6}.floating-keyboard--zones .fz-3{background:#e6f0e6}.floating-keyboard--zones .fz-4{background:#e6f0f0}.floating-keyboard--zones .fz-5{background:#e8edf3}.floating-keyboard--zones .fz-6{background:#ede9f2}.floating-keyboard--zones .fz-7{background:#f2e9ed}.floating-keyboard--zones .key-highlight.fz-0,.floating-keyboard--zones .key-highlight.fz-1,.floating-keyboard--zones .key-highlight.fz-2,.floating-keyboard--zones .key-highlight.fz-3,.floating-keyboard--zones .key-highlight.fz-4,.floating-keyboard--zones .key-highlight.fz-5,.floating-keyboard--zones .key-highlight.fz-6,.floating-keyboard--zones .key-highlight.fz-7{background:#3498db;color:#fff;border-color:#2980b9}.reload-toast{position:fixed;bottom:20px;right:20px;z-index:1000;background:#2a2a3e;border-radius:8px;box-shadow:0 4px 16px #0006;padding:12px 16px;max-width:320px;width:auto;animation:reload-toast-enter .3s ease-out}.reload-toast-closing{opacity:0;transform:translateY(8px);transition:opacity .2s ease-in,transform .2s ease-in}.reload-toast-content{display:flex;flex-direction:column;gap:8px}.reload-toast-message{color:#fff;font-size:13px;font-weight:500;line-height:1.4}.reload-toast-actions{display:flex;gap:8px}.reload-toast-btn{border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;padding:5px 12px;font-family:inherit;transition:opacity .15s}.reload-toast-btn:hover{opacity:.85}.reload-toast-btn-update{background:#2ecc71;color:#fff}.reload-toast-btn-dismiss{background:transparent;color:#888;border:1px solid #444}.reload-toast-btn-dismiss:hover{color:#aaa;border-color:#666}@keyframes reload-toast-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.results-screen{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:2.5rem;max-width:360px}.results-title{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#999}.results-main-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.results-wpm{font-size:4rem;font-weight:700;color:#2c3e50;line-height:1}.results-wpm-label{font-size:.9rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:1px}.results-new-best{font-size:1.1rem;font-weight:700;color:#2d8a4e;animation:results-best-pop .6s ease-out}@keyframes results-best-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.results-details{display:flex;gap:2rem}.results-detail{display:flex;flex-direction:column;align-items:center;gap:.2rem}.results-detail-value{font-size:1.5rem;font-weight:600;color:#2c3e50}.results-detail-label{font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:.5px}.results-best{font-size:.95rem;color:#666;font-style:italic}.profile-select{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;gap:1rem}.ps-title{font-size:1.8rem;font-weight:700;color:#333;margin:0}.ps-subtitle{font-size:1rem;color:#888;margin:0 0 1rem}.ps-cards{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.ps-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:160px;padding:1.25rem 1rem;border:2px solid #e0e0e0;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s;font-family:inherit;color:inherit;position:relative}.ps-card:hover{border-color:#3498db;box-shadow:0 2px 12px #3498db20}.ps-card-new{border-style:dashed;border-color:#ccc;color:#999}.ps-card-new:hover{border-color:#3498db;color:#3498db}.ps-card-create{cursor:default;gap:.6rem}.ps-card-create:hover{border-color:#3498db}.ps-avatar{width:48px;height:48px;border-radius:50%;background:#3498db;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:700}.ps-avatar-new{background:#e0e0e0;color:#999;font-size:1.6rem}.ps-card-name{font-size:.95rem;font-weight:600}.ps-card-stage{font-size:.75rem;color:#888}.ps-card-detail{font-size:.7rem;color:#aaa}.ps-delete{position:absolute;top:4px;right:6px;font-size:.65rem;color:#ccc;background:none;border:none;cursor:pointer;padding:2px 4px;font-family:inherit}.ps-delete:hover{color:#e74c3c}.ps-create-label{font-size:.8rem;color:#666;align-self:flex-start}.ps-create-input{width:100%;padding:.4rem .5rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;font-family:inherit;outline:none}.ps-create-input:focus{border-color:#3498db}.ps-create-actions{display:flex;gap:.5rem;width:100%}.ps-btn{flex:1;padding:.35rem;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:.8rem;font-family:inherit;cursor:pointer}.ps-btn:hover{background:#f5f5f5}.ps-btn-primary{background:#3498db;color:#fff;border-color:#3498db}.ps-btn-primary:hover{background:#2980b9}.settings-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#0006;animation:settings-fade-in .2s ease-out}@keyframes settings-fade-in{0%{opacity:0}to{opacity:1}}.settings-card{width:100%;max-width:400px;max-height:80vh;overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 12px 40px #0003;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;animation:settings-scale-in .2s ease-out}@keyframes settings-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.settings-header{display:flex;align-items:center;justify-content:space-between}.settings-title{font-size:1.25rem;font-weight:700;color:#222;margin:0}.settings-close{background:none;border:none;color:#999;cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.settings-close:hover{color:#555;background:#0000000d}.settings-field{display:flex;flex-direction:column;gap:.4rem}.settings-field-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-field-label{font-size:.85rem;font-weight:600;color:#444}.settings-field-hint{font-size:.75rem;color:#aaa;font-style:italic}.settings-input{width:100%;padding:.5rem .6rem;border:1px solid #ddd;border-radius:8px;font-size:.9rem;font-family:inherit;color:#333;outline:none;box-sizing:border-box;transition:border-color .15s}.settings-input:focus{border-color:#3498db}.settings-toggle{position:relative;width:44px;height:24px;border-radius:12px;border:none;background:#ddd;cursor:pointer;padding:0;transition:background .2s;flex-shrink:0}.settings-toggle-on{background:#2ecc71}.settings-toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000026;transition:transform .2s}.settings-toggle-on .settings-toggle-knob{transform:translate(20px)}.settings-radio-group{display:flex;flex-direction:column;gap:.5rem}.settings-voice-option{display:flex;flex-direction:column;gap:.25rem;padding:.6rem .75rem;border:1.5px solid #e0e0e0;border-radius:10px;background:#fff;cursor:pointer;font-family:inherit;text-align:left;transition:border-color .15s,background .15s}.settings-voice-option:hover{border-color:silver}.settings-voice-option-selected{border-color:#3498db;background:#f5f9fd}.settings-voice-option-header{display:flex;align-items:center;gap:.5rem}.settings-voice-radio{width:16px;height:16px;border-radius:50%;border:2px solid #ccc;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s}.settings-voice-option-selected .settings-voice-radio{border-color:#3498db}.settings-voice-radio-dot{width:8px;height:8px;border-radius:50%;background:#3498db}.settings-voice-option-label{font-size:.9rem;font-weight:600;color:#333}.settings-voice-preview{font-size:.8rem;color:#888;font-style:italic;padding-left:1.65rem}.settings-content-btn{width:100%;padding:.6rem;background:none;border:1px solid #ddd;border-radius:8px;font:inherit;font-size:.9rem;color:#555;cursor:pointer;transition:border-color .15s,color .15s}.settings-content-btn:hover{border-color:#4a7c59;color:#4a7c59}.dash{max-width:680px;margin:0 auto;padding:1.5rem 1.5rem 3rem;background:#fafafa;min-height:100vh}.dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.dash-header-left{display:flex;align-items:center;gap:.6rem}.dash-header-right{display:flex;align-items:center;gap:.5rem}.dash-name{font-size:1.5rem;font-weight:700;color:#222;margin:0}.dash-stage-badge{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .6rem;border-radius:12px;background:#2ecc71;color:#fff;font-size:.7rem;font-weight:700;white-space:nowrap}.dash-stage-label{font-size:.85rem;color:#888;font-weight:500}.dash-gear-btn{background:none;border:none;color:#999;cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.dash-gear-btn:hover{color:#555;background:#0000000d}.dash-switch-btn{background:none;border:1px solid #ddd;color:#888;cursor:pointer;font-size:.75rem;font-family:inherit;padding:3px 10px;border-radius:6px;transition:color .15s,border-color .15s}.dash-switch-btn:hover{color:#555;border-color:#bbb}.dash-start-section{margin-bottom:1.5rem}.dash-start-btn{width:100%;padding:.75rem;background:#2ecc71;color:#fff;border:none;border-radius:10px;font-size:1.05rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s}.dash-start-btn:hover:not(:disabled){background:#27ae60;transform:translateY(-1px)}.dash-start-btn:active:not(:disabled){transform:translateY(0)}.dash-start-btn:disabled{background:#ccc;cursor:not-allowed}.dash-start-hint{font-size:.8rem;color:#aaa;text-align:center;margin:.4rem 0 0}.dash-link-btn{background:none;border:none;color:#4a7c59;font:inherit;font-size:inherit;text-decoration:underline;cursor:pointer;padding:0}.dash-section{margin-bottom:1.5rem}.dash-section-heading{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#888;margin:0 0 .5rem}.dash-card{border:1px solid #e8e8e8;border-radius:10px;padding:1rem 1.25rem;background:#fff;box-shadow:0 1px 3px #0000000a}.dash-card-past{border-left:3px solid #95a5a6}.dash-card-journal{border-left:3px solid #3498db}.dash-card-current{border-left:3px solid #2ecc71}.dash-card-future{border-left:3px solid #f39c12}.dash-milestone{display:flex;gap:.75rem;align-items:flex-start;padding:.5rem 0}.dash-milestone+.dash-milestone{border-top:1px solid #f0f0f0}.dash-milestone-badge{width:28px;height:28px;border-radius:50%;background:#95a5a6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.dash-milestone-text strong{font-size:.9rem;display:block;margin-bottom:.2rem}.dash-milestone-text p{margin:0;font-size:.85rem;color:#666;line-height:1.4}.dash-narrative-text{font-size:.95rem;color:#444;line-height:1.5;margin:0}.dash-journal-entry{border-left:2px solid #e0e0e0;padding:.6rem 0 .6rem .75rem;margin-left:.25rem}.dash-journal-entry+.dash-journal-entry{border-top:1px solid #f5f5f5}.dash-journal-date{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem}.dash-journal-journey-label{font-size:.75rem;font-weight:600;color:#3498db}.dash-journal-calendar-date{font-size:.65rem;color:#bbb}.dash-journal-text{font-size:.85rem;color:#444;line-height:1.4}.dash-journal-transition{border-left:4px solid #3498db;background:#3498db0a;padding:.75rem;border-radius:0 4px 4px 0;margin-left:0}.dash-journal-transition .dash-journal-journey-label{font-weight:700;font-size:.8rem}.dash-journal-transition .dash-journal-text{font-size:.9rem;line-height:1.5}.dash-journal-reflection{margin-top:.4rem;font-style:italic;color:#666;font-size:.82rem;line-height:1.4}.dash-show-more{display:block;width:100%;padding:.5rem;margin-top:.5rem;background:none;border:1px dashed #ddd;border-radius:6px;color:#888;font-size:.8rem;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s}.dash-show-more:hover{color:#3498db;border-color:#3498db}.dash-empty{color:#aaa;font-size:.9rem;font-style:italic;margin:0}.dash-goal{font-size:.95rem;color:#444;line-height:1.5;margin:0 0 .75rem}.dash-gate{margin-top:.5rem}.dash-gate-header{font-size:.8rem;font-weight:600;color:#555;margin-bottom:.5rem}.dash-gate-softened{font-weight:400;color:#f39c12;margin-left:.4rem;font-size:.7rem}.dash-criterion{margin-bottom:.5rem}.dash-criterion-bar{height:6px;background:#eee;border-radius:3px;overflow:hidden;margin-bottom:.2rem}.dash-criterion-fill{height:100%;background:#f39c12;border-radius:3px;transition:width .3s ease}.dash-criterion-fill.dash-criterion-met{background:#2ecc71}.dash-criterion-label{font-size:.75rem;color:#888}.cm-container{max-width:720px;margin:0 auto;padding:2rem 1.5rem;height:100vh;display:flex;flex-direction:column;overflow:hidden}.cm-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.cm-back-btn{display:flex;align-items:center;gap:.25rem;background:none;border:none;font:inherit;font-size:.85rem;color:#666;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:color .15s,background .15s}.cm-back-btn:hover{color:#333;background:#f0f0f0}.cm-title{font-size:1.6rem;font-weight:700;color:#222;margin:0}.cm-tabs{display:flex;gap:0;border-bottom:2px solid #e0e0e0;margin-bottom:1.5rem}.cm-tab{padding:.6rem 1.2rem;border:none;background:none;font-family:inherit;font-size:.9rem;font-weight:500;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.cm-tab:hover{color:#555}.cm-tab-active{color:#3498db;border-bottom-color:#3498db;font-weight:600}.cm-content{min-height:0;flex:1;overflow-y:auto}.cm-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:#aaa}.cm-placeholder-icon{font-size:2rem;margin-bottom:.5rem}.cm-placeholder-text{font-size:.95rem;font-style:italic}.cmg-container{display:flex;flex-direction:column;gap:1rem}.cmg-coverage{padding:.75rem 1rem;border-radius:8px;font-size:.85rem}.cmg-coverage-none{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.cmg-coverage-low{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.cmg-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:#aaa;text-align:center;gap:.5rem}.cmg-empty-icon{font-size:2.5rem;color:#ccc}.cmg-empty-text{font-size:1.1rem;font-weight:600;color:#999}.cmg-empty-hint{font-size:.85rem;color:#aaa;max-width:320px;line-height:1.5}.cmg-list{display:flex;flex-direction:column;gap:.5rem}.cmg-item{border:1px solid #e0e0e0;border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s}.cmg-item:hover{border-color:silver}.cmg-item-expanded{border-color:#3498db;box-shadow:0 2px 8px #3498db1a}.cmg-item-drop-target{border-color:#3498db;border-style:dashed;background:#eef6fd}.cmg-item-row{display:flex;align-items:center;gap:.5rem;padding:.7rem .75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.cmg-drag-handle{display:flex;align-items:center;justify-content:center;width:20px;flex-shrink:0;cursor:grab;color:#bbb}.cmg-drag-handle:active{cursor:grabbing}.cmg-drag-lines:before{content:"≡";font-size:1.3rem;line-height:1}.cmg-item-info{flex:1;min-width:0;display:flex;align-items:baseline;gap:.5rem}.cmg-item-title{font-size:.9rem;font-weight:600;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmg-item-count{font-size:.75rem;color:#888;white-space:nowrap}.cmg-star{background:none;border:none;font-size:1.2rem;color:#ccc;cursor:pointer;padding:.2rem .4rem;line-height:1;transition:color .15s;font-family:inherit}.cmg-star:hover,.cmg-star-active{color:#f39c12}.cmg-star-lg{font-size:.85rem;padding:.35rem .7rem;border:1px solid #e0e0e0;border-radius:6px}.cmg-star-lg:hover{border-color:#f39c12}.cmg-delete{background:none;border:none;font-size:.9rem;color:#ccc;cursor:pointer;padding:.2rem .4rem;line-height:1;transition:color .15s;font-family:inherit}.cmg-delete:hover{color:#e74c3c}.cmg-delete-lg{background:none;border:1px solid #fecaca;border-radius:6px;color:#b91c1c;cursor:pointer;padding:.35rem .7rem;font-size:.8rem;font-family:inherit;transition:background .15s}.cmg-delete-lg:hover{background:#fef2f2}.cmg-detail{padding:0 .75rem .75rem;display:flex;flex-direction:column;gap:1rem;border-top:1px solid #f0f0f0}.cmg-texts{padding-top:.75rem}.cmg-texts-header{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#888;margin-bottom:.5rem}.cmg-texts-list{margin:0;padding-left:1.5rem;list-style:decimal}.cmg-text-item{font-size:.85rem;color:#444;line-height:1.6;padding:.15rem 0}.cmg-meta-form{display:flex;flex-direction:column;gap:.5rem}.cmg-meta-field{display:flex;flex-direction:column;gap:.2rem}.cmg-meta-label{font-size:.75rem;font-weight:500;color:#666}.cmg-meta-input{padding:.4rem .5rem;border:1px solid #ddd;border-radius:6px;font-size:.85rem;font-family:inherit;outline:none;color:#333}.cmg-meta-input:focus{border-color:#3498db}.cmg-meta-actions{display:flex;gap:.5rem;align-items:center;padding-top:.25rem;flex-wrap:wrap}.ci-container{display:flex;flex-direction:column;gap:1.25rem}.ci-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:2.5rem 1.5rem;border:2px dashed #ccc;border-radius:12px;background:#fafafa;transition:border-color .2s,background .2s;cursor:default}.ci-dropzone-active{border-color:#3498db;background:#eef6fd}.ci-dropzone-error{border-color:#e74c3c}.ci-dropzone-icon{font-size:2rem;color:#bbb;font-weight:300}.ci-dropzone-text{font-size:.9rem;color:#777}.ci-dropzone-or{font-size:.75rem;color:#aaa;text-transform:uppercase;letter-spacing:1px}.ci-error{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.85rem;white-space:pre-wrap}.ci-success{padding:.75rem 1rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#166534;font-size:.85rem}.ci-paste-section{display:flex;flex-direction:column;gap:.5rem}.ci-paste-label{font-size:.85rem;font-weight:500;color:#555}.ci-paste-area{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-family:Menlo,Consolas,monospace;font-size:.8rem;resize:vertical;outline:none;background:#fff;color:#333;box-sizing:border-box}.ci-paste-area:focus{border-color:#3498db}.ci-profile-section{padding-top:.75rem;border-top:1px solid #eee;display:flex;flex-direction:column;gap:.5rem}.ci-profile-label{font-size:.85rem;font-weight:500;color:#555}.ci-btn{padding:.5rem 1rem;border-radius:6px;font-family:inherit;font-size:.85rem;font-weight:500;cursor:pointer;border:none;transition:background .15s,color .15s}.ci-btn-primary{background:#3498db;color:#fff}.ci-btn-primary:hover:not(:disabled){background:#2980b9}.ci-btn-primary:disabled{opacity:.6;cursor:not-allowed}.ci-btn-secondary{background:#e5e7eb;color:#374151}.ci-btn-secondary:hover{background:#d1d5db}.ci-btn-outline{background:none;border:1px solid #ccc;color:#555}.ci-btn-outline:hover{border-color:#3498db;color:#3498db}.ci-review{display:flex;flex-direction:column;gap:1rem}.ci-review-header{display:flex;align-items:baseline;gap:.75rem}.ci-review-title{font-size:1.1rem;font-weight:600;color:#333;margin:0}.ci-review-summary{font-size:.85rem;color:#888}.ci-chunks{display:flex;flex-direction:column;gap:.75rem}.ci-chunk-card{border:1px solid #e0e0e0;border-radius:10px;padding:1rem;background:#fff;display:flex;flex-direction:column;gap:.6rem}.ci-chunk-header{display:flex;justify-content:space-between;align-items:center}.ci-chunk-num{font-size:.8rem;font-weight:600;color:#555}.ci-chunk-texts{font-size:.75rem;color:#888}.ci-field{display:flex;flex-direction:column;gap:.2rem}.ci-field-inline{flex-direction:row;align-items:center;gap:.5rem}.ci-field-label{font-size:.75rem;font-weight:500;color:#666}.ci-field-input{padding:.4rem .5rem;border:1px solid #ddd;border-radius:6px;font-size:.85rem;font-family:inherit;outline:none;color:#333}.ci-field-input:focus{border-color:#3498db}.ci-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.5rem}.cgen-container{display:flex;flex-direction:column;gap:1.25rem}.cgen-instructions{font-size:.9rem;color:#555;line-height:1.6}.cgen-instructions p{margin:0}.cgen-prompt-wrapper{border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;background:#fff}.cgen-prompt-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:#f7f7f7;border-bottom:1px solid #e0e0e0}.cgen-prompt-label{font-size:.8rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px}.cgen-prompt-block{margin:0;padding:1rem;font-family:Menlo,Consolas,monospace;font-size:.78rem;line-height:1.6;color:#333;background:#fafafa;white-space:pre-wrap;word-wrap:break-word;max-height:400px;overflow-y:auto}.cgen-tip{font-size:.85rem;color:#888;line-height:1.5;padding:.75rem 1rem;background:#f5f9fd;border:1px solid #dde8f0;border-radius:8px}.cval-container{display:flex;flex-direction:column;gap:1rem}.cval-instructions{font-size:.9rem;color:#555;line-height:1.5}.cval-panels{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media(max-width:600px){.cval-panels{grid-template-columns:1fr}}.cval-panel{display:flex;flex-direction:column;gap:.3rem}.cval-panel-label{font-size:.8rem;font-weight:600;color:#555}.cval-textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:.85rem;font-family:inherit;resize:vertical;outline:none;background:#fff;color:#333;box-sizing:border-box;line-height:1.5}.cval-textarea:focus{border-color:#3498db}.cval-textarea-mono{font-family:Menlo,Consolas,monospace;font-size:.8rem}.cval-result{padding:.75rem 1rem;border-radius:8px;font-size:.85rem}.cval-result-pass{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.cval-result-fail{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.cval-result-header{font-weight:600;margin-bottom:.3rem}.cval-result-header-pass{color:#166534}.cval-result-header-fail{color:#b91c1c}.cval-issues{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.cval-issue{display:flex;gap:.5rem;align-items:baseline;font-size:.82rem;line-height:1.4;padding:.3rem 0;border-bottom:1px solid #fecaca}.cval-issue:last-child{border-bottom:none}.cval-issue-chunk{font-weight:600;white-space:nowrap;flex-shrink:0}.cval-issue-index{color:#991b1b;white-space:nowrap;flex-shrink:0}.cval-issue-text{color:#7f1d1d}.cval-actions{display:flex;gap:.75rem;justify-content:flex-end}.session-flow{position:relative;width:100vw;height:100vh;overflow:hidden;background:var(--app-bg, #f8f9fa);display:flex;flex-direction:column}.session-exit-btn{position:absolute;top:12px;right:16px;z-index:100;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:6px;color:#888;font-size:.8rem;font-family:inherit;padding:4px 12px;cursor:pointer;transition:background .15s,color .15s}.session-exit-btn:hover{background:#0000001a;color:#555}.session-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem;background:#1a1d23;color:#e8e8e8}.session-preview-count{font-size:2rem;font-weight:700;color:#fff;letter-spacing:.02em}.session-preview-duration{font-size:1.1rem;color:#a0a4ab;font-weight:500}.session-preview-structure{font-size:.9rem;color:#6b7280;margin-top:.25rem}.session-preview-bar{width:200px;height:4px;background:#ffffff1a;border-radius:2px;margin-top:1.5rem;overflow:hidden}.session-preview-bar-fill{height:100%;background:#3498db;border-radius:2px;transition:width .05s linear}.session-exercise-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.session-exercise-content{flex:1;min-height:0;overflow:auto}.stage-promotion{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.5rem;padding:2rem;text-align:center;background:linear-gradient(135deg,#f0fdf4,#fefce8)}.stage-promotion-header{font-size:2rem;font-weight:800;color:#166534;letter-spacing:-.02em}.stage-promotion-stages{display:flex;align-items:center;gap:1.5rem;margin:.5rem 0}.stage-promotion-stage{display:flex;flex-direction:column;align-items:center;gap:.3rem}.stage-promotion-stage-num{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:800;color:#fff;transition:transform .5s ease}.stage-promotion-stage-from .stage-promotion-stage-num{background:#95a5a6}.stage-promotion-stage-to .stage-promotion-stage-num{background:#2ecc71;animation:promotion-pop .6s ease-out .3s both}@keyframes promotion-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.stage-promotion-stage-label{font-size:.75rem;color:#888;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.stage-promotion-arrow{font-size:1.8rem;color:#2ecc71;font-weight:700}.stage-promotion-narrative{max-width:480px;font-size:1.05rem;color:#374151;line-height:1.65}.stage-promotion-continue{margin-top:1rem;padding:.7rem 2.5rem;background:#2ecc71;color:#fff;border:none;border-radius:10px;font-size:1.05rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s}.stage-promotion-continue:hover{background:#27ae60;transform:translateY(-1px)}.stage-promotion-continue:active{transform:translateY(0)}.stage-promotion-reflection{margin-top:1.5rem;text-align:left;max-width:480px;width:100%}.stage-promotion-reflection-question{font-size:.95rem;color:#555;font-style:italic;margin:0 0 .5rem}.stage-promotion-reflection-input{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:6px;font-family:inherit;font-size:.9rem;resize:vertical;min-height:60px;box-sizing:border-box}.stage-promotion-reflection-input:focus{outline:none;border-color:#3498db}.session-recap{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100%;padding:3rem 2rem 2rem;gap:1.25rem;max-width:520px;margin:0 auto;box-sizing:border-box}.session-recap-header{font-size:1.8rem;font-weight:800;color:#333;letter-spacing:-.02em}.session-recap-exercises{width:100%;display:flex;flex-direction:column;gap:.5rem}.session-recap-exercise-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.session-recap-exercise-name{font-size:.9rem;font-weight:600;color:#333}.session-recap-exercise-stats{font-size:.8rem;color:#6b7280;font-weight:500}.session-recap-exercise-check{font-size:.8rem;color:#2ecc71;font-weight:600}.session-recap-aggregate{display:flex;gap:1.5rem;padding:.75rem 0}.session-recap-aggregate-item{font-size:.85rem;color:#555;font-weight:500}.session-recap-narrative{width:100%;text-align:center}.session-recap-narrative-line{font-size:.95rem;color:#444;line-height:1.5;margin:.3rem 0}.session-recap-encouragement{font-size:1rem;color:#2ecc71;font-weight:600;text-align:center;padding:.5rem 1rem;background:#f0fdf4;border-radius:10px;border:1px solid #bbf7d0;line-height:1.5}.session-recap-done{margin-top:.5rem;padding:.7rem 2.5rem;background:#3498db;color:#fff;border:none;border-radius:10px;font-size:1.05rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s}.session-recap-done:hover{background:#2980b9;transform:translateY(-1px)}.session-recap-done:active{transform:translateY(0)}.completion-flash{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#00000080;animation:flash-fade-in .25s ease-out}@keyframes flash-fade-in{0%{opacity:0}to{opacity:1}}.completion-flash-inner{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 3rem;border-radius:16px;background:#fffffff2;box-shadow:0 8px 32px #00000026;animation:flash-scale-in .3s ease-out}@keyframes flash-scale-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.completion-flash-check{font-size:3rem;color:#2ecc71;line-height:1}.completion-flash-encourage{font-size:1.4rem;font-weight:700;color:#333}.completion-flash-stats{display:flex;gap:2rem}.completion-flash-stat{display:flex;flex-direction:column;align-items:center;gap:.2rem}.completion-flash-value{font-size:1.6rem;font-weight:700;color:#333}.completion-flash-label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.session-phase-indicator{display:flex;align-items:center;justify-content:center;gap:1.5rem;height:32px;padding:0 1rem;flex-shrink:0}.spi-segment{display:flex;align-items:center;gap:.4rem;opacity:.5;transition:opacity .2s}.spi-segment-active{opacity:1}.spi-segment-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#999}.spi-dots{display:flex;gap:4px;align-items:center}.spi-dot{width:8px;height:8px;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center;overflow:hidden}.spi-dot-done{background:#2ecc71}.spi-dot-current{background:#3498db;animation:spi-pulse 1.5s ease-in-out infinite}@keyframes spi-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.spi-dot-upcoming{background:transparent;border:1.5px solid #ccc}.spi-dot-review{font-size:6px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:.5;color:inherit;pointer-events:none}.soft-deadline-cue{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:150;padding:.6rem 1.5rem;background:#f39c121f;border:1px solid rgba(243,156,18,.25);border-radius:20px;color:#b8860b;font-size:.9rem;font-weight:600;animation:cue-fade-in 1s ease-out}@keyframes cue-fade-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.exercise-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:2rem}.exercise-choice-title{font-size:1.3rem;font-weight:600;color:#444}.exercise-choice-cards{display:flex;gap:1.5rem}.exercise-choice-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 2.5rem;border:2px solid #e0e0e0;border-radius:16px;background:#fff;cursor:pointer;font-family:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;min-width:160px}.exercise-choice-card:hover{border-color:#3498db;box-shadow:0 4px 16px #3498db26;transform:translateY(-2px)}.exercise-choice-card-name{font-size:1.1rem;font-weight:600;color:#333}.exercise-choice-card-phase{font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:.5px}.exercise-path-builder{--pb-sky-top: #0f0c29;--pb-sky-mid: #1a1a3e;--pb-sky-bottom: #24243e;--pb-grass-top: #2d5a1e;--pb-grass-bottom: #1e3f14;--pb-stone-bg: #c9b896;--pb-stone-border: #a89670;--pb-stone-text: #4a3f2e;--pb-stone-passed: #8a7d65;--pb-gap-border: #7a9bb5;--pb-gap-text: #5a7d94;--pb-rubble-bg: #8b6b4a;--pb-rubble-border: #6a4f35;--pb-rubble-text: #f0e0c8;--pb-highlight: #f0c040;--pb-highlight-glow: #f0c04060;--pb-success: #6fcf7c;--pb-font: "Fredoka", system-ui, sans-serif;--pb-walk-speed: .35s}.exercise-path-builder{display:flex;flex-direction:column;height:100%;overflow:hidden;font-family:var(--pb-font);background:var(--pb-sky-bottom)}.pb-top-bar{display:flex;align-items:center;gap:1rem;padding:.5rem 1.25rem;background:#12102a;border-bottom:1px solid #ffffff10;flex-shrink:0;z-index:5}.pb-progress-text{font-size:.8rem;font-weight:500;color:#9990b8;letter-spacing:.02em}.pb-target-keys{display:flex;gap:4px;align-items:center}.pb-target-key{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:5px;font-size:.7rem;font-weight:700;text-transform:uppercase;background:#ffffff10;color:var(--pb-highlight);border:1px solid #ffffff15}.pb-stats{display:flex;gap:.75rem;font-size:.75rem;font-weight:500;color:#7a7498;margin-left:auto}.pb-scene{flex:2;position:relative;overflow:hidden;min-height:180px;background:linear-gradient(180deg,var(--pb-sky-top) 0%,var(--pb-sky-mid) 35%,var(--pb-sky-bottom) 58%,var(--pb-grass-top) 58%,var(--pb-grass-bottom) 100%)}.pb-scene:before{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 10% 12%,#ffffff90,transparent),radial-gradient(1.5px 1.5px at 25% 8%,#ffffffb0,transparent),radial-gradient(1px 1px at 40% 18%,#ffffff70,transparent),radial-gradient(1px 1px at 55% 6%,#ffffff80,transparent),radial-gradient(1.5px 1.5px at 70% 14%,#ffffffa0,transparent),radial-gradient(1px 1px at 85% 10%,#ffffff60,transparent),radial-gradient(1px 1px at 15% 25%,#ffffff50,transparent),radial-gradient(1px 1px at 60% 22%,#ffffff40,transparent),radial-gradient(1.5px 1.5px at 92% 5%,#ffffff90,transparent),radial-gradient(1px 1px at 48% 28%,#ffffff60,transparent);pointer-events:none;animation:pb-twinkle 4s ease-in-out infinite alternate}@keyframes pb-twinkle{0%{opacity:.6}to{opacity:1}}.pb-dirt-path{position:absolute;bottom:38%;left:0;right:0;height:52px;background:linear-gradient(180deg,#5a4a35,#4a3c2a,#3d3222);border-top:2px solid #6b5a42;border-bottom:2px solid #33291d}.pb-path-scroll{position:absolute;bottom:calc(38% - 2px);left:0;right:0;height:110px;overflow-x:auto;overflow-y:visible;scrollbar-width:none;z-index:2}.pb-path-scroll::-webkit-scrollbar{display:none}.pb-path-row{display:flex;align-items:flex-end;padding:0 50%;min-width:max-content;height:100%;position:relative}.pb-donkey-slot{position:relative;display:flex;align-items:flex-end;flex-shrink:0;width:0;overflow:visible;z-index:10}.pb-donkey{position:absolute;bottom:50px;left:-28px;width:56px;height:56px;transition:transform .3s ease,opacity .2s;will-change:transform;filter:drop-shadow(0 3px 6px #00000040)}.pb-donkey-walking{animation:pb-donkey-hop var(--pb-walk-speed) ease-in-out}.pb-donkey-waiting{animation:pb-donkey-breathe 2s ease-in-out infinite}.pb-donkey-placing{animation:pb-donkey-stomp .35s ease-out}.pb-donkey-clearing{animation:pb-donkey-kick .4s ease-out}.pb-donkey-celebrating{animation:donkey-celebrate .6s ease-in-out}.pb-stone{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;width:42px;height:40px;margin:0 1px;border-radius:8px 8px 4px 4px;font-family:var(--pb-font);font-size:1.05rem;font-weight:700;-webkit-user-select:none;user-select:none;transition:opacity .3s}.pb-stone-set{background:linear-gradient(180deg,var(--pb-stone-bg) 0%,#b8a580 100%);color:var(--pb-stone-text);border:2px solid var(--pb-stone-border);box-shadow:0 3px #8a7a5e,0 4px 8px #00000030;text-shadow:0 1px 0 #ffffff40}.pb-stone-set.pb-stone-passed{background:linear-gradient(180deg,#9a8d72,#887a62);border-color:#7a6e55;box-shadow:0 2px #6a5e48;color:#6a5f48;opacity:.55}.pb-stone-gap{background:transparent;color:var(--pb-gap-text);border:2.5px dashed var(--pb-gap-border);box-shadow:none;font-size:1.2rem}.pb-stone-gap.pb-stone-placed{background:linear-gradient(180deg,var(--pb-stone-bg) 0%,#b8a580 100%);color:var(--pb-stone-text);border:2px solid var(--pb-stone-border);box-shadow:0 3px #8a7a5e,0 4px 8px #00000030;text-shadow:0 1px 0 #ffffff40;animation:stone-place .3s cubic-bezier(.34,1.56,.64,1)}.pb-stone-rubble{width:46px;height:64px;background:linear-gradient(180deg,#9a7a58 0%,var(--pb-rubble-bg) 40%,#6a4f35 100%);color:var(--pb-rubble-text);border:2px solid var(--pb-rubble-border);border-radius:6px 6px 4px 4px;box-shadow:0 4px #4a3525,0 6px 12px #00000050,inset 0 -8px 12px #00000020;font-size:1.15rem;text-shadow:0 1px 2px #00000060;overflow:hidden}.pb-stone-rubble:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 30%,#ffffff08 32%,transparent 34%),linear-gradient(225deg,transparent 50%,#00000015 52%,transparent 54%);pointer-events:none}.pb-stone-rubble.pb-stone-cleared{animation:rubble-clear .4s ease-out forwards;pointer-events:none}.pb-stone-current{box-shadow:0 0 0 3px var(--pb-highlight-glow),0 0 16px var(--pb-highlight-glow),0 3px #8a7a5e;z-index:3}.pb-stone-current.pb-stone-gap{border-color:var(--pb-highlight);box-shadow:0 0 0 3px var(--pb-highlight-glow),0 0 20px var(--pb-highlight-glow);animation:pb-gap-pulse 1.5s ease-in-out infinite}.pb-stone-current.pb-stone-rubble{box-shadow:0 0 0 3px #e8443060,0 0 16px #e8443040,0 4px #4a3525}.pb-stone-space{width:16px;min-width:16px;height:8px;background:#5a4a3560;border:none;border-radius:2px;box-shadow:none;margin:0 0 16px;align-self:flex-end}.pb-quarry{position:absolute;right:.75rem;bottom:8%;opacity:.65;filter:drop-shadow(0 2px 4px #00000040)}.pb-content-text{padding:.65rem 1.5rem;text-align:center;font-family:Georgia,serif;font-size:.95rem;line-height:1.7;color:#9990b8;background:#12102a;border-top:1px solid #ffffff08;border-bottom:1px solid #ffffff08;flex-shrink:0;letter-spacing:.01em}.pb-content-char{color:#504a68;transition:color .2s}.pb-content-char-active{color:var(--pb-highlight);font-weight:700}.pb-content-char-done{color:var(--pb-success)}.pb-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.4rem 1rem .75rem;background:#0e0c24;border-top:1px solid #ffffff08;flex:1;min-height:0;justify-content:center}.pb-complete-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:20;background:radial-gradient(ellipse at center,#0f0c2980,#0f0c29d0);animation:fade-in .4s ease-out}.pb-complete-card{text-align:center;padding:1.5rem 3rem;background:linear-gradient(135deg,#1a1a3e,#24243e);border:1px solid #ffffff15;border-radius:16px;box-shadow:0 8px 32px #00000060,0 0 60px var(--pb-highlight-glow);animation:fade-in .4s ease-out,pb-card-entrance .5s cubic-bezier(.34,1.56,.64,1)}.pb-complete-text{font-family:var(--pb-font);font-size:1.4rem;font-weight:700;color:var(--pb-highlight);margin-bottom:.4rem;text-shadow:0 0 20px var(--pb-highlight-glow)}.pb-complete-stats{font-size:.85rem;font-weight:500;color:#9990b8}@keyframes pb-donkey-hop{0%{transform:translateY(0)}35%{transform:translateY(-14px)}70%{transform:translateY(-2px)}to{transform:translateY(0)}}@keyframes pb-donkey-breathe{0%{transform:translateY(0)}50%{transform:translateY(-2px)}to{transform:translateY(0)}}@keyframes pb-donkey-stomp{0%{transform:translateY(0) scale(1)}20%{transform:translateY(-10px) scale(1.05)}50%{transform:translateY(2px) scale(.97)}70%{transform:translateY(-3px) scale(1.02)}to{transform:translateY(0) scale(1)}}@keyframes pb-donkey-kick{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-8px) rotate(5deg)}50%{transform:translateY(0) rotate(-3deg)}75%{transform:translateY(-4px) rotate(0)}to{transform:translateY(0) rotate(0)}}@keyframes donkey-celebrate{0%{transform:scale(1)}40%{transform:scale(1.15)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes stone-place{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes rubble-clear{0%{transform:rotate(0);opacity:1}20%{transform:rotate(4deg);opacity:.9}40%{transform:rotate(-3deg);opacity:.7}60%{transform:rotate(2deg);opacity:.4}80%{transform:rotate(-1deg);opacity:.15}to{transform:rotate(0);opacity:0}}@keyframes pb-gap-pulse{0%{box-shadow:0 0 0 3px var(--pb-highlight-glow),0 0 20px var(--pb-highlight-glow)}50%{box-shadow:0 0 0 5px var(--pb-highlight-glow),0 0 30px var(--pb-highlight-glow)}to{box-shadow:0 0 0 3px var(--pb-highlight-glow),0 0 20px var(--pb-highlight-glow)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pb-card-entrance{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.next-button{padding:.5rem 2rem;font-size:1rem;background:#3498db;color:#fff;border:none;border-radius:8px;cursor:pointer}.next-button:hover{background:#2980b9}.exercise-story-flow{display:flex;flex-direction:column;height:100%}.sf-top-bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.sf-progress-track{flex:1;height:20px;background:#f0f0f0;border-radius:10px;position:relative;overflow:hidden}.sf-progress-fill{height:100%;background:#2d8a4e;border-radius:10px;transition:width .3s ease}.sf-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#555;pointer-events:none}.sf-stats{display:flex;gap:1rem;font-size:.85rem;color:#666;flex-shrink:0}.sf-text-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1rem}.sf-milestone{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 1.5rem;background:#f0faf3;border-top:1px solid #c8e6c9;flex-shrink:0}.sf-milestone-text{font-size:1rem;font-weight:600;color:#2d8a4e}.sf-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.sf-keyboard-toggle{padding:.3rem 1rem;font-size:.8rem;background:none;border:1px solid #ddd;border-radius:4px;color:#888;cursor:pointer;margin-bottom:.5rem}.sf-keyboard-toggle:hover{background:#f5f5f5;color:#555}.exercise-word-builder{display:flex;flex-direction:column;height:100%}.wb-top-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.wb-progress{display:flex;gap:1.5rem;font-size:.85rem;color:#666}.wb-progress-segment{font-weight:600}.wb-text-label{font-size:.8rem;color:#999}.wb-context{padding:1rem 2rem;text-align:center;flex-shrink:0}.wb-context-text{font-family:Georgia,serif;font-size:1.1rem;line-height:1.8;color:#666;margin:0}.wb-context-word{color:#999}.wb-active-word{color:#333;font-weight:700;border-bottom:2px solid #3498db;padding-bottom:1px}.wb-phase-label{padding:.75rem 2rem 0;text-align:center;font-size:.9rem;color:#888;font-style:italic;flex-shrink:0}.wb-typing-area{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem}.wb-typing-area .content-text-display{font-size:2.2rem}.wb-pile-area{display:flex;align-items:flex-end;justify-content:center;padding:0 2rem;flex-shrink:0}.wb-complete{text-align:center;padding:.5rem;font-size:.9rem;color:#2d8a4e;font-weight:600;flex-shrink:0}.wb-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-key-explorer{display:flex;flex-direction:column;height:100%}.ke-top-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.ke-progress{font-size:.85rem;font-weight:600;color:#666}.ke-phase-label{font-size:.8rem;color:#999;font-style:italic}.ke-intro-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;gap:1rem}.ke-target-key{font-size:4rem;font-weight:700;color:#2c3e50;background:#f0f0f0;width:80px;height:80px;display:flex;align-items:center;justify-content:center;border-radius:12px;border:2px solid #ddd}.ke-target-key--practice{background:#e8f4fd;border-color:#3498db;color:#2980b9;animation:ke-key-pulse 1.5s ease-in-out infinite}@keyframes ke-key-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.ke-finger-hint{display:flex;align-items:center;gap:.75rem}.ke-hand-svg{flex-shrink:0}.ke-finger-active{animation:finger-press 1.2s ease-in-out infinite}@keyframes finger-press{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.ke-finger-label{font-size:.9rem;color:#666;font-style:italic}.ke-content-words{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.ke-content-word{font-family:Georgia,serif;font-size:1.2rem;color:#555;padding:.3rem .6rem;background:#f9f9f9;border-radius:4px}.ke-letter-highlight{color:#3498db;font-weight:700}.ke-framing-sentence{font-family:Georgia,serif;font-size:.95rem;color:#888;text-align:center;max-width:36rem;line-height:1.6;font-style:italic}.ke-start-hint{font-size:1rem;color:#888;margin-top:.75rem;animation:ke-hint-pulse 2s ease-in-out infinite}.ke-start-hint strong{color:#3498db;font-size:1.1em}@keyframes ke-hint-pulse{0%,to{opacity:.7}50%{opacity:1}}.ke-practice-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;gap:1.5rem}.ke-practice-counter{display:flex;align-items:center;gap:.75rem;width:200px}.ke-practice-bar{flex:1;height:12px;background:#f0f0f0;border-radius:6px;overflow:hidden}.ke-practice-fill{height:100%;background:#2d8a4e;border-radius:6px;transition:width .2s ease}.ke-practice-label{font-size:.85rem;color:#666;font-weight:600;white-space:nowrap}.ke-complete{flex:1;display:flex;align-items:center;justify-content:center}.ke-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.ke-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-letter-echo{display:flex;flex-direction:column;height:100%}.le-top-bar{display:flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.le-progress{font-size:.85rem;font-weight:600;color:#666}.le-main-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;gap:1rem}.le-target-letter{font-size:5rem;font-weight:700;color:#2c3e50;transition:color .3s,transform .3s}.le-target-confirmed{color:#2d8a4e;animation:echo-confirm .5s ease-out}@keyframes echo-confirm{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.le-confirm{font-size:2rem;color:#2d8a4e;animation:echo-confirm .5s ease-out}.le-word-display{font-family:Georgia,serif;font-size:1.4rem;color:#555}.le-letter-bold{color:#3498db;font-weight:700}.le-sentence-display{font-family:Georgia,serif;font-size:.95rem;color:#999;text-align:center;max-width:36rem;line-height:1.6;font-style:italic}.le-complete{flex:1;display:flex;align-items:center;justify-content:center}.le-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.le-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-finger-painting{display:flex;flex-direction:column;height:100%}.fp-top-bar{display:flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.fp-progress{font-size:.85rem;font-weight:600;color:#666}.fp-garden{display:grid;gap:8px;padding:1.5rem 2rem;justify-content:center;flex:1;align-content:center}.fp-garden-cell{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#f5f9f0;border-radius:8px;border:1px dashed #d4e4c8;font-size:2rem}.fp-flower{display:inline-block;animation:flower-grow .5s cubic-bezier(.34,1.56,.64,1)}@keyframes flower-grow{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}.fp-target-display{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;flex-shrink:0}.fp-target-label{font-size:1.1rem;color:#888}.fp-target-key{font-size:2rem;font-weight:700;color:#2c3e50;background:#f0f0f0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:2px solid #ddd}.fp-complete{display:flex;align-items:center;justify-content:center;padding:1rem;flex-shrink:0}.fp-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.fp-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-word-match{display:flex;flex-direction:column;height:100%}.wm-top-bar{display:flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.wm-progress{font-size:.85rem;font-weight:600;color:#666}.wm-sentence-display{padding:1.5rem 2rem;text-align:center;flex-shrink:0}.wm-sentence-text{font-family:Georgia,serif;font-size:1.3rem;line-height:1.8;color:#555;margin:0}.wm-blank{display:inline;color:#3498db;font-weight:700;border-bottom:2px dashed #3498db;padding-bottom:1px;letter-spacing:.1em}.wm-reveal{animation:wm-reveal-flash .5s ease-out}@keyframes wm-reveal-flash{0%{background-color:#3498db26}to{background-color:transparent}}.wm-typing-area{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem}.wm-typing-area .content-text-display{font-size:2.5rem}.wm-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-phrase-staircase{display:flex;flex-direction:column;height:100%}.ps-top-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.ps-progress{font-size:.85rem;font-weight:600;color:#666}.ps-step-indicator{font-size:.85rem;font-weight:600;color:#999}.ps-target-phrase{padding:1rem 2rem;text-align:center;font-family:Georgia,serif;font-size:1rem;line-height:1.6;color:#bbb;flex-shrink:0}.ps-staircase{display:flex;flex-direction:column;gap:4px;padding:.5rem 2rem;flex-shrink:0;max-height:120px;overflow-y:auto}.ps-step{font-family:Georgia,serif;font-size:.9rem;line-height:1.5;padding:.25rem .5rem;border-radius:4px}.ps-step-done{color:#999;background:#f9f9f9}.ps-typing-area{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem}.ps-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-vocabulary-flash{display:flex;flex-direction:column;height:100%}.vf-top-bar{display:flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.vf-progress{font-size:.85rem;font-weight:600;color:#666}.vf-display-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;gap:1rem}.vf-candle{font-size:3rem;line-height:1}.vf-word-display{font-size:3rem;font-weight:700;color:#2c3e50;text-align:center;transition:opacity .3s ease}.vf-word-hidden{opacity:0;pointer-events:none;position:absolute}.vf-countdown-bar{width:200px;height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden}.vf-countdown-fill{height:100%;background:#e67e22;border-radius:3px;transition:width .05s linear}.vf-sentence-context{font-family:Georgia,serif;font-size:.9rem;color:#999;text-align:center;max-width:32rem;line-height:1.6;font-style:italic}.vf-typing-area{display:flex;align-items:center;justify-content:center}.vf-typing-area .content-text-display{font-size:2.5rem}.vf-feedback{font-size:1.5rem;font-weight:600;color:#2d8a4e;animation:vf-feedback-pop .4s ease-out}@keyframes vf-feedback-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.vf-complete{flex:1;display:flex;align-items:center;justify-content:center}.vf-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.vf-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-digram-builder{display:flex;flex-direction:column;height:100%}.db-top-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.db-progress-info{font-size:.85rem;font-weight:600;color:#666}.db-progress-pct{color:#555}.db-digram-badges{display:flex;gap:.5rem;flex-wrap:wrap}.db-digram-badge{font-size:.85rem;font-weight:700;font-family:monospace;color:#8b6914;background:#daa52026;padding:.2rem .6rem;border-radius:4px;border:1px solid rgba(218,165,32,.3)}.db-text-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1.5rem 2rem}.db-text-display{font-family:Georgia,serif;font-size:1.25rem;line-height:2;max-width:40rem;word-wrap:break-word}.db-char{display:inline;transition:background-color .15s,color .15s}.db-char-correct{color:#2c3e50}.db-char-corrected{color:#e67e22}.db-char-error{color:#e74c3c;background:#e74c3c1a}.db-char-cursor{color:#2c3e50;border-bottom:2px solid #3498db}.db-char-pending{color:#bbb}.db-digram-highlight{background-color:#daa52026;border-radius:2px}.db-complete{flex:1;display:flex;align-items:center;justify-content:center}.db-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.db-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-quote-cascade{display:flex;flex-direction:column;height:100%}.qc-top-bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.qc-progress-track{flex:1;height:20px;background:#f0f0f0;border-radius:10px;position:relative;overflow:hidden}.qc-progress-fill{height:100%;background:#2d8a4e;border-radius:10px;transition:width .3s ease}.qc-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#555;pointer-events:none}.qc-stats{display:flex;gap:1rem;font-size:.85rem;color:#666;flex-shrink:0}.qc-completed-quotes{padding:.5rem 1.5rem;display:flex;flex-direction:column;gap:4px;flex-shrink:0;max-height:120px;overflow-y:auto}.qc-completed-quote{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.qc-completed-check{color:#2d8a4e;font-size:.9rem;flex-shrink:0}.qc-completed-text{overflow:hidden;text-overflow:ellipsis}.qc-active-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1rem}.qc-next-preview{padding:.75rem 1.5rem;border-top:1px solid #f0f0f0;flex-shrink:0}.qc-next-label{font-size:.75rem;color:#bbb;font-weight:600;text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:.25rem}.qc-next-preview .content-text-display{font-size:.9rem;color:#bbb}.qc-round-complete{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}.qc-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.qc-complete-stats{font-size:.95rem;color:#666}.qc-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-copy-cloze{display:flex;flex-direction:column;height:100%}.cc-top-bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.cc-phase-label{font-size:.9rem;font-weight:600;color:#3498db;flex-shrink:0}.cc-progress-track{flex:1;height:20px;background:#f0f0f0;border-radius:10px;position:relative;overflow:hidden}.cc-progress-fill{height:100%;background:#2d8a4e;border-radius:10px;transition:width .3s ease}.cc-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#555;pointer-events:none}.cc-stats{display:flex;gap:1rem;font-size:.85rem;color:#666;flex-shrink:0}.cc-text-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1rem}.cc-transition{flex:1;display:flex;align-items:center;justify-content:center}.cc-transition-message{font-size:1.3rem;font-weight:600;color:#3498db;animation:cc-fade-in .3s ease-out}@keyframes cc-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.cc-complete{flex:1;display:flex;align-items:center;justify-content:center}.cc-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.cc-keyboard-area{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem 1rem;border-top:1px solid #eee;flex-shrink:0}.exercise-progressive-reveal{display:flex;flex-direction:column;height:100%}.pr-top-bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.pr-ring-area{flex-shrink:0;display:flex;align-items:center}.pr-phase-label{font-size:.9rem;font-weight:600;color:#3498db;flex-shrink:0;white-space:nowrap}.pr-progress-track{flex:1;height:20px;background:#f0f0f0;border-radius:10px;position:relative;overflow:hidden}.pr-progress-fill{height:100%;background:#2d8a4e;border-radius:10px;transition:width .3s ease}.pr-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#555;pointer-events:none}.pr-stats{display:flex;gap:1rem;font-size:.85rem;color:#666;flex-shrink:0}.pr-text-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1rem;position:relative}.pr-hint-flash{position:absolute;inset:0;background:#2d8a4e0d;pointer-events:none;animation:pr-hint-pulse 1s ease-out forwards}@keyframes pr-hint-pulse{0%{opacity:1}to{opacity:0}}.pr-complete{flex:1;display:flex;align-items:center;justify-content:center}.pr-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.exercise-first-letter-prompts{display:flex;flex-direction:column;height:100%}.fl-top-bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.fl-label{font-size:.9rem;font-weight:600;color:#3498db;flex-shrink:0;white-space:nowrap}.fl-progress-track{flex:1;height:20px;background:#f0f0f0;border-radius:10px;position:relative;overflow:hidden}.fl-progress-fill{height:100%;background:#2d8a4e;border-radius:10px;transition:width .3s ease}.fl-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#555;pointer-events:none}.fl-stats{display:flex;gap:1rem;font-size:.85rem;color:#666;flex-shrink:0}.fl-text-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1rem}.fl-no-content{flex:1;display:flex;align-items:center;justify-content:center}.fl-no-content-message{font-size:1.1rem;color:#999;text-align:center;max-width:24rem;line-height:1.6}.fl-complete{flex:1;display:flex;align-items:center;justify-content:center}.fl-complete-message{font-size:1.3rem;font-weight:600;color:#2d8a4e}.exercise-speed-passages{display:flex;flex-direction:column;height:100%;position:relative}.sp-top-bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.sp-progress-track{flex:1;height:20px;background:#f0f0f0;border-radius:10px;position:relative;overflow:hidden}.sp-progress-fill{height:100%;background:#2d8a4e;border-radius:10px;transition:width .3s ease}.sp-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;color:#555;pointer-events:none}.sp-text-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1rem}.sp-timer{position:absolute;right:1rem;bottom:1rem;font-size:.8rem;color:#999;font-variant-numeric:tabular-nums;font-family:system-ui,sans-serif}.sp-results-area{flex:1;display:flex;align-items:center;justify-content:center}.exercise-weak-spot-drill{display:flex;flex-direction:column;height:100%}.wsd-top-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.wsd-practicing-label{font-size:.9rem;font-weight:600;color:#666;flex-shrink:0}.wsd-digram-badges{display:flex;gap:.5rem;flex-wrap:wrap}.wsd-digram-badge{font-size:.85rem;font-weight:700;font-family:monospace;color:#8b6914;background:#daa52026;padding:.2rem .6rem;border-radius:4px;border:1px solid rgba(218,165,32,.3)}.wsd-progress{margin-left:auto;font-size:.85rem;font-weight:600;color:#666}.wsd-text-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1.5rem 2rem}.wsd-text-display{font-family:Georgia,serif;font-size:1.4rem;line-height:2.2;max-width:40rem;word-wrap:break-word}.wsd-char{display:inline;transition:background-color .15s,color .15s}.wsd-char-correct{color:#2c3e50}.wsd-char-corrected{color:#e67e22}.wsd-char-error{color:#e74c3c;background:#e74c3c1a}.wsd-char-cursor{color:#2c3e50;border-bottom:2px solid #3498db}.wsd-char-pending{color:#bbb}.wsd-digram-highlight{background-color:#daa52026;border-radius:2px}.wsd-fallback{flex:1;display:flex;align-items:center;justify-content:center}.wsd-fallback-message{font-size:1.1rem;color:#999;text-align:center;max-width:24rem;line-height:1.6}.wsd-completion{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:2rem}.wsd-completion-title{font-size:1.3rem;font-weight:600;color:#2d8a4e}.wsd-comparison{display:flex;flex-direction:column;gap:.75rem;min-width:200px}.wsd-comparison-row{display:flex;align-items:center;gap:.75rem;font-size:1rem}.wsd-comparison-digram{font-family:monospace;font-weight:700;font-size:1.1rem;color:#8b6914;background:#daa52026;padding:.15rem .5rem;border-radius:4px;min-width:2.5rem;text-align:center}.wsd-comparison-before{color:#999;font-size:.95rem}.wsd-comparison-arrow{color:#bbb}.wsd-comparison-after{font-weight:600;color:#555;font-size:.95rem}.wsd-improved{color:#2d8a4e}.exercise-general-typing-test{display:flex;flex-direction:column;height:100%}.gt-top-bar{display:flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-bottom:1px solid #eee;flex-shrink:0}.gt-label{font-size:.95rem;font-weight:600;color:#2c3e50}.gt-text-area{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:1rem}.gt-results-area{flex:1;display:flex;align-items:center;justify-content:center}
