:root{--paper:#f5f3f0;--surface:#fff;--surface-2:#efede9;--ink:#17120e;--ink-2:#5c544d;--ink-3:#746a5f;--rule:#dfd9d2;--rule-strong:#bdb5ac;--accent:#c42127;--accent-hover:#a31b20;--accent-wash:#faebea;--good:#2e6b4e;--good-wash:#e7f0ea;--warn:#8c6110;--warn-wash:#f6eedc;--suit-red:#d3131a;--suit-black:#17120e;--fs-h1:23px;--fs-h2:17px;--fs-h3:14px;--fs-body:14.5px;--fs-small:13px;--fs-mono:11.5px;--sans:var(--font-sans),ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;--mono:var(--font-mono),ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--rail-w:236px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--shadow-sm:0 1px 2px #0000000f, 0 1px 1px #0000000a;--shadow-md:0 4px 10px #0000001a, 0 2px 4px #0000000f;--shadow-lg:0 12px 28px #0000002e, 0 4px 10px #0000001a;--ease:cubic-bezier(.2,.8,.2,1)}.bidding-layout{gap:var(--s4);grid-template-columns:minmax(0,1fr) 280px;align-items:start;display:grid}.auction-grid{border:1px solid var(--line);border-radius:var(--r2);margin:var(--s3) 0;overflow:hidden}.auction-head,.auction-row{text-align:center;grid-template-columns:repeat(4,1fr);display:grid}.auction-head>*{background:var(--surface-2);padding:.55rem;font-size:.75rem}.auction-row>*{border-top:1px solid var(--line);padding:.6rem}.auction-grid>p{padding:var(--s3)}.bridge-hand{gap:var(--s2);margin:var(--s3) 0;padding:var(--s3);border-radius:var(--r2);background:var(--surface-2);grid-template-columns:auto repeat(4,minmax(0,1fr));align-items:center;display:grid}.bridge-hand>div{gap:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.bidding-box{margin-top:var(--s3)}.bid-special{grid-template-columns:repeat(3,1fr);gap:.4rem;margin-bottom:.5rem;display:grid}.bidding-box button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:.45rem;min-height:42px;font-weight:700}.bidding-box button:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.bidding-box button:disabled{opacity:.28;cursor:not-allowed}.bid-contracts{text-align:center;grid-template-columns:34px repeat(5,1fr);align-items:center;gap:.35rem;display:grid}.bid-contracts>b,.bid-contracts>strong{font-size:.8rem}@media (max-width:850px){.bidding-layout{grid-template-columns:1fr}.bridge-hand{grid-template-columns:1fr 1fr}.bridge-hand>.lab{grid-column:1/-1}.bid-contracts{gap:.2rem}.bidding-box button{min-height:38px;font-size:.78rem}}.auction-drill-list{gap:var(--s3);display:grid}.auction-drill-list button{text-align:left;cursor:pointer;border:1px solid var(--line);border-radius:var(--r2);width:100%;display:block}.auction-drill-list button:hover{border-color:var(--ink);transform:translateY(-1px)}.auction-drill-list h3{margin:.35rem 0}@media (prefers-color-scheme:dark){:root{--paper:#141110;--surface:#1c1917;--surface-2:#232019;--ink:#f2eee9;--ink-2:#a79e95;--ink-3:#a89e93;--rule:#2f2a25;--rule-strong:#443d36;--accent:#e8484e;--accent-hover:#f26a6f;--accent-wash:#2b1614;--good:#5faa84;--good-wash:#16241c;--warn:#c99b45;--warn-wash:#2a2114;--suit-red:#d3131a;--suit-black:#fff}}:root[data-theme=dark]{--paper:#141110;--surface:#1c1917;--surface-2:#232019;--ink:#f2eee9;--ink-2:#a79e95;--ink-3:#948a81;--rule:#2f2a25;--rule-strong:#443d36;--accent:#e8484e;--accent-hover:#f26a6f;--accent-wash:#2b1614;--good:#5faa84;--good-wash:#16241c;--warn:#c99b45;--warn-wash:#2a2114;--suit-red:#d3131a;--suit-black:#fff}:root[data-theme=light]{--paper:#f5f3f0;--surface:#fff;--surface-2:#efede9;--ink:#17120e;--ink-2:#5c544d;--ink-3:#746a5f;--rule:#dfd9d2;--rule-strong:#bdb5ac;--accent:#c42127;--accent-hover:#a31b20;--accent-wash:#faebea;--good:#2e6b4e;--good-wash:#e7f0ea;--warn:#8c6110;--warn-wash:#f6eedc;--suit-red:#d3131a;--suit-black:#17120e}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.55}h1,h2,h3,h4{text-wrap:balance;letter-spacing:-.022em;margin:0;font-weight:700;line-height:1.16}p{margin:0}button{color:inherit;font-family:inherit}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.mono,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.lab{font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.lab-ink,.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.small{font-size:var(--fs-small)}.req{color:var(--accent);margin-left:2px}#app{min-height:100vh;display:flex}#rail{width:var(--rail-w);flex:0 0 var(--rail-w);border-right:1px solid var(--rule);background:var(--surface);height:100vh;transition:width .16s var(--ease), flex-basis .16s var(--ease);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.rail-brand{padding:var(--s4) var(--s5) var(--s3);border-bottom:1px solid var(--rule);align-items:center;gap:8px;display:flex}.rail-brand .lab{margin-top:var(--s1);line-height:1.4;display:block}.brand-lockup{flex:0 auto;align-items:center;min-width:0;display:inline-flex}.brand-logo{width:auto;height:var(--brand-logo-height);max-width:100%;display:block}.brand-logo-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-logo-light{display:none}:root:not([data-theme=light]) .brand-logo-dark{display:block}}:root[data-theme=dark] .brand-logo-light{display:none}:root[data-theme=dark] .brand-logo-dark,:root[data-theme=light] .brand-logo-light{display:block}:root[data-theme=light] .brand-logo-dark{display:none}.rail-collapse-btn{border:1px solid var(--rule-strong);background:var(--surface);width:22px;height:22px;color:var(--ink-2);cursor:pointer;border-radius:3px;flex:none;justify-content:center;align-self:flex-start;align-items:center;margin-left:auto;padding:0;font-size:15px;line-height:1;display:flex}.rail-collapse-btn:hover{background:var(--surface-2);color:var(--ink)}#rail.rail-collapsed{border-right:none;flex:0 0 0;width:0}#rail.rail-collapsed>*{display:none}.rail-expand-btn{z-index:15;border:1px solid var(--rule-strong);background:var(--surface);width:22px;height:22px;color:var(--ink-2);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:flex;position:fixed;top:6px;left:6px}.rail-expand-btn:hover{background:var(--surface-2);color:var(--ink)}@media (max-width:860px){.rail-collapse-btn,.rail-expand-btn{display:none}}.rail-group{padding:var(--s4) var(--s3) var(--s3);border-bottom:1px solid var(--rule)}.rail-group>.lab{padding:0 var(--s3) var(--s2);display:block}.rail-link{align-items:center;gap:var(--s2);padding:6px var(--s3);cursor:pointer;color:var(--ink-2);font-size:var(--fs-small);text-align:left;width:100%;font-weight:500;font-family:var(--sans);transition:background-color .12s var(--ease), color .12s var(--ease);background:0 0;border:none;border-radius:2px;line-height:1.4;display:flex}.rail-link:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.rail-link[aria-current=true]{color:var(--ink);background:var(--accent-wash);font-weight:700}.rail-link[aria-current=true] .tick{background:var(--accent)}.tick{background:0 0;border-radius:1px;flex:0 0 3px;width:3px;height:13px}.rail-link .pill{font-family:var(--mono);background:var(--accent);color:#fff;border-radius:8px;margin-left:auto;padding:0 6px;font-size:10px;line-height:15px}.rail-theme{padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule)}.role-btn{align-items:baseline;gap:var(--s2);text-align:left;width:100%;padding:6px var(--s3);cursor:pointer;font-family:var(--sans);font-size:var(--fs-small);color:var(--ink-2);background:0 0;border:none;border-radius:2px;display:flex}.role-btn:hover{background:var(--surface-2)}.role-btn[aria-pressed=true]{background:var(--ink);color:var(--paper)}.role-btn[aria-pressed=true] .rsub{color:var(--paper);opacity:.62}.role-btn .rname{font-weight:600}.rsub{font-family:var(--mono);letter-spacing:.05em;color:var(--ink-3);margin-left:auto;font-size:10px}#stage{flex:1;min-width:0}.stage-inner{width:100%;max-width:1180px;padding:var(--s5) var(--s6) var(--s5)}.screen{display:none}.screen.on{animation:.2s both fade;display:block}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.phead{border-bottom:2px solid var(--ink);padding-bottom:var(--s3);margin-bottom:var(--s5)}.phead .lab{margin-bottom:var(--s2);display:block}.phead h1{font-size:var(--fs-h1)}.phead .sub{margin-top:var(--s2);color:var(--ink-2);max-width:66ch;font-size:var(--fs-small)}.home-hero{gap:var(--s5);border-bottom:1px solid var(--rule-strong);padding-bottom:var(--s4);grid-template-columns:minmax(0,1.45fr) minmax(280px,.7fr);align-items:stretch;display:grid}.home-hero h1{max-width:26ch;margin-top:var(--s1);letter-spacing:-.035em;text-wrap:balance;font-size:clamp(28px,3.6vw,42px);line-height:1.04}.home-hero .sub{max-width:61ch;margin-top:var(--s2);color:var(--ink-2);font-size:16px}.home-actions{margin-top:var(--s3)}.home-instructor-link{margin-top:var(--s4);color:var(--ink-2);font-size:var(--fs-small);font-weight:600;display:inline-block}.home-instructor-link:hover{color:var(--accent)}.home-outcome{padding:var(--s4);color:#fff;border-top:3px solid var(--accent);background:linear-gradient(145deg,#251b17,#111)}.home-outcome .lab{color:#c5bbb1}.home-outcome ol{margin:var(--s4) 0 0;counter-reset:outcome;padding:0;list-style:none}.home-outcome li{padding:0 0 var(--s4) 34px;counter-increment:outcome;gap:2px;display:grid;position:relative}.home-outcome li:before{content:counter(outcome);width:22px;height:22px;font:10px var(--mono);border:1px solid #8f8379;border-radius:50%;place-items:center;display:grid;position:absolute;top:1px;left:0}.home-outcome li:not(:last-child):after{content:"";border-left:1px solid #665b53;position:absolute;top:25px;bottom:3px;left:11px}.home-outcome li:last-child{padding-bottom:0}.home-outcome strong{font-size:15px}.home-outcome span{color:#c5bbb1;font-size:13px}.suit-row{gap:var(--s3);font-size:26px;display:flex}.red-suit{color:var(--suit-red)}.black-suit{color:var(--suit-black)}.home-section{padding:var(--s3) 0 0}.section-heading{justify-content:space-between;gap:var(--s5);margin-bottom:var(--s4);align-items:end;display:flex}.section-heading h2{margin-top:var(--s2);font-size:clamp(22px,2.4vw,28px)}.section-heading>p{max-width:40ch;line-height:1.6}.journey-grid{border-top:2px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.journey-card{padding:var(--s2) var(--s4);min-height:96px}.journey-card+.journey-card{border-left:1px solid var(--rule)}.journey-number{font-family:var(--mono);color:var(--accent);margin-bottom:var(--s2);display:block}.journey-card h3{margin-bottom:var(--s1);font-size:15px}.home-bridge-intro{gap:var(--s5);margin-top:var(--s2);padding:var(--s5) 0;border-top:2px solid var(--ink);grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);display:grid}.home-bridge-copy h2{max-width:25ch;margin:var(--s2) 0 var(--s3);text-wrap:balance;font-size:clamp(24px,2.7vw,34px)}.home-bridge-copy p{max-width:61ch;color:var(--ink-2);margin-bottom:var(--s3);text-align:justify;text-justify:inter-word;line-height:1.65}.home-bridge-copy .btn{margin-top:var(--s2)}.home-bridge-glance{padding:var(--s4);border:1px solid var(--rule-strong);background:var(--surface)}.home-suit-grid{margin-top:var(--s3);border:1px solid var(--rule);grid-template-columns:repeat(4,1fr);display:grid}.home-suit-grid>div{padding:var(--s3) var(--s2);justify-items:center;gap:2px;display:grid}.home-suit-grid>div+div{border-left:1px solid var(--rule)}.home-suit-grid b{font-family:var(--sans);font-size:clamp(52px,5vw,62px);font-weight:600;line-height:.9}.home-suit-grid span{font-size:13px;font-weight:700}.home-suit-grid small{color:var(--ink-3);font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase}.home-bridge-facts{margin-top:var(--s3);background:var(--ink);color:var(--paper);grid-template-columns:repeat(3,1fr);display:grid}.home-bridge-facts span{padding:var(--s3);justify-items:center;gap:2px;font-size:12px;display:grid}.home-bridge-facts span+span{border-left:1px solid #4b4541}.home-bridge-facts strong{font:700 24px var(--mono);color:#fff}.home-deal{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--rule)}.home-deal-table{height:230px;margin-top:var(--s2);position:relative}.home-deal-seat{z-index:1;justify-items:center;gap:1px;display:grid;position:absolute}.home-deal-seat b{color:#fff;background:var(--ink);width:30px;height:30px;font:700 13px var(--mono);border-radius:50%;place-items:center;display:grid}.home-deal-seat small{font:9px var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.home-deal-seat.north{top:0;left:50%;transform:translate(-50%)}.home-deal-seat.south{bottom:0;left:50%;transform:translate(-50%)}.home-deal-seat.east{top:50%;right:3px;transform:translateY(-50%)}.home-deal-seat.west{top:50%;left:3px;transform:translateY(-50%)}.home-deal-felt{color:#fff;background:#315d49;border:5px solid #292521;border-radius:34px;place-items:center;display:grid;position:absolute;inset:50px 66px;overflow:hidden;box-shadow:inset 0 0 0 1px #628672,0 5px 12px #1e191429}.home-deal-felt strong{z-index:2;font:700 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;position:relative}.home-deal-felt i{background:var(--accent);border:2px solid #fff;border-radius:3px;width:25px;height:35px;position:absolute}.home-deal-felt i:first-child{top:-9px;left:50%;transform:translate(-50%)}.home-deal-felt i:nth-child(2){top:50%;right:-9px;transform:translateY(-50%)rotate(90deg)}.home-deal-felt i:nth-child(3){bottom:-9px;left:50%;transform:translate(-50%)}.home-deal-felt i:nth-child(4){top:50%;left:-9px;transform:translateY(-50%)rotate(90deg)}.home-deal>p{margin-top:var(--s2);color:var(--ink-2);text-align:center;font-size:12px}.foundations-head{justify-content:space-between;align-items:end;gap:var(--s5);display:flex}.foundation-preview-note{justify-content:space-between;align-items:center;gap:var(--s4);margin:var(--s4) 0;padding:var(--s3) var(--s4);border:1px solid var(--accent);border-left:5px solid var(--accent);background:var(--accent-wash);display:flex}.foundation-preview-note p{margin-top:var(--s1);color:var(--ink-2);font-size:13px}.foundation-preview-note .btn-row{flex:none}.foundation-progress{flex:0 0 250px;width:250px}.foundation-progress .lab{margin-bottom:var(--s2)}.foundation-progress strong{text-align:right;margin-top:var(--s1);font-family:var(--mono);font-size:12px;display:block}.progress-track{background:var(--rule);height:5px;overflow:hidden}.progress-track span{background:var(--good);height:100%;transition:width .25s var(--ease);display:block}.foundations-layout{gap:var(--s5);grid-template-columns:280px minmax(0,1fr);align-items:start;display:grid}.foundation-nav{border-top:1px solid var(--rule-strong)}.foundation-nav-group{border-bottom:1px solid var(--rule)}.foundation-group-toggle{justify-content:space-between;align-items:center;gap:var(--s2);width:100%;padding:var(--s3) var(--s2);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;border:0;display:flex}.foundation-group-toggle:hover,.foundation-group-toggle.active{background:var(--surface-2)}.foundation-group-toggle b,.foundation-group-toggle small{display:block}.foundation-group-toggle small{color:var(--ink-3);margin-top:2px;font-size:11px}.foundation-group-toggle>span:last-child{font:11px var(--mono);color:var(--ink-3)}.foundation-nav-group .foundation-nav-item{padding-left:var(--s4)}.foundation-nav-item{gap:var(--s3);width:100%;padding:var(--s3) var(--s2);border:0;border-bottom:1px solid var(--rule);color:var(--ink-2);text-align:left;font-family:var(--sans);cursor:pointer;background:0 0;display:flex}.foundation-nav-item:hover,.foundation-nav-item.active{color:var(--ink);background:var(--surface-2)}.foundation-nav-item.active{box-shadow:inset 3px 0 var(--accent)}.foundation-index{font-family:var(--mono);color:var(--accent);padding-top:2px;font-size:12px}.foundation-nav-item b,.foundation-nav-item small{display:block}.foundation-nav-item b{font-size:13px}.foundation-nav-item small{color:var(--ink-3);margin-top:2px}.foundation-lesson .panel-b{padding:clamp(24px,5vw,56px)}.foundation-lesson h2{margin-top:var(--s4);font-size:clamp(30px,4vw,48px)}.foundation-summary{color:var(--ink-2);max-width:64ch;margin-top:var(--s3);font-size:18px}.foundation-lesson-map{gap:var(--s2);margin-top:var(--s4);display:flex}.foundation-lesson-map button{padding:var(--s2);border:0;border-bottom:3px solid var(--rule);text-align:center;font:10px var(--mono);text-transform:uppercase;color:var(--ink-3);cursor:pointer;background:0 0;flex:1}.foundation-lesson-map button:hover{color:var(--ink);border-color:var(--rule-strong)}.foundation-lesson-map button.active{border-color:var(--accent);color:var(--ink);font-weight:700}.foundation-source{margin-top:var(--s3);color:var(--ink-3);font-size:12px}.foundation-source summary{cursor:pointer}.foundation-source p{margin-top:var(--s1)}.learning-cue{border-left:3px solid var(--warn);background:var(--warn-wash);padding:var(--s3) var(--s4);margin-top:var(--s5)}.learning-cue p{margin-top:var(--s2);font-weight:600}.knowledge-check{margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--rule)}.knowledge-check h3{margin:var(--s2) 0 var(--s3);font-size:20px}.check-options{gap:var(--s2);grid-template-columns:repeat(3,1fr);display:grid}.check-options button{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);cursor:pointer;font:600 var(--fs-small) var(--sans);padding:12px}.check-options button:hover{border-color:var(--accent)}.check-options button.correct{border-color:var(--good);background:var(--good-wash);color:var(--good)}.check-options button.incorrect{border-color:var(--accent);background:var(--accent-wash);color:var(--accent)}.check-options button.chosen{border-color:var(--ink);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--ink)}.foundation-video{margin:var(--s4) 0 0;padding:0}.foundation-video video{aspect-ratio:16/9;border:1px solid var(--rule);background:#000;border-radius:8px;width:100%;max-width:900px;display:block}.foundation-text{margin-top:var(--s4)}.foundation-text>summary{cursor:pointer;align-items:center;gap:var(--s2);color:var(--ink-2);padding:var(--s2) var(--s3);border:1px solid var(--rule);-webkit-user-select:none;user-select:none;border-radius:6px;font-size:15px;font-weight:600;list-style:none;display:inline-flex}.foundation-text>summary::-webkit-details-marker{display:none}.foundation-text>summary:before{content:"▸";font-size:12px;transition:transform .15s}.foundation-text[open]>summary:before{transform:rotate(90deg)}.foundation-text>summary:hover{border-color:var(--rule-strong);color:var(--ink)}.foundation-text>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.foundation-text-body>:first-child{margin-top:var(--s3)}.foundation-snippets{margin-top:var(--s5);gap:var(--s4);display:grid}.foundation-snippet{border-left:3px solid var(--rule-strong);padding-left:var(--s4)}.foundation-snippet h3{margin:0 0 var(--s2);font-size:16px}.foundation-snippet p{margin:0 0 var(--s2);color:var(--ink-2);max-width:66ch;line-height:1.6}.foundation-glossary .glossary-group{margin-top:var(--s5)}.foundation-glossary .glossary-group h3{margin:0 0 var(--s1);padding-bottom:var(--s1);border-bottom:1px solid var(--rule);font-size:16px}.foundation-glossary .glossary-group>p.small{margin:0 0 var(--s3)}.foundation-glossary dl{gap:var(--s3);margin:0;display:grid}.glossary-entry{gap:var(--s4);grid-template-columns:190px minmax(0,1fr);align-items:baseline;display:grid}.glossary-entry dt{color:var(--ink);font-size:14px;font-weight:700}.glossary-entry dd{color:var(--ink-2);max-width:64ch;margin:0;line-height:1.6}.glossary-see{color:var(--ink-3);font-style:italic}@media (max-width:640px){.glossary-entry{gap:var(--s1);grid-template-columns:1fr}}.foundation-quiz{gap:var(--s4);display:grid}.foundation-quiz-q{gap:var(--s2);display:grid}.foundation-quiz-q.is-unanswered{border-left:3px solid var(--warn);padding-left:var(--s3);margin-left:calc(-1 * var(--s3))}.foundation-quiz-question{margin:0;font-size:15px}.feedback{color:var(--accent);margin-top:var(--s2);font-size:12px;font-weight:600}.feedback.good{color:var(--good)}.interaction-cards{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.interaction-card{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;padding:0;line-height:0}.interaction-card img{border-radius:6px;width:76px;height:auto;display:block}.interaction-card:hover{border-color:var(--accent)}.interaction-card.correct{border-color:var(--good)}.interaction-card.incorrect{border-color:var(--accent)}.interaction-seats,.interaction-targets{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;align-items:center;display:flex}.interaction-you{font:11px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}.interaction-seat,.interaction-target{border:1px solid var(--rule-strong);background:var(--surface);min-width:64px;color:var(--ink);cursor:pointer;font:700 16px var(--sans);border-radius:6px;padding:14px 18px}.interaction-seat:hover,.interaction-target:hover{border-color:var(--accent)}.interaction-seat.correct,.interaction-target.correct{border-color:var(--good);background:var(--good-wash);color:var(--good)}.interaction-seat.incorrect,.interaction-target.incorrect{border-color:var(--accent);background:var(--accent-wash);color:var(--accent)}.foundation-actions{justify-content:space-between;gap:var(--s3);margin-top:var(--s5);display:flex}.foundation-suits{margin-top:var(--s5);border:1px solid var(--rule);grid-template-columns:repeat(4,1fr);display:grid}.foundation-suits>span{text-align:center;padding:var(--s3);font-size:42px}.foundation-suits>span+span{border-left:1px solid var(--rule)}.foundation-suits small{color:var(--ink-3);font:11px var(--mono);text-transform:uppercase;letter-spacing:.08em;display:block}.bridge-table{width:260px;height:230px;margin:var(--s5) auto;border:1px solid var(--rule);background:var(--surface-2);position:relative}.bridge-table>div{border:1px solid var(--rule-strong);background:var(--surface);place-items:center;display:grid;position:absolute;inset:62px}.bridge-table>div small{font:10px var(--mono);color:var(--ink-3);text-transform:uppercase}.seat{font:700 13px var(--mono);color:var(--accent);position:absolute}.seat.north{top:18px;left:50%}.seat.south{bottom:18px;left:50%}.seat.east{top:47%;right:20px}.seat.west{top:47%;left:20px}@media (max-width:900px){.home-hero,.home-bridge-intro,.foundations-layout{grid-template-columns:1fr}.foundation-nav{grid-template-columns:repeat(2,1fr);display:grid}.foundation-progress{flex-basis:200px;width:200px}}@media (max-width:700px){.journey-grid,.check-options{grid-template-columns:1fr}.journey-card+.journey-card{border-left:0;border-top:1px solid var(--rule)}.section-heading,.foundations-head,.foundation-preview-note{flex-direction:column;align-items:start}.home-bridge-copy p{text-align:left}.home-suit-grid{grid-template-columns:repeat(2,1fr)}.home-suit-grid>div:nth-child(3){border-left:0}.home-suit-grid>div:nth-child(n+3){border-top:1px solid var(--rule)}.home-bridge-facts{grid-template-columns:1fr}.home-bridge-facts span+span{border-top:1px solid #4b4541;border-left:0}.foundation-preview-note .btn-row{flex:auto}.foundation-progress{flex-basis:auto;width:100%}.foundation-nav{grid-template-columns:1fr}.foundation-suits>span{padding:var(--s2);font-size:30px}}.assessment-intro{gap:var(--s4);grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);align-items:stretch;display:grid}.assessment-steps{gap:var(--s4);margin-top:var(--s4);display:grid}.assessment-steps>div{gap:var(--s3);align-items:flex-start;display:flex}.assessment-steps b{background:var(--ink);height:30px;color:var(--paper);font:12px var(--mono);border-radius:50%;flex:0 0 30px;place-items:center;display:grid}.assessment-steps strong,.assessment-steps small{display:block}.assessment-steps small{color:var(--ink-3);margin-top:3px}.assessment-start{margin-top:var(--s4)}.deal-status{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--rule);background:var(--surface);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}:root{--seat-n:#e3b341;--seat-e:#e8734a;--seat-s:#5aa9e6;--seat-w:#b58ce6}.seat-legend{gap:var(--s4);margin-bottom:var(--s3);font-size:var(--fs-small);color:var(--ink-2);flex-wrap:wrap;display:flex}.seat-legend span{align-items:center;gap:6px;display:inline-flex}.seat-legend i{border-radius:50%;flex:none;width:11px;height:11px;display:inline-block}.seat-legend .sn i{background:var(--seat-n)}.seat-legend .se i{background:var(--seat-e)}.seat-legend .ss i{background:var(--seat-s)}.seat-legend .sw i{background:var(--seat-w)}.deal-table{box-shadow:var(--shadow-md);color:#fff;background:#164f37;border:6px solid #49352a;flex-direction:column;align-items:center;gap:clamp(10px,2vw,24px);padding:clamp(12px,2.4vw,32px);display:flex}.card-hand.is-stacked{flex-wrap:nowrap;justify-content:center;gap:0;max-width:100%;padding:18px 0 6px;overflow:auto visible}.card-hand.is-stacked .playing-card{background:#fff;flex:none;width:58px}.card-hand.is-stacked .playing-card:not(:first-child){border-left:1px solid #00000059;box-shadow:-1px 0 #ffffff80}.card-hand.is-stacked .playing-card+.playing-card{margin-left:-34px}.card-hand.is-stacked .playing-card[data-suit-start]{margin-left:9px}.card-hand.is-stacked .playing-card{opacity:1}.card-hand.is-stacked .playing-card:disabled{opacity:1;filter:brightness(.93)saturate(.9)}.card-hand.is-stacked .playing-card:hover,.card-hand.is-stacked .playing-card:focus-visible{z-index:8;filter:none;transform:translateY(-20px)scale(1.03);box-shadow:0 8px 16px #00000059}@media (prefers-reduced-motion:reduce){.card-hand.is-stacked .playing-card:hover{transform:none}}.card-hand{justify-content:center;gap:var(--s2);flex-wrap:wrap;max-width:760px;margin:0 auto;display:flex}.bidtable{color:#fff;box-shadow:var(--shadow-md);background:#164f37;border:6px solid #49352a;border-radius:12px;padding:clamp(14px,3vw,26px)}.bidtable-top{justify-content:space-between;gap:var(--s3);font:600 11px/1.3 var(--mono);letter-spacing:.04em;color:#cfe0d6;margin-bottom:var(--s4);align-items:center;display:flex}.bidtable-vul{text-transform:uppercase;border:1px solid #ffffff4d;border-radius:3px;flex:none;padding:2px 7px;font-size:10px}.bidtable-compass{grid-template-rows:auto auto auto;grid-template-columns:1fr 1.1fr 1fr;place-items:center;gap:10px;max-width:520px;margin:0 auto;display:grid}.bt-seat{flex-direction:column;align-items:center;gap:5px;min-width:100px;display:flex}.bt-n{grid-area:1/2}.bt-w{grid-area:2/1}.bt-e{grid-area:2/3}.bt-s{grid-area:3/2}.bt-who{font:600 10px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#a9c3b6;align-items:center;gap:5px;display:flex}.bt-seat.is-you .bt-who{color:#fff}.bt-dealer{background:var(--gold,#b0842e);color:#1c1508;width:15px;height:15px;font:700 9px/1 var(--mono);border-radius:50%;place-items:center;display:grid}.bt-call{text-align:center;min-width:64px;font:700 16px/1 var(--mono);background:#ffffff0f;border:1px solid #ffffff47;border-radius:6px;padding:7px 10px}.bt-call.is-pass{color:#a9c3b6;font-weight:600}.bt-seat.is-you .bt-call{border-color:#ffe08a99}.bt-call.is-turn{color:#ffe08a;background:#ffe08a1a;border-style:dashed;border-color:#ffe08a;animation:1.4s ease-in-out infinite bt-pulse}.bt-seat.is-vul .bt-call{box-shadow:0 0 0 1px var(--suit-red)}@keyframes bt-pulse{50%{box-shadow:0 0 0 4px #ffe08a2e}}@media (prefers-reduced-motion:reduce){.bt-call.is-turn{animation:none}}.bt-history{grid-area:2/2;place-self:center stretch;font-size:12px}.bt-history summary{cursor:pointer;text-align:center;color:#a9c3b6;font:600 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;list-style:none}.bt-history summary::-webkit-details-marker{display:none}.bt-history[open]{background:#00000038;border-radius:8px;padding:8px}.bt-history .auction-grid{border-color:#ffffff2e;margin-top:6px}.bt-history .auction-head,.bt-history .auction-row>*{border-color:#ffffff24}.bt-history .auction-head{color:#cfe0d6;background:#ffffff0f}.bidtable-hand{background:#00000029;border:1px solid #ffffff24;border-radius:8px;gap:3px;max-width:520px;margin:16px auto 0;padding:10px 14px;display:grid}.bidtable-hand .bt-hl{font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#a9c3b6;margin-bottom:4px}.bt-suit{font:700 17px/1.5 var(--mono);align-items:baseline;gap:6px;display:flex}.bt-suit>b{text-align:center;width:1.1rem}.bt-suit.red-suit,.bt-suit.red-suit>b{color:#ff5964}.bt-suit.black-suit,.bt-suit.black-suit>b{color:#fff}.bidtable-below{max-width:520px;margin:14px auto 0}.bidtable-below h2{text-align:center;margin:0 0 var(--s3);font-size:1.05rem}.bidtable-below .bidding-box{background:#fffffff5;border-radius:8px;margin-top:0;padding:10px}.bidtable-below .note{background:var(--surface);color:var(--ink)}@media (max-width:560px){.bt-seat{min-width:72px}.bt-call{min-width:52px;padding:6px 7px;font-size:14px}}.seat-heading{color:#d9e7df;flex-direction:column;align-items:center;gap:7px;display:flex}.seat-heading.pos-bottom{flex-direction:column-reverse}.seat-label{font:12px var(--mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.seat-avatar{width:42px;height:42px;font:700 16px var(--mono);border:2px solid;border-radius:50%;flex:none;place-items:center;transition:box-shadow .2s;display:grid;position:relative}.seat-avatar.n{border-color:var(--seat-n);color:var(--seat-n)}.seat-avatar.e{border-color:var(--seat-e);color:var(--seat-e)}.seat-avatar.s{border-color:var(--seat-s);color:var(--seat-s)}.seat-avatar.w{border-color:var(--seat-w);color:var(--seat-w)}.seat-avatar.on-turn{animation:1.3s ease-in-out infinite turn-pulse;box-shadow:0 0 0 5px #ffffff26}@keyframes turn-pulse{0%,to{box-shadow:0 0 0 3px #ffffff29}50%{box-shadow:0 0 0 7px #ffffff0a}}.table-mid{justify-content:center;align-items:center;gap:var(--s5);width:100%;display:flex}.side-rail{align-items:center;gap:var(--s4);flex:none;display:flex}.side-rail.side-left{flex-direction:row}.side-rail.side-right{flex-direction:row-reverse}.side-hand{align-items:center;gap:var(--s3);flex:none;display:flex}.side-hand.side-left{flex-direction:row}.side-hand.side-right,.side-hand.side-right .side-id{flex-direction:row-reverse}.side-hand-cards{--sc:clamp(38px,4.6vw,52px);flex-direction:column;align-items:center;display:flex}.side-hand-cards .playing-card{width:var(--sc);margin-top:calc(-1.4 * var(--sc) + 30px)}.side-hand-cards .playing-card:first-child{margin-top:calc(-.2 * var(--sc))}.side-hand-cards .playing-card[data-suit-start]{margin-top:calc(-1.4 * var(--sc) + 44px)}.side-hand.side-left .side-hand-cards .playing-card{transform:rotate(90deg)}.side-hand.side-right .side-hand-cards .playing-card{transform:rotate(-90deg)}.side-id{align-items:center;gap:var(--s2);flex:none;display:flex}.side-rail.side-right .side-id{flex-direction:row-reverse}.side-id .side-label{font:12px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#d9e7df;writing-mode:vertical-rl;white-space:nowrap;transform:rotate(180deg)}.side-rail.side-right .side-id .side-label{writing-mode:vertical-lr;transform:none}.facedown-stack{flex-direction:column;align-items:center;display:flex}.facedown{background:repeating-linear-gradient(135deg,#2b4a7a,#2b4a7a 4px,#24406a 4px 8px);border:1px solid #ffffff59;border-radius:6px;width:72px;height:48px;margin-top:-36px;box-shadow:1px 3px 5px #00000040}.facedown:first-child{margin-top:0}.card-hand.is-facedown{gap:0}.facedown-card{aspect-ratio:5/7;background:repeating-linear-gradient(135deg,#2b4a7a,#2b4a7a 4px,#24406a 4px 8px);border:1px solid #ffffff59;border-radius:6px;width:clamp(30px,4vw,46px);margin-left:-12px;box-shadow:1px 2px 4px #00000040}.facedown-card:first-child{margin-left:0}.trick-arena{width:clamp(190px,26vw,320px);height:clamp(190px,26vw,320px);margin:var(--s3) auto;background:#00000014;border:2px solid #ffffff38;border-radius:8px;flex:none;position:relative}.trick-arena .arena-slot{justify-content:center;align-items:center;display:flex;position:absolute}.trick-arena .arena-slot.pos-top{top:18px;left:50%;transform:translate(-50%)}.trick-arena .arena-slot.pos-bottom{bottom:18px;left:50%;transform:translate(-50%)}.trick-arena .arena-slot.pos-right{top:50%;right:18px;transform:translateY(-50%)rotate(-90deg)}.trick-arena .arena-slot.pos-left{top:50%;left:18px;transform:translateY(-50%)rotate(90deg)}.trick-centre-label{color:#9dc2b0;font:12px var(--mono);letter-spacing:.04em;text-transform:uppercase;pointer-events:none;text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.playing-card,.trick-card{background:#fff;border-radius:6px;position:relative;overflow:hidden;box-shadow:1px 2px 2px #0003}.playing-card img,.trick-card img{object-fit:cover;width:100%;height:100%;display:block}.playing-card{aspect-ratio:5/7;cursor:pointer;border:1px solid #d8d5d0;width:clamp(44px,6vw,74px);height:auto;padding:0}.playing-card:disabled{opacity:.48;cursor:not-allowed}.playing-card:not(:disabled):hover{transform:translateY(-5px);box-shadow:0 6px 6px #00000047}.trick-card{border:4px solid;width:72px;height:103px;display:block}.arena-slot.seat-n .trick-card{border-color:var(--seat-n)}.arena-slot.seat-e .trick-card{border-color:var(--seat-e)}.arena-slot.seat-s .trick-card{border-color:var(--seat-s)}.arena-slot.seat-w .trick-card{border-color:var(--seat-w)}.arena-slot.pos-top .trick-card{animation:slide-top .4s var(--ease) both}.arena-slot.pos-bottom .trick-card{animation:slide-bottom .4s var(--ease) both}.arena-slot.pos-right .trick-card{animation:slide-right .4s var(--ease) both}.arena-slot.pos-left .trick-card{animation:slide-left .4s var(--ease) both}@keyframes slide-top{0%{opacity:0;transform:translateY(-60px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-bottom{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-right{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes slide-left{0%{opacity:0;transform:translate(-60px)}to{opacity:1;transform:translate(0)}}.trick-arena.collecting-mine .trick-card{animation:collect-mine .55s var(--ease) forwards}.trick-arena.collecting-theirs .trick-card{animation:collect-theirs .55s var(--ease) forwards}@keyframes collect-mine{to{opacity:0;transform:translateY(140px)scale(.5)}}@keyframes collect-theirs{to{opacity:0;transform:translate(-140px)scale(.5)}}@media (prefers-reduced-motion:reduce){.trick-arena .trick-card,.trick-arena.collecting-mine .trick-card,.trick-arena.collecting-theirs .trick-card,.seat-avatar.on-turn{animation:none}}.arena-column{align-items:center;gap:var(--s2);flex-direction:column;display:flex}.trick-piles{gap:var(--s5);display:flex}.trick-pile{flex-direction:column;align-items:center;gap:4px;display:flex}.trick-pile-cards{height:20px;display:flex}.facedown-sm{background:repeating-linear-gradient(135deg,#2b4a7a,#2b4a7a 3px,#24406a 3px 6px);border:1px solid #ffffff59;border-radius:3px;width:24px;height:20px;margin-left:-14px;box-shadow:1px 2px 3px #00000040}.facedown-sm:first-child{margin-left:0}.trick-pile-count{font:11px var(--mono);letter-spacing:.03em;color:#d9e7df}.trick-pile.mine .trick-pile-count{color:var(--seat-s)}.trick-pile.theirs .trick-pile-count{color:var(--seat-w)}.arena-slot.winner .trick-card{box-shadow:0 0 0 3px #fff,0 0 10px 2px #ffffff80}.placement-hint{margin-top:var(--s3);text-align:center}.card-credit{text-align:center;margin-top:6px;font-size:11px}.card-credit a{color:inherit}.result-grid{gap:var(--s4);grid-template-columns:1fr 1fr;display:grid}.result-score{align-items:baseline;gap:var(--s3);margin-top:var(--s4);padding-bottom:var(--s3);border-bottom:1px solid var(--rule);display:flex}.result-score strong{font:700 32px var(--mono)}.result-score span{color:var(--ink-3);font-size:var(--fs-small)}.learning-result{margin-top:var(--s4);font-weight:600}.concept-list{color:var(--ink-2);font-size:var(--fs-small);margin:var(--s3) 0 var(--s4);padding-left:18px}.placement-result-hero{padding:var(--s5);border-left:3px solid var(--accent);background:var(--accent-wash);margin-bottom:var(--s5)}.placement-result-hero h2{margin:var(--s2) 0;font-size:clamp(28px,5vw,44px)}.placement-result-hero>p{max-width:680px}.placement-strength{align-items:flex-start;gap:var(--s3);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid color-mix(in srgb,var(--accent) 28%,transparent);display:flex}.placement-strength>span{color:var(--accent);font-weight:800}.placement-strength p{margin-top:3px}.placement-next-steps{margin-bottom:var(--s6)}.placement-next-step{align-items:center;gap:var(--s3);padding:var(--s4) 0;border-bottom:1px solid var(--rule);grid-template-columns:30px minmax(0,1fr) auto;display:grid}.placement-next-step>span{font:700 18px var(--mono);color:var(--accent)}.placement-next-step p{margin-top:4px}.placement-evidence{margin-top:var(--s5)}.placement-evidence-head{margin-bottom:var(--s3);align-items:flex-end}.placement-evidence-counts{gap:var(--s2);font-size:var(--fs-small);color:var(--ink-3);flex-wrap:wrap;display:flex}.placement-evidence-counts span+span:before{content:"·";margin-right:var(--s2)}.placement-evidence-list{border-top:1px solid var(--rule)}.placement-evidence-list details{border-bottom:1px solid var(--rule)}.placement-evidence-list summary,.placement-analysis>summary{justify-content:space-between;align-items:center;gap:var(--s3);cursor:pointer;padding:var(--s3) 0;font-weight:700;list-style-position:inside;display:flex}.placement-evidence-list summary>span:first-child{min-width:0}.placement-evidence-body{padding:0 var(--s4) var(--s4)}.placement-evidence-body p+p{margin-top:var(--s2)}.placement-method summary{color:var(--ink-3);font-weight:600}.placement-analysis{margin-top:var(--s4);border-bottom:1px solid var(--rule)}.placement-analysis>summary{font-size:var(--fs-h3);justify-content:flex-start}.placement-analysis>.panel{margin-bottom:var(--s4);margin-top:0!important}.placement-result-actions{margin-top:var(--s5)}@media (max-width:640px){.placement-result-hero{padding:var(--s4)}.placement-next-step{grid-template-columns:26px minmax(0,1fr)}.placement-next-step .btn{grid-column:2;justify-self:start}.placement-evidence-head{flex-direction:column;align-items:flex-start}.placement-evidence-counts{margin-top:var(--s2)}}.analysis-summary{align-items:baseline;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.analysis-summary strong{font:700 26px var(--mono)}.analysis-row{gap:var(--s2);padding:var(--s3);border:1px solid var(--rule);background:var(--surface);margin-top:var(--s2);border-radius:6px;flex-direction:column;display:flex}.analysis-row.optimal{border-left:3px solid var(--good)}.analysis-row.suboptimal{border-left:3px solid var(--accent)}.analysis-row .analysis-cards{align-items:center;gap:var(--s2);flex-wrap:wrap;flex:auto;min-width:0;display:flex}.analysis-row .analysis-cards img{border-radius:3px;width:30px;height:auto;box-shadow:1px 1px 2px #0003}.analysis-row .analysis-verdict{font-size:var(--fs-small);flex:none}.analysis-row.optimal .analysis-verdict{color:var(--good)}.analysis-row.suboptimal .analysis-verdict{color:var(--accent)}.analysis-better{align-items:center;gap:4px;display:flex}.analysis-commentary{color:var(--ink-2);line-height:1.5}.progress-bar{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .15s linear;position:relative;overflow:hidden}.progress-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff59,#0000);animation:1.3s ease-in-out infinite progress-shimmer;position:absolute;inset:0}@keyframes progress-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.progress-bar-fill:after{animation:none}}.replay-contract{margin-bottom:var(--s3)}.replay-tally{margin-bottom:var(--s2);justify-content:space-between;align-items:baseline;display:flex}.trick-nav{margin-bottom:var(--s2);flex-wrap:wrap;gap:5px;display:flex}.trick-chip{border:1px solid var(--rule);background:var(--surface);width:28px;height:28px;color:var(--ink-2);font:11px var(--mono);cursor:pointer;border-radius:50%;place-items:center;transition:background .15s,color .15s;display:grid}.trick-chip:hover{border-color:var(--ink-3)}.trick-chip.mistake{border-color:var(--accent);color:var(--accent);font-weight:700}.trick-chip.selected{background:var(--ink);border-color:var(--ink);color:var(--paper)}.trick-chip.selected.mistake{background:var(--accent);border-color:var(--accent)}.replay-controls{margin-bottom:var(--s3)}.playing-card.static{cursor:default}.playing-card.static:hover{transform:none;box-shadow:1px 2px 2px #0003}.history-stats{gap:var(--s3);margin-bottom:var(--s4);grid-template-columns:repeat(4,1fr);display:grid}.stat-card{padding:var(--s3);border:1px solid var(--rule);background:var(--surface);border-radius:3px;flex-direction:column;gap:4px;display:flex}.stat-value{font:700 26px var(--mono)}.stat-label{font-size:var(--fs-small);color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}.stat-trend.improving{color:var(--good)}.stat-trend.declining{color:var(--accent)}@media (max-width:640px){.history-stats{grid-template-columns:1fr 1fr}}.history-list{gap:var(--s3);display:grid}.history-row{color:inherit;text-decoration:none;transition:border-color .15s;display:block}.history-row:hover{border-color:var(--ink-3)}.history-row-top{margin-bottom:var(--s2);justify-content:space-between;align-items:center;display:flex}.history-row-mid{justify-content:space-between;align-items:baseline;gap:var(--s3);display:flex}.history-row-mid strong{font-size:var(--fs-h3)}.history-row-arrow{color:var(--ink-3);margin-left:auto;font-size:18px}.history-row:hover .history-row-arrow{color:var(--accent)}@media (max-width:760px){.assessment-intro,.result-grid{grid-template-columns:1fr}.deal-table{padding:var(--s4) var(--s3);gap:var(--s3)}.table-mid{gap:var(--s3);flex-direction:column}.side-rail,.side-rail.side-right,.side-id,.side-rail.side-right .side-id{flex-direction:row}.side-id .side-label,.side-rail.side-right .side-id .side-label{writing-mode:horizontal-tb;font-size:10px;transform:none}.seat-avatar{width:26px;height:26px;font-size:11px}.facedown{width:15px;height:21px;margin-top:-16px}.playing-card{width:42px}.trick-arena{width:150px;height:150px;margin:var(--s2) auto}.trick-arena .arena-slot.pos-top{top:6px}.trick-arena .arena-slot.pos-bottom{bottom:6px}.trick-arena .arena-slot.pos-right{right:6px}.trick-arena .arena-slot.pos-left{left:6px}.trick-card{width:38px;height:54px}@keyframes slide-top{0%{opacity:0;transform:translateY(-22px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-bottom{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-right{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}@keyframes slide-left{0%{opacity:0;transform:translate(-22px)}to{opacity:1;transform:translate(0)}}@keyframes collect-mine{to{opacity:0;transform:translateY(50px)scale(.5)}}@keyframes collect-theirs{to{opacity:0;transform:translate(-50px)scale(.5)}}.trick-piles{gap:var(--s3)}.facedown-sm{width:16px;height:13px;margin-left:-9px}}.lesson-layout{gap:var(--s5);grid-template-columns:300px minmax(0,1fr);align-items:start;display:grid}.lesson-sidebar{gap:var(--s5);top:var(--s3);flex-direction:column;display:flex;position:sticky}.lesson-workflow{margin-bottom:var(--s5);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,1fr);display:grid}.lesson-workflow button{justify-content:center;align-items:center;gap:var(--s2);padding:var(--s3);color:var(--ink-3);font:700 var(--fs-small) var(--sans);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;display:flex}.lesson-workflow button span{border:1px solid var(--rule-strong);width:24px;height:24px;font:10px var(--mono);border-radius:50%;place-items:center;display:grid}.lesson-workflow button.active{border-bottom-color:var(--accent);color:var(--ink)}.lesson-workflow button.active span{background:var(--accent);border-color:var(--accent);color:#fff}.lesson-workflow button:disabled{cursor:not-allowed;opacity:.45}.lesson-builder[data-step=review] .lesson-create,.lesson-builder[data-step=assign] .lesson-layout,.lesson-builder[data-step=followup] .lesson-layout,.lesson-builder[data-step=create] .lesson-assign,.lesson-builder[data-step=review] .lesson-assign,.lesson-builder[data-step=assign] .lesson-followup-dashboard,.lesson-builder[data-step=followup] .lesson-assign>.panel-b>:not(.lesson-followup-dashboard){display:none}.lesson-followup-dashboard>h2{margin-top:var(--s2)}.draft-list>.lab{margin-bottom:var(--s2);display:block}.draft-row{text-align:left;width:100%;padding:var(--s3);border:0;border-top:1px solid var(--rule);color:var(--ink);cursor:pointer;font-family:var(--sans);background:0 0;display:block}.draft-row:last-child{border-bottom:1px solid var(--rule)}.draft-row:hover,.draft-row.active{background:var(--surface-2)}.draft-row.active{box-shadow:inset 3px 0 var(--accent)}.draft-row b,.draft-row span,.draft-row small{display:block}.draft-row b{font-size:13px}.draft-row span{color:var(--ink-3);margin-top:4px;font-size:11px}.draft-row small{text-transform:capitalize;color:var(--accent);margin-top:3px}.lesson-empty{border:1px dashed var(--rule-strong);background:var(--surface);flex-direction:column;justify-content:center;min-height:430px;padding:clamp(30px,7vw,80px);display:flex}.lesson-empty h2{max-width:18ch;margin:var(--s3) 0;font-size:38px}.lesson-empty p{max-width:58ch}.lesson-toolbar{justify-content:space-between;align-items:end;gap:var(--s3) var(--s4);padding-bottom:var(--s3);border-bottom:2px solid var(--ink);flex-wrap:wrap;display:flex}.lesson-toolbar>:first-child{flex:26rem;min-width:0}.lesson-toolbar>.btn-row{flex:16rem;justify-content:flex-end;min-width:0}.lesson-title{text-overflow:ellipsis;width:100%;font:700 clamp(24px,2.8vw,34px) var(--sans);letter-spacing:-.03em;color:var(--ink);background:0 0;border:0;padding:5px 0;display:block;overflow:hidden}.lesson-meta{gap:var(--s2);margin:var(--s3) 0 var(--s4);flex-wrap:wrap;display:flex}.lesson-meta span{border:1px solid var(--rule);font:10px var(--mono);text-transform:uppercase;color:var(--ink-3);padding:3px 8px}.lesson-section{margin-bottom:var(--s3)}.lesson-section .panel-h{grid-template-columns:28px 1fr 76px;display:grid}.lesson-assignment .panel-b>*+*{margin-top:var(--s4)}.lesson-assignment .lesson-sections{gap:var(--s5);display:grid}.lesson-assignment .lesson-section{padding-top:var(--s4);border-top:1px solid var(--rule);margin-bottom:0}.lesson-assignment .lesson-sections>.lesson-section:first-child{border-top:0;padding-top:0}.lesson-assignment .lesson-section>*+*{margin-top:var(--s3)}.lesson-assignment p:not([class]){color:var(--ink-2);line-height:1.65}.lesson-order{font:700 12px var(--mono);color:var(--accent)}.lesson-section .panel-h>input{font:700 18px var(--sans);color:var(--ink);background:0 0;border:0;width:100%}.lesson-section .panel-h label{align-items:center;gap:4px;display:flex}.lesson-section .panel-h label input{border:1px solid var(--rule);background:var(--surface);width:42px;color:var(--ink);padding:4px}.lesson-goal{padding:var(--s3) var(--s4);border-left:3px solid var(--accent);background:var(--accent-wash)}.lesson-goal p{margin-top:var(--s1);font-size:var(--fs-h3);font-weight:650;line-height:1.45}.lesson-review h3{margin-top:var(--s1)}.lesson-review-cards{gap:var(--s3);margin-top:var(--s3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lesson-review-card{padding:var(--s3);border:1px solid var(--rule);background:var(--surface-2)}.lesson-review-number{background:var(--accent);color:#fff;width:28px;height:28px;font:700 12px var(--mono);border-radius:50%;place-items:center;display:grid}.lesson-review-card h4{margin-top:var(--s3)}.lesson-review-card p{margin-top:var(--s2);line-height:1.55}.lesson-practice{padding:var(--s4);border:2px solid var(--ink);background:var(--surface)}.lesson-practice-list{gap:var(--s3);margin-top:var(--s2);display:grid}.lesson-practice-card+.lesson-practice-card{padding-top:var(--s3);border-top:1px solid var(--rule)}.lesson-practice-card h3{margin-top:var(--s1)}.lesson-practice-card>*+*{margin-top:var(--s3)}.lesson-detail{border:1px solid var(--rule)}.lesson-detail summary{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);cursor:pointer;background:var(--surface-2);list-style:none;display:flex}.lesson-detail summary::-webkit-details-marker{display:none}.lesson-detail summary span:first-child{gap:2px;display:grid}.lesson-detail summary small{color:var(--ink-3);font-weight:400}.lesson-detail summary span:last-child{font-size:24px;line-height:1;transition:transform .18s}.lesson-detail[open] summary span:last-child{transform:rotate(45deg)}.lesson-detail-body{padding:var(--s4);border-top:1px solid var(--rule)}.lesson-detail-body>*+*{margin-top:var(--s4)}.lesson-fields{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.lesson-fields label span{margin-bottom:var(--s1);display:block}.lesson-fields textarea{resize:vertical;border:1px solid var(--rule);background:var(--surface-2);width:100%;min-height:92px;color:var(--ink);font:var(--fs-small) var(--sans);padding:9px;line-height:1.5}.lesson-fields .wide{grid-column:1/3}.source-line{color:var(--ink-3);font:10px var(--mono);grid-column:1/3}.lesson-followup{margin-top:var(--s4)}.lesson-followup label{gap:var(--s2);margin-top:var(--s2);grid-template-columns:24px 1fr;align-items:center;display:grid}.lesson-followup label span{background:var(--surface-2);width:22px;height:22px;font:10px var(--mono);border-radius:50%;place-items:center;display:grid}.lesson-followup input{border:1px solid var(--rule);background:var(--surface);width:100%;color:var(--ink);padding:8px}.practice-picker{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--rule)}.practice-picker article{margin-top:var(--s3);padding:var(--s3);border:1px solid var(--rule);background:var(--surface-2)}.practice-picker .field{margin-top:var(--s3);display:block}.practice-picker .field span{background:0 0;border-radius:0;width:auto;height:auto;display:block}.practice-picker textarea{width:100%;margin-top:var(--s1);border:1px solid var(--rule);background:var(--surface);color:var(--ink);padding:8px}.outcome-panel{gap:var(--s4);margin-top:var(--s4);padding:var(--s4);border:1px solid var(--rule);background:var(--surface-2);grid-template-columns:1fr 1.4fr;align-items:center;display:grid}.outcome-panel h3{margin-top:var(--s1)}.outcome-actions{gap:var(--s2);grid-template-columns:1fr 1fr;display:grid}.outcome-actions button{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;padding:9px}.outcome-actions button:hover,.outcome-actions button.selected{border-color:var(--good);background:var(--good-wash);color:var(--good)}.toast-message{right:var(--s4);bottom:var(--s4);z-index:30;padding:var(--s3) var(--s4);background:var(--ink);color:var(--paper);box-shadow:var(--shadow-md);font-size:var(--fs-small);position:fixed}@media (max-width:900px){.lesson-layout{grid-template-columns:1fr}.lesson-sidebar{position:static}.outcome-panel{grid-template-columns:1fr}}@media (max-width:800px){.lesson-review-cards{grid-template-columns:1fr}}@media (max-width:650px){.lesson-toolbar{align-items:start}.lesson-fields{grid-template-columns:1fr}.lesson-fields .wide,.source-line{grid-column:1}.outcome-actions{grid-template-columns:1fr}.lesson-practice,.lesson-detail-body{padding:var(--s3)}}.animation-studio{gap:var(--s5);grid-template-columns:minmax(300px,.75fr) minmax(420px,1.25fr);align-items:start;display:grid}.animation-editor{gap:var(--s3);flex-direction:column;display:flex}.animation-player{border:1px solid var(--rule-strong);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:3px;overflow:hidden}.animation-progress{padding:var(--s2);background:var(--surface-2);gap:4px;display:flex}.animation-progress button{background:var(--rule-strong);cursor:pointer;border:0;flex:1;height:4px}.animation-progress button.seen{background:var(--ink-3)}.animation-progress button.active{background:var(--accent)}.animation-stage{text-align:center;justify-content:center;align-items:center;gap:var(--s3);min-height:300px;animation:animation-scene-in .38s var(--ease);flex-direction:column;padding:clamp(20px,4vw,40px);display:flex}.animation-stage h3{text-wrap:balance;max-width:24ch;margin:0;font-size:clamp(20px,2.8vw,28px);line-height:1.2}.animation-stage>p{max-width:52ch;color:var(--ink-2);font-size:var(--fs-small);margin:0}.animation-stage aside{width:min(520px,100%);margin-top:var(--s1);padding:var(--s3);border-left:3px solid var(--accent);background:var(--accent-wash);text-align:left;border-radius:0 3px 3px 0}.animation-stage aside p{margin-top:var(--s1);font-size:var(--fs-small)}.animation-controls{justify-content:center;gap:var(--s2);padding:var(--s3);border-top:1px solid var(--rule);background:var(--surface-2);display:flex}.animation-symbol{font:700 16px var(--mono);letter-spacing:.16em;color:var(--ink-2)}.animation-symbol.opening{word-spacing:10px;font-size:26px}.animation-table-wrap{align-items:center;gap:var(--s3);flex-direction:column;display:flex}.animation-table{grid-template-rows:42px 60px 42px;grid-template-columns:52px 84px 52px;place-items:center;display:grid}.animation-table span{border:1px solid var(--rule-strong);width:36px;height:36px;font:700 13px var(--mono);color:var(--ink-2);background:var(--surface-2);border-radius:50%;place-items:center;display:grid}.animation-table span:first-child{grid-column:2}.animation-table span:nth-child(2){grid-area:2/1}.animation-table i{background:var(--good-wash);border:1px solid var(--good);border-radius:3px;grid-area:2/2;width:78px;height:52px}.animation-table span:nth-child(4){grid-area:2/3}.animation-table span:nth-child(5){grid-area:3/2}.animation-table span.focus{border-color:var(--accent);background:var(--accent);color:#fff;animation:1.2s infinite animation-focus}.animation-notes{gap:6px;width:min(440px,100%);margin:0;display:grid}.animation-note{gap:var(--s3);border:1px solid var(--rule);background:var(--surface-2);text-align:left;border-radius:3px;grid-template-columns:auto 1fr;align-items:baseline;padding:8px 12px;display:grid}.animation-note.is-plain{grid-template-columns:1fr}.animation-note dt{font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);white-space:nowrap}.animation-note dd{font:600 var(--fs-small)/1.45 var(--sans);color:var(--ink);font-variant-numeric:tabular-nums;margin:0}.animation-cards{justify-content:center;gap:var(--s2);flex-wrap:wrap;display:flex}.animation-cards span{border:1px solid var(--rule-strong);color:#181818;min-width:55px;height:78px;box-shadow:var(--shadow-sm);background:#fff;border-radius:4px;place-items:center;padding:5px;font:700 20px Georgia,serif;animation:.36s both animation-card-in;display:grid}.animation-cards span.is-face{min-width:0;height:auto;box-shadow:none;background:0 0;border:0;padding:0}.animation-cards span.is-face img{width:66px;height:auto;box-shadow:var(--shadow-sm);border-radius:5px;display:block}.animation-auction-grid{width:min(420px,100%)}.auction-head,.auction-calls{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.auction-head span{font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);text-align:center;padding-bottom:var(--s1)}.auction-calls .red-suit{color:var(--suit-red)}.auction-calls span{min-height:44px;padding:var(--s2);border:1px solid var(--rule-strong);background:var(--surface-2);font:700 17px var(--mono);place-items:center;animation:.36s both animation-card-in;display:grid}.animation-prompt{margin-top:0}.animation-reveal{max-width:540px;margin-top:var(--s3);padding:var(--s3);background:var(--good-wash);border:1px solid var(--good);text-align:left}.animation-reveal p{font-size:var(--fs-small);margin-top:var(--s1)}.animation-scene-editor{padding:var(--s3);border:1px solid var(--rule);background:var(--surface)}.animation-scene-editor header{justify-content:space-between;gap:var(--s2);margin-bottom:var(--s2);align-items:center;display:flex}.animation-scene-editor textarea,.animation-scene-editor input,.animation-scene-editor select{border:1px solid var(--rule);background:var(--surface-2);width:100%;color:var(--ink);margin-top:4px;padding:8px}.animation-scene-editor label{margin-top:var(--s2);display:block}@keyframes animation-scene-in{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:none}}@keyframes animation-card-in{0%{opacity:0;transform:translateY(18px)rotate(-2deg)}to{opacity:1;transform:none}}@keyframes animation-focus{50%{box-shadow:0 0 0 7px var(--accent-wash)}}@media (max-width:950px){.animation-studio{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.animation-stage,.animation-cards span,.auction-calls span,.animation-table span.focus{animation:none}}.card-palette{margin-top:var(--s2);padding:var(--s2);border:1px solid var(--rule);background:var(--surface-2);border-radius:3px;gap:4px;display:grid}.card-palette-row{grid-template-columns:1.4rem repeat(13,1fr);align-items:center;gap:3px;display:grid}.card-palette-suit{text-align:center;font:700 15px Georgia,serif}.card-palette-suit.red{color:#c0392b}.card-palette-btn{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);font:600 12px var(--mono);cursor:pointer;border-radius:2px;padding:5px 0}.card-palette-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.card-palette-btn.red{color:#c0392b}.card-palette-btn:disabled{opacity:.28;cursor:default}.scene-card-palette{margin-top:var(--s2)}.scene-card-palette summary{cursor:pointer;font:600 var(--fs-small) var(--sans);color:var(--accent)}.brief-help{margin-top:var(--s3)}.brief-help summary{cursor:pointer;font:600 var(--fs-small) var(--sans);color:var(--accent)}.brief-fields{margin:var(--s2) 0 0;font-size:var(--fs-small);gap:4px;padding:0;list-style:none;display:grid}.brief-sample{margin-top:var(--s2);gap:var(--s2);justify-items:start;display:grid}.brief-sample pre{width:100%;padding:var(--s2) var(--s3);background:var(--surface-2);border:1px solid var(--rule);font:var(--fs-small)/1.5 var(--mono);white-space:pre-wrap;border-radius:3px;margin:0}.polish-box{gap:var(--s2);margin:var(--s3) 0;display:grid}.polish-box textarea{width:100%;min-height:8rem;line-height:1.5}.polish-box .btn{justify-self:start}.deal-editor{gap:var(--s3);margin-top:var(--s2);display:grid}.deal-editor-seatbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.deal-editor-hands{gap:var(--s2);grid-template-columns:repeat(2,1fr);display:grid}.deal-editor-hand{padding:var(--s2);border:1px solid var(--rule);background:var(--surface)}.deal-editor-hand.ok{border-color:var(--good)}.deal-editor-chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.deal-editor-chip{border:1px solid var(--rule-strong);background:var(--surface-2);color:var(--ink);font:600 12px var(--mono);cursor:pointer;border-radius:2px;padding:3px 6px}.deal-editor-chip:hover{border-color:var(--warn);color:var(--warn)}.deal-editor-contract{gap:var(--s3);flex-wrap:wrap;align-items:flex-end;display:flex}.deal-editor-contract label{gap:3px;display:grid}.deal-editor-contract select{border:1px solid var(--rule);background:var(--surface-2);color:var(--ink);padding:6px}.deal-editor-checkpoints{gap:var(--s2);padding-top:var(--s2);border-top:1px solid var(--rule);display:grid}.deal-editor-checkpoint{grid-template-columns:auto 1fr 1fr auto;align-items:end;gap:6px;display:grid}.deal-editor-checkpoint label{gap:3px;display:grid}.deal-editor-checkpoint input,.deal-editor-checkpoint select{border:1px solid var(--rule);background:var(--surface-2);color:var(--ink);padding:6px}.dealwalk-playback{width:100%;margin-top:var(--s3);border:1px solid var(--rule-strong);background:var(--surface)}.dealwalk-playback-body{padding:var(--s3);gap:var(--s3);justify-items:center;display:grid}.dealwalk-contract{font:var(--fs-small)/1.5 var(--sans);color:var(--ink-2);text-align:center}.dealwalk-table{gap:var(--s2);grid-template-rows:auto auto auto;grid-template-columns:1fr auto 1fr;place-items:center;width:100%;max-width:640px;display:grid}.dealwalk-slot-n{grid-area:1/2}.dealwalk-slot-w{grid-area:2/1}.dealwalk-trick{grid-area:2/2}.dealwalk-slot-e{grid-area:2/3}.dealwalk-slot-s{grid-area:3/2}.dealwalk-hand{border:1px solid var(--rule);background:var(--surface-2);gap:2px;min-width:132px;padding:6px;display:grid}.dealwalk-hand.is-dummy{border-color:var(--accent)}.dealwalk-hand-label{font:11px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.dealwalk-hand-suit{flex-wrap:wrap;gap:2px;min-height:22px;display:flex}.dealwalk-card{width:26px;height:auto;box-shadow:var(--shadow-sm);border-radius:2px}.dealwalk-card.faded{opacity:.22}.dealwalk-chip{font:600 11px var(--mono);border:1px solid var(--rule-strong);background:var(--surface);padding:1px 4px}.dealwalk-void{font:600 11px var(--mono);color:var(--ink-3)}.dealwalk-trick{grid-template-columns:repeat(2,1fr);place-content:center;gap:4px;min-width:120px;min-height:120px;display:grid}.dealwalk-trick-card{justify-items:center;gap:2px;display:grid}.dealwalk-trick-card img{width:40px;height:auto;box-shadow:var(--shadow-sm);border-radius:3px}.dealwalk-trick-seat{font:700 10px var(--mono);color:var(--ink-3)}.dealwalk-trick-card.wins img{outline:2px solid var(--good);outline-offset:1px}.dealwalk-checkpoint-q{text-align:left;max-width:540px;font-size:var(--fs-small)}.dealwalk-outcome{font:600 var(--fs-small) var(--sans);color:var(--ink)}@media (max-width:640px){.deal-editor-hands,.deal-editor-checkpoint{grid-template-columns:1fr}.card-palette-row{grid-template-columns:1.2rem repeat(13,1fr)}.card-palette-btn{font-size:10px}}.improve-layout{gap:var(--s4);display:grid}.improve-headline{gap:var(--s4);flex-wrap:wrap;align-items:flex-end;display:flex}.improve-stat{flex-direction:column;display:flex}.improve-stat b{font:700 1.8rem var(--sans);font-variant-numeric:tabular-nums;color:var(--ink);line-height:1}.improve-stat span{font-size:var(--fs-small);color:var(--ink-3);margin-top:.2rem}.improve-pending{flex-basis:100%;margin:0}.improve-focus{gap:var(--s2);display:grid}.improve-focus-card{color:inherit;border-left:3px solid var(--accent);text-decoration:none;display:block}.improve-focus-card:hover{border-color:var(--ink);transform:translateY(-1px)}.improve-focus-card h3{margin:0 0 .3rem}.improve-trend{height:72px;margin:var(--s2) 0;align-items:flex-end;gap:6px;display:flex}.improve-trend-bar{background:var(--surface-2);border-radius:2px;flex:1;align-items:flex-end;max-width:34px;height:100%;display:flex}.improve-trend-bar span{background:var(--accent);border-radius:2px;width:100%;min-height:3px;display:block}.improve-generated{border-left:3px solid var(--accent)}.improve-generated h3{margin:.3rem 0}.improve-generated .btn{margin-top:var(--s2)}.improve-drills{gap:var(--s2);display:grid}.improve-drill{border-left:3px solid var(--good)}.improve-drill h3{margin:0 0 .3rem}.improve-drill .btn{margin-top:var(--s2)}.improve-themes{margin:var(--s2) 0 0;gap:var(--s3);padding:0;list-style:none;display:grid}.improve-themes li{padding-bottom:var(--s3);border-bottom:1px solid var(--rule)}.improve-themes li:last-child{border-bottom:0;padding-bottom:0}.improve-theme-head{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.improve-theme-stats{font-variant-numeric:tabular-nums;margin-top:.25rem}.improve-theme-progress{align-items:center;gap:var(--s2);margin-top:.4rem;display:flex}.improve-theme-spark{flex:none;align-items:flex-end;gap:2px;height:24px;display:flex}.improve-theme-spark span{background:var(--accent);border-radius:1px;width:6px;min-height:2px;display:block}.improve-theme-spark span.is-clean{background:var(--good);opacity:.55;min-height:2px}.improve-theme-dir{font-variant-numeric:tabular-nums}.improve-theme-dir.dir-improving{color:var(--good)}.improve-theme-dir.dir-slipping{color:var(--accent)}.improve-bidding{margin:var(--s2) 0;gap:.4rem;padding:0;list-style:none;display:grid}.improve-bidding li{justify-content:space-between;gap:var(--s2);border-bottom:1px solid var(--rule);padding-bottom:.4rem;display:flex}.improve-bidding li:last-child{border-bottom:0}.improve-priority{border:2px solid var(--ink)}.improve-priority h2{margin:var(--s2) 0}.improve-priority>p{max-width:72ch;color:var(--ink-2)}.improve-priority>.btn{margin-top:var(--s3)}.improve-reminder{gap:var(--s1);max-width:72ch;margin-top:var(--s3);padding:var(--s3);border-left:3px solid var(--good);background:var(--good-wash);font-size:var(--fs-small);display:grid}.improve-secondary>div{gap:var(--s3);margin-top:var(--s2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.improve-pattern,.improve-detail{border:1px solid var(--rule);background:var(--surface)}.improve-pattern summary,.improve-detail summary{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);cursor:pointer;background:var(--surface-2);list-style:none;display:flex}.improve-pattern summary::-webkit-details-marker{display:none}.improve-detail summary::-webkit-details-marker{display:none}.improve-pattern summary span:first-child,.improve-detail summary span:first-child{gap:2px;display:grid}.improve-pattern summary small,.improve-detail summary small{color:var(--ink-3);font-weight:400}.improve-pattern summary span:last-child,.improve-detail summary span:last-child{font-size:24px;line-height:1;transition:transform .18s}.improve-pattern[open] summary span:last-child,.improve-detail[open] summary span:last-child{transform:rotate(45deg)}.improve-detail-body{gap:var(--s4);padding:var(--s4);border-top:1px solid var(--rule);display:grid}.improve-source{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.improve-source .improve-pending{flex:32rem}@media (max-width:700px){.improve-secondary>div{grid-template-columns:1fr}.improve-detail-body{padding:var(--s3)}.improve-headline{align-items:flex-start}}.defence-ladder{gap:var(--s4);counter-reset:none;margin:0;padding:0;list-style:none;display:grid}.defence-ladder>li{margin:0}.defence-ladder button{gap:var(--s3);text-align:left;cursor:pointer;border:1px solid var(--rule-strong);border-radius:var(--r2);width:100%;padding:var(--s4) var(--s4) calc(var(--s4) + 2px);flex-direction:column;display:flex}.defence-ladder button:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.defence-ladder h3{margin:.3rem 0 0;line-height:1.3}.defence-ladder button p{margin:0;line-height:1.5}.defence-ladder-head{align-items:flex-start;gap:var(--s3);display:flex}.defence-ladder-head>div{flex:1;min-width:0}.defence-ladder-head .lab{display:block}.defence-rung{border:1px solid var(--rule-strong);width:2rem;height:2rem;font:700 .95rem var(--mono);color:var(--ink-2);border-radius:50%;flex:none;place-items:center;display:grid}.defence-rung.is-mastered{background:var(--good);border-color:var(--good);color:#fff}.defence-rungs{gap:var(--s6);display:grid}.defence-rung-block{gap:var(--s3);display:grid}.defence-rung-head{align-items:flex-start;gap:var(--s3);display:flex}.defence-rung-head>div{flex:1;min-width:0}.defence-rung-head .lab{display:block}.defence-rung-head p{margin:.15rem 0 0}.defence-rung-soon{padding:var(--s3) var(--s4);border:1px dashed var(--rule-strong);border-radius:var(--r2);margin:0}.defence-bs-tag{margin-left:var(--s2);vertical-align:2px}.defence-generated-block{margin-top:var(--s6)}.defence-generated-block h2{margin:0 0 var(--s2)}.defence-generated-block>p{margin:0 0 var(--s3)}.defence-signal{margin:var(--s3) 0}.defence-signal-options{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.defence-signal-options .btn.is-right{border-color:var(--good);background:var(--good-wash);color:var(--ink)}.defence-signal-options .btn.is-wrong{border-color:var(--accent);background:var(--accent-wash);color:var(--ink)}.defence-mistakes{margin:var(--s2) 0 0;gap:var(--s2);padding:0;list-style:none;display:grid}.defence-mistakes li{padding-bottom:var(--s2);border-bottom:1px solid var(--rule)}.defence-mistakes li:last-child{border-bottom:0}.cockpit-layout{gap:var(--s4);grid-template-columns:15rem 1fr;align-items:start;display:grid}@media (max-width:820px){.cockpit-layout{grid-template-columns:1fr}}.cockpit-roster{top:var(--s3);gap:.4rem;display:grid;position:sticky}@media (max-width:820px){.cockpit-roster{grid-auto-flow:row;position:static}}.cockpit-student{text-align:left;border:1px solid var(--rule);border-radius:var(--r2);background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .12s var(--ease),background-color .12s var(--ease);flex-direction:column;gap:5px;padding:.65rem .75rem;display:flex}.cockpit-student:hover{border-color:var(--ink)}.cockpit-student.is-active{border-color:var(--accent);background:var(--accent-wash)}.cockpit-student strong{font-size:var(--fs-body)}.cockpit-student .small{color:var(--ink-2)}.cockpit-student-stats{flex-wrap:wrap;gap:.1rem .5rem;display:flex}.cockpit-student-stats>span+span:before{content:"·";color:var(--ink-3);margin-right:.5rem}.cockpit-student-stats .cockpit-due{color:var(--warn);font-weight:600}.cockpit-layout .small.dim,.cockpit-detail .small.dim,.cockpit-detail>p{color:var(--ink-2)}.cockpit-placeholder{color:var(--ink-2);font-size:var(--fs-body);text-align:left}.cockpit-placeholder:after{content:"";margin-top:var(--s3);border:1px dashed var(--rule-strong);border-radius:3px;min-height:14rem;display:block}.cockpit-detail{min-width:0}.cockpit-detail-head{justify-content:space-between;align-items:center;gap:var(--s2);margin-bottom:var(--s4);display:flex}.cockpit-detail-head h2{margin:0}.cockpit-stats{gap:var(--s5);margin-bottom:var(--s4);display:flex}.cockpit-stats>div{flex-direction:column;gap:2px;display:flex}.cockpit-stats b{font:700 1.4rem var(--mono);line-height:1}.cockpit-stats span{font-size:var(--fs-small);color:var(--ink-2)}.cockpit-assigns,.cockpit-sent,.cockpit-themes{margin:var(--s2) 0 0;gap:var(--s2);padding:0;list-style:none;display:grid}.cockpit-assign{border:1px solid var(--rule);border-radius:var(--r2);padding:.7rem .8rem}.cockpit-assign-head{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.cockpit-assign-form{margin-top:var(--s2);gap:.5rem;display:grid}.cockpit-assign-form textarea{width:100%;font:inherit}.cockpit-sent li{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:.5rem;padding-bottom:.4rem;display:flex}.cockpit-sent li:last-child{border-bottom:0}.cockpit-sent .ok{color:var(--good)}.cockpit-sent-note{color:var(--ink-3);flex-basis:100%}.cockpit-themes li{border-bottom:1px solid var(--rule);padding-bottom:var(--s2)}.cockpit-themes li:last-child{border-bottom:0}.cockpit-themes li>div{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.cockpit-themes li p{margin:.2rem 0 0}.cr-summary{align-items:center;gap:var(--s3) var(--s5);flex-wrap:wrap;display:flex}.cr-summary.is-ready{border-left:3px solid var(--good)}.cr-summary-num{flex-direction:column;display:flex}.cr-summary-num b{font:700 1.6rem var(--mono);line-height:1}.cr-summary-num span{font-size:var(--fs-small);color:var(--ink-3)}.cr-summary-num.cr-flagged b{color:var(--accent)}.cr-summary p{flex-basis:100%;margin:0}.cr-group-head{justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.cr-group-head .lab{align-items:center;gap:.5rem;display:flex}.cr-items{margin:var(--s2) 0 0;gap:.4rem;padding:0;list-style:none;display:grid}.cr-item{border:1px solid var(--rule);border-radius:var(--r2);padding:.5rem .7rem}.cr-item.cr-reviewed{border-color:var(--good);background:var(--good-wash)}.cr-item.cr-flagged{border-color:var(--accent);background:var(--accent-wash)}.cr-item-main{justify-content:space-between;align-items:center;gap:var(--s2);display:flex}.cr-note-toggle{cursor:pointer;text-align:left;background:0 0;border:0;padding:.25rem 0 0}.cr-note-edit{gap:.4rem;margin-top:.4rem;display:grid}.rating-card{margin-bottom:var(--s4)}.rating-headline{align-items:baseline;gap:var(--s2) var(--s4);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.rating-value{font:700 2.4rem var(--mono);color:var(--ink);line-height:1}.rating-band{font:600 var(--fs-small) var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-left:.5rem}.rating-headline p{flex-basis:100%;margin:0}.rating-pillars{gap:var(--s3);grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;display:grid}@media (max-width:640px){.rating-pillars{grid-template-columns:1fr}}.rating-pillars li{border-left:2px solid var(--rule);padding-left:var(--s3)}.rating-pillar-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.rating-pillar-value{font:700 1.05rem var(--mono);margin-left:auto}.rating-trend.t-improving{color:var(--good)}.rating-trend.t-slipping{color:var(--accent)}.rating-pillars li p{margin:.15rem 0 0}.daily-landing{align-items:center;gap:var(--s4);flex-wrap:wrap;display:flex}.daily-stat{flex-direction:column;gap:2px;display:flex}.daily-stat b{font:700 1.5rem var(--mono);line-height:1}.daily-stat span{font-size:var(--fs-small);color:var(--ink-3)}.daily-stat.daily-contract b{font-size:1.1rem}.daily-landing .btn{margin-left:auto}.daily-scorebar .daily-bar{gap:3px;margin:.4rem 0 .6rem;display:flex}.daily-bar span{background:var(--surface-2);border-radius:3px;flex:1;height:1.4rem}.daily-bar span.on{background:var(--good)}.daily-bar span.over{background:var(--good);opacity:.55}.daily-bar span.par{background:var(--accent-wash);border:1px solid var(--accent)}.daily-bar span.miss{background:var(--surface-2)}.daily-key{vertical-align:-1px;border-radius:2px;width:.8rem;height:.8rem;margin:0 .2rem;display:inline-block}.daily-key.on{background:var(--good)}.daily-key.par{background:var(--accent-wash);border:1px solid var(--accent)}.daily-verdict{margin-top:var(--s2);font-weight:600}.daily-verdict.ok{color:var(--good)}.daily-share{white-space:pre-wrap;font:600 13px var(--mono);background:var(--surface-2);border-radius:var(--r2);padding:var(--s3);margin:.4rem 0 var(--s3);line-height:1.5}.daily-guest-banner{border-left:2px solid var(--accent);padding-left:var(--s3);margin-bottom:var(--s3)}.daily-guest-cta{border-left:3px solid var(--accent)}.daily-guest-cta h3{margin:0 0 .3rem}.daily-guest-cta .btn-row{margin-top:var(--s3)}.analyse-modes{margin-bottom:var(--s3);gap:.5rem;display:flex}.analyse-modes .btn.is-on{border-color:var(--accent);background:var(--accent-wash);color:var(--accent)}.analyse-fields{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}@media (max-width:600px){.analyse-fields{grid-template-columns:1fr}}.analyse-fields .analyse-plays-field{grid-column:1/-1}.field-label{gap:.25rem;display:grid}.analyse-actions{justify-content:space-between;align-items:center;gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap;display:flex}.analyse-actions select{margin-left:.3rem;padding:2px 4px}.analyse-hands{gap:var(--s3) var(--s5);margin-top:var(--s3);grid-template-columns:1fr 1fr;display:grid}@media (max-width:560px){.analyse-hands{grid-template-columns:1fr}}.analyse-plays{margin:var(--s2) 0 0;gap:.35rem;padding:0;list-style:none;display:grid}.analyse-plays li{font:600 13px var(--mono);border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:.4rem;padding-bottom:.35rem;display:flex}.analyse-plays li:last-child{border-bottom:0}.analyse-plays li.slip{background:var(--accent-wash);margin:0 calc(-1 * var(--s2));padding:.35rem var(--s2);border-bottom:0;border-radius:4px}.analyse-play-no{width:1.9rem;color:var(--ink-3)}.analyse-play-seat{width:3.4rem;color:var(--ink-2)}.analyse-play-card{width:2.4rem;font-weight:700}.analyse-plays .badge{margin-left:.2rem}.analyse-play-comment{font:400 12px var(--sans);color:var(--ink-2);flex-basis:100%;margin-top:.15rem;display:block}.analyse-tags{margin:var(--s2) 0 0;gap:.4rem;padding:0;list-style:none;display:grid}.analyse-tags li{border-bottom:1px solid var(--rule);padding-bottom:.35rem}.analyse-tags li:last-child{border-bottom:0}.count-landing{align-items:center;gap:var(--s4);flex-wrap:wrap;display:flex}.count-stat{flex-direction:column;gap:2px;display:flex}.count-stat b{font:700 1.5rem var(--mono);line-height:1}.count-stat span{font-size:var(--fs-small);color:var(--ink-3)}.count-landing .btn{margin-left:auto}.count-recent{margin:var(--s2) 0 0;gap:.4rem;padding:0;list-style:none;display:grid}.count-recent li{justify-content:space-between;gap:var(--s2);border-bottom:1px solid var(--rule);padding-bottom:.4rem;display:flex}.count-recent li:last-child{border-bottom:0}.count-mode{gap:var(--s3);margin-top:var(--s3);display:grid}.count-mode-pick{gap:var(--s2);grid-template-columns:1fr 1fr;display:grid}@media (max-width:560px){.count-mode-pick{grid-template-columns:1fr}}.count-mode-btn{text-align:left;padding:var(--s3);border:1px solid var(--rule-strong);border-radius:var(--r2);background:var(--surface);color:var(--ink);cursor:pointer;gap:2px;display:grid}.count-mode-btn:hover{border-color:var(--accent)}.count-mode-btn.is-on{border-color:var(--accent);background:var(--accent-wash);box-shadow:inset 0 0 0 1px var(--accent)}.count-mode-btn b{font-size:14px}.count-segment{gap:var(--s3);display:grid}.count-watched{justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.count-board{border:1px solid var(--rule);border-radius:var(--r2);padding:var(--s3);margin:var(--s3) 0;background:var(--surface-2)}.count-board-hands{gap:var(--s4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:640px){.count-board-hands{grid-template-columns:1fr}}.count-hand{gap:3px;margin-top:.35rem;display:grid}.count-hand-suit{font:600 15px var(--mono);align-items:baseline;gap:.5rem;display:flex}.count-hand-suit b{width:1.1rem;color:var(--suit-black)}.count-hand-suit.red b,.count-hand-suit.red span{color:var(--suit-red)}.count-tricks{margin-top:var(--s3)}.count-tricks ol{gap:3px;margin:.35rem 0 0;padding:0;list-style:none;display:grid}.count-tricks li{font:600 13px var(--mono);align-items:center;gap:.4rem;display:flex}.count-trick-no{width:1.3rem;color:var(--ink-3);text-align:right}.count-trick-card{border:1px solid var(--rule);background:var(--surface);text-align:center;min-width:2.1rem;color:var(--suit-black);border-radius:3px;padding:1px 4px}.count-trick-card.red{color:var(--suit-red)}.count-trick-card.won{border-color:var(--good);background:var(--good-wash)}.count-trick-won{color:var(--ink-3);margin-left:.2rem;font-weight:500}.count-question h2{margin:0 0 var(--s3)}.count-question .note{margin-bottom:var(--s3)}.count-pad{grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;max-width:32rem;display:grid}.count-pad button{appearance:none;cursor:pointer;background:var(--surface-2);color:var(--ink);font:600 1.05rem var(--mono);transition:background-color .12s var(--ease),color .12s var(--ease),transform 80ms var(--ease);border:0;border-radius:10px;padding:.7rem 0;line-height:1}@media (max-width:400px){.count-pad button{border-radius:8px;padding:.6rem 0;font-size:.95rem}}.count-pad button:hover:not(:disabled){background:var(--accent-wash);color:var(--accent)}.count-pad button:active:not(:disabled){transform:translateY(1px)}.count-pad button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.count-pad button:disabled{opacity:.4;cursor:not-allowed}.count-bytype,.count-review{margin:var(--s2) 0 0;gap:.5rem;padding:0;list-style:none;display:grid}.count-bytype li{justify-content:space-between;gap:var(--s2);border-bottom:1px solid var(--rule);padding-bottom:.4rem;display:flex}.count-bytype li:last-child{border-bottom:0}.count-bytype .ok,.count-review li.ok .small:first-of-type{color:var(--good)}.count-bytype .miss{color:var(--accent)}.count-review li{padding:var(--s2) 0 var(--s3);border-bottom:1px solid var(--rule)}.count-review li:last-child{border-bottom:0}.count-review li>p:first-child{margin:0 0 .25rem;font-weight:600}.count-review li.ok{border-left:3px solid var(--good);padding-left:var(--s3)}.count-review li.miss{border-left:3px solid var(--accent);padding-left:var(--s3)}.learning-next{justify-content:space-between;align-items:center;gap:var(--s5);padding:var(--s4);border:1px solid var(--accent);border-left:5px solid var(--accent);background:var(--accent-wash);display:flex}.learning-next h2{margin:var(--s1) 0}.learning-next p{max-width:70ch;color:var(--ink-2)}.learning-next small{margin-top:var(--s2);font:10px var(--mono);color:var(--ink-3);display:block}.learning-path{gap:var(--s3);margin:var(--s4) 0;grid-template-columns:repeat(3,1fr);display:grid}.learning-path-step{gap:var(--s3);padding:var(--s3);border:1px solid var(--rule);background:var(--surface);display:flex}.learning-path-step>span{border:1px solid var(--rule-strong);height:30px;font:700 11px var(--mono);border-radius:50%;flex:0 0 30px;place-items:center;display:grid}.learning-path-step p{margin-top:var(--s1);font-size:var(--fs-small);color:var(--ink-3)}.learning-path-step.current{border-color:var(--accent);background:var(--accent-wash)}.learning-path-step.current>span{background:var(--accent);border-color:var(--accent);color:#fff}.learning-path-step.complete>span{background:var(--good);border-color:var(--good);color:#fff}.learning-current{margin:var(--s5) 0}.learning-evidence{margin-top:var(--s5);border:1px solid var(--rule)}.learning-evidence summary,.curriculum-catalogue summary,.instructor-later-classes summary,.directory-filters summary{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);cursor:pointer;background:var(--surface-2);list-style:none;display:flex}.learning-evidence summary::-webkit-details-marker{display:none}.curriculum-catalogue summary::-webkit-details-marker{display:none}.instructor-later-classes summary::-webkit-details-marker{display:none}.directory-filters summary::-webkit-details-marker{display:none}.learning-evidence summary strong,.learning-evidence summary small,.curriculum-catalogue summary strong,.curriculum-catalogue summary small,.instructor-later-classes summary strong,.instructor-later-classes summary small,.directory-filters summary strong,.directory-filters summary small{display:block}.learning-evidence summary small,.curriculum-catalogue summary small,.instructor-later-classes summary small,.directory-filters summary small{color:var(--ink-3);font-weight:400}.learning-evidence summary>span:last-child,.curriculum-catalogue summary>span:last-child,.instructor-later-classes summary>span:last-child,.directory-filters summary>span:last-child{font-size:22px}.learning-evidence[open] summary>span:last-child,.curriculum-catalogue[open] summary>span:last-child,.instructor-later-classes[open] summary>span:last-child,.directory-filters[open] summary>span:last-child{transform:rotate(45deg)}.learning-evidence-body{padding:var(--s4);border-top:1px solid var(--rule)}.learning-metrics{gap:var(--s3);margin:var(--s4) 0;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.learning-metrics article{padding:var(--s3);border:1px solid var(--rule);background:var(--surface)}.learning-metrics strong,.learning-metrics span{display:block}.learning-metrics strong{font:700 30px var(--sans);letter-spacing:-.03em}.learning-metrics span{color:var(--ink-3);margin-top:4px;font-size:11px}.learning-dimensions{gap:var(--s3);margin-top:var(--s3);grid-template-columns:1fr 1fr;display:grid}.learning-dimensions>div{padding:var(--s3);background:var(--surface-2);border:1px solid var(--rule)}.learning-dimensions p{margin:var(--s1) 0}.learning-status-counts{gap:var(--s2);font:10px var(--mono);text-transform:uppercase;color:var(--ink-3);display:flex}.learning-concepts{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.learning-concepts article{padding:var(--s3);border:1px solid var(--rule);background:var(--surface)}.learning-concepts article>p{margin:var(--s2) 0}.learning-topic{background:var(--surface-2);font:9px var(--mono);text-transform:uppercase;color:var(--ink-3);margin:0 5px 3px 0;padding:2px 6px;display:inline-block}@media (max-width:800px){.learning-metrics{grid-template-columns:1fr 1fr}.learning-path,.learning-concepts{grid-template-columns:1fr}.learning-next{flex-direction:column;align-items:flex-start}.learning-dimensions{grid-template-columns:1fr}}@media (max-width:440px){.learning-metrics{grid-template-columns:1fr}.lesson-workflow button{flex-direction:column;font-size:11px}}.panel{background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow-sm);border-radius:3px}.panel-h{padding:var(--s3) var(--s4);border-bottom:1px solid var(--rule);align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.panel-b{padding:var(--s4)}.panel-b+.panel-b{border-top:1px solid var(--rule)}.btn{width:fit-content;font-family:var(--sans);font-size:var(--fs-small);cursor:pointer;border:1px solid var(--ink);color:var(--ink);box-sizing:border-box;transition:background-color .12s var(--ease), border-color .12s var(--ease), color .12s var(--ease), transform .12s var(--ease), box-shadow .12s var(--ease);background:0 0;border-radius:2px;justify-content:center;align-items:center;padding:9px 16px;font-weight:600;line-height:1.4;display:flex}.field+.btn,.stack-s+.btn,.otp+.btn,.bldrow+.btn,.btn-row+.btn,[id$=Rows]+.btn,.panel-b>p+.btn{margin-top:var(--s3)}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:active{transform:translateY(1px)}.btn-p{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-p:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-p:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-q{border-color:var(--rule-strong);color:var(--ink-2)}.btn-sm{padding:5px 11px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn-row{gap:var(--s2);flex-wrap:wrap;display:flex}.badge{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--rule-strong);color:var(--ink-2);white-space:nowrap;border-radius:2px;align-items:center;gap:5px;padding:3px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.badge-a{background:var(--accent-wash);border-color:var(--accent);color:var(--accent)}.badge-g{background:var(--good-wash);border-color:var(--good);color:var(--good)}.badge-w{background:var(--warn-wash);border-color:var(--warn);color:var(--warn)}.badge-k{background:var(--ink);border-color:var(--ink);color:var(--paper)}.dot{background:currentColor;border-radius:50%;flex:0 0 6px;width:6px;height:6px}.rbadge{cursor:help;flex:none;line-height:0;display:inline-flex}.newpill{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:9.5px;font-weight:700}.pbadge{background:var(--surface-2);border:1px solid var(--rule-strong);width:17px;height:17px;color:var(--ink-2);border-radius:50%;flex:0 0 17px;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.legend-row{gap:var(--s5);margin-bottom:var(--s4);padding:var(--s2) 0;font-size:var(--fs-small);color:var(--ink-2);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-item svg{flex:none}.modetag{align-items:center;gap:4px;display:inline-flex}.modetag svg{color:var(--ink-3);flex:none}.sess-list{flex-direction:column;display:flex}.sess-row{align-items:center;gap:var(--s3);padding:var(--s3) 0;flex-wrap:wrap;display:flex}.sess-row+.sess-row{border-top:1px solid var(--rule)}.sess-date{font-family:var(--mono);flex:0 0 128px;font-size:12.5px}.sess-date b{font-family:var(--sans);font-size:var(--fs-body);font-weight:600;display:block}.sess-roster{font-size:var(--fs-small);color:var(--ink-2);flex:200px}.sess-link{font-family:var(--mono);font-size:11.5px}.att-pill{white-space:nowrap;border-radius:2px;align-items:center;gap:5px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.att-pill.present{background:var(--good-wash);color:var(--good)}.att-pill.absent{background:var(--accent-wash);color:var(--accent)}.att-pill.unmarked{background:var(--surface-2);color:var(--ink-3)}.att-toggle{gap:4px;display:inline-flex}.att-toggle button{font-family:var(--mono);border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:2px;padding:3px 8px;font-size:11px}.att-toggle button:hover{background:var(--surface-2)}.att-toggle button.sel-present{border-color:var(--good);background:var(--good-wash);color:var(--good)}.att-toggle button.sel-absent{border-color:var(--accent);background:var(--accent-wash);color:var(--accent)}.grid{gap:var(--s4);display:grid}.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-side{grid-template-columns:minmax(0,1fr) 300px}.g-filter{grid-template-columns:230px minmax(0,1fr)}@media (max-width:1000px){.g-filter,.g-side,.g-3,.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.g-2,.g-4{grid-template-columns:minmax(0,1fr)}}.stack{gap:var(--s4);flex-direction:column;display:flex}.stack-s{gap:var(--s2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.spread{justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.metric{border-left:2px solid var(--ink);padding-left:var(--s3)}.metric .v{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:21px;font-weight:600}.metric .k{margin-top:2px;display:block}.cite{font-family:var(--mono);letter-spacing:.05em;color:var(--ink-3);border:1px solid var(--rule);white-space:nowrap;border-radius:2px;padding:1px 5px;font-size:10px;display:inline-block}.note{border-left:2px solid var(--accent);background:var(--accent-wash);padding:var(--s3) var(--s4);border-radius:0 2px 2px 0}.note-k{border-left-color:var(--ink);background:var(--surface-2)}.note h4{font-size:var(--fs-h3);margin-bottom:var(--s1)}.tablewrap{border:1px solid var(--rule);background:var(--surface);border-radius:2px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}th{text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--ink);font-family:var(--mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;font-weight:600}td{padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule);vertical-align:top}tr:last-child td{border-bottom:none}td.n{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.avatar{width:38px;height:38px;font-family:var(--mono);border-radius:8px;flex:0 0 38px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.fgroup{padding:var(--s3) 0;border-bottom:1px solid var(--rule)}.fgroup:last-child{border-bottom:none}.fgroup>.lab{margin-bottom:var(--s2);display:block}.chk{align-items:center;gap:var(--s2);font-size:var(--fs-small);cursor:pointer;color:var(--ink-2);padding:3px 0;display:flex}.chk input{accent-color:var(--accent);cursor:pointer;width:14px;height:14px;margin:0}.chk:hover{color:var(--ink)}.field{margin-bottom:var(--s4);display:block}.field>.lab{margin-bottom:var(--s2);display:block}.field input,.field select,.field textarea{box-sizing:border-box;border:1px solid var(--rule-strong);background:var(--surface);width:100%;color:var(--ink);font-family:var(--sans);font-size:var(--fs-small);transition:border-color .12s var(--ease), box-shadow .12s var(--ease);border-radius:2px;padding:9px 10px;line-height:1.4}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.field .hint{margin-top:var(--s1);color:var(--ink-3);font-size:12px;display:block}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--accent);background:var(--accent-wash)}.field-error{margin-top:var(--s1);color:var(--accent);font-size:12px;font-weight:600;display:block}.counter{float:right;font-family:var(--mono);color:var(--ink-3);font-size:11px}.counter.over{color:var(--accent);font-weight:600}.pick{text-align:left;width:100%;padding:var(--s4);border:1px solid var(--rule-strong);background:var(--surface);cursor:pointer;font-family:var(--sans);color:var(--ink);transition:border-color .12s var(--ease), background-color .12s var(--ease), box-shadow .12s var(--ease);border-radius:2px;display:block}.pick:hover{border-color:var(--accent);background:var(--accent-wash);text-decoration:none}.pick.sel{border-color:var(--accent);background:var(--accent-wash);border-width:2px}.pick h3{font-size:var(--fs-h2);margin-bottom:var(--s1)}.steps{gap:var(--s2);margin-bottom:var(--s5);flex-wrap:wrap;align-items:center;display:flex}.steps span{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--rule-strong);color:var(--ink-3);border-radius:2px;padding:3px 9px;font-size:10.5px}.steps span.now{background:var(--ink);border-color:var(--ink);color:var(--paper)}.steps span.done{border-color:var(--good);color:var(--good)}.otp{gap:var(--s2);display:flex}.otp input{text-align:center;width:44px;font-family:var(--mono);border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);border-radius:2px;padding:8px 0;font-size:17px;font-weight:600}.seg{border:1px solid var(--rule-strong);border-radius:999px;width:100%;display:flex;overflow:hidden}.seg label{text-align:center;cursor:pointer;color:var(--ink-2);flex:1;padding:8px 10px;font-size:12.5px;font-weight:600;position:relative}.seg input{opacity:0;pointer-events:none;position:absolute}.seg span{justify-content:center;align-items:center;gap:5px;display:inline-flex}.seg input:checked+span{background:var(--ink);color:var(--paper);border-radius:999px;margin:-8px -10px;padding:8px 10px}.seg input:disabled+span{opacity:.5}.pcard{text-align:left;background:var(--surface);border:1px solid var(--ink);cursor:pointer;width:100%;font-family:var(--sans);color:var(--ink);border-left:4px solid var(--rule-strong);box-shadow:3px 3px 0 var(--rule-strong);transition:transform .14s var(--ease), box-shadow .14s var(--ease);border-radius:0;margin:0 3px 3px 0;padding:0;display:block;position:relative;overflow:hidden}.pcard.open{border-left-color:var(--good)}.pcard.limited{border-left-color:var(--warn)}.pcard.unavailable{opacity:.72}.pcard:hover{background:var(--surface-2);box-shadow:5px 5px 0 var(--rule-strong), var(--shadow-md);text-decoration:none;transform:translate(-2px,-2px)}.pcard:active{box-shadow:2px 2px 0 var(--rule-strong);transform:translate(0)}.pc-top{align-items:flex-start;gap:var(--s3);padding:var(--s4) var(--s4) var(--s3);display:flex}.pc-id{flex:1;min-width:170px;min-height:38px}.pc-id .nrow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pc-id h3{letter-spacing:-.028em;font-size:18px;font-weight:800}.pc-id .where{color:var(--ink-3);margin-top:2px;font-size:12.5px}.pc-bio{margin:0 var(--s4);max-height:54px;padding:var(--s2) var(--s3);background:var(--surface-2);color:var(--ink-2);border-radius:4px;font-size:12.5px;line-height:1.5;overflow-y:auto}.pc-bio::-webkit-scrollbar{width:5px}.pc-bio::-webkit-scrollbar-thumb{background:var(--rule-strong);border-radius:3px}.pc-stats{padding:var(--s3) var(--s4) 0;color:var(--ink-3);font-size:12px}.pc-stats b{color:var(--ink-2);font-weight:600}.pc-foot{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);margin-top:var(--s3);border-top:1px solid var(--rule);display:flex}.pc-fit{align-items:center;gap:6px;min-width:0;font-size:12.5px;display:flex}.pc-fit .fchk{background:var(--good);color:#fff;border-radius:50%;flex:0 0 14px;justify-content:center;align-items:center;width:14px;height:14px;font-size:9px;display:inline-flex}.pc-fit.match{color:var(--good);font-weight:600}.pc-fit.nomatch{color:var(--ink-3)}.pc-price{text-align:right;flex:none}.pc-price .amt{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:17px;font-weight:700}.pc-price .unit{color:var(--ink-3);font-size:11px}.pc-price .cta{color:var(--ink-3);font-size:11.5px}.regionbar{align-items:center;gap:var(--s4);padding:var(--s3) var(--s4);border:1px solid var(--rule);border-left:2px solid var(--accent);background:var(--accent-wash);margin-bottom:var(--s4);border-radius:0 2px 2px 0;flex-wrap:wrap;display:flex}.regionbar select{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);font-family:var(--sans);border-radius:2px;padding:4px 8px;font-size:12px}.sgrid{background:var(--rule);border:1px solid var(--rule);border-radius:2px;grid-template-columns:64px 1fr;gap:1px;display:grid;overflow:hidden}.sgrid>div{background:var(--surface);padding:var(--s2) var(--s3)}.sgrid .h{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-2);font-size:11px;font-weight:700}.sgrid .slots{flex-wrap:wrap;gap:6px;display:flex}.sgrid .slot{border:1px solid var(--rule-strong);color:var(--ink-2);white-space:nowrap;border-radius:10px;padding:3px 8px;font-size:12px}.sgrid .slot.fit{border-color:var(--good);background:var(--good-wash);color:var(--good);font-weight:600}.bookrow{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--rule);display:flex}.bookrow:last-child{border-bottom:none}.bookrow input[type=checkbox],.bookrow input[type=radio]{width:16px;height:16px;accent-color:var(--good)}.bookrow .when{font-size:var(--fs-small);flex:1}.bookrow .when b{font-weight:700}.bookrow.full{opacity:.5}.bookrow .matchtag{font-family:var(--mono);color:var(--good);letter-spacing:.04em;text-transform:uppercase;font-size:10px}.bldrow{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.bldrow:last-child{border-bottom:none}.bldrow select,.bldrow input{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink);font-family:var(--sans);border-radius:2px;padding:6px 8px;font-size:12.5px}.bldrow input[type=number]{width:56px}.bldrow input[type=date]{width:132px}.bldrow input.txt{width:92px}.bldrow .rm{color:var(--ink-3);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:2px 6px;font-size:17px;line-height:1}.bldrow .rm:hover{color:var(--accent)}.bldnote{color:var(--ink-3);margin-top:4px;font-size:12px}.user-menu-anchor{z-index:50;position:fixed;top:14px;right:14px}.user-menu-avatar{border:1px solid var(--rule-strong);cursor:pointer;border-radius:50%;width:38px;height:38px;font-size:13px;font-weight:700}.user-menu-dropdown{width:min(260px,82vw);position:absolute;top:46px;right:0}.mobile-topbar{display:none}@media (max-width:860px){#app{flex-direction:column}.mobile-topbar{padding:12px var(--s4);border-bottom:1px solid var(--rule);background:var(--surface);z-index:20;flex:none;align-items:center;gap:9px;width:100%;display:flex;position:sticky;top:0}.mobile-topbar .brand-lockup{max-width:min(58vw,210px)}.rail-toggle{border:1px solid var(--rule-strong);background:var(--surface);cursor:pointer;font-family:var(--sans);color:var(--ink);border-radius:2px;margin-left:auto;padding:7px 12px;font-size:12.5px;font-weight:600}.user-menu-anchor{top:10px;right:96px}.user-menu-avatar{width:32px;height:32px;font-size:11px}#app{position:relative}#rail{z-index:31;width:min(84vw,320px);height:100vh;transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-100%)}#rail.rail-open{transform:translate(0);box-shadow:2px 0 28px #0003}#railScrim{z-index:30;background:#00000059;display:none;position:fixed;inset:0}#railScrim.on{display:block}.stage-inner{padding:var(--s5) var(--s4) var(--s6)}.pc-foot{align-items:flex-start;gap:var(--s2);flex-direction:column}.pc-price{text-align:left}.sgrid,.pcard-row,.pcard-answers{grid-template-columns:1fr}}.pcard-invite{gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap;display:flex}.pcard-invite .field{flex:1;min-width:220px}.pcard-actions{gap:var(--s3);margin-top:var(--s3);display:flex}.pcard-summary{gap:var(--s3);margin-top:var(--s2);font-size:var(--fs-small);flex-wrap:wrap;align-items:baseline;display:flex}.pcard-summary span{font-weight:600}.pcard-summary .s-agreed{color:var(--good)}.pcard-summary .s-split{color:var(--warn)}.pcard-summary .s-incomplete{color:var(--ink-3)}.pcard-list{gap:0;padding:0;display:grid}.pcard-row{gap:var(--s4);padding:var(--s4);border-top:1px solid var(--rule);grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr);display:grid}.pcard-row:first-child{border-top:0}.pcard-row.is-split{background:var(--warn-wash)}.pcard-q p{margin:.25rem 0 .4rem}.pcard-state{text-transform:uppercase;letter-spacing:.03em;border-radius:3px;padding:.1rem .4rem;font-size:11px;font-weight:700;display:inline-block}.pcard-state.s-agreed{color:var(--good);background:var(--good-wash)}.pcard-state.s-split{color:var(--warn);background:var(--surface)}.pcard-state.s-incomplete{color:var(--ink-3);background:var(--surface-2)}.pcard-answers{gap:var(--s3);grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.pcard-pick{gap:.25rem;display:grid}.pcard-pick select{width:100%}.pcard-theirs{padding-top:.15rem;font-weight:600}.pcard-endrow{gap:var(--s3);flex-wrap:wrap;align-items:center;display:flex}.ptprac-list{margin:var(--s3) 0 0;gap:var(--s2);padding:0;list-style:none;display:grid}.ptprac-list a{justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--rule);border-radius:var(--r2);color:var(--ink);flex-wrap:wrap;text-decoration:none;display:flex}.ptprac-list a:hover{border-color:var(--ink);text-decoration:none;transform:translateY(-1px)}.ptprac-scores{gap:var(--s5);flex-wrap:wrap;align-items:baseline;display:flex}.ptprac-scores>div{flex-direction:column;line-height:1.15;display:flex}.ptprac-scores b{font-variant-numeric:tabular-nums;font-size:1.6rem}.ptprac-diff{margin:var(--s3) 0 0;gap:2px;padding:0;list-style:none;display:grid}.ptprac-diff li{gap:var(--s3);border:1px solid var(--rule);border-radius:6px;flex-wrap:wrap;align-items:baseline;padding:.4rem .5rem;display:flex}.ptprac-diff-t{font:700 .8rem var(--mono);color:var(--ink-3);min-width:3.4rem}.curriculum-summary{gap:var(--s5);flex-wrap:wrap;align-items:center;display:flex}.curriculum-stat{flex-direction:column;line-height:1.15;display:flex}.curriculum-stat b{font-variant-numeric:tabular-nums;font-size:1.4rem}.curriculum-stat span{font-size:var(--fs-small);color:var(--ink-3)}.curriculum-summary .btn-p{margin-left:auto}.curriculum-summary-focused>div:first-child{max-width:48ch}.curriculum-review-rhythm{gap:2px var(--s2);grid-template-columns:auto auto;align-items:baseline;display:grid}.curriculum-review-rhythm strong{font-size:1.25rem}.curriculum-review-rhythm span{color:var(--ink-3);font-size:11px}.curriculum-current-stage{margin-top:var(--s5)}.curriculum-catalogue{margin-top:var(--s5);border:1px solid var(--rule)}.curriculum-catalogue .curriculum-stages{padding:var(--s4);border-top:1px solid var(--rule);margin-top:0}.curriculum-stages{gap:var(--s6);margin-top:var(--s5);display:grid}.curriculum-stage-head{justify-content:space-between;align-items:baseline;gap:var(--s3);flex-wrap:wrap;display:flex}.curriculum-stage-head h2{margin:0}.curriculum-stage-head p{margin:.1rem 0 0}.curriculum-list{margin:var(--s3) 0 0;gap:2px;padding:0;list-style:none;display:grid}.curriculum-item{gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--rule);border-radius:var(--r2);background:var(--surface);display:flex}.curriculum-item p{margin:0;line-height:1.4}.curriculum-dot{background:var(--rule-strong);border-radius:50%;flex:none;width:.6rem;height:.6rem;margin-top:.35rem}.curriculum-item.is-learning .curriculum-dot{background:var(--warn)}.curriculum-item.is-review .curriculum-dot{background:var(--accent)}.curriculum-item.is-known .curriculum-dot{background:var(--good)}.curriculum-review{gap:var(--s3);display:grid}.curriculum-statement{margin:.2rem 0;font-size:1.15rem;line-height:1.4}.curriculum-options,.curriculum-grades{flex-wrap:wrap;gap:.5rem;display:flex}.curriculum-options .btn.is-on{border-color:var(--accent);background:var(--accent-wash)}.curriculum-options .btn.is-right{border-color:var(--good);background:var(--good-wash);color:var(--good)}.curriculum-options .btn.is-wrong{border-color:var(--accent);background:var(--accent-wash);color:var(--accent)}.today-points{margin-top:var(--s3);border-top:1px solid var(--rule);padding-top:var(--s3)}.today-points summary{cursor:pointer;font-weight:700;font-size:var(--fs-small)}.directory-filters{margin-top:var(--s3);border:1px solid var(--rule)}.directory-filters>.grid{padding:var(--s4);border-top:1px solid var(--rule)}.directory-filters>.chk,.directory-filters>.btn{margin-left:var(--s4);margin-bottom:var(--s3)}.instructor-next-class>.lab{margin-bottom:var(--s2);display:block}.instructor-occurrence{margin-bottom:var(--s3)}.instructor-later-classes{border:1px solid var(--rule);margin-top:var(--s3)}.instructor-later-list{padding:var(--s3);border-top:1px solid var(--rule)}.rush-modes{gap:var(--s4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:640px){.rush-modes{grid-template-columns:1fr}}.rush-mode{gap:var(--s2);align-content:start;display:grid}.rush-mode-rating{align-items:baseline;gap:var(--s2);display:flex}.rush-mode-rating b{font-variant-numeric:tabular-nums;font-size:1.8rem}.rush-mode .btn-p{margin-top:var(--s2);justify-self:start}.rush-hud{z-index:5;align-items:center;gap:var(--s4);padding:var(--s3) var(--s4);margin:0 0 var(--s4);background:var(--surface-2);border-radius:var(--r2);flex-wrap:wrap;display:flex;position:sticky;top:0}.rush-clock{font:700 1.5rem var(--mono);font-variant-numeric:tabular-nums}.rush-clock.is-low{color:var(--accent)}.rush-hud-stat{font-size:var(--fs-small);color:var(--ink-2)}.rush-hud-stat b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1rem}.rush-hud .btn{margin-left:auto}.rush-board .deal-table{margin-top:var(--s2)}.rush-turn{font:700 1.05rem var(--mono);letter-spacing:.01em;text-align:center;margin:.35rem 0 .1rem}.rush-turn.is-you{color:var(--accent)}.rush-turn.is-wait{color:var(--ink-2);font-weight:600}.rush-board .seat-avatar.on-turn{box-shadow:0 0 0 4px var(--accent);animation:1.15s ease-in-out infinite rush-turn-pulse}@keyframes rush-turn-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (prefers-reduced-motion:reduce){.rush-board .seat-avatar.on-turn{animation:none}}.rush-deal-in{animation:.32s ease-out rush-deal-in}@keyframes rush-deal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.rush-deal-in{animation:none}}.rush-result{text-align:center;gap:var(--s3);justify-items:center;display:grid}.rush-result-score{font:800 3rem var(--mono);font-variant-numeric:tabular-nums}.rush-recap-lab{font:12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}.rush-recap-hands{text-align:left;width:100%;max-width:34rem;margin-top:var(--s2);gap:2px;display:grid}.rush-recap-hand{gap:var(--s2);padding:.3rem var(--s3);font-size:var(--fs-small);border-radius:3px;grid-template-columns:5.5rem 1fr;align-items:baseline;display:grid}.rush-recap-hand.is-you{background:var(--surface-2)}.rush-recap-seat{color:var(--ink-2)}.rush-recap-cards{font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-wrap:wrap;gap:.15rem .9rem;display:flex}.rush-recap-suit{white-space:nowrap}.rush-recap-void{color:var(--ink-3);font-style:italic}.rush-review{text-align:left;width:100%;max-width:34rem;margin-top:var(--s3);gap:2px;display:grid}.rush-trick-row{column-gap:var(--s3);padding:.4rem var(--s3);font-size:var(--fs-small);border-radius:3px;grid-template-columns:auto 1fr auto;grid-template-areas:"n cards won""mark mark mark";align-items:center;row-gap:2px;display:grid}.rush-trick-row.pre{opacity:.6}.rush-trick-row.ok{background:var(--good-wash);opacity:1}.rush-trick-row.bad{background:var(--accent-wash);opacity:1}.rush-trick-row.flat{background:var(--surface-2);opacity:1}.rush-trick-row.flat .rush-trick-mark{color:var(--ink-3)}.rush-trick-n{color:var(--ink-2);white-space:nowrap;grid-area:n}.rush-trick-cards{font-variant-numeric:tabular-nums;flex-wrap:wrap;grid-area:cards;gap:.3rem .55rem;display:flex}.rush-trick-card{color:var(--ink-2)}.rush-trick-card.mine{color:var(--ink);font-weight:700}.rush-trick-card.won{text-underline-offset:2px;text-decoration:underline}.rush-trick-won{text-align:right;white-space:nowrap;color:var(--ink-2);grid-area:won}.rush-trick-won.mine{color:var(--good);font-weight:600}.rush-trick-mark{white-space:nowrap;font-weight:600;font-size:calc(var(--fs-small) - .5px);grid-area:mark;justify-self:start}.rush-mark-part{display:block}.rush-trick-row.ok .rush-trick-mark{color:var(--good)}.rush-trick-row.bad .rush-trick-mark{color:var(--accent)}.rush-handoff-mark{text-align:center;font:11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);padding:.5rem 0 .3rem}@media (max-width:520px){.rush-trick-row{grid-template-columns:auto 1fr;grid-template-areas:"n won""cards cards""mark mark"}.rush-recap-hand{grid-template-columns:4.5rem 1fr}}.puzcreate-list{margin:var(--s3) 0 0;gap:var(--s2);padding:0;list-style:none;display:grid}.puzcreate-list li{justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--rule);border-radius:var(--r2);display:flex}.puzcreate-fresh{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--rule)}.puzcreate-share{margin-top:var(--s2);gap:.25rem;display:grid}.puzcreate-copyrow{margin-bottom:var(--s2);align-items:flex-start;gap:.4rem;display:flex}.puzcreate-copyrow .field{font:12px var(--mono);flex:1}.puz{gap:var(--s3);max-width:520px;display:grid}.puz.is-compact{gap:var(--s2)}.puz-head{justify-content:space-between;align-items:baseline;gap:var(--s3);display:flex}.puz-contract{font:700 12px var(--mono);color:var(--ink-2)}.puz-prompt{margin:0;font-weight:600}.puz-row{gap:.25rem;display:grid}.puz-lab{font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3)}.puz-cards{flex-wrap:wrap;gap:.35rem;display:flex}.puz-card{border:1px solid var(--rule-strong);background:var(--surface);min-width:2.5rem;font:700 .9rem var(--mono);cursor:pointer;border-radius:8px;padding:.4rem .5rem}.puz-card:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.puz-card:disabled{opacity:.32;cursor:not-allowed}.puz-card.is-static{cursor:default;background:var(--surface-2)}.puz-result{margin:0;font-weight:600}.puz-result.ok{color:var(--good)}.puz-result.bad{color:var(--accent)}.puz-stats,.puz-msg{font-size:var(--fs-small);color:var(--ink-3);margin:0}.puz-page{background:var(--paper);flex-direction:column;min-height:100dvh;display:flex}.puz-page-head{padding:var(--s3) var(--s4);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;display:flex}.puz-brand{color:var(--ink);font-weight:800;text-decoration:none}.puz-page-tag{font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.puz-page-main{gap:var(--s4);padding:var(--s6) var(--s4);flex:1;align-content:start;justify-items:center;display:grid}.puz-cta{font-size:var(--fs-small)}.puz-embed{padding:var(--s3)}.today-nudge{gap:var(--s3);padding:var(--s3) var(--s4);margin-bottom:var(--s4);border:1px solid var(--accent);border-radius:var(--r2);background:var(--accent-wash);color:var(--ink);flex-wrap:wrap;align-items:baseline;text-decoration:none;display:flex}.today-nudge:hover{text-decoration:none;transform:translateY(-1px)}.today-nudge b{font-size:1rem}.learner-next-class{gap:var(--s4);margin-bottom:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--rule-strong);background:var(--surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.learner-next-date{min-width:90px;padding-right:var(--s4);border-right:1px solid var(--rule);gap:2px;display:grid}.learner-next-date span{font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.learner-next-date strong{font-size:13px}.learner-next-class h2{margin:var(--s1) 0;font-size:var(--fs-h2)}.learner-next-class p{font-size:var(--fs-small);color:var(--ink-2)}.learner-next-actions{justify-content:flex-end}.learner-schedule-details{margin:-1px 0 var(--s3);border:1px solid var(--rule);background:var(--surface)}.learner-schedule-details>summary,.learner-older-history>summary{padding:var(--s2) var(--s3);cursor:pointer;font:600 11px var(--mono);color:var(--ink-2)}.learner-schedule-list{border-top:1px solid var(--rule)}.learner-schedule-row{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule);display:flex}.learner-schedule-row:last-child{border-bottom:0}.learner-schedule-row span{gap:2px;display:grid}.learner-schedule-row b{font-size:12px}.learner-schedule-row small{color:var(--ink-3);font-size:11px}.learner-row-action,.learner-history-actions button{appearance:none;color:var(--accent);cursor:pointer;font:600 11px var(--sans);background:0 0;border:0;padding:0}.learner-row-action:hover,.learner-history-actions button:hover{text-decoration:underline}.learner-row-action:disabled{opacity:.45;cursor:not-allowed}.learner-shortcuts{margin-bottom:var(--s4);border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.learner-shortcuts a{padding:var(--s3);color:var(--ink);gap:2px;display:grid}.learner-shortcuts a+a{border-left:1px solid var(--rule)}.learner-shortcuts a:hover{background:var(--surface);color:var(--accent);text-decoration:none}.learner-shortcuts b{font-size:13px}.learner-shortcuts span{color:var(--ink-3);font-size:11px}.learner-feedback-prompt{justify-content:space-between;align-items:center;gap:var(--s4);margin:var(--s4) 0;padding:var(--s3) var(--s4);border:1px solid var(--accent);border-left:5px solid var(--accent);background:var(--accent-wash);display:flex}.learner-feedback-prompt h2,.learner-feedback-focus h2,.learner-section-head h2{margin:var(--s1) 0;font-size:var(--fs-h2)}.learner-feedback-prompt p{font-size:var(--fs-small);color:var(--ink-2)}.learner-feedback-prompt .btn{flex:none}.learner-feedback-focus{margin:var(--s4) 0}.learner-history{margin-top:var(--s5)}.learner-section-head{justify-content:space-between;align-items:end;gap:var(--s3);padding-bottom:var(--s2);border-bottom:1px solid var(--ink);display:flex}.learner-history-list{background:var(--surface)}.learner-history-row{gap:var(--s3);padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule);grid-template-columns:110px minmax(180px,1fr) 110px auto;align-items:center;font-size:12px;display:grid}.learner-history-row time{font:11px var(--mono);color:var(--ink-3)}.learner-history-row>span:nth-child(2){gap:1px;display:grid}.learner-history-row small{color:var(--ink-3);font-size:10px}.learner-history-state{color:var(--ink-2)}.learner-history-actions{justify-content:flex-end;gap:var(--s3);white-space:nowrap;display:flex}.learner-history-actions a{font-size:11px;font-weight:600}.learner-older-history,.learner-older-history[open]>summary{border-bottom:1px solid var(--rule)}@media (max-width:820px){.learner-next-class{grid-template-columns:auto 1fr}.learner-next-actions{grid-column:1/-1;justify-content:flex-start}.learner-shortcuts{grid-template-columns:1fr 1fr}.learner-shortcuts a:nth-child(3){border-left:0;border-top:1px solid var(--rule)}.learner-shortcuts a:nth-child(4){border-top:1px solid var(--rule)}.learner-history-row{grid-template-columns:90px 1fr auto}.learner-history-state{display:none}.learner-history-actions{grid-column:2/-1;justify-content:flex-start}}@media (max-width:560px){.learner-next-class{grid-template-columns:1fr}.learner-next-date{min-width:0;padding:0 0 var(--s2);border-right:0;border-bottom:1px solid var(--rule)}.learner-feedback-prompt{flex-direction:column;align-items:flex-start}.learner-history-row{grid-template-columns:1fr}.learner-history-row time,.learner-history-actions{grid-column:1}.learner-history-actions{justify-content:flex-start}}.today-summary{gap:var(--s5);flex-wrap:wrap;align-items:center;display:flex}.today-stat{flex-direction:column;line-height:1.15;display:flex}.today-stat b{font-variant-numeric:tabular-nums;font-size:1.5rem}.today-stat span{font-size:var(--fs-small);color:var(--ink-3)}.today-surfaces{gap:var(--s3);margin:var(--s4) 0;grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:720px){.today-surfaces{grid-template-columns:1fr}}.today-card{gap:var(--s2);align-content:start;display:grid}.today-card.is-done{opacity:.72}.today-card-head{align-items:center;gap:.4rem;display:flex}.today-check{width:1.1rem;height:1.1rem;font:700 .7rem var(--mono);border:1px solid var(--rule-strong);color:var(--good);border-radius:50%;place-items:center;display:inline-grid}.today-card.is-done .today-check{background:var(--good);border-color:var(--good);color:#fff}.today-card .btn{justify-self:start}.today-ladder{margin:var(--s3) 0 0;gap:2px;padding:0;list-style:none;display:grid}.today-ladder li{gap:var(--s3);border-radius:6px;grid-template-columns:2rem 1fr auto;align-items:baseline;padding:.4rem .5rem;display:grid}.today-ladder li.is-you{background:var(--accent-wash)}.today-ladder-me{margin-top:var(--s2);border-top:1px dashed var(--rule-strong)}.today-rank{font:700 .85rem var(--mono);color:var(--ink-3)}.today-pts{font-variant-numeric:tabular-nums;font-weight:700}.today-ladder-note{margin-top:var(--s3)}.cnote-edit{gap:var(--s4);display:grid}.cnote-edit .field-label{gap:.3rem;display:grid}.cnote-edit textarea.field{line-height:1.5;font:inherit}.cnote-summary{margin:0;font-size:1.05rem;font-weight:600}.cnote-list{margin:var(--s2) 0 0;gap:.35rem;padding-left:1.2rem;display:grid}.cnote-list li{line-height:1.5}.cnote-actions li{padding-left:1.3rem;list-style:none;position:relative}.cnote-actions li:before{content:"☐";color:var(--accent);position:absolute;left:0}
