:root{color:#26332f;font-synthesis:none;text-rendering:optimizelegibility;background:#f3f5f2;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{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.58}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:0}.eyebrow{color:#728079;letter-spacing:.12em;margin:0 0 7px;font-size:11px;font-weight:800}.primary,.secondary,.icon-button,.text-button{border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;font-weight:700;display:inline-flex}.primary{color:#fff;background:#176b55;padding:0 18px}.primary:hover{background:#115d49}.secondary{color:#34453f;background:#fff;border:1px solid #cbd4ce;padding:0 16px}.secondary:hover{background:#f1f4f2}.secondary.inverse{color:#fff;background:0 0;border-color:#5f786f}.secondary.light{color:#34453f;background:#fff;border-color:#cbd4ce}.full{width:100%}.icon-button{color:#53635d;background:0 0;width:42px;padding:0}.text-button{color:#bbcbc5;background:0 0;padding:0}.text-button.dark{color:#42514b}label{color:#4f5e58;gap:7px;font-size:13px;font-weight:700;display:grid}input,select{color:#26332f;background:#fff;border:1px solid #cbd4ce;border-radius:5px;outline:none;width:100%;min-height:44px;padding:0 12px}input:focus,select:focus{border-color:#176b55;box-shadow:0 0 0 3px #176b551f}.form-error{color:#8f2927;background:#f7e1df;border-radius:6px;margin:0;padding:10px 12px;font-size:13px;font-weight:700}.muted{color:#68766f}.login-page{background:linear-gradient(125deg,#203d36 0 53%,#f3f5f2 53%);grid-template-columns:minmax(320px,1fr) minmax(320px,460px);align-items:center;gap:8vw;min-height:100vh;padding:8vh 10vw;display:grid}.brand-mark,.brand-symbol{color:#fff;background:#176b55;border-radius:8px;place-items:center;width:54px;height:54px;font-weight:850;display:grid}.brand-mark.large{margin-bottom:28px;font-size:32px}.brand-symbol.small{width:36px;height:36px}.brand-symbol.small svg{width:19px}.login-copy{color:#fff;max-width:560px}.login-copy .eyebrow{color:#b8cac3}.login-copy h1{margin:18px 0;font-size:clamp(40px,5vw,68px);line-height:1.02}.login-copy p:last-child{color:#c8d7d1;max-width:500px;font-size:18px;line-height:1.65}.login-card{background:#fff;border-radius:8px;justify-self:end;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}.app-shell{grid-template-columns:270px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:#203d36;flex-direction:column;height:100vh;padding:22px 18px;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:11px;margin-bottom:34px;font-weight:800;display:flex}.nav-heading{color:#aebfb9;letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;margin:0 8px 8px;font-size:11px;font-weight:800;display:flex}.patient-nav{min-height:0;overflow-y:auto}.patient-nav button{width:100%;color:inherit;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:11px;padding:10px;display:flex}.patient-nav button:hover,.patient-nav button.active{background:#315249}.patient-nav button.active{box-shadow:inset 3px 0 #e0b84c}.patient-nav strong,.patient-nav small{display:block}.patient-nav small{color:#acc0b8;text-overflow:ellipsis;white-space:nowrap;max-width:165px;margin-top:3px;overflow:hidden}.avatar{color:#24453c;background:#d7e4df;border-radius:6px;flex:0 0 36px;place-items:center;height:36px;font-weight:800;display:grid}.sidebar-actions{gap:8px;margin-top:auto;display:grid}.therapist-main{min-width:0;padding:0 38px 48px}.topbar{border-bottom:1px solid #d9dfdb;justify-content:space-between;align-items:center;min-height:112px;display:flex}.topbar h1{margin:0;font-size:30px}.connection{color:#68766f;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.connection i{background:#2a9c70;border-radius:50%;width:9px;height:9px}.connection.busy i{background:#e0b84c}.workspace{gap:24px;max-width:1120px;margin:32px auto 0;display:grid}.config-section,.history-section{background:#fff;border:1px solid #d8dfda;border-radius:7px;overflow:hidden}.section-accent{color:#175a48;background:#d9eee6;padding:9px 24px;font-size:12px;font-weight:800}.section-heading{border-bottom:1px solid #e2e7e4;justify-content:space-between;align-items:center;gap:20px;min-height:88px;padding:20px 24px;display:flex}.section-heading h2{margin:0;font-size:23px}.heading-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:22px 36px;padding:28px 24px;display:grid}.mode-config-list{display:grid}.mode-config{border-bottom:1px solid #e2e7e4;grid-template-columns:minmax(150px,1fr) 130px 150px 92px 92px 92px 124px;align-items:center;gap:16px;padding:18px 24px;display:grid}.mode-config:last-child{border-bottom:0}.mode-config h3{color:#26332f;margin:0 0 5px;font-size:18px}.mode-config.forward{border-left:5px solid #176b55}.mode-config.backward{border-left:5px solid #3f608c}.mode-config.sort{border-left:5px solid #b78227}.rule-chip,.rule-badge{color:#63736d;background:#eef3f0;border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.rule-badge{color:#6b5a2f;background:#f4f1e8;margin-top:5px}.compact-save{min-height:38px;padding:0 12px;font-size:12px}.input-suffix{max-width:180px;display:block;position:relative}.input-suffix input{padding-right:52px}.input-suffix>span{color:#77847f;position:absolute;top:13px;right:12px}.source-note{color:#59655f;background:#faf8ef;border-left:3px solid #e0b84c;margin:0 24px 24px;padding:15px 17px;line-height:1.5}.toggle{cursor:pointer;grid-template-columns:auto auto 1fr;align-items:center;gap:11px;min-height:44px;display:inline-grid}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:#bfc9c3;border-radius:12px;width:42px;height:24px;padding:3px;transition:all .15s;display:block}.toggle-track i{background:#fff;border-radius:50%;width:18px;height:18px;transition:all .15s;display:block}.toggle input:checked+.toggle-track{background:#176b55}.toggle input:checked+.toggle-track i{transform:translate(18px)}.history-list{padding:0 24px 8px;display:grid}.history-list.grouped{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-top:20px;padding-bottom:20px}.history-group{background:#fbfcfb;border:1px solid #e1e7e3;border-radius:7px;min-width:0;padding:14px}.history-group h3{margin:0 0 10px;font-size:16px}.history-list>.muted{text-align:center;padding:30px 0}.history-list article{border-bottom:1px solid #edf0ee;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:6px 10px;padding:11px 0;display:grid}.history-list article:last-child{border-bottom:0}.history-list article span,.history-list article small{color:#6f7b75;font-size:12px}.history-list article span:nth-child(3),.history-list article small{grid-column:2}.flash{border-radius:6px;justify-content:space-between;align-items:center;max-width:1120px;margin:18px auto 0;padding:13px 16px;font-weight:700;display:flex}.flash.success{color:#185844;background:#dcefe7}.flash.error{color:#8f2927;background:#f7e1df}.flash button{color:inherit;background:0 0;border:0}.empty-state{color:#66736d;text-align:center;align-content:center;place-items:center;gap:14px;min-height:360px;display:grid}.empty-state h2{color:#2d3b36;margin:0}.patient-home{background:#f3f5f2;min-height:100vh}.patient-header{background:#fff;border-bottom:1px solid #d9dfdb;justify-content:space-between;align-items:center;min-height:76px;padding:0 clamp(20px,5vw,64px);display:flex}.patient-brand{align-items:center;gap:13px;display:flex}.patient-brand .brand-mark{width:38px;height:38px;margin:0}.patient-brand>div:last-child{display:grid}.patient-brand strong{color:#24483c;font-size:20px}.patient-main{min-width:0;max-width:880px;margin:0 auto;padding:54px 24px}.patient-title{margin-bottom:28px}.patient-title h1{margin:0;font-size:34px}.exercise-tile{background:#fff;border:1px solid #d6ddd8;border-radius:7px;grid-template-columns:240px minmax(0,1fr);min-height:280px;margin-bottom:24px;display:grid;overflow:hidden}.memory-visual{background:#24453c;grid-template-rows:repeat(4,42px);grid-template-columns:repeat(4,42px);place-content:center;gap:10px;display:grid}.memory-visual span{color:#176b55;background:#d7e4df;border-radius:6px;place-items:center;font-size:30px;font-weight:800;display:grid}.tile-content{flex-direction:column;justify-content:center;padding:38px;display:flex}.tile-content h2{margin-bottom:22px;font-size:29px}.tile-facts{color:#607069;flex-wrap:wrap;gap:22px;margin-bottom:32px;font-size:14px;font-weight:700;display:flex}.training-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px;display:grid}.training-mode-tile{color:#26332f;text-align:left;background:#fff;border:1px solid #d6ddd8;border-radius:8px;grid-template-rows:1fr auto auto;place-items:center start;gap:10px;min-height:170px;padding:24px;display:grid;box-shadow:0 8px 24px #203f3412}.training-mode-tile strong{font-size:24px}.training-mode-tile span{color:#66756f;font-size:13px;font-weight:800}.training-mode-tile.forward{border-top:5px solid #176b55}.training-mode-tile.backward{border-top:5px solid #3f608c}.training-mode-tile.sort{border-top:5px solid #b78227}.training-mode-tile:hover{background:#f9fbfa;border-color:#8fb2a5}.exercise-workspace{background:radial-gradient(circle at 50% 0,#d8eee6e6,#0000 42%),#edf3ef;grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.exercise-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffeb;border-bottom:1px solid #d3dad5;grid-template-columns:170px minmax(240px,1fr) auto;align-items:center;gap:20px;min-height:82px;padding:12px 24px;display:grid}.exercise-title{text-align:center}.exercise-title h1{color:#183e34;margin:0;font-size:30px}.metrics{gap:8px;display:flex}.metrics span{color:#5e6e67;text-align:center;background:#f7faf8;border:1px solid #dfe8e3;border-radius:999px;min-width:82px;padding:8px 12px;font-size:12px}.metrics strong{color:#183e34;font-size:18px}.quiet-action{color:#40524c;background:#fff;border:1px solid #d5dfda;border-radius:999px;justify-self:start;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:750;display:inline-flex}.quiet-action:hover{background:#f5f8f6}.memory-stage{grid-template-rows:32px minmax(0,1fr);place-items:center;gap:18px;min-width:0;padding:clamp(18px,4vw,44px);display:grid;overflow:hidden}.sequence-progress{justify-content:center;align-items:center;gap:10px;height:28px;display:flex}.sequence-progress span{background:#cdd9d3;border-radius:50%;width:14px;height:14px;transition:transform .14s,background .14s}.sequence-progress span.current{background:#f2c14e;transform:scale(1.45)}.sequence-progress span.done{background:#176b55}.memory-grid{aspect-ratio:1;background:#fffffff0;border:1px solid #d8e3dd;border-radius:18px;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:clamp(9px,1.4vw,16px);width:min(72vh,700px,100vw - 32px);padding:clamp(12px,2vw,22px);display:grid;position:relative;box-shadow:0 18px 46px #23453a1c}.memory-grid.correct{animation:.76s board-correct}.memory-grid.wrong{animation:.76s board-wrong}@keyframes board-correct{0%,to{box-shadow:0 18px 46px #23453a1c}35%{border-color:#5fb589;box-shadow:0 0 0 8px #5fb58929,0 18px 46px #23453a1c}}@keyframes board-wrong{0%,to{box-shadow:0 18px 46px #23453a1c}35%{border-color:#cf7770;box-shadow:0 0 0 8px #cf777029,0 18px 46px #23453a1c}}.memory-grid.interference{background:#fffffff0}.memory-grid button{color:#1d342d;background:#f8faf9;border:2px solid #d5e0da;border-radius:14px;min-height:0;padding:0;font-size:clamp(1.5rem,4vw,2.6rem);font-weight:850;transition:transform .12s,background .12s,border-color .12s,box-shadow .12s;box-shadow:inset 0 -4px #23453a0f}.memory-grid button:disabled{cursor:default;opacity:1}.memory-grid button:not(:disabled):hover{background:#eef6f2;border-color:#8fb2a5;transform:translateY(-1px)}.memory-grid button.active{color:#3a2a00;background:#ffd96b;border-color:#c18c20;transform:scale(1.025);box-shadow:0 0 0 8px #ffd96b3d,inset 0 -4px #5c40001a}.memory-grid button.recalled{color:#123d31;background:#dcefe7;border-color:#176b55;box-shadow:inset 0 0 0 4px #ffffffb8}.memory-grid button.solution{color:#493306;background:#fff1c4;border-color:#9d6f1f;box-shadow:inset 0 0 0 4px #ffffffb8}.memory-delay-overlay{z-index:3;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);pointer-events:none;background:#f8faf9c7;border-radius:14px;place-items:center;display:grid;position:absolute;inset:clamp(12px,2vw,22px)}.memory-delay-overlay span{background:radial-gradient(circle,#176b55 0 22%,#0000 24%),conic-gradient(#176b552e,#176b558f,#176b552e);border-radius:50%;width:58px;height:58px;animation:.9s ease-in-out infinite delay-pulse}@keyframes delay-pulse{0%,to{opacity:.68;transform:scale(.94)}50%{opacity:1;transform:scale(1.05)}}.exercise-actions{background:#fffffff0;border-top:1px solid #d3dad5;grid-template-rows:76px 24px;justify-content:center;place-items:center;gap:12px;min-height:126px;padding:18px 28px;display:grid}.action-slot{place-items:center;width:min(260px,100%);min-height:76px;display:grid}.trial-feedback{min-height:24px}.phase-note{color:#176b55;background:#dcefe7;border-radius:999px;align-items:center;min-height:58px;padding:0 28px;font-size:20px;font-weight:800;display:inline-flex}.large-action{border-radius:999px;min-width:170px;min-height:62px;font-size:20px}.check-action{color:#fff;background:#176b55;border:0;border-radius:50%;place-items:center;width:76px;height:76px;padding:0;display:inline-grid;box-shadow:0 14px 28px #176b553d}.check-action:hover{background:#115d49}.check-action:focus-visible,.large-action:focus-visible,.quiet-action:focus-visible,.memory-grid button:focus-visible{outline-offset:3px;outline:4px solid #f2c14e8c}.modal-backdrop{z-index:20;background:#15241fa8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.form-dialog{background:#fff;border-radius:7px;gap:17px;width:min(520px,100%);max-height:calc(100vh - 40px);padding:0 24px 24px;display:grid;overflow-y:auto;box-shadow:0 24px 70px #00000040}.form-dialog .section-heading{margin:0 -24px 4px}@media (width<=850px){.login-page{background:#203d36;grid-template-columns:1fr}.login-card{justify-self:center}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:16px;position:static}.sidebar-brand{margin-bottom:16px}.patient-nav{gap:8px;display:flex;overflow-x:auto}.patient-nav button{min-width:210px}.sidebar-actions{grid-template-columns:1fr 1fr;margin-top:14px}.therapist-main{padding:0 20px 38px}.field-grid{grid-template-columns:1fr}.mode-config{grid-template-columns:1fr 1fr}.mode-config>div:first-child,.mode-config .compact-save{grid-column:1/-1}.history-list.grouped,.training-mode-grid{grid-template-columns:1fr}.history-list article{grid-template-columns:1fr 1fr}.exercise-tile{grid-template-columns:180px minmax(0,1fr)}.exercise-header{grid-template-columns:auto 1fr}.exercise-title{text-align:left}.metrics{grid-column:1/-1;justify-content:center}}@media (width<=600px){.login-page{padding:40px 20px}.login-copy h1{font-size:40px}.login-card{padding:28px 22px}.topbar,.section-heading,.patient-header{flex-direction:column;align-items:flex-start}.heading-actions{justify-content:space-between;width:100%}.exercise-tile{grid-template-columns:1fr}.memory-visual{grid-template-rows:repeat(4,36px);grid-template-columns:repeat(4,36px);min-height:170px}.tile-content{padding:28px 22px}.exercise-header{padding:12px}.metrics span{flex:1;min-width:0;padding:7px}.memory-stage{padding:12px}.memory-grid{gap:7px;padding:10px}}
