:root{color:#21342d;font-synthesis:none;text-rendering:optimizelegibility;background:#eef3ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f7faf8;background:#173b31;flex-direction:column;height:100vh;padding:24px;display:flex;position:sticky;top:0}.brand-mark{color:#173b31;background:#d8f06a;border-radius:12px;place-items:center;width:38px;height:38px;margin-bottom:24px;font:800 24px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:grid}.brand-mark.large{width:54px;height:54px;font-size:32px}.eyebrow{color:#7c9389;letter-spacing:.16em;margin-bottom:7px;font-size:11px;font-weight:700}.sidebar .eyebrow{color:#9eb8ae}.sidebar h1{max-width:190px;margin-bottom:10px;font-size:28px}.muted{color:#71847d}.sidebar .muted{color:#a8bdb5;line-height:1.55}.patient-nav{min-height:0;margin:0 -8px 20px;overflow-y:auto}.nav-heading{color:#a8bdb5;text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;padding:0 10px 10px;font-size:12px;font-weight:700;display:flex}.count{background:#2b5146;border-radius:99px;place-items:center;min-width:22px;height:22px;display:grid}.patient-nav button{width:100%;color:inherit;text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;padding:11px 10px;display:flex}.patient-nav button:hover,.patient-nav button.active{background:#244b40}.patient-nav button.active{box-shadow:inset 3px 0 #d8f06a}.patient-nav strong,.patient-nav small{display:block}.patient-nav small{color:#9eb8ae;text-overflow:ellipsis;white-space:nowrap;max-width:165px;margin-top:3px;overflow:hidden}.avatar{color:#56351f;background:#f1bd88;border-radius:11px;flex:0 0 36px;place-items:center;height:36px;font-weight:700;display:grid}.sidebar-actions{margin-top:auto}.text-button{color:#a8bdb5;background:0 0;border:0;width:100%;margin-top:10px}main{min-width:0;padding:0 42px 48px}.topbar{border-bottom:1px solid #d7e0da;justify-content:space-between;align-items:center;min-height:118px;display:flex}.topbar h2{margin:0;font-size:30px}.topbar-actions{align-items:center;gap:18px;display:flex}.status{color:#667a72;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.status span{background:#6cb48f;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #dcebe2}.status.loading span{background:#e4a75b}.workspace{grid-template-columns:1fr;align-items:start;gap:22px;max-width:1280px;margin:30px auto 0;display:grid}.card{background:#fbfcfb;border:1px solid #dbe3de;border-radius:22px;padding:28px;position:relative;overflow:hidden;box-shadow:0 16px 40px #2b42390f}.card-heading{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:25px;display:flex}.card-heading h3{margin-bottom:5px;font-size:22px}label{color:#52675e;gap:7px;font-size:12px;font-weight:700;display:grid}input,select,textarea{color:#20362e;background:#fff;border:1px solid #cfdad4;border-radius:11px;outline:none;width:100%}input,select{height:43px;padding:0 12px}textarea{resize:vertical;padding:12px}input:focus,select:focus,textarea:focus{border-color:#2d725d;box-shadow:0 0 0 3px #2d725d1a}input:disabled{opacity:.45}.field-grid{gap:16px;display:grid}.field-grid.three{grid-template-columns:repeat(3,1fr)}.field-grid.two{grid-template-columns:repeat(2,1fr)}.weight-panel{background:#f0f5f1;border-radius:15px;grid-template-columns:.8fr 2fr;align-items:end;gap:20px;margin:22px 0;padding:18px;display:grid}.primary,.secondary{border:0;border-radius:12px;min-height:44px;padding:0 18px;font-weight:700}.primary{color:#fff;background:#245f4e;box-shadow:0 6px 16px #245f4e2e}.primary:hover{background:#194c3e}.primary:disabled{cursor:wait;opacity:.55}.secondary{color:#edf5f1;background:0 0;border:1px solid #4c6e63}.secondary.light{color:#3f5b51;border-color:#c9d6cf}.secondary:disabled{cursor:wait;opacity:.55}.compact{min-height:38px;padding:0 15px;font-size:12px}.full{width:100%}.toggle-stack{flex-direction:column;justify-content:center;gap:12px;display:flex}.toggle{cursor:pointer;align-items:center;gap:9px;display:flex}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle-track{background:#c4d0ca;border-radius:99px;width:38px;height:22px;padding:3px;transition:all .16s}.toggle-track span{background:#fff;border-radius:50%;width:16px;height:16px;transition:all .16s;display:block}.toggle input:checked+.toggle-track{background:#2d725d}.toggle input:checked+.toggle-track span{transform:translate(16px)}.exercise-card{padding-top:94px}.exercise-section{border-top:1px solid #e2e8e4;padding:22px 0}.exercise-section h4{color:#365248;letter-spacing:.08em;text-transform:uppercase;margin:0 0 17px;font-size:13px}.exercise-section .toggle{align-self:center;min-height:43px}.exercise-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.exercise-card-heading{justify-content:flex-end}.exercise-collapse{color:#3f5b51;background:#fff;border:1px solid #c9d6cf;border-radius:11px;align-items:center;gap:9px;min-height:38px;padding:0 13px;font-size:12px;font-weight:700;display:flex}.exercise-collapse span{font-size:17px;line-height:1}.weight-panel.compact-panel{grid-template-columns:150px 1fr;align-items:center}.exercise-accent{color:#72421f;letter-spacing:.04em;background:#f3bd84;justify-content:flex-start;align-items:center;height:68px;padding:0 26px;font:800 19px/1 Inter,ui-sans-serif,system-ui,sans-serif;display:flex;position:absolute;inset:0 0 auto}.flux-accent{color:#234d66;background:#b8d9ed}.timer-row{background:#f5f1eb;border-radius:14px;grid-template-columns:1fr 120px;align-items:center;gap:16px;margin-top:20px;padding:16px;display:grid}.exercise-footer{color:#7c8d86;justify-content:flex-end;align-items:center;margin-top:24px;font-size:12px;display:flex}.results-card{grid-column:1}.results-card .card-heading{align-items:center}.results-actions{flex-wrap:wrap;gap:9px;display:flex}.result-tabs{background:#edf3ef;border-radius:14px;gap:8px;margin:-6px 0 24px;padding:5px;display:flex}.result-tabs button{color:#667a72;background:0 0;border:0;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:9px;min-height:44px;font-weight:700;display:flex}.result-tabs button.active{color:#245f4e;background:#fff;box-shadow:0 4px 14px #2b42391a}.result-tabs span{background:#dbe6e0;border-radius:99px;place-items:center;min-width:23px;height:23px;font-size:11px;display:grid}.result-tabs button.active span{background:#dceee4}.results-empty{color:#71847d;text-align:center;background:#f4f7f5;border:1px dashed #cbd8d1;border-radius:17px;place-items:center;gap:6px;min-height:170px;padding:30px;display:grid}.results-empty strong{color:#3c574d;font-size:17px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:24px;display:grid}.metric{background:#eff4f1;border-radius:16px;gap:5px;padding:18px;display:grid}.metric>span{color:#71847d;letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:700}.metric strong{color:#24483c;font:800 27px/1.2 Inter,ui-sans-serif,system-ui,sans-serif}.metric small{color:#819189}.results-body{grid-template-columns:minmax(300px,.75fr) minmax(500px,1.25fr);gap:20px;display:grid}.trend-panel,.sessions-panel{background:#fff;border:1px solid #dbe4df;border-radius:17px;min-width:0;padding:20px}.result-section-heading{justify-content:space-between;align-items:baseline;gap:15px;margin-bottom:20px;display:flex}.result-section-heading span{color:#8a9992;font-size:11px}.duration-chart{background:linear-gradient(#0000 49%,#eef2ef 50% 51%,#0000 52%);border-bottom:1px solid #d7e1db;align-items:flex-end;gap:clamp(5px,1vw,11px);height:210px;padding:24px 5px 0;display:flex}.chart-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex;position:relative}.chart-value{color:#71847d;font-size:9px}.chart-bar{background:#4d967b;border-radius:7px 7px 2px 2px;width:min(100%,25px);min-height:12px;transition:height .25s}.chart-bar.incomplete{background:#df9a67}.chart-column small{color:#93a099;font-size:9px}.chart-legend{color:#71847d;flex-wrap:wrap;gap:16px;margin-top:15px;font-size:10px;display:flex}.chart-legend span{align-items:center;gap:6px;display:flex}.chart-legend i{background:#4d967b;border-radius:3px;width:9px;height:9px}.chart-legend i.incomplete{background:#df9a67}.session-list{gap:4px;display:grid}.session-row{border-bottom:1px solid #edf1ef;grid-template-columns:34px minmax(145px,1fr) repeat(3,minmax(62px,auto));align-items:center;gap:12px;min-height:54px;padding:8px 6px;display:grid}.session-row:last-child{border-bottom:0}.session-row>span:not(.session-state){gap:2px;display:grid}.session-row strong{color:#314e44;font-size:12px}.session-row small{color:#87968f;font-size:10px}.session-state{border-radius:9px;place-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:grid}.session-state.complete{color:#327057;background:#dceee4}.session-state.incomplete{color:#a65f2d;background:#f8e5d7}.flash{border-radius:12px;justify-content:space-between;gap:20px;max-width:1280px;margin:20px auto -10px;padding:13px 16px;font-size:13px;display:flex}.flash.success{color:#1e5a42;background:#dceee4}.flash.error,.form-error{color:#8c3029;background:#fae2df}.flash button{color:inherit;background:0 0;border:0}.login-page{background:radial-gradient(circle at 14% 25%,#d8f06a38,#0000 27%),linear-gradient(125deg,#143c31 0 53%,#edf2ee 53%);grid-template-columns:1.15fr .85fr;align-items:center;gap:8vw;min-height:100vh;padding:8vh 10vw;display:grid}.login-copy{color:#fff;max-width:560px}.login-copy h1{margin:18px 0;font-size:clamp(40px,5vw,68px);line-height:1.02}.login-copy>p:last-child{color:#bad0c7;max-width:500px;font-size:18px;line-height:1.65}.login-card{background:#fff;border-radius:24px;gap:18px;width:min(100%,430px);padding:38px;display:grid;box-shadow:0 30px 80px #1631282e}.login-card h2{margin-bottom:8px;font-size:30px}.login-card small{color:#87958f;text-align:center;line-height:1.5}.exploration-login{background:radial-gradient(circle at 12% 19%,#d7eb8a40,#0000 25%),linear-gradient(125deg,#143c31 0 53%,#edf2ee 53%)}.login-visual{background:#ffffff1a;border:1px solid #ebf6e840;border-radius:24px;width:min(100%,540px);margin-top:clamp(24px,4vh,38px);padding:10px;box-shadow:0 22px 50px #07221a33}.login-visual img{border-radius:16px;width:100%;display:block}.exploration-login .login-card{border:1px solid #d8e4da}.exploration-login .primary{background:#416e4f}.exploration-login .primary:hover{background:#315b3e}.form-error{border-radius:10px;margin:0;padding:10px 12px;font-size:12px}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f231d9e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:22px;gap:17px;width:min(100%,470px);padding:30px;display:grid;box-shadow:0 30px 90px #00000040}.modal-actions{justify-content:space-between;gap:14px;display:flex}.danger{color:#9e302f;font:inherit;cursor:pointer;background:#fff7f6;border:1px solid #b94a48;border-radius:10px;padding:12px 18px;font-weight:750}.danger:hover{color:#fff;background:#a83b39}.checkbox-row{flex-direction:row;align-items:center;gap:10px;display:flex}.checkbox-row input{width:20px;height:20px}.close{color:#52675e;background:#edf2ef;border:0;border-radius:50%;width:36px;height:36px;font-size:23px}.empty-state{text-align:center;max-width:560px;margin:12vh auto}.empty-graphic{color:#294d41;background:#d8f06a;border-radius:23px;place-items:center;width:72px;height:72px;margin:0 auto 24px;font-size:40px;display:grid}.empty-state p{color:#71847d}@media (width<=1050px){.workspace{grid-template-columns:1fr}.login-page{background:#173b31;grid-template-columns:1fr}.exploration-login{background:#143c31}.login-card{justify-self:center}.results-body{grid-template-columns:1fr}}@media (width<=760px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.patient-nav{max-height:230px}main{padding:0 18px 32px}.topbar{min-height:96px}.field-grid.three,.field-grid.two,.weight-panel{grid-template-columns:1fr}.login-page{padding:40px 20px}.login-copy h1{font-size:40px}.login-card{padding:28px 22px}.metric-grid{grid-template-columns:repeat(2,1fr)}.session-row{grid-template-columns:34px 1fr 58px 58px}.session-row>span:last-child{grid-column:2/-1;grid-template-columns:auto 1fr;align-items:baseline;gap:5px}.exercise-heading-actions{justify-content:space-between;width:100%}.result-tabs{flex-direction:column}}.patient-page{background:radial-gradient(circle at 85% 8%,#d8f06a2e,#0000 22%),#eef3ef;flex-direction:column;height:100dvh;display:flex;overflow:hidden}.patient-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8fbf9e0;border-bottom:1px solid #d6e0da;flex:none;justify-content:space-between;align-items:center;min-height:92px;padding:0 clamp(22px,6vw,86px);display:flex}.patient-brand{align-items:center;gap:13px;display:flex}.patient-brand>strong{color:#24483c;letter-spacing:-.02em;font-size:21px}.patient-brand .brand-mark{margin:0}.patient-brand .eyebrow{margin:0 0 3px}.patient-logout{color:#52675e;width:auto;margin:0}.patient-header-actions{align-items:center;gap:18px;display:flex}.font-size-control{background:#fff;border:1px solid #d1dcd6;border-radius:12px;gap:4px;padding:4px;display:flex}.font-size-control button{color:#52675e;background:0 0;border:0;border-radius:8px;min-width:38px;height:34px;padding:0 7px;font-weight:800}.font-size-control button:nth-child(2){font-size:16px}.font-size-control button:nth-child(3){font-size:18px}.font-size-control button.active{color:#fff;background:#245f4e}.patient-main{flex-direction:column;flex:1;width:100%;max-width:1040px;min-height:0;margin:0 auto;padding:20px 30px 24px;display:flex}.patient-exercise-heading{flex:none;margin-bottom:12px}.patient-exercise-heading .eyebrow{margin-bottom:2px}.patient-exercise-heading h1{color:#24483c;margin:0;font-size:26px}.patient-welcome{max-width:670px;margin-bottom:38px}.patient-welcome h1{margin-bottom:12px;font-size:clamp(38px,5vw,58px)}.patient-welcome>p:last-child{color:#647971;font-size:17px;line-height:1.65}.training-tile{background:#fff;border:1px solid #d7e1db;border-radius:18px;grid-template-columns:150px minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden;box-shadow:0 8px 24px #203f3414}.training-tile:focus-within{border-color:#719486;box-shadow:0 0 0 4px #3c79601f}.training-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(var(--enabled-exercise-count), minmax(0, 1fr));flex:1;gap:12px;height:100%;min-height:0;display:grid}.flux-visual{background:#b8d9ed;grid-template-columns:repeat(2,46px)}.flux-visual span{color:#234d66;background:#fff;border:3px solid #28617d;border-radius:50%;place-items:center;width:42px;height:42px;font-size:18px;font-weight:800;display:grid}.reading-visual{background:#dbe8df;grid-template-columns:1fr;place-items:center;position:relative;overflow:hidden}.reading-visual span{color:#234d3f;background:#fff;border-radius:10px;padding:8px 12px;font-size:23px;font-weight:800;box-shadow:0 12px 30px #22473a24}.reading-visual i{color:#39745e;font-size:27px;font-style:normal;position:absolute;bottom:12px;right:14px}.reading-accent{color:#285b49;background:#dbe8df}.word-search-accent{color:#664174;background:#ead9f1}.exercise-note{margin:18px 0 0;line-height:1.55}.training-visual{background:linear-gradient(150deg,#ffffff6b,#0000),#f1bd88;grid-template-columns:repeat(2,56px);place-content:center;gap:7px;min-height:0;display:grid}.training-visual>:last-child{transform:translate(30px)rotate(-8deg)}.training-visual .sock-shape{filter:drop-shadow(0 13px 14px #5b31142e);width:56px;height:42px;transform:rotate(7deg)}.word-search-visual{background:#ead9f1;grid-template-columns:repeat(3,29px);gap:3px}.word-search-visual span{color:#563964;background:#fff;border:1px solid #cbb4d5;border-radius:7px;place-items:center;width:29px;height:29px;font-size:14px;font-weight:850;display:grid;box-shadow:0 7px 16px #4a2f541a}.word-search-visual>:last-child{transform:none}.training-content{align-self:center;min-width:0;padding:16px 24px}.training-content h2{margin-bottom:8px;font-size:clamp(24px,2.2vw,31px);line-height:1.05}.training-content>p:not(.eyebrow){color:#667a72;font-size:17px}.training-facts{flex-wrap:wrap;gap:9px;margin:8px 0 10px;display:flex}.training-facts span{color:#52675e;background:#edf3ef;border-radius:99px;padding:5px 9px;font-size:12px;font-weight:700}.patient-start{min-width:148px;min-height:40px;font-size:14px}.training-actions{flex-wrap:wrap;gap:10px;display:flex}.patient-history-button{color:#3f5b51;min-height:40px}.patient-history{background:#fff;border-radius:26px;width:min(100%,760px);max-height:calc(100vh - 40px);padding:30px;overflow-y:auto;box-shadow:0 35px 100px #00000047}.patient-history-heading{justify-content:space-between;align-items:flex-start;margin-bottom:22px;display:flex}.patient-history-heading h2{margin:0;font-size:30px}.patient-history-metrics{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;display:grid}.patient-history-metrics span{color:#71847d;text-align:center;background:#eef3ef;border-radius:14px;padding:16px}.patient-history-metrics strong{color:#264a3e;margin-bottom:3px;font-size:23px;display:block}.patient-history-chart{background:#f7f9f8;border-bottom:1px solid #d7e1db;border-radius:16px 16px 0 0;align-items:flex-end;gap:10px;height:220px;padding:28px 12px 8px;display:flex}.patient-history-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.patient-history-column>strong,.patient-history-column>small{color:#71847d;font-size:10px}.patient-history-column>span{background:#4d967b;border-radius:8px 8px 3px 3px;width:min(100%,34px);min-height:10px}.patient-history-list{margin-top:18px;display:grid}.patient-history-list article{color:#71847d;border-bottom:1px solid #edf1ef;grid-template-columns:1fr 1fr 1fr;gap:12px;padding:12px 4px;display:grid}.patient-history-list article strong{color:#314e44}.patient-font-large .patient-brand>strong{font-size:25px}.patient-font-large .training-content h2{font-size:clamp(27px,2.4vw,33px)}.patient-font-large .training-facts span,.patient-font-large .patient-logout{font-size:14px}.patient-font-large .patient-start{font-size:16px}.patient-font-xlarge .patient-brand>strong{font-size:29px}.patient-font-xlarge .training-content h2{font-size:clamp(29px,2.6vw,35px)}.patient-font-xlarge .training-facts span,.patient-font-xlarge .patient-logout{font-size:15px}.patient-font-xlarge .patient-start{min-height:44px;font-size:16px}@media (width>=761px) and (width<=980px){.patient-main{padding-inline:18px}.training-tile{grid-template-columns:125px minmax(0,1fr)}.training-content{padding:18px}.training-content h2{font-size:25px}.training-facts{gap:5px}.training-facts span{padding:5px 8px;font-size:11px}.training-actions{gap:7px}.patient-start{min-width:138px}}@media (width>=761px) and (height<=700px){.patient-header{min-height:72px}.patient-main{padding-block:12px}.patient-exercise-heading{margin-bottom:7px}.patient-exercise-heading .eyebrow{display:none}.patient-exercise-heading h1{font-size:21px}.training-grid{gap:10px}.training-content{padding:14px 18px}.training-content h2,.patient-font-large .training-content h2,.patient-font-xlarge .training-content h2{margin-bottom:8px;font-size:23px}.training-facts{gap:5px;margin:8px 0 10px}.training-facts span{padding:4px 7px;font-size:10px}.patient-start,.patient-history-button,.patient-font-xlarge .patient-start{min-height:38px;font-size:13px}}.training-loading{color:#667a72;text-align:center;background:#fff;border-radius:24px;padding:60px}.game-page{background:#edf2ee;flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.game-page.optokinetic:before{z-index:0;content:"";pointer-events:none;will-change:background-position;background-color:#edf2ee;background-image:radial-gradient(circle,#2a4c417a 0 6px,#0000 7px);background-position:0 0;background-size:64px 64px;position:absolute;inset:104px 0 0}.game-page.optokinetic-left:before{animation:8s linear infinite optokinetic-left}.game-page.optokinetic-right:before{animation:8s linear infinite optokinetic-right}@keyframes optokinetic-left{to{background-position:-256px 0}}@keyframes optokinetic-right{to{background-position:256px 0}}.neglect-anchor{z-index:15;pointer-events:none;background:#e00000;width:10px;position:fixed;top:0;bottom:0;box-shadow:0 0 0 2px #fffffff2,0 0 14px 4px #e0000073}.neglect-anchor-left{left:8px}.neglect-anchor-right{right:8px}.game-header{z-index:2;background:#f9fbfa;border-bottom:1px solid #d3ddd7;grid-template-columns:150px 1fr auto;align-items:center;min-height:104px;padding:14px 30px;display:grid;box-shadow:0 8px 28px #1e3b310f}.game-exit{color:#52675e;background:#fff;border:1px solid #ccd8d1;border-radius:11px;width:fit-content;padding:10px 15px;font-weight:700}.game-title{text-align:center}.game-title .eyebrow{margin-bottom:2px}.game-title h1{margin:0;font-size:27px}.game-sequence{color:#667a72;text-overflow:ellipsis;white-space:nowrap;max-width:min(620px,58vw);margin:5px auto 0;font-size:12px;font-weight:700;overflow:hidden}.game-stats{gap:9px;display:flex}.game-header-tools{justify-content:flex-end;align-items:center;gap:12px;display:flex;position:relative}.patient-exercise-settings{position:relative}.game-settings-button{color:#34574b;background:#fff;border:1px solid #b9c9c1;border-radius:11px;min-height:42px;padding:0 14px;font-size:12px;font-weight:800}.game-settings-button:hover,.game-settings-button[aria-expanded=true]{background:#edf5f1;border-color:#4d806d}.game-settings-popover{z-index:30;text-align:left;background:#fff;border:1px solid #c5d3cc;border-radius:17px;gap:15px;width:min(330px,100vw - 30px);padding:20px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 22px 65px #1530273d}.game-settings-heading{color:#24483c;justify-content:space-between;align-items:center;gap:20px;font-size:18px;display:flex}.game-settings-heading button{color:#4d625a;background:#edf3ef;border:0;border-radius:9px;width:34px;height:34px;padding:0;font-size:22px}.game-settings-popover label{font-size:13px}.game-settings-popover select{min-height:46px;font-size:15px}.game-settings-popover small{color:#71847d;font-size:11px}.game-stats span{color:#6b7d76;text-align:center;background:#edf3ef;border-radius:12px;min-width:78px;padding:9px 12px;font-size:11px}.game-stats strong{color:#25483d;margin-bottom:2px;font-size:17px;display:block}.game-stats .urgent{background:#fae1dc}.game-stats .urgent strong{color:#ad352c}.reading-stage{z-index:1;flex:1;place-items:center;min-height:0;padding:28px;display:grid;position:relative}.reading-intro,.reading-dialog{text-align:center;background:#fff;border:1px solid #d3dfd8;border-radius:28px;width:min(100%,720px);padding:42px;box-shadow:0 24px 70px #203f341a}.reading-intro h2,.reading-dialog h2{margin:8px 0 18px;font-size:clamp(28px,4vw,42px)}.reading-intro p:not(.eyebrow){color:#63776f;margin-bottom:28px;font-size:18px;line-height:1.6}.reading-lane{background:linear-gradient(90deg,#f5f8f6,#fff 22% 78%,#f5f8f6);border:1px solid #ccd9d2;border-radius:28px;width:min(1500px,100vw - 56px);height:min(380px,52vh);position:relative;overflow:hidden;box-shadow:0 20px 60px #1f3b3214}.reading-focus-zone{z-index:1;pointer-events:none;background:0 0;width:1px;position:absolute;top:18px;bottom:18px;left:50%;transform:translate(-50%)}.reading-focus-zone:before,.reading-focus-zone:after{content:"";background:#3d775e61;border-radius:99px;width:22px;height:3px;position:absolute;left:50%;transform:translate(-50%)}.reading-focus-zone:before{top:0}.reading-focus-zone:after{bottom:0}.reading-moving-text{color:#172b24;width:max-content;max-width:none;font-size:var(--reading-font-size,48px);white-space:nowrap;will-change:transform;font-weight:650;line-height:1.35;position:absolute;top:50%;left:0;translate:0 -50%}.reading-level-two{align-items:center;gap:3.25em;display:inline-flex}.reading-level-two>span{white-space:nowrap}.reading-error-button{color:#8e312b;background:#fff3f1;border:1px solid #d8aaa5;border-radius:14px;min-width:210px;padding:14px 18px;font-weight:750;position:absolute;bottom:30px;right:34px}.reading-error-button strong{margin-left:8px;font-size:19px}.reading-choice-grid,.reading-answer-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px;display:grid}.reading-choice-grid button,.reading-answer-grid button{color:#294b40;background:#f4f8f5;border:1px solid #cbd9d1;border-radius:14px;min-height:70px;padding:14px;font-size:clamp(20px,2.2vw,27px);font-weight:750}.reading-dialog:has(.reading-answer-grid) h2{font-size:clamp(34px,4.8vw,54px)}.reading-answer-grid button.correct,.reading-answer-grid button.correct:disabled{color:#18563e;opacity:1;background:#dff2e8;border-color:#2f7d5c}.reading-answer-grid button.incorrect,.reading-answer-grid button.incorrect:disabled{color:#8c2f2d;opacity:1;background:#fde5e3;border-color:#b94a48}.reading-answer-feedback{text-align:center;margin:24px 0 0;font-size:clamp(20px,2.4vw,28px);font-weight:800}.reading-answer-feedback.correct{color:#216b4e}.reading-answer-feedback.incorrect{color:#9e302f}.reading-choice-grid button:hover,.reading-answer-grid button:not(:disabled):hover{background:#e7f2ec;border-color:#4d967b}.reading-symptoms label{color:#536a61;gap:10px;margin:20px 0;display:grid}.reading-symptoms input[type=range]{width:100%}.reading-symptom-options{text-align:left;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:26px;display:grid}.reading-symptom-options label{background:#f3f6f4;border-radius:12px;align-items:center;gap:9px;margin:0;padding:12px;display:flex}.pair-board{z-index:1;background:linear-gradient(#ffffffb8,#ffffffb8),repeating-linear-gradient(90deg,#dce5df 0 1px,#0000 1px 80px);border:1px solid #d7e0da;border-radius:24px;flex:1;width:min(1420px,100% - 40px);min-height:0;margin:17px auto;padding:28px;transition:transform .2s;position:relative}.optokinetic .pair-board{background-color:#ffffffa3}.pair-board.raster{grid-template-columns:repeat(var(--grid-columns,6), minmax(var(--object-size,100px), 1fr));align-content:center;place-items:center;gap:clamp(13px,2vw,30px);display:grid}.pair-board.haufen{background:#ffffffd1;min-width:0;min-height:0;position:relative}.optokinetic .pair-board.haufen{background:#ffffffa3}.pair-item{width:var(--object-size,100px);height:calc(var(--object-size,100px) * .74);color:#243c34;background:#ffffffc7;border:3px solid #0000;border-radius:18px;place-items:center;padding:8px;font-size:clamp(30px,4.2vw,52px);transition:transform .15s,opacity .3s,box-shadow .15s;display:grid;position:relative}.pair-board.haufen .pair-item{position:absolute}.pair-item:hover{box-shadow:0 10px 22px #27473c29}.pair-item.selected{border-color:#2e765f;box-shadow:0 0 0 5px #2e765f26}.pair-item.wrong{background:#fff0ee;border-color:#d94b42;animation:.3s wrong-shake}.pair-item.matched{pointer-events:none;opacity:0;transform:scale(.55)}.pair-item.text-card{background:#fff;border-color:#d5dfda;font-size:clamp(18px,2.3vw,30px);font-weight:800}@keyframes wrong-shake{25%{translate:-7px}75%{translate:7px}}.sock-shape{filter:drop-shadow(0 7px 6px #23393126);width:94%;height:auto;display:block;overflow:visible}.sock-pattern{fill:#ffffff61;stroke:#ffffff61;stroke-width:2.4px}.sock-pattern circle{fill:#ffffff73;stroke:none}.sock-pattern rect:not(.sock-cuff){fill:#ffffff47;stroke:none}.sock-pattern polyline{fill:none;stroke-width:2px}.sock-pattern .sock-cuff{fill:#00000024;stroke:none}.sock-cuff-line{stroke:#0000002e;stroke-width:1.2px}.sock-outline{fill:none;stroke:#00000047;stroke-linejoin:round;stroke-width:1.8px}.pair-pictogram{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 7px 6px #23393124);width:88%;height:88%;display:block}.high-contrast .pair-board{background:#fff;border-color:#1c2b26}.high-contrast .pair-item{background:#fff;border-color:#233b33}.reduced-motion *,.reduced-motion :before,.reduced-motion :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.result-backdrop{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#10261fb8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.result-card{text-align:center;background:#fff;border-radius:28px;width:min(100%,500px);padding:38px;box-shadow:0 35px 100px #00000047}.result-icon{color:#20483a;background:#d8f06a;border-radius:50%;place-items:center;width:72px;height:72px;margin:0 auto 20px;font-size:38px;font-weight:800;display:grid}.result-card h2{font-size:30px}.result-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin:28px 0;display:grid}.result-grid span{color:#71847d;background:#eef3ef;border-radius:13px;padding:15px 8px;font-size:12px}.result-grid strong{color:#264a3e;margin-bottom:3px;font-size:21px;display:block}.result-actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.result-actions>:only-child{grid-column:1/-1}.secondary.dark{color:#40584f;border-color:#cbd7d0}.flux-board{z-index:1;-webkit-user-select:none;user-select:none;background:#ffffffe0;border:1px solid #cddbe2;border-radius:24px;flex:1;min-height:0;margin:16px 20px 20px;position:relative;overflow:hidden}.optokinetic .flux-board{background:#ffffffa8}.flux-lines{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.flux-lines line{stroke:#2e765f;stroke-linecap:round;stroke-width:5px}.flux-node{z-index:2;width:var(--flux-node-size,64px);height:var(--flux-node-size,64px);color:#234d66;font-size:calc(var(--flux-node-size,64px) * .38);touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#fff;border:4px solid #28617d;border-radius:50%;place-items:center;padding:0;font-weight:800;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 18px #234d6624}.flux-node.selected{color:#1f5744;background:#dceee4;border-color:#2e765f}.flux-node.wrong{background:#fff0ee;border-color:#d94b42;animation:.3s wrong-shake}.flux-session-row{grid-template-columns:34px minmax(145px,1fr) repeat(3,minmax(62px,auto))}.word-search-stage{z-index:1;flex:1;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:18px;min-height:0;padding:18px 20px 20px;display:grid;position:relative}.word-search-board-panel,.word-search-sidebar{background:#ffffffe8;border:1px solid #d5ded9;border-radius:22px;min-width:0;min-height:0;box-shadow:0 16px 45px #23403614}.optokinetic .word-search-board-panel,.optokinetic .word-search-sidebar{background:#ffffffc2}.word-search-board-panel{place-items:center;padding:14px;display:grid;overflow:hidden}.word-search-grid{--word-search-cell-size:clamp(25px, min(calc((100vw - 410px) / var(--word-search-columns)), 4.4vh), calc(var(--word-search-letter-size) + 16px));grid-template-columns:repeat(var(--word-search-columns), var(--word-search-cell-size));grid-auto-rows:var(--word-search-cell-size);touch-action:none;-webkit-user-select:none;user-select:none;place-content:center;gap:3px;display:grid}.word-search-cell{color:#233c33;width:100%;height:100%;font-size:min(var(--word-search-letter-size), calc(var(--word-search-cell-size) * .62));background:#fff;border:1px solid #d4ddd8;border-radius:7px;place-items:center;padding:0;font-weight:800;line-height:1;transition:border-color .1s,background .1s,transform .1s;display:grid}.word-search-cell:hover{background:#f2f7f4;border-color:#8ca99d}.word-search-cell.preview{color:#563964;background:#ead9f1;border-color:#8d5aa1;transform:scale(1.04)}.word-search-cell.found{color:#194f3c;background:#dceee4;border-color:#3f886d}.word-search-cell.hinted{color:#6f4a08;background:#fff0b8;border-color:#d69b29;animation:.65s ease-in-out infinite alternate word-search-hint}@keyframes word-search-hint{to{transform:scale(1.08);box-shadow:0 0 0 5px #dea53133}}.word-search-sidebar{flex-direction:column;padding:24px;display:flex;overflow:hidden}.word-search-sidebar h2{margin:0 0 16px;font-size:28px}.word-search-list{grid-template-columns:minmax(0,1fr);align-content:start;gap:9px;min-height:0;margin:0;padding:2px;list-style:none;display:grid;overflow-y:auto}.word-search-list li{color:#183b30;overflow-wrap:anywhere;background:#fff;border:2px solid #789086;border-radius:10px;width:100%;padding:10px 12px;font-size:clamp(18px,1.5vw,22px);font-weight:800;line-height:1.2}.word-search-list li.found{color:#174c39;background:#d7ecdf;border-color:#2f7259;text-decoration:line-through}.word-search-help{color:#654274;border-color:#8d5aa1;margin-top:auto}.word-search-instruction{color:#71847d;margin:12px 0 0;font-size:12px;line-height:1.45}.saccade-accent,.saccade-visual{color:#274e7d;background:#d9e4f5}.saccade-visual{grid-template-columns:auto auto auto;align-items:center;gap:14px}.saccade-visual span,.saccade-visual strong{color:#244f7e;background:#fff;border-radius:50%;place-items:center;width:48px;height:48px;font-size:32px;display:grid;box-shadow:0 8px 20px #284d7526}.saccade-visual i{color:#47709e;font-size:26px;font-style:normal}.saccade-visual>:last-child{transform:none}.calibration-page{background:#eef3f0;min-height:100vh}.calibration-header{background:#fff;border-bottom:1px solid #dce5e0;grid-template-columns:auto 1fr auto;align-items:center;min-height:86px;padding:16px 28px;display:grid}.calibration-header h1{text-align:center;grid-column:2;margin:0;font-size:25px}.calibration-main,.saccade-intro-wrap{place-items:center;min-height:calc(100vh - 104px);padding:30px;display:grid}.calibration-card,.saccade-intro{text-align:center;background:#fff;border:1px solid #d7e1db;border-radius:24px;width:min(720px,100%);padding:42px;box-shadow:0 16px 50px #2645391a}.calibration-card h2,.saccade-intro h2{margin:8px 0 14px;font-size:32px}.calibration-card>p:not(.eyebrow),.saccade-intro>p:not(.eyebrow){color:#657a72;line-height:1.65}.calibration-reference{color:#274e7d;background:linear-gradient(145deg,#ffffffb3,#0000),#d9e4f5;border:3px solid #315f91;border-radius:14px;place-items:center;max-width:100%;height:204px;margin:30px auto 20px;font-size:20px;font-weight:800;display:grid}.calibration-controls{justify-content:center;align-items:center;gap:20px;margin-bottom:22px;display:flex}.calibration-controls button{width:62px;height:52px;font-size:28px}.calibration-save,.saccade-start{min-width:240px;min-height:54px;margin-top:14px}.saccade-instruction-row{justify-content:center;align-items:center;gap:18px;margin:30px 0;display:flex}.saccade-instruction-row i{color:#7b8e87;font-style:normal;font-weight:800}.saccade-fixation-demo,.saccade-target-demo{color:#1f4d3e;background:#f0f4f2;border-radius:50%;place-items:center;width:66px;height:66px;font-size:42px;font-weight:800;display:grid}.saccade-target-demo{color:#7b5b00;background:#fff1a8}.saccade-calibration-status{background:#edf5f0;border-radius:14px;gap:4px;margin:24px 0 6px;padding:14px;display:grid}.saccade-calibration-status span{color:#687d75;font-size:13px}.saccade-screen-limit{color:#31516e;text-align:left;background:#f0f5fa;border:1px solid #d7e3ee;border-radius:14px;gap:6px;margin-top:20px;padding:14px 16px;display:grid}.saccade-screen-limit span{color:#60788d;font-size:13px;line-height:1.5}.saccade-stage{background:linear-gradient(90deg,#0000 49.9%,#28493e14 50%,#0000 50.1%),#f8faf9;flex:1;min-height:0;position:relative;overflow:hidden}.saccade-fixation,.saccade-target{cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.saccade-fixation{color:#173f34;background:#fff;width:78px;height:78px;box-shadow:0 0 0 3px #315f50,0 12px 32px #244d3e2e}.saccade-fixation:before,.saccade-fixation:after{content:"";background:#173f34;border-radius:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.saccade-fixation:before{width:36px;height:6px}.saccade-fixation:after{width:6px;height:36px}.saccade-target{width:var(--saccade-size);height:var(--saccade-size);transform:translate(calc(-50% + var(--saccade-x)), calc(-50% + var(--saccade-y)));color:#5d4700;font-size:calc(var(--saccade-size) * .72);background:#ffe36f;box-shadow:0 0 0 5px #fff,0 12px 30px #493a0538}.saccade-target-symbol{justify-content:center;align-items:center;width:100%;height:100%;line-height:1;display:flex;transform:translateY(-.04em)}.saccade-target.stimulus-circle,.saccade-target.stimulus-triangle{color:#e6b800;background:#fff}.saccade-target.visual-search-target{z-index:2;color:#173f34;font-size:initial;background:#fff}.saccade-search-item{width:var(--search-size);height:var(--search-size);color:#34594d;transform:translate(calc(-50% + var(--search-x)), calc(-50% + var(--search-y))) rotate(var(--search-rotation));cursor:pointer;background:#ffffffd1;border:0;border-radius:10px;place-items:center;padding:5px;display:grid;position:absolute;top:50%;left:50%}.saccade-search-item svg,.saccade-target.visual-search-target svg{fill:currentColor;width:100%;height:100%}.saccade-search-item .search-letter,.saccade-target .search-letter{color:#173f34;font-family:Arial,sans-serif;font-weight:800;line-height:1}.saccade-search-item .search-letter{font-size:calc(var(--search-size) * .72)}.saccade-target .search-letter{font-size:calc(var(--saccade-size) * .72)}.saccade-search-item .search-letter.matrix,.saccade-target .search-letter.matrix{font-family:Arial,sans-serif}.saccade-search-item .red-shape,.saccade-target .red-shape{color:#d93b35}.saccade-search-item .blue-shape{color:#2d75c8}.saccade-direction-hint{z-index:1;width:var(--hint-length);height:0;transform:translate(var(--hint-start-x), var(--hint-start-y)) rotate(var(--hint-angle));transform-origin:0;pointer-events:none;border-top:3px solid #173f342e;border-radius:999px;position:absolute;top:50%;left:50%}.saccade-direction-hint:after{content:"";border-top:3px solid #173f342e;border-right:3px solid #173f342e;width:9px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)rotate(45deg)}.saccade-distance-label{color:#5b7068;background:#ffffffe0;border-radius:99px;padding:8px 13px;font-size:13px;font-weight:750;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.saccade-device-note{color:#765b16;font-size:13px}@media (width<=760px){.patient-page{height:auto;min-height:100vh;overflow:visible}.patient-header{flex-wrap:wrap;gap:10px;padding:0 18px;padding-block:12px}.patient-header-actions{gap:8px}.font-size-control button{min-width:34px}.patient-main{flex:none;padding:42px 18px 60px;display:block}.patient-exercise-heading{margin-bottom:20px}.training-grid{grid-template-columns:1fr;grid-template-rows:initial;grid-auto-rows:auto;height:auto}.training-tile{grid-template-columns:1fr}.training-visual{min-height:250px}.training-content{padding:30px 24px}.patient-history{padding:22px 16px}.patient-history-metrics{grid-template-columns:1fr}.patient-history-list article{grid-template-columns:1fr 1fr}.patient-history-list article span:last-child{grid-column:2}.game-header{grid-template-columns:auto 1fr;gap:12px;min-height:132px}.game-page.optokinetic:before{inset-block-start:132px}.game-title{text-align:left}.game-header-tools{grid-column:1/-1;justify-content:space-between;width:100%}.game-stats{justify-content:center}.game-settings-popover{left:0;right:auto}.pair-board{width:calc(100% - 20px);min-height:0;margin:10px auto;padding:15px}.pair-board.raster{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}.flux-board{margin:10px}.game-sequence{max-width:54vw;margin-inline:0;font-size:10px}.reading-stage{padding:12px}.reading-lane{border-radius:18px;width:calc(100vw - 24px);height:42vh}.reading-intro,.reading-dialog{padding:28px 20px}.reading-choice-grid,.reading-answer-grid,.reading-symptom-options{grid-template-columns:1fr}.reading-error-button{bottom:16px;right:18px}.word-search-stage{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;gap:10px;padding:10px}.word-search-sidebar{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;max-height:185px;padding:14px;display:grid}.word-search-sidebar h2{margin:0}.word-search-list{gap:6px;max-height:115px}.word-search-list li{padding:8px 10px;font-size:18px}.word-search-help{margin:0}.word-search-instruction{display:none}.word-search-grid{--word-search-cell-size:clamp(22px, min(calc((100vw - 42px) / var(--word-search-columns)), 3.7vh), calc(var(--word-search-letter-size) + 12px));gap:2px}.calibration-main,.saccade-intro-wrap{padding:16px}.calibration-card,.saccade-intro{padding:28px 18px}.calibration-reference{height:160px}}@media (width<=520px){.patient-header{align-items:flex-start}.patient-header-actions{justify-content:space-between;width:100%}}
