/* ---------- Past Papers ---------- */
.small{font-size:.84rem}
.hero-stats{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.hero-stats li{display:flex;gap:8px;align-items:baseline;padding:8px 14px;border-radius:var(--r-tag);background:rgba(26,20,16,.22);border:1px solid rgba(255,255,255,.22);font-size:.9rem}
.hero-stats b{font-family:var(--display);font-size:.95rem}
.finder{background:var(--paper);position:relative;isolation:isolate;padding-top:56px;overflow-x:clip}
.finder::before{content:"";position:absolute;width:600px;height:600px;left:-220px;top:-180px;border-radius:50%;background:radial-gradient(circle,rgba(217,68,15,.16),transparent 65%);z-index:-1}
.filter-bar{display:grid;gap:14px;padding:18px;border-radius:var(--r-xl);position:sticky;top:90px;z-index:20}
@media (min-width:900px){.filter-bar{grid-template-columns:auto 1fr 1fr 1.4fr;align-items:end}}
@media (max-width:899px){.filter-bar{position:relative;top:0;grid-template-columns:1fr 1fr}.filter-bar .field:first-child{grid-column:1/-1}.filter-bar .field:last-child{grid-column:1/-1}.filter-bar .seg{flex-wrap:nowrap;overflow-x:auto}}
.results-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;margin:22px 0 14px}
.paper-grid{display:grid;gap:12px}
@media (min-width:640px){.paper-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1080px){.paper-grid{grid-template-columns:repeat(3,1fr)}}
.pcard{display:grid;gap:12px;padding:18px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.pcard:hover{transform:translateY(-3px);box-shadow:0 22px 40px -28px rgba(26,20,16,.5)}
.pcard-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.pcard .code{font-family:var(--display);font-weight:800;font-size:1.3rem;letter-spacing:-.03em;color:var(--ember)}
.pcard h3{font-size:1rem}
.pcard small{color:var(--muted);font-size:.85rem}
.pcard .meta{display:block;margin:2px 0 6px}
.pcard .len{flex:none;padding:4px 10px;border-radius:var(--r-tag);background:var(--bone);font-size:.78rem;font-weight:700}
.pcard-btns{display:flex;gap:8px;flex-wrap:wrap}
.pcard-btns .btn{flex:1 1 auto;--h:46px;font-size:.88rem;padding:0 5px 0 16px;gap:12px}
.empty-state{grid-column:1/-1;display:grid;justify-items:center;gap:10px;padding:40px 16px;text-align:center;color:var(--muted)}
.empty-state .mascot{width:80px;height:96px}
.more{display:flex;justify-content:center;margin-top:18px}

.practice{background:var(--ink);color:var(--bone-2);position:relative;overflow:hidden;isolation:isolate}
.practice::before{content:"";position:absolute;width:620px;height:620px;right:-200px;top:-180px;border-radius:50%;background:radial-gradient(circle,rgba(217,68,15,.5),transparent 65%);z-index:-1}
.practice .lede{color:rgba(246,242,234,.72)}
.xa-grid{display:grid;gap:14px}
@media (min-width:800px){.xa-grid{grid-template-columns:1fr 1fr}}
.xcard{display:grid;gap:12px;padding:24px;border-radius:var(--r-lg)}
.xcard .tag{justify-self:start;padding:4px 11px;border-radius:var(--r-tag);background:var(--ember);font-size:.78rem;font-weight:700}
.xcard p{color:rgba(246,242,234,.75);font-size:.95rem}
.xcard ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.xcard li{padding:4px 10px;border-radius:var(--r-tag);background:rgba(255,255,255,.08);font-size:.8rem}

.log-sec{background:var(--bone)}
.log-stats{display:grid;grid-template-columns:repeat(3,minmax(0,200px));gap:10px;margin-bottom:14px}
.log-stats div{padding:14px 16px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line);min-width:0}
.log-stats b{display:block;font-family:var(--display);font-size:1.4rem}
.log-stats span{font-size:.84rem;color:var(--muted)}
.table-wrap{overflow-x:auto;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line)}
.log-table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:600px}
.log-table th,.log-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}
.log-table th{font-size:.8rem;color:var(--muted);font-weight:600}
.log-table tr:last-child td{border:0}
.log-table .none{text-align:center;color:var(--muted);padding:26px}

/* viewer */
.viewer{position:fixed;inset:0;z-index:75;padding:12px;background:rgba(26,20,16,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex}
.viewer[hidden]{display:none}
.viewer-box{flex:1;display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;color:var(--bone-2);min-width:0}
.v-head{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.1)}
.v-title{display:grid;min-width:0;flex:1 1 220px}
.v-title b{font-family:var(--display);font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v-title small{color:rgba(246,242,234,.6);font-size:.8rem}
.v-docs{display:flex;gap:4px;padding:4px;border-radius:12px;background:rgba(255,255,255,.07);overflow-x:auto}
.v-docs button{white-space:nowrap;border:0;background:none;color:rgba(246,242,234,.72);padding:8px 12px;border-radius:var(--r-tag);font-weight:600;font-size:.84rem;cursor:pointer}
.v-docs button[aria-selected="true"]{background:var(--bone-2);color:var(--ink)}
.v-actions{display:flex;gap:8px;align-items:center}
.v-x{width:40px;height:40px;border-radius:12px;border:0;background:rgba(255,255,255,.1);color:#fff;font-size:1.3rem;cursor:pointer}
.v-panes{flex:1;display:grid;gap:2px;background:rgba(0,0,0,.25);min-height:0}
.v-panes.split{grid-template-columns:1fr 1fr}
.pane{position:relative;display:flex;flex-direction:column;min-height:0;background:#fff}
.pane-lbl{padding:6px 12px;background:var(--ink-2);color:rgba(246,242,234,.75);font-size:.78rem;font-weight:700}
.pane iframe{position:relative;z-index:1;flex:1;width:100%;border:0;background:transparent}
.pane .load{position:absolute;z-index:0;inset:30px 0 0;display:grid;place-items:center;color:var(--muted);font-size:.9rem;pointer-events:none}
@media (max-width:899px){.v-panes.split{grid-template-columns:1fr}#vSplit{display:none}.viewer{padding:0}.viewer-box{border-radius:0}}

/* setup */
.check{display:flex;gap:12px;align-items:flex-start;font-size:.92rem;cursor:pointer}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--ember);flex:none}
.check b{display:block}
.exit-note{padding:12px 14px;border-radius:12px;background:var(--bone);font-size:.9rem}
.exit-note b{display:block}
.exit-note q{font-weight:700;color:var(--ember-deep)}

/* exam mode */
.exam{position:fixed;inset:0;z-index:95;display:flex;flex-direction:column;background:var(--ink);color:var(--bone-2)}
.exam[hidden]{display:none}
body.exam-on{overflow:hidden}
.ex-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,var(--ink-2),var(--ink))}
.ex-title{display:grid;min-width:0}
.ex-title b{font-family:var(--display);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-title small{font-size:.76rem;color:rgba(246,242,234,.55)}
.ex-clock{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,1rem + 2vw,2.2rem);letter-spacing:-.02em;font-variant-numeric:tabular-nums;padding:4px 16px;border-radius:14px;background:rgba(255,255,255,.06)}
.ex-clock.warn{color:var(--marigold)}
.ex-clock.last{color:#fff;background:var(--ember);animation:pulse 1s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(217,68,15,.25)}}
.ex-right{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.ex-leaves{padding:5px 10px;border-radius:var(--r-tag);background:rgba(242,140,40,.2);color:var(--marigold);font-size:.78rem;font-weight:700;white-space:nowrap}
.ex-end{--fg:var(--bone-2);border-color:rgba(255,255,255,.35)}
.ex-body{flex:1;display:grid;min-height:0}
@media (min-width:900px){.ex-body{grid-template-columns:1.15fr .85fr}}
@media (max-width:899px){.ex-body{grid-template-rows:1fr 1fr}.ex-title small{display:none}.ex-bar{grid-template-columns:1fr auto;}.ex-title{display:none}.ex-right{grid-column:2}}
.ex-paper{display:flex;flex-direction:column;min-height:0;border-right:1px solid rgba(255,255,255,.08)}
.ex-tabs{display:flex;gap:4px;padding:8px}
.ex-tabs button{border:0;background:rgba(255,255,255,.07);color:rgba(246,242,234,.75);padding:7px 12px;border-radius:var(--r-tag);font-weight:600;font-size:.82rem;cursor:pointer}
.ex-tabs button[aria-selected="true"]{background:var(--bone-2);color:var(--ink)}
.ex-frame{flex:1;min-height:0;background:#fff}
.ex-frame iframe{width:100%;height:100%;border:0}
.ex-answer{display:flex;flex-direction:column;gap:8px;padding:12px 14px;min-height:0}
.ex-answer .label{font-size:.85rem;font-weight:700}
.ex-answer textarea{flex:1;min-height:0;width:100%;resize:none;border-radius:var(--r-md);border:1px solid rgba(255,255,255,.14);background:#FFFDF8;color:var(--ink);padding:16px;font-size:1rem;line-height:1.7;
  background-image:repeating-linear-gradient(transparent 0 27px,rgba(46,42,126,.1) 27px 28px);background-attachment:local;background-position:0 15px}
.ex-answer textarea:focus{outline:2px solid var(--marigold)}
.ex-foot{display:flex;justify-content:space-between;font-size:.82rem;color:rgba(246,242,234,.65)}
.ex-warn,.ex-quit,.ex-done{position:absolute;inset:0;z-index:3;display:grid;place-items:center;padding:16px;background:rgba(26,20,16,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ex-warn[hidden],.ex-quit[hidden],.ex-done[hidden]{display:none}
.ex-warn-box,.ex-quit-box,.ex-done-box{width:min(460px,100%);max-height:calc(100dvh - 32px);overflow:auto;border-radius:var(--r-xl);padding:26px 22px;display:grid;gap:12px;justify-items:center;text-align:center}
.ex-warn-box .mascot,.ex-quit-box .mascot,.ex-done-box .mascot{width:72px;height:86px}
.phrase{font-family:var(--display);font-weight:700;font-size:1rem;color:var(--marigold);padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.06);user-select:none;-webkit-user-select:none}
#quitInput{width:100%;min-height:50px;border-radius:12px;border:1.5px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;padding:0 14px;font-size:16px;text-align:center}
#quitInput:focus{outline:none;border-color:var(--marigold)}
.quit-err{min-height:1.2em;color:#FFB59A;font-size:.86rem;font-weight:600}
.ex-quit-btns,.done-btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:100%}
.done-btns .btn{flex:1 1 180px}
.done-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:0}
.done-stats div{padding:12px;border-radius:12px;background:rgba(255,255,255,.06);text-align:left}
.done-stats dt{font-size:.76rem;color:rgba(246,242,234,.6)}
.done-stats dd{margin:0;font-family:var(--display);font-weight:700}
.ex-done-box .field{width:100%;text-align:left}
.mark-row{display:flex;gap:8px;align-items:center}
.mark-row input{max-width:110px}

/* attempts table becomes stacked cards on phones (nothing cut off) */
@media (max-width:640px){
  .log-stats{grid-template-columns:repeat(3,1fr);gap:8px}.log-stats div{padding:12px}.log-stats b{font-size:1.2rem}.log-stats span{font-size:.76rem}
  .table-wrap{background:transparent;border:0;overflow:visible}
  .log-table{min-width:0}.log-table thead{display:none}
  .log-table tbody{display:grid;gap:10px}
  .log-table tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;padding:14px 16px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line)}
  .log-table td{padding:0;border:0;font-weight:600}
  .log-table td[data-l]::before{content:attr(data-l);display:block;font-size:.74rem;font-weight:600;color:var(--muted)}
  .log-table td[data-l="Paper"]{grid-column:1/-1}
  .log-table .none{grid-column:1/-1;padding:8px 0;font-weight:500}
}
