:root{--paper:#F4F1EA;--card:#FBF9F4;--ink:#161412;--gold:#B8924A;--gold-dk:#8A6A2E;--rule:#D8D0C0;--muted:#5A534A;--alarm:#9E3B2C;--serif:'EB Garamond',Georgia,'Times New Roman',serif;--cond:'Barlow Condensed','Arial Narrow',Arial,sans-serif}
*{box-sizing:border-box}
/* Scrollbars in the game's own palette: a thin ink thumb on the paper track, no arrows, the same everywhere
   (the feed, the archive dialog, the side columns, the page itself). */
*{scrollbar-width:thin;scrollbar-color:#B8AE9C transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#B8AE9C;border:3px solid var(--card);border-radius:0}
*::-webkit-scrollbar-thumb:hover{background:var(--gold-dk)}
*::-webkit-scrollbar-button{display:none;width:0;height:0}
*::-webkit-scrollbar-corner{background:transparent}
html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb{border-color:var(--paper)}
html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.35}
/* the game page: no text selection (event texts are the quiz), except in the fields the player types into */
.no-copy{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.no-copy input,.no-copy textarea{-webkit-user-select:text;user-select:text}
button{font-family:var(--cond);cursor:pointer;color:inherit}
a{color:var(--gold-dk)}
.page{max-width:2200px;margin:0 auto;padding:24px 40px 48px}
.lbl{font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:14px;color:var(--muted)}
.lbl.gold{color:var(--gold-dk)}.lbl.ink{color:var(--ink)}.lbl.light{color:#E9E2D2}
.num{font-family:var(--cond);font-weight:600}
.num.big{font-size:40px;line-height:1.1}.num.huge{font-size:60px;line-height:1}.num.h{font-size:25px}.num.h2{font-size:25px;letter-spacing:.06em}.num.brand{font-size:38px;letter-spacing:.06em;color:var(--gold-dk);line-height:1}
.num.rate{font-size:54px;min-width:170px;text-align:center}.num.code{font-size:32px;letter-spacing:.12em;word-break:break-all}
.alarm{color:var(--alarm)}.gold{color:var(--gold-dk)}.muted{color:var(--muted)}.small{font-size:16px}.italic{font-style:italic}.center{text-align:center}.r{text-align:right}
.title{font-family:var(--cond);font-weight:700;font-size:72px;line-height:.95;letter-spacing:.04em;color:var(--gold-dk);margin:0}
.lede{font-size:24px;max-width:720px;margin:0}
.h1{font-size:42px;font-weight:500;line-height:1.15;margin:0}
.row{display:flex;align-items:center}.row.gap{gap:24px}.row.gap-s{gap:8px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.top-align{align-items:flex-start}.row.baseline{align-items:baseline}
.col{display:flex;flex-direction:column;gap:8px}.col.gap{gap:16px}.col.gap-s{gap:6px}
.flex1{flex:1 1 360px;min-width:0}.flex2{flex:2 1 560px;min-width:0}.mt{margin-top:8px}
.tag{display:inline-block;font-family:var(--cond);font-weight:700;font-size:22px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.card{background:var(--card);border:1px solid var(--rule);padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.card.dark{background:var(--ink);color:var(--card)}
.card.decision{border:1.5px solid var(--ink);padding:22px 24px;gap:18px}
.card .foot{border-top:1px solid var(--rule);padding-top:16px;gap:16px}
.fc{font-size:19px;max-width:640px;line-height:1.35}
.btn{font-family:var(--cond);font-size:18px;letter-spacing:.06em;font-weight:700;padding:12px 20px;border:1.5px solid var(--ink);background:transparent;min-height:50px}
.btn.primary{background:var(--ink);color:var(--card);border-color:var(--ink);font-size:22px;padding:14px 28px;letter-spacing:.08em}
.btn.gold{background:var(--gold);color:var(--ink);border:none}
.btn.small{font-size:16px;padding:8px 14px;min-height:42px;font-weight:600}
.btn.sq{width:50px;height:50px;padding:0;font-size:28px;font-weight:500}
.btn.seg{flex:1;padding:12px 8px;border:1px solid #B8AE9C;font-size:18px}.btn.seg.is-on{border-color:var(--ink);background:var(--ink);color:var(--card)}
.signals{flex:1 1 420px;min-width:0}.signals .row.gap-s{align-items:stretch}
/* Analytics card: three paid instruments side by side, result or order button in each cell. */
.an-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.an-cell{display:flex;flex-direction:column;gap:6px;min-width:0;padding-right:16px;border-right:1px solid var(--rule)}.an-cell:last-child{border-right:none;padding-right:0}
/* Cells keep one height whatever they hold (a button, or a figure with a one- or two-line caption), so the chart above never resizes when a caption wraps. */
.an-cell{min-height:112px}.an-cell .num.big{font-size:34px}.an-cell .muted.small{line-height:1.3;min-height:2.6em}
/* The decision bar sits at the end of the page and sticks to the bottom of the window while the columns scroll,
   so the rate, the signal and the button are always in view at full size. */
.page.meeting{padding-bottom:0}
.decision-bar{position:sticky;bottom:0;z-index:5;margin:28px -40px 0;padding:14px 40px 16px;background:var(--card);border-top:2px solid var(--ink);box-shadow:0 -12px 30px rgba(22,20,18,.12);display:flex;align-items:flex-start;gap:36px;flex-wrap:wrap}
.db-title{display:flex;flex-direction:column;gap:2px;flex:0 0 auto;padding-top:10px}
.db-go{padding-top:23px}
.db-cell{display:flex;flex-direction:column;gap:6px;min-width:0}
.db-cell.signals{flex:1 1 360px;max-width:640px}
.db-go{margin-left:auto;align-items:flex-end;text-align:right;max-width:360px;flex:0 0 auto}
.lbl .ink{color:var(--ink)}.nowrap{white-space:nowrap}
/* The rate cell has a fixed width, so a longer move text (+100 б.п.) does not push the signals sideways. */
.db-rate{flex:0 0 390px;overflow:hidden}.db-move{min-width:100px;white-space:nowrap}.lbl.ink{color:var(--ink)}
/* (i) popovers float over the page instead of taking space in it. */
.an-cell,.db-cell{position:relative}
.info-pop{position:absolute;left:0;top:calc(100% + 10px);z-index:7;width:460px;max-width:90vw;background:var(--card);border:1.5px solid var(--ink);border-left:4px solid var(--gold);box-shadow:0 14px 36px rgba(22,20,18,.22);padding:12px 16px;font-size:17px;line-height:1.4;color:var(--ink)}
.info-pop.up{top:auto;bottom:calc(100% + 10px)}
.an-cell:last-child .info-pop{left:auto;right:0}
.feed-item{position:relative}.feed-item .info-pop{left:0;right:0;width:auto;top:100%}
.info-pop sub{font-size:.72em}
.decision-bar .num.rate{font-size:46px;min-width:150px}
@media (max-width:1150px){.db-title{display:none}.decision-bar{gap:24px}}
.btn[disabled]{opacity:.4;cursor:default}
.link{background:none;border:none;padding:8px 0;font-family:var(--serif);font-size:17px;color:var(--gold-dk);text-decoration:underline;align-self:flex-start}
.stepper{display:flex;align-items:center;gap:10px}
.chip{padding:8px 12px;border:1px solid #B8AE9C;background:transparent;font-size:16px;min-height:42px;font-weight:600}.chip[disabled]{opacity:.55;cursor:default}.chip.is-on[disabled]{opacity:1}.chip.is-on{border-color:var(--ink);background:var(--ink);color:var(--card)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:1.5px solid var(--ink);padding-bottom:12px;margin-bottom:22px}
.top.col-head{align-items:flex-end;padding-bottom:18px}
.cols{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.left{flex:0 0 300px;display:flex;flex-direction:column;gap:12px}.left-rest{display:flex;flex-direction:column;gap:12px}
.mid{flex:999 1 620px;min-width:0;display:flex;flex-direction:column;gap:18px}
.panel{border-top:1px solid var(--rule);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.rules-dl{margin:0;display:flex;flex-direction:column;gap:8px;font-size:16px;line-height:1.3}
/* Score breakdown: one line per component, figures aligned right in the condensed face. */
.score-dl{margin:0;display:flex;flex-direction:column;gap:4px}
.score-dl div{display:flex;justify-content:space-between;align-items:baseline}
.score-dl dt{font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600;color:var(--muted)}
.score-dl dd{margin:0;font-family:var(--cond);font-weight:600;font-size:18px}
.rules-dl dt{font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:600;color:var(--muted)}
.rules-dl dd{margin:0}.rules-dl sub{font-size:.72em}
.right{flex:1 1 380px;min-width:340px;max-width:440px;background:var(--card);border:1px solid var(--rule);padding:18px 20px;display:flex;flex-direction:column}
.feed-head{padding-bottom:10px;border-bottom:1.5px solid var(--ink)}
/* Feed tabs with unread counts; the column scrolls on its own if a tab is still too long for the window. */
/* The gutter for the feed's scrollbar is always reserved, so the column does not reflow when the bar comes and goes. */
.right{position:sticky;top:16px;max-height:calc(100vh / var(--zoom, 1) - 230px);overflow-y:auto;scrollbar-gutter:stable}
.feed-tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin-bottom:4px}
/* Frequency switch on the inflation and GDP charts. */
.freq{display:inline-flex;border:1px solid #B8AE9C}
.freq-btn{padding:4px 10px;border:none;background:transparent;font-family:var(--cond);font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.freq-btn.is-on{background:var(--ink);color:var(--card)}
.feed-tab{position:relative;flex:1 1 0;padding:10px 4px 8px;border:none;border-bottom:3px solid transparent;background:transparent;font-family:var(--cond);font-size:16px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.feed-tab.is-on{color:var(--ink);border-bottom-color:var(--gold)}.feed-tab[disabled]{opacity:.4;cursor:default}
.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;margin-left:6px;border-radius:11px;background:var(--gold);color:var(--card);font-size:14px;letter-spacing:0;vertical-align:middle}
.feed-item{padding:14px 0;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:8px}
.feed-text{font-size:19px;line-height:1.3}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
/* Every tile is the same grid: title row, figure row, three detail rows. Fixed row heights keep all boxes aligned. */
.tile{background:var(--card);border:1px solid var(--rule);padding:14px 16px 10px;display:grid;grid-template-rows:38px 56px 24px 24px 24px;row-gap:2px;align-content:start;font-family:var(--serif);font-size:19px;text-align:left;min-width:0;margin:0}
button.tile{cursor:pointer;border-bottom:3px solid var(--rule)}button.tile:hover{border-color:#B8AE9C}
button.tile.is-on{border-color:var(--ink);border-bottom-color:var(--gold)}
.tile-title{font-size:15px;line-height:1.15;align-self:start;overflow:hidden}
.tile-main{display:flex;align-items:flex-end;gap:8px;height:56px;padding-bottom:4px;min-width:0}
.tile-main .num{font-family:var(--cond);font-weight:600;font-size:clamp(32px,calc(2.3vw / var(--zoom, 1)),46px);line-height:1;white-space:nowrap}
.tile-main.arrow .num{font-size:clamp(22px,calc(1.6vw / var(--zoom, 1)),32px)}
.tile-unit{font-family:var(--cond);font-size:13px;line-height:1.05;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);max-width:60px;padding-bottom:2px}
.tile-sub{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-family:var(--cond);font-size:18px;font-weight:600;line-height:24px;color:var(--ink);min-width:0}
.tile-sub b{font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tile-sub span{white-space:nowrap;letter-spacing:.02em}
.chart{width:100%;height:auto;display:block}
.chart-tick{font-family:var(--cond);fill:var(--muted)}.chart-gold{fill:var(--gold-dk)}.chart-ink{fill:var(--ink)}.chart-note{letter-spacing:.06em}
.chair-frame{width:300px;height:360px;border:1px solid var(--rule);background:var(--card);overflow:hidden}
.chair-frame.small{width:180px;height:216px;flex:0 0 auto}
.chair-frame svg{width:100%;height:100%;display:block}
.chair .part{transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .4s ease;transform-box:view-box}
.chair .lid{transition:transform .11s ease-in;transform-box:view-box}
.chair .breathe{animation:breathe 4.8s ease-in-out infinite;transform-box:view-box;transform-origin:150px 360px}
@keyframes breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(1.8px)}}
.cred{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--rule);padding-top:10px}
.bar{height:6px;background:var(--rule)}.bar-fill{height:6px;background:var(--gold)}
.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mode-card{text-align:left;padding:14px 16px;border:1px solid #B8AE9C;background:var(--paper);display:flex;flex-direction:column;gap:6px}
.mode-card.is-on{border-color:var(--ink);background:var(--ink);color:var(--card)}
.mode-title{font-size:22px;font-weight:700;letter-spacing:.06em}.mode-blurb{font-family:var(--serif);font-size:17px;line-height:1.3}
.start .feed-item .feed-text{font-size:18px}.start .feed-text sub,.start .feed-text sup{font-size:.72em}
.world-code{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap}.world-code .small{flex:1 1 320px;max-width:560px}
.code-input{font-family:var(--cond);font-weight:600;font-size:32px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);width:8.6em;padding:2px 2px 4px;border:none;border-bottom:1.5px solid var(--ink);border-radius:0;background:transparent;outline:none;transition:border-color .15s}
.code-input:hover{border-bottom-color:var(--gold-dk)}.code-input:focus{border-bottom:1.5px solid var(--gold-dk);box-shadow:0 1.5px 0 var(--gold-dk)}
.code-input::placeholder{color:#B8AE9C;font-size:22px;letter-spacing:.08em;text-transform:lowercase}
.toggle{display:flex;gap:10px;align-items:center;font-size:16px}.toggle input{width:20px;height:20px;accent-color:var(--ink)}
.strip{display:flex;flex-wrap:wrap;gap:12px 24px;background:var(--card);border:1px solid var(--rule);padding:12px 16px}
.strip-v{font-size:17px}.strip-n{font-size:22px}
.info-btn{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--gold-dk);background:transparent;color:var(--gold-dk);font-family:var(--serif);font-style:italic;font-size:15px;line-height:1;padding:0;flex:0 0 auto}
.info-btn[aria-expanded="true"]{background:var(--gold-dk);color:var(--card)}
.info-box{border-left:3px solid var(--gold);padding:8px 14px;font-size:17px;line-height:1.4;color:var(--ink);background:var(--paper)}
.overlay{position:fixed;inset:0;background:rgba(22,20,18,.55);display:flex;align-items:center;justify-content:center;padding:24px;z-index:10}
.dialog{width:100%;max-width:760px;max-height:calc(92vh / var(--zoom, 1));overflow:auto;background:var(--card);border:1.5px solid var(--ink);box-shadow:0 24px 60px rgba(22,20,18,.35);display:flex;flex-direction:column}
.dialog.wide{max-width:960px}.dialog-body.archive{gap:28px;font-size:17px}
.archive-q{display:flex;flex-direction:column}.archive-head{border-bottom:1.5px solid var(--ink);padding-bottom:8px}
.dialog-head{padding:22px 32px 16px;border-bottom:1.5px solid var(--ink);display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.dialog-body{padding:24px 32px;display:flex;flex-direction:column;gap:18px;font-size:21px;line-height:1.45}.dialog-body p{margin:0}
.just{padding-left:14px;border-left:3px solid var(--gold)}.just-mark{border-left:3px solid var(--gold);padding-left:6px}
.dialog-foot{padding:18px 32px 24px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.head-row{border-bottom:1.5px solid var(--ink);padding-bottom:24px;margin-bottom:24px}
.outcome .tag{align-self:flex-start;margin-bottom:12px;display:inline-block}
.outcome .kpis{margin-bottom:20px}
.badge{background:var(--ink);color:var(--card);padding:8px 16px}.badge .light{color:#E9E2D2}
.tbl{border-collapse:collapse;width:100%;font-size:17px}.tbl td,.tbl th{padding:8px 10px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.tbl th{font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;font-size:14px;color:var(--muted);border-bottom:1.5px solid var(--ink)}
.tbl.wide{min-width:560px}.scroll-x{overflow-x:auto}
@media (max-width:1150px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.right{max-width:none}}
@media (max-width:1150px){.an-grid{grid-template-columns:1fr}.an-cell{border-right:none;padding-right:0;border-bottom:1px solid var(--rule);padding-bottom:10px}.an-cell:last-child{border-bottom:none}}
@media (max-width:900px){.page{padding:16px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.left{flex-basis:100%;flex-direction:row;flex-wrap:wrap}.left .panel{flex-basis:100%}.title{font-size:48px}.mode-grid{grid-template-columns:1fr}.decision-bar{margin:16px -16px 0;padding:12px 16px;gap:16px}.db-go{margin-left:0;align-items:flex-start;text-align:left}}

/* On a wide, tall enough window the meeting screen is laid out to the window height: the header, the columns
   and the decision bar share 100vh, the chart shrinks to the space left, and only the side columns scroll inside
   themselves if they must. Narrower or shorter windows keep the ordinary flowing layout. */
@media (min-width:1150px) and (min-height:600px){
  .page.meeting{height:calc(100vh / var(--zoom, 1));display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
  .meeting .top{flex:0 0 auto}
  .meeting .cols{flex:1 1 auto;min-height:0;align-items:stretch;flex-wrap:nowrap}
  .meeting .left{overflow-y:auto;min-height:0;scrollbar-gutter:stable}
  .meeting .mid{min-height:0;overflow:hidden}
  .meeting .chart-card{flex:1 1 auto;min-height:170px;overflow:hidden}
  .meeting .chart-card .chart{flex:1 1 auto;min-height:0;height:auto;max-height:100%}
  .meeting .analytics{flex:0 0 auto}
  .meeting .right{position:static;max-height:none;min-height:0;flex:1 1 380px}
  .meeting .decision-bar{position:static;flex:0 0 auto;margin-top:18px}
}

/* ---- three start modes, inputs, errors */
.mode-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1150px){.mode-grid.three{grid-template-columns:1fr}}
.text-input{font-family:var(--cond);font-weight:600;font-size:24px;color:var(--ink);width:22em;max-width:100%;padding:2px 2px 4px;border:none;border-bottom:1.5px solid var(--ink);border-radius:0;background:transparent;outline:none}
.text-input.pin{width:6em;letter-spacing:.2em}
.text-input:focus{border-bottom-color:var(--gold-dk);box-shadow:0 1.5px 0 var(--gold-dk)}
.error{border-left:4px solid var(--alarm);background:#F6E6E2;color:var(--alarm);padding:10px 14px;font-size:17px;margin:0 0 12px}
/* ---- the shock quiz */
.quiz .dialog-body{gap:14px}
.quiz-event{font-size:20px;border-left:3px solid var(--gold);padding-left:14px}
.qblock{border-top:1px solid var(--rule);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.qrow{display:grid;grid-template-columns:260px 1fr auto;gap:10px;align-items:center}
.qrow .muted.small{grid-column:2}
.qlabel{font-size:18px}.qlabel sub{font-size:.72em}
.chip.is-key{outline:2px solid var(--gold);outline-offset:1px}
.qmark{font-family:var(--cond);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px}
.qmark.ok{color:#2F6B3A}.qmark.bad{color:var(--alarm)}
@media (max-width:900px){.qrow{grid-template-columns:1fr}.qrow .muted.small{grid-column:1}}
/* ---- the tutorial overlay: outside #app, above dialogs */
#tut{position:fixed;inset:0;z-index:30;pointer-events:none}
#tut[hidden]{display:none}
#tut.dim::before{content:'';position:absolute;inset:0;background:rgba(22,20,18,.55)}
.tut-spot{position:absolute;border:2px solid var(--gold);box-shadow:0 0 0 9999px rgba(22,20,18,.55);transition:all .15s ease;pointer-events:none}
#tut.soft .tut-spot{box-shadow:0 0 0 9999px rgba(22,20,18,.18)}
.tut-card{position:absolute;pointer-events:auto;background:var(--card);border:1.5px solid var(--ink);border-left:5px solid var(--gold);box-shadow:0 18px 44px rgba(22,20,18,.35);padding:14px 18px;display:flex;flex-direction:column;gap:10px;z-index:1}
.tut-text{font-size:19px;line-height:1.4}.tut-text sub{font-size:.72em}
.tut-card.nudge{animation:nudge .35s ease}
@keyframes nudge{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
/* ---- teacher panel */
.panel-page .card{gap:14px}
.panel-page textarea{width:100%;min-height:140px;font-family:var(--serif);font-size:16px;border:1px solid var(--rule);background:var(--paper);padding:10px}
.panel-page input[type=number],.panel-page input[type=text],.panel-page input[type=password]{font-family:var(--cond);font-size:20px;padding:4px 8px;border:1px solid #B8AE9C;background:var(--paper);width:8em}
.panel-page .tbl td,.panel-page .tbl th{font-size:15px;padding:6px 8px}
.panel-page .best{background:#EFE6D2}
/* ---- the debrief: one cell per number, the same height and alignment for all */
.debrief{display:flex;flex-direction:column;gap:20px}
.debrief .top{margin-bottom:0}
.grade-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.grade-cell{background:var(--card);border:1px solid var(--rule);padding:16px 18px;display:grid;grid-template-rows:auto 56px auto;row-gap:6px;align-content:start}
.grade-cell .num.big{line-height:56px}
.grade-cell.dark{background:var(--ink);border-color:var(--ink);color:var(--card)}
.grade-cell .small{line-height:1.3}
@media (max-width:1150px){.grade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.debrief-actions .btn{font-size:18px;padding:12px 22px;min-height:50px;letter-spacing:.06em}
