/* ---- Day 3: setup, topics, topic pages ---- */
.setup-card{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:28px;padding:40px;display:flex;flex-direction:column;gap:22px}
.setup-card .muted{margin:0;font-weight:300;font-size:18px}
.setup-group{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.setup-group legend{font-weight:700;font-size:19px;letter-spacing:-0.01em;margin-bottom:12px;padding:0}
.opt-note{font-weight:300;color:var(--ink-2);font-size:15px}
.opt-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.opt{position:relative;display:block;cursor:pointer}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt-box{display:flex;flex-direction:column;gap:2px;min-height:76px;justify-content:center;border:1.5px solid #C9CDD3;border-radius:16px;padding:14px 18px;background:#fff;transition:border-color .15s,background .15s}
.opt-box strong{font-size:18px}
.opt-box small{font-size:14px;color:var(--ink-2)}
.opt:hover .opt-box{border-color:var(--ink)}
.opt input:checked + .opt-box{background:var(--ink);border-color:var(--ink);color:#fff}
.opt input:checked + .opt-box small{color:var(--blue-light)}
.opt input:focus-visible + .opt-box{outline:3px solid var(--blue-light);outline-offset:2px}
.help-text{margin:0;font-size:15px;color:var(--ink-2)}
.setup-card .btn{align-self:flex-start}

.study-chip{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 8px 6px 16px;font-size:15px;font-weight:500}
.study-chip a{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;background:var(--mist);color:var(--ink);text-decoration:none;font-size:14px}
.study-chip a:hover{background:var(--ink);color:#fff}

.t-head{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}
.t-head .muted{margin:0;font-weight:300;font-size:18px;max-width:640px}
.t-board{background:var(--ink);color:#fff;border-radius:24px;padding:24px 28px;margin-bottom:36px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.t-board dt{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--blue-light);margin-bottom:4px}
.t-board dd{margin:0;font-weight:300;color:#E4E7EC;font-size:15px}
.t-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:24px}
.t-search{font:inherit;font-size:16px;min-height:48px;padding:0 18px;border:1.5px solid #C9CDD3;border-radius:999px;background:#fff;min-width:240px;flex:1 1 240px;max-width:380px}
.t-search:focus{outline:3px solid var(--blue-light);border-color:var(--blue)}
.t-strand{margin-bottom:36px}
.t-strand h2{font-size:24px;letter-spacing:-0.03em;margin:0 0 14px;display:flex;align-items:baseline;gap:10px}
.t-strand h2 small{font-size:14px;font-weight:300;color:var(--ink-2);letter-spacing:0}
.t-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.t-card{display:flex;flex-direction:column;gap:6px;height:100%;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px;text-decoration:none;color:var(--ink)}
.t-card:hover{border-color:var(--ink)}
.t-card h3{margin:0;font-size:18px;letter-spacing:-0.01em}
.t-card p{margin:0;font-size:15px;color:var(--ink-2);font-weight:300;flex:1}
.t-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.t-pill{font-size:12px;font-weight:500;border-radius:999px;padding:3px 10px;background:var(--mist);color:var(--ink-2)}
.t-pill.draft{background:#FFF4E5;color:#8A4B00}
.t-soon{color:var(--ink-2);font-size:15px;background:#fff;border:1px dashed #C9CDD3;border-radius:18px;padding:18px 20px}

/* topic page */
.tp-head{margin-bottom:22px}
.tp-head .muted{margin:0;font-weight:300;font-size:18px;max-width:680px}
.tp-tip{background:#F5F7FF;border:1px solid #D6DEFA;border-radius:18px;padding:16px 20px;margin-bottom:24px;display:flex;gap:14px;align-items:flex-start}
.tp-tip strong{flex:none;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);padding-top:3px}
.tp-tip p{margin:0}
.tp-tabs{display:inline-grid;grid-auto-flow:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px;margin-bottom:24px}
.tp-tabs button{font:inherit;font-size:15px;font-weight:500;min-height:44px;padding:0 20px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);cursor:pointer}
.tp-tabs button[aria-selected=true]{background:var(--ink);color:#fff}
.tp-panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px}
.notes{font-size:18px;line-height:1.65;max-width:760px}
.notes h2{font-size:24px;letter-spacing:-0.02em;margin:28px 0 8px}
.notes h2:first-child{margin-top:0}
.notes h3{font-size:19px;margin:20px 0 6px}
.notes p{margin:0 0 12px}
.notes ul,.notes ol{padding-left:22px;margin:0 0 12px}
.notes .key{background:#F5F7FF;border-left:4px solid var(--blue);border-radius:0 12px 12px 0;padding:12px 16px;margin:14px 0}
.notes .example{background:var(--mist);border-radius:14px;padding:14px 18px;margin:14px 0}
.notes .example > strong:first-child{display:block;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.notes .warn{background:#FFF7F5;border-left:4px solid #D9583B;border-radius:0 12px 12px 0;padding:12px 16px;margin:14px 0}
.notes table{border-collapse:collapse;margin:12px 0;font-size:16px}
.notes th,.notes td{border:1px solid var(--line);padding:8px 12px;text-align:left}
.q-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:18px}
.q-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.q-item{border:1px solid var(--line);border-radius:18px;padding:20px 22px;break-inside:avoid}
.q-top{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.q-n{font-weight:900;font-size:20px;margin-right:6px}
.badge{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 10px}
.badge.nocalc{background:var(--ink);color:#fff}
.badge.calc{background:#E9EEFD;color:#1E3FB0}
.badge.either{background:var(--mist);color:var(--ink-2)}
.badge.tier{background:#fff;border:1px solid #C9CDD3;color:var(--ink-2)}
.q-marks{margin-left:auto;font-weight:700;font-size:15px}
.q-body{font-size:17px;line-height:1.6}
.q-body p{margin:0 0 8px}
.q-body ol{margin:6px 0 0;padding-left:24px}
.q-reveal{margin-top:12px}
.ms{border-top:2px solid var(--blue);margin-top:14px;padding-top:12px}
.ms-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ms-head span{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--blue);font-weight:700}
.ms-row{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:16px}
.ms-row:first-of-type{border-top:0}
.ms-code{font-weight:900;color:var(--blue)}
.ms-note{font-size:14px;color:var(--ink-2);margin:8px 0 0}
.ms-locked{background:var(--mist);border-radius:14px;padding:14px 18px;color:var(--ink-2);font-size:15px;margin-top:12px}
.ms-key{font-size:14px;color:var(--ink-2);margin:0 0 16px}
.print-head{display:none}
@media (max-width:760px){.setup-card{padding:28px 22px}.tp-panel{padding:22px 18px}.q-item{padding:16px}.tp-tabs{display:grid;width:100%}.tp-tabs button{padding:0 10px}}
@media print{
  .site-header,.p-back,.tp-tabs,.q-bar,.q-reveal,.skip,.study-chip a,.no-print{display:none !important}
  body,.portal-body{background:#fff}
  .tp-panel{border:0;padding:0}
  .print-head{display:flex !important;justify-content:space-between;align-items:center;border-bottom:3px solid var(--ink);padding-bottom:10px;margin-bottom:18px}
  .print-head .wordmark{font-size:22px}
  .q-item{border-color:#999}
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.q-tierbtn{font:inherit;font-size:15px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid #C9CDD3;background:#fff;color:var(--ink);cursor:pointer}
.q-tierbtn[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.q-actions{display:flex;gap:10px;flex-wrap:wrap}
.print-head .print-meta{font-size:13px;color:var(--ink-2);text-align:right}