:root{--bg:#f6f8f6;--white:#fff;--ink:#172e39;--muted:#617681;--line:#dfe9e4;--teal:#197a70;--pale:#e6f5ee;--blue:#376f9c;--shadow:0 12px 36px #19453a0c}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.62 'DM Sans',system-ui,sans-serif}button,textarea,input,select{font:inherit}a{color:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #83cbb9;outline-offset:3px}
.skip-link{position:absolute;top:-100px;left:12px;background:white;padding:8px;z-index:10}.skip-link:focus{top:8px}.shell{max-width:1420px;margin:auto;padding:0 38px}
.topbar{min-height:92px;display:flex;align-items:center;gap:38px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}.brand-icon{display:grid;place-items:center;width:40px;height:40px;background:var(--teal);color:#fff;border-radius:12px;font:700 25px Georgia,serif}.brand strong,.brand small{display:block;font-family:Manrope,sans-serif;letter-spacing:.12em}.brand strong{font-size:12px;line-height:1.4}.brand small{font-size:9px;font-weight:800;color:var(--teal)}.topbar nav{display:flex;gap:8px;margin:auto}.topbar nav a{text-decoration:none;font-size:13px;font-weight:700;color:var(--muted);border-radius:9px;padding:9px 13px}.topbar nav a.active,.topbar nav a:hover{background:#e5efe9;color:var(--teal)}.qualification{font-size:11px;letter-spacing:.09em;color:var(--muted);border:1px solid var(--line);border-radius:9px;padding:9px;white-space:nowrap}.qualification b{color:var(--ink)}
.page{padding:37px 0 80px}.eyebrow{font:800 11px Manrope,sans-serif;letter-spacing:.14em;color:var(--teal);text-transform:uppercase}.eyebrow:before{content:'— ';font-weight:800}h1,h2,h3,h4{font-family:Manrope,sans-serif;letter-spacing:-.045em;line-height:1.25}h1{font-size:clamp(34px,4vw,56px);margin:13px 0 17px}h2{font-size:clamp(24px,2.5vw,33px)}h3{font-size:18px}p{color:var(--muted);margin-top:0}p.lead{font-size:16px;max-width:590px;line-height:1.76}.small{font-size:12px}.muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:var(--teal);color:#fff;border:1px solid var(--teal);border-radius:11px;padding:11px 17px;font-size:13px;font-weight:800;gap:8px}.btn:hover{background:#115b53}.btn.ghost{background:#fff;border-color:var(--line);color:var(--ink)}.btn.ghost:hover{background:#f1f6f3}.btn.small{padding:8px 11px;font-size:12px}.btn:disabled{opacity:.48;cursor:default}.actions{display:flex;gap:11px;flex-wrap:wrap;align-items:center}
.hero{display:grid;grid-template-columns:1.2fr .8fr;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:linear-gradient(112deg,#fff,#f6fcf7);box-shadow:var(--shadow)}.hero-content{padding:47px}.hero-content p{max-width:570px}.hero-art{min-height:300px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 45%,#d9eee4,#eef7f0)}.hero-art:before{content:'';position:absolute;inset:-90px;background:linear-gradient(#b7d5c97a 1px,transparent 1px),linear-gradient(90deg,#b7d5c97a 1px,transparent 1px);background-size:31px 31px;transform:rotate(-12deg);mask-image:radial-gradient(circle,#000 20%,transparent 70%)}.hero-art svg{position:absolute;inset:7% 0;width:100%;height:86%;filter:drop-shadow(0 8px 8px #146c521d)}.float-card{position:absolute;right:9%;bottom:12%;padding:13px 20px;background:#fff;border:1px solid var(--line);border-radius:14px;transform:rotate(-5deg);box-shadow:var(--shadow)}.float-card small{display:block;color:var(--muted);font-weight:700}.float-card strong{display:block;color:var(--teal);font:800 21px Manrope,sans-serif}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:37px 0 18px}.section-heading h2{margin:5px 0 0}.section-heading p{font-size:12px;margin:0}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.card,.week-card,.metric,.panel,.paper,.side{background:white;border:1px solid var(--line);border-radius:18px}.card{padding:25px}.card.featured{background:linear-gradient(140deg,#fff,#f2faf5);border-color:#b2dacc}.card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.card h3{font-size:21px;margin:15px 0 8px}.card p{font-size:13px}.card-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:20px}.line{border-top:1px solid var(--line);margin:19px 0}.pill{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:100px;background:#f0f4f2;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.025em}.pill.teal{background:var(--pale);color:#126b59}.pill.blue{background:#e9f1fc;color:#315d91}.pill.amber{background:#fff1db;color:#815819}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.link{font-size:13px;color:var(--teal);font-weight:800;text-decoration:none}.link:hover{text-decoration:underline}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.metric{padding:19px}.metric strong{display:block;font:800 26px Manrope,sans-serif;letter-spacing:-.04em;margin:6px 0}.metric span{font-size:11px;color:var(--muted);font-weight:700}.weeks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.week-card{display:flex;flex-direction:column;text-align:left;padding:18px;min-height:195px;transition:transform .15s,box-shadow .15s}.week-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.week-card.current{border-color:#98d2bb}.week-card.locked{background:#fbfcfb;color:#79898d}.week-card .top{display:flex;justify-content:space-between;align-items:center}.week-no{color:var(--teal);font:800 11px Manrope,sans-serif;letter-spacing:.1em}.week-card.locked .week-no{color:#7c8a90}.week-card h3{font-size:15px;line-height:1.38;margin:12px 0 5px}.week-card p{font-size:11px;line-height:1.55;margin:0}.week-card .bottom{margin-top:auto;display:flex;justify-content:space-between;gap:7px;color:var(--muted);font-size:11px}.panel{padding:24px}.twocol{display:grid;grid-template-columns:1.35fr .65fr;gap:15px}.step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.step{padding:15px;border-radius:13px;background:#f2f7f4}.step b{display:grid;place-items:center;width:29px;height:29px;background:#ddecdf;border-radius:9px;color:var(--teal)}.step strong{display:block;font-size:13px;margin:10px 0 5px}.step p{font-size:11px;margin:0}
.back{display:inline-block;text-decoration:none;color:var(--teal);font-size:12px;font-weight:800;margin-bottom:16px}.page-title{margin:8px 0 4px;font-size:clamp(30px,3vw,46px)}.intro{max-width:730px}.topic-pair{display:grid;grid-template-columns:1fr 1fr;gap:13px}.topic-pair .panel h3{margin:6px 0;font-size:16px}.topic-pair .panel p{font-size:13px;margin:0}.banner{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px;border:1px solid #cce7d8;background:#f1faf5;border-radius:15px;margin-bottom:18px}.banner strong{font:800 15px Manrope,sans-serif}.banner p{font-size:12px;margin:5px 0 0}
.tabs{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0 16px}.tab{padding:9px 13px;border:1px solid var(--line);background:white;border-radius:10px;color:var(--muted);font-size:12px;font-weight:800}.tab[aria-selected=true]{background:var(--pale);color:var(--teal);border-color:#a9d9c4}.study-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:15px;align-items:start}.side{padding:13px;position:sticky;top:14px}.side h3{margin:5px 9px 12px;font-size:14px}.question-links{display:grid;gap:5px}.question-links button{display:flex;align-items:center;gap:9px;text-align:left;border:1px solid transparent;background:transparent;padding:9px;border-radius:9px;font-size:12px;color:var(--ink)}.question-links button:hover{background:#f4f7f5}.question-links button.active{background:var(--pale);border-color:#b9e1d0}.qid{background:#edf5f0;border-radius:7px;color:var(--teal);font-weight:800;padding:5px;min-width:48px;text-align:center}.paper{padding:30px;min-width:0}.paper h2{margin:8px 0 17px;font-size:25px}.paper .stem{font-size:15px;white-space:pre-line;color:var(--ink)}.paper .parts{list-style:none;padding:0;margin:20px 0}.paper .parts li{display:flex;gap:11px;border-top:1px solid #edf1ef;padding:12px 0;align-items:flex-start}.letter{font-weight:800;color:var(--teal);width:27px;flex:none}.question-part{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--ink)}.marks{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.math mjx-container[display=true]{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:3px 0}.paper hr{border:0;border-top:1px dashed var(--line);margin:22px 0}.working-label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:7px}.working{width:100%;min-height:115px;resize:vertical;border:1px solid var(--line);border-radius:11px;padding:11px 12px;color:var(--ink);background:repeating-linear-gradient(#fff,#fff 31px,#eaf0ec 32px);line-height:32px}.working:focus{background:#fff}.helper{padding:17px;border-radius:12px;background:#fffaed;border:1px solid #efdfb9;margin-top:13px}.helper.solution{background:#eff9f3;border-color:#b7dbc9}.helper h3{font-size:14px;margin:0 0 9px}.helper p,.helper li{color:var(--ink);font-size:13px}.helper ol{margin:6px 0;padding-left:23px}.helper li{margin:9px 0}.assessment{padding:19px;border:1px solid var(--line);background:#f4f8f5;border-radius:13px;margin-top:24px}.assessment h3{font-size:15px;margin:0 0 5px}.assessment p{font-size:12px;margin:0 0 10px}.assessment-options{display:flex;flex-wrap:wrap;gap:8px}.assessment-options button{border:1px solid var(--line);background:white;color:var(--muted);font-size:12px;font-weight:800;padding:9px 11px;border-radius:9px}.assessment-options button.selected{background:var(--teal);color:white;border-color:var(--teal)}.form-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:11px}.form-row label{font-size:12px;font-weight:700;color:var(--muted)}.form-row input,.form-row select{background:#fff;border:1px solid #c9d9d0;border-radius:9px;padding:7px;font-size:12px}.form-row input{width:60px}.foot-nav{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.locked-panel{padding:32px;text-align:center;max-width:700px;margin:auto;border:1px dashed #c4d6cc;background:white;border-radius:18px}.locked-panel h2{margin:0 0 10px}.locked-panel p{max-width:480px;margin:0 auto 17px;font-size:13px}
.progress-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.progress-item{padding:19px;border-radius:15px;border:1px solid var(--line);background:#fff}.progress-item h3{font-size:15px;margin:9px 0}.progress-item p{font-size:12px}.meter{height:7px;border-radius:12px;background:#ecf1ee;overflow:hidden}.meter span{display:block;height:100%;background:var(--teal)}.reflection{width:100%;min-height:85px;border:1px solid var(--line);border-radius:11px;padding:11px;resize:vertical}.reflection-row{margin:12px 0}.reflection-row label{display:block;font-weight:800;font-size:12px;margin-bottom:6px}.exam{display:flex;align-items:center;gap:15px;padding:14px;border:1px solid var(--line);background:white;border-radius:13px;margin-top:9px}.exam-date{width:70px;flex:none;text-align:center;color:var(--teal);font:800 12px Manrope,sans-serif}.exam-date strong{display:block;font-size:24px}.exam strong{font-size:13px}.exam p{font-size:11px;margin:2px 0 0}.phases{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.phase{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}.phase h3{font-size:13px;margin:9px 0 6px}.phase p{font-size:11px}.warning{background:#fff9ef;border:1px solid #efdfbd;border-radius:13px;padding:15px;font-size:12px;color:#74572f}
footer{border-top:1px solid var(--line);padding:27px 0 40px;display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:11px}footer b{display:block;font:800 11px Manrope,sans-serif;letter-spacing:.09em;color:var(--ink)}footer span{display:block}
@media(max-width:1100px){.shell{padding:0 24px}.topbar{gap:15px}.weeks{grid-template-columns:repeat(3,1fr)}.qualification{display:none}.phases{grid-template-columns:repeat(3,1fr)}}@media(max-width:730px){.shell{padding:0 15px}.topbar{padding:16px 0 12px;flex-wrap:wrap}.topbar nav{width:100%;overflow-x:auto;order:3;justify-content:space-between;margin:0}.topbar nav a{padding:8px;font-size:11px;white-space:nowrap}.hero{grid-template-columns:1fr}.hero-content{padding:27px}.hero-art{min-height:165px}.page{padding:24px 0 55px}.card-grid,.twocol,.topic-pair,.study-layout,.progress-grid{grid-template-columns:1fr}.metrics,.weeks,.step-grid,.phases{grid-template-columns:repeat(2,minmax(0,1fr))}.week-card{padding:13px;min-height:170px}.week-card h3{font-size:13px}.side{position:static}.question-links{grid-template-columns:repeat(2,minmax(0,1fr))}.paper{padding:20px}.banner{flex-direction:column;align-items:start}footer{flex-direction:column}}@media(max-width:420px){.question-links{grid-template-columns:1fr}.hero h1{font-size:37px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.topbar,footer,.side,.tabs,.assessment,.foot-nav,.working,.btn,.hero{display:none!important}body{background:white}.shell{padding:0}.paper{border:0;padding:0}.study-layout{display:block}}


/* Pass 2: mathematical notation, tabular data and narrow-screen layouts */
.table-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;margin:17px 0 22px;border:1px solid var(--line);border-radius:12px;background:#fff;scrollbar-width:thin}
.data-table{border-collapse:collapse;min-width:510px;width:100%;font-variant-numeric:tabular-nums}
.data-table caption{caption-side:top;text-align:left;background:#f2f7f4;font-size:12px;font-weight:700;color:var(--muted);padding:10px 13px;border-bottom:1px solid var(--line)}
.data-table th,.data-table td{padding:12px 15px;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap;font-size:13px}
.data-table th:first-child,.data-table td:first-child{text-align:left;white-space:normal;min-width:120px}
.data-table th{background:#f6faf7;font-weight:800;color:var(--ink)}
.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:0}
.data-table th:last-child,.data-table td:last-child{border-right:0}
.paper .math,.helper .math,.question-part .math{line-height:1.9}
.paper mjx-container{max-width:100%;font-size:107%!important}
.paper mjx-container[display="true"]{overflow-x:auto;overflow-y:hidden;padding:5px 0}
.paper .stem{overflow-wrap:break-word}
.question-part{line-height:1.95}
.helper li{margin:14px 0}
.helper mjx-container[display="true"]{overflow-x:auto;overflow-y:hidden}
.tag-row .pill[href]{text-decoration:none}
.tag-row .pill[href]:hover{box-shadow:0 0 0 2px #aed8c7}
@media(max-width:730px){.table-scroll{margin-left:-2px;margin-right:-2px}.paper .stem{font-size:14px}.paper mjx-container{font-size:100%!important}.paper .parts li{gap:6px}.marks{flex-shrink:0}.page-title{overflow-wrap:anywhere}}
@media print{.table-scroll{overflow:visible;border:1px solid #777}.data-table{min-width:0}.data-table th,.data-table td{padding:6px 8px;font-size:11px}.helper{display:none!important}}


/* Pass 3 — student working space: notes + true maths typing + freehand ink */
.student-workspace{
  background:linear-gradient(145deg,#fcfefd,#f6fbf8);
  border:1px solid #bdddd0;
  border-radius:17px;
  padding:20px;
  margin:12px 0 23px;
  box-shadow:0 8px 22px #1455460c;
  min-width:0;
}
.work-header{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;margin-bottom:18px;
}
.work-header h3{font-size:20px;margin:6px 0 6px;color:var(--ink)}
.work-header p{font-size:12px;line-height:1.58;margin:0;max-width:510px}
.work-header-actions{display:flex;align-items:flex-end;flex-direction:column;gap:10px;flex-shrink:0}
.work-save-status{color:#28796d;font-size:11px;font-weight:700;line-height:1.5}
.save-error{color:#b34b44!important}
.work-mode-tabs{
  display:flex;gap:7px;align-items:center;padding:5px;
  border:1px solid var(--line);border-radius:13px;background:#eff4f0;
}
.work-mode-tabs button{
  flex:1;min-width:0;min-height:43px;
  border:1px solid transparent;border-radius:10px;
  font-weight:800;font-size:12px;color:var(--muted);
  background:transparent;padding:10px;white-space:nowrap;
}
.work-mode-tabs button:hover{background:#f8fcfa;color:var(--ink)}
.work-mode-tabs button[aria-selected="true"]{
  background:white;color:#126458;border-color:#d2e7db;
  box-shadow:0 2px 9px #124d3712;
}
.work-mode-tabs button span{font-size:17px;margin-right:5px;vertical-align:-1px}
.work-panel{padding:18px 1px 4px;min-width:0}
.work-panel[hidden]{display:none!important}
.work-tip{
  font-size:11px!important;color:var(--muted)!important;
  line-height:1.55!important;margin:10px 0 0!important;
}
.work-notes{
  display:block;width:100%;min-height:235px;resize:vertical;
  padding:10px 14px;color:var(--ink);font-size:14px;line-height:33px;
  background:repeating-linear-gradient(#fff,#fff 32px,#e9f0ec 33px);
  border:1px solid #cbded4;border-radius:12px;
}
.work-notes:focus{background:#fff}
.work-expanded .work-notes{min-height:460px}
.maths-work-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.maths-work-head strong{display:block;font-size:13px;color:var(--ink)}
.maths-work-head p{font-size:11px;margin:4px 0 0;line-height:1.6}
.maths-work-head .btn{flex-shrink:0}
.maths-load-status{
  font-size:11px;color:#337e71;line-height:1.55;
  padding:7px 0 13px;
}
.maths-rows{display:flex;flex-direction:column;gap:10px}
.maths-row{
  display:flex;align-items:flex-start;gap:10px;min-width:0;
  padding:10px;border:1px solid #d9e8de;border-radius:12px;
  background:white;
}
.maths-row:focus-within{border-color:#8fc7ae;box-shadow:0 0 0 3px #e9f7ee}
.maths-line-number{
  align-self:flex-start;flex:0 0 29px;
  font:800 11px/1.5 Manrope,sans-serif;
  color:#418b79;padding-top:15px;text-align:center;
}
.maths-row-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
.maths-editor-slot{min-height:51px;min-width:0}
.maths-mathfield,math-field.maths-mathfield{
  display:block;width:100%;min-height:49px;
  border:1px solid #d5e2dc;border-radius:10px;
  background:#fff;padding:9px 11px;
  font-size:19px;color:var(--ink);
  --hue:164;
  --selection-background-color:#d8f2e5;
  --caret-color:#186b60;
}
.maths-mathfield:focus-within,math-field.maths-mathfield:focus{
  outline:2px solid #83cbb9;outline-offset:1px;
}
.maths-mathfield::part(virtual-keyboard-toggle){color:#146f62}
.maths-reason{
  width:100%;min-height:33px;
  padding:5px 9px;border:1px solid transparent;
  border-bottom-color:#e5ece7;background:#fafcfb;
  border-radius:7px;color:var(--ink);font-size:12px;
}
.maths-reason:focus{outline:2px solid #9ccfb9;background:white}
.maths-reason::placeholder{color:#80908c}
.maths-row-actions{display:flex;flex-direction:column;gap:5px;flex:none}
.maths-icon-btn{
  width:31px;height:31px;border-radius:8px;
  border:1px solid #dfebe4;background:#f7faf8;color:#267b68;
  font-weight:800;font-size:18px;line-height:1;
}
.maths-icon-btn:hover{background:#e1f2e8}
.maths-icon-btn.subtle-danger{color:#986e69}
.maths-icon-btn.subtle-danger:hover{background:#ffede7;border-color:#f2cac0}
.maths-quickbar{
  display:flex;gap:6px;align-items:center;
  overflow-x:auto;padding:12px 1px 9px;
  scrollbar-width:thin;
}
.maths-quickbar-label{font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-right:3px}
.maths-quickbar button{
  flex:none;min-width:36px;min-height:36px;
  padding:6px 10px;border-radius:9px;
  border:1px solid #d5e3dc;background:white;
  color:var(--ink);font-size:15px;font-weight:700;
}
.maths-quickbar button:hover{background:var(--pale);border-color:#a9cfb9}
.maths-bottom{display:flex;justify-content:space-between;align-items:center;gap:9px;flex-wrap:wrap;margin-top:7px}
.maths-fallback-input{
  width:100%;height:39px;padding:8px 10px;
  border:1px solid #d5e3dc;border-radius:9px;
  font:13px/1.5 ui-monospace,Consolas,monospace;
}
.maths-fallback-preview{
  font-size:14px;color:var(--muted);
  min-height:38px;background:#f7faf8;border:1px dashed #d6e5da;
  padding:10px;border-radius:9px;margin-top:6px;overflow-x:auto;
}
.work-expanded .maths-row{padding:14px}
.work-expanded .maths-mathfield{min-height:59px;font-size:22px}

.ink-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding-bottom:13px}
.ink-toolset{
  display:inline-flex;align-items:center;gap:5px;
  border:1px solid var(--line);background:white;
  border-radius:11px;padding:4px;flex-wrap:wrap;
}
.ink-toolset button:not(.ink-colour){
  min-height:33px;padding:6px 9px;font-size:11px;font-weight:800;
  background:transparent;color:var(--muted);border:1px solid transparent;border-radius:8px;
}
.ink-toolset button[aria-pressed="true"]:not(.ink-colour){
  background:var(--pale);color:#12665b;border-color:#aed9c5;
}
.ink-colour{
  display:inline-grid;place-items:center;
  width:30px;height:30px;border-radius:8px;
  background:white;border:2px solid transparent;padding:0;
}
.ink-colour:after{content:"";width:15px;height:15px;background:var(--swatch);border-radius:50%}
.ink-colour[aria-pressed="true"]{border-color:#80b8a4;background:#eff8f2}
.ink-grid-choice{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer}
.ink-grid-choice input{accent-color:var(--teal);width:16px;height:16px}
.ink-canvas-wrap{
  position:relative;overflow:hidden;background:white;
  border:1px solid #c4d8ce;border-radius:12px;
  box-shadow:inset 0 0 0 1px #f3f7f4;
}
.ink-canvas-wrap.has-grid{
  background-image:linear-gradient(#dfeae54d 1px,transparent 1px),linear-gradient(90deg,#dfeae54d 1px,transparent 1px);
  background-size:25px 25px;
}
.ink-canvas-wrap.eraser-active .ink-canvas{cursor:cell}
.ink-canvas{
  display:block;width:100%;height:310px;max-width:100%;
  background:transparent;cursor:crosshair;touch-action:none;
  user-select:none;-webkit-user-select:none;
}
.work-expanded .ink-canvas{height:520px}
.ink-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:11px}
.ink-bottom .actions{gap:7px}
.ink-bottom .btn:disabled{opacity:.35}
@media(max-width:800px){
  .student-workspace{padding:14px}
  .work-header{flex-direction:column}
  .work-header-actions{width:100%;flex-direction:row;align-items:center;justify-content:space-between}
  .maths-row{gap:5px;padding:8px}
  .maths-line-number{flex-basis:24px}
  .maths-mathfield,math-field.maths-mathfield{font-size:18px;padding:9px 8px}
  .ink-canvas{height:340px}
  .work-expanded .ink-canvas{height:62vh;min-height:375px}
}
@media(max-width:480px){
  .work-mode-tabs button{font-size:11px;padding:9px 3px;min-height:43px}
  .work-mode-tabs button span{font-size:13px;margin-right:2px}
  .maths-work-head{align-items:flex-start;flex-wrap:wrap}
  .maths-line-number{font-size:10px;flex-basis:19px}
  .maths-row-actions .maths-icon-btn{width:29px;height:29px}
  .ink-toolbar{gap:7px}
  .ink-toolset button:not(.ink-colour){padding:5px 7px}
  .ink-canvas{height:355px}
  .ink-bottom{align-items:flex-start}
}
@media print{
  .work-header-actions,.work-mode-tabs,.maths-quickbar,.maths-row-actions,.ink-toolbar,.ink-bottom,
  .maths-bottom,.work-tip,.work-save-status{display:none!important}
  .student-workspace{border:1px solid #aaa;background:white;box-shadow:none;padding:11px}
  .work-panel[hidden]{display:none!important}
  .work-notes{border:1px solid #ccc;background:white;min-height:150px}
}


/* Clear two-step end-of-question self-marking (completion is score-driven). */
.finish-assessment{
  margin-top:24px;padding:21px;
  border:1px solid #b9d9ca;border-radius:18px;
  background:linear-gradient(140deg,#f7fcf9,#eef7f1);
  color:var(--ink);
}
.finish-heading{display:flex;justify-content:space-between;align-items:start;gap:17px;margin-bottom:19px}
.finish-heading h3{font-size:20px;margin:7px 0 6px}
.finish-heading p{font-size:12px;line-height:1.55;margin:0;max-width:470px}
.finish-state{
  display:inline-flex;align-items:center;gap:6px;
  flex:none;border-radius:999px;padding:8px 11px;
  font-size:11px;font-weight:800;white-space:nowrap;
  color:#586e68;background:#e8eeea;border:1px solid #d9e6dd;
}
.finish-state[data-finished="true"]{background:#daf3e3;border-color:#9bd3b6;color:#146b4d}
.finish-flow{display:grid;gap:12px}
.finish-step{
  display:flex;gap:13px;padding:19px 17px;
  background:#fff;border:1px solid #dceae0;border-radius:13px;
}
.finish-number{
  width:30px;height:30px;flex:none;
  display:grid;place-items:center;
  border-radius:9px;background:#e0f3e9;color:var(--teal);
  font:800 12px Manrope,sans-serif;
}
.finish-step-content{min-width:0;flex:1}
.finish-step-content>strong{display:block;font-size:14px;line-height:1.5}
.finish-step-content>p{font-size:12px;line-height:1.6;margin:6px 0 13px}
.finish-step-content>p strong{color:var(--ink)}
.assessment-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.assessment-choice{
  min-width:0;display:flex;align-items:center;text-align:left;gap:11px;
  padding:13px 12px;border-radius:11px;
  border:1px solid #d8e5dd;background:#fbfdfc;
  color:var(--ink);
}
.assessment-choice:hover{background:#eff7f2;border-color:#acd4bb}
.assessment-choice[aria-pressed="true"]{border-color:#7abea3;background:#eaf8ee;box-shadow:0 0 0 2px #ccebd8}
.assessment-choice-symbol{
  width:30px;height:30px;display:grid;place-items:center;flex:none;
  border-radius:9px;background:#edf4f0;color:#267864;font-size:18px;
}
.assessment-choice strong{font-size:12px;display:block;line-height:1.3}
.assessment-choice small{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:4px}
.assessment-choice-tick{
  margin-left:auto;align-self:center;
  font-size:16px;color:#147652;visibility:hidden;
}
.assessment-choice[aria-pressed="true"] .assessment-choice-tick{visibility:visible}
.finish-score-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.finish-score-row label{font-size:12px;font-weight:800}
.finish-score{
  width:72px;height:44px;padding:8px 9px;border:1px solid #a8cab8;
  border-radius:10px;background:white;color:var(--ink);
  font:800 19px Manrope,sans-serif;text-align:center;
  font-variant-numeric:tabular-nums;
}
.finish-score:focus-visible{outline:3px solid #84cab1;outline-offset:2px}
.finish-out-of{font-size:12px;font-weight:700;color:var(--muted)}
.clear-self-mark{
  font-size:11px;font-weight:700;color:#54756a;
  background:none;border:1px solid transparent;
  border-radius:8px;padding:8px;margin-left:auto;
}
.clear-self-mark:hover:not(:disabled){border-color:#b3d4c3;background:#f1faf4}
.clear-self-mark:disabled{color:#9aa9a2;cursor:not-allowed}
.finish-mark-message{margin:9px 0 0!important;font-size:11px!important;color:#287a57!important;font-weight:700}
.finish-mark-message.mark-error{color:#b44e42!important}
.finish-followup{display:flex;align-items:center;gap:13px;margin:16px 2px 4px;flex-wrap:wrap}
.finish-followup label{font-size:11px;font-weight:800;color:var(--muted)}
.finish-followup select{
  border:1px solid #d0ded5;border-radius:9px;
  background:white;padding:8px 9px;max-width:100%;
  color:var(--ink);font-size:12px;
}
.finish-saving{font-size:11px!important;color:var(--muted)!important;margin:12px 2px 0!important}
.q-complete-indicator{margin-left:auto;color:#187c56;font-weight:800}
.q-complete-indicator[hidden]{display:none!important}
.question-links button.finished{background:#f2faf5}
@media(max-width:720px){
  .finish-assessment{padding:15px}
  .finish-heading{flex-direction:column;gap:9px}
  .finish-step{padding:14px 11px;gap:10px}
  .assessment-choices{grid-template-columns:1fr}
  .finish-score-row{gap:7px}
  .clear-self-mark{margin-left:0}
}
@media print{.finish-assessment{display:none!important}}


/* Pass 4A: the student-friendly specification library */
.topbar nav{gap:4px}
.topbar nav a{padding:9px 11px;white-space:nowrap}
.spec-home-link{
  margin:23px 0 3px;padding:23px 26px;
  background:linear-gradient(105deg,#e7f6ed,#f9fcf9);
  border:1px solid #b8dacc;border-radius:19px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
}
.spec-home-link h3{font-size:19px;margin:7px 0 7px}
.spec-home-link p{font-size:12px;max-width:720px;margin:0}
.spec-home-link .btn{flex:none;white-space:nowrap}
.spec-page{min-height:72vh}
.spec-page .page-title{margin:9px 0 12px}
.spec-hero{
  min-height:268px;border:1px solid #c7e3d4;border-radius:24px;
  background:linear-gradient(110deg,#fff 5%,#f3faf6 72%,#e6f2eb);
  padding:36px 39px;position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.spec-hero>div:first-child{position:relative;z-index:1;max-width:730px}
.spec-hero .intro{font-size:15px;line-height:1.7;margin-bottom:0}
.spec-hero-metrics{display:flex;gap:30px;margin-top:22px;flex-wrap:wrap}
.spec-hero-metrics>div{display:flex;align-items:baseline;gap:8px}
.spec-hero-metrics strong{font:800 24px Manrope,sans-serif;color:#166d5f}
.spec-hero-metrics span{color:#617b70;font-size:11px;font-weight:700}
.spec-hero-decoration{position:absolute;right:-15px;top:-30px;width:290px;height:300px;opacity:.37}
.spec-hero-decoration span{position:absolute;color:#6cac92;font:700 42px Georgia,serif}
.spec-hero-decoration span:nth-child(1){top:50px;right:75px;transform:rotate(-18deg)}
.spec-hero-decoration span:nth-child(2){top:150px;right:130px;font-size:29px;transform:rotate(18deg)}
.spec-hero-decoration span:nth-child(3){bottom:25px;right:40px;font-size:52px;transform:rotate(13deg)}
.spec-hero-decoration span:nth-child(4){top:110px;right:5px;font-size:60px}
.spec-scope-filter{
  display:flex;align-items:center;gap:17px;
  border:1px solid var(--line);border-radius:15px;
  margin:18px 0;padding:11px 15px;background:#fff;
}
.spec-filter-label,.spec-filter-caption{font-size:11px;font-weight:800;color:#60786d}
.spec-filter-label{flex:none}
.spec-scope-options{display:flex;gap:6px;flex-wrap:wrap}
.spec-scope-options a{
  display:flex;align-items:baseline;gap:8px;
  border-radius:10px;border:1px solid transparent;
  padding:9px 13px;font-size:12px;font-weight:800;
  color:#5c756c;text-decoration:none;
}
.spec-scope-options a span{font-size:10px;font-weight:600;color:#7d9085}
.spec-scope-options a:hover{background:#f0f7f2}
.spec-scope-options a.chosen{
  color:#115f53;background:var(--pale);border-color:#acd8c5;
}
.spec-scope-options a.chosen span{color:#397b65}
.spec-explainer{
  display:flex;gap:15px;align-items:flex-start;
  border:1px solid #dbe8e1;border-radius:14px;padding:16px 20px;margin-bottom:24px;background:#fff;
}
.spec-explainer-icon{
  flex:none;width:30px;height:30px;
  display:grid;place-items:center;
  border-radius:10px;color:#326f91;background:#eaf3fa;
  font:bold 18px Georgia,serif;
}
.spec-explainer strong{font-size:13px}
.spec-explainer p{margin:5px 0 0;font-size:12px;line-height:1.65}
.spec-tools{
  display:flex;justify-content:space-between;align-items:end;gap:18px;
  padding:18px 20px;background:#fff;border:1px solid var(--line);
  border-radius:15px;margin-bottom:12px;
}
.spec-search-wrap{flex:1;min-width:200px;max-width:640px}
.spec-search-wrap label{display:block;font-size:11px;font-weight:800;color:var(--ink);margin-bottom:7px}
.spec-search-wrap input{
  display:block;width:100%;height:43px;padding:9px 12px;
  background:#fbfdfb;border:1px solid #cddfd3;border-radius:10px;
  color:var(--ink);font-size:13px;
}
.spec-search-wrap input:focus{background:#fff;outline:3px solid #a8e0c3}
.spec-strand-wrap{display:flex;flex-direction:column;gap:6px;flex:none}
.spec-strand-buttons{display:flex;gap:5px;flex-wrap:wrap}
.spec-strand-buttons button{
  border:1px solid #d6e4da;color:#526b62;
  border-radius:8px;background:#fff;font-size:11px;font-weight:800;padding:10px 12px;
}
.spec-strand-buttons button:hover{background:#f1faf4}
.spec-strand-buttons button[aria-pressed="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}
.spec-result-line{font-size:11px;font-weight:700;color:#607d70;margin:13px 2px 0}
.spec-group{margin-top:32px}
.spec-group-title,.spec-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:17px}
.spec-group-title h2,.spec-section-heading h2{margin:6px 0 2px}
.spec-group-title p,.spec-section-heading p{font-size:12px;margin:6px 0 0}
.spec-group-count,.spec-skill-counter{
  font-size:11px;font-weight:800;color:#4c7467;
  white-space:nowrap;border:1px solid #d7e6dc;border-radius:999px;padding:5px 10px;
}
.spec-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.spec-topic-card{
  display:flex;flex-direction:column;gap:10px;
  min-height:253px;text-decoration:none;padding:22px 22px 17px;
  background:#fff;border:1px solid var(--line);border-radius:17px;
  transition:box-shadow .16s,border-color .16s,transform .16s;
}
.spec-topic-card:hover{box-shadow:0 11px 25px #15493712;border-color:#b6d8c7;transform:translateY(-2px)}
.spec-topic-card:focus-visible{outline:3px solid #91cbae}
.spec-topic-card.future-only{background:#fafcfb;border-style:dashed}
.spec-topic-top{display:flex;align-items:center;justify-content:space-between;gap:7px}
.spec-ref{
  display:inline-flex;align-items:center;font:800 10px Manrope,sans-serif;
  color:#1c7166;letter-spacing:.05em;
}
.spec-pill{
  display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;
  background:#eff3f0;color:#50776b;
  font-size:10px;font-weight:800;white-space:nowrap;line-height:1.2;
}
.spec-pill.available{background:#e4f5eb;color:#176b51}
.spec-pill.mixed{background:#eaf2fd;color:#3b6688}
.spec-pill.future{background:#f4efe5;color:#81683b}
.spec-topic-card h3{font-size:17px;margin:3px 0 0;line-height:1.35}
.spec-topic-card>p{font-size:12px;line-height:1.55;margin:0}
.spec-preview{
  display:flex;flex-direction:column;gap:4px;
  margin:0 0 4px;padding:0 0 0 11px;border-left:2px solid #cde4d7;
}
.spec-preview span{
  font-size:10px;line-height:1.45;color:#718478;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}
.spec-topic-card .spec-future-note{font-weight:700;color:#887451;font-size:11px}
.spec-matches{font-size:11px;color:var(--teal);font-weight:800;margin-top:2px}
.spec-topic-foot{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-top:1px solid #e9f0ea;margin-top:auto;padding-top:13px;
  font-size:11px;color:#6e8276;
}
.spec-topic-foot strong{color:#187768;white-space:nowrap;font-size:11px}
.spec-overarching{margin-top:44px}
.spec-themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.spec-theme{border:1px solid var(--line);background:#fff;border-radius:16px;padding:21px}
.spec-theme h3{font-size:17px;margin:10px 0}
.spec-theme p{font-size:12px;line-height:1.65}
.spec-theme-demand{
  margin-top:16px;padding:11px 12px;background:#f2f8f4;
  border-radius:10px;font-size:11px;line-height:1.65;color:#4d7467;
}
.spec-theme-demand strong,.spec-theme-demand span{display:block}
.spec-source{
  border-top:1px solid var(--line);display:flex;justify-content:space-between;
  align-items:center;gap:14px;margin-top:38px;padding:19px 0;
  font-size:11px;color:var(--muted);
}
.spec-source a{color:var(--teal);font-size:11px;font-weight:800;white-space:nowrap}
.spec-empty{text-align:center;border:1px dashed #c6dace;border-radius:16px;padding:38px 20px;background:#fff;margin-top:20px}
.spec-empty h3{margin-bottom:8px}
.spec-empty p{max-width:500px;margin:0 auto 18px;font-size:13px}
.spec-detail-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.spec-detail-header>div:first-child{max-width:850px}
.spec-detail-header .intro{margin:0}
.spec-detail-id{
  display:grid;place-items:center;width:110px;height:110px;flex:none;
  border-radius:27px;background:#e2f0e8;color:#1d7b6d;
  font:800 35px Manrope,sans-serif;letter-spacing:-.06em;
}
.spec-detail-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.spec-skill-list{margin-top:34px}
.spec-skill-entries{display:flex;flex-direction:column;gap:10px}
.spec-skill{
  background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;
}
.spec-skill[open]{border-color:#b2d7c3;box-shadow:0 6px 17px #164f3809}
.spec-skill summary{
  display:flex;align-items:center;gap:12px;cursor:pointer;
  list-style:none;min-height:72px;padding:16px 18px;
}
.spec-skill summary::-webkit-details-marker{display:none}
.spec-skill summary:hover{background:#f8fcfa}
.spec-skill[open] summary{border-bottom:1px solid #e4eee6}
.spec-skill-number{flex:none;font:800 10px Manrope,sans-serif;color:#4d9079;min-width:68px}
.spec-skill-title{font-size:13px;font-weight:700;line-height:1.55;min-width:0;flex:1}
.spec-skill-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.spec-skill-chevron{color:#7e9b88;font-size:22px;transition:transform .16s}
.spec-skill[open] .spec-skill-chevron{transform:rotate(180deg)}
.spec-skill-content{padding:16px 19px 20px 101px;display:grid;gap:10px}
.spec-ask,.spec-pitfall{
  display:flex;flex-direction:column;gap:5px;
  padding:13px 15px;border-left:3px solid #aad6c2;background:#f5faf6;
  border-radius:0 9px 9px 0;
}
.spec-pitfall{background:#fff8f0;border-left-color:#e4c499}
.spec-ask strong,.spec-pitfall strong{font-size:11px;color:#2d745f}
.spec-pitfall strong{color:#8b6b3a}
.spec-ask p,.spec-pitfall p{font-size:12px;line-height:1.7;color:#4e6258;margin:0}
.spec-evidence-note{font-size:11px;color:#6b8174;display:flex;gap:8px;align-items:flex-start}
.spec-evidence-dot{width:7px;height:7px;background:#c2d8c9;border-radius:50%;margin-top:5px;flex:none}
.spec-later{margin-top:36px}
.spec-later-disclosure{border:1px solid #e2ddce;border-radius:15px;background:#fdfbf7;padding:15px}
.spec-later-disclosure>summary{
  list-style:none;cursor:pointer;font-size:13px;font-weight:800;color:#856d41;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.spec-later-disclosure>summary::-webkit-details-marker{display:none}
.spec-later-disclosure[open]>summary{margin-bottom:13px}
.spec-later-disclosure .spec-skill{border-color:#eae2d4}
.spec-future-panel{
  padding:25px;border:1px dashed #d6cbaa;background:#fffaf0;
  border-radius:15px;
}
.spec-future-panel h3{margin:0 0 8px}
.spec-future-panel p{font-size:13px;max-width:660px}
.spec-practice-future{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  margin-top:27px;padding:19px;border:1px solid var(--line);border-radius:13px;background:#f1f7f3;
}
.spec-practice-future strong{font-size:13px}
.spec-practice-future p{font-size:12px;max-width:760px;margin:5px 0 0}
.spec-practice-future .btn{flex:none}
@media(max-width:1150px){
  .topbar nav a{font-size:12px;padding:9px 8px}
  .spec-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .spec-tools{align-items:stretch;flex-direction:column}
  .spec-search-wrap{max-width:none}
}
@media(max-width:750px){
  .topbar nav{justify-content:flex-start;gap:6px}
  .topbar nav a{font-size:11px;padding:8px 10px}
  .spec-home-link,.spec-practice-future{flex-direction:column;align-items:stretch}
  .spec-home-link .btn,.spec-practice-future .btn{align-self:flex-start}
  .spec-hero{padding:25px 20px;min-height:240px}
  .spec-hero-decoration{opacity:.14;right:-85px}
  .spec-scope-filter{align-items:flex-start;flex-direction:column;gap:8px}
  .spec-scope-options{width:100%}
  .spec-scope-options a{flex:1;display:flex;flex-direction:column;gap:2px}
  .spec-topic-grid{grid-template-columns:1fr}
  .spec-topic-card{min-height:206px;padding:20px}
  .spec-themes{grid-template-columns:1fr}
  .spec-detail-id{width:66px;height:66px;border-radius:15px;font-size:22px}
  .spec-skill summary{flex-wrap:wrap;gap:8px;padding:14px}
  .spec-skill-title{flex:1 1 calc(100% - 100px);font-size:12px}
  .spec-skill-meta{margin-left:0;order:3;width:100%}
  .spec-skill-content{padding:13px 14px}
  .spec-source{flex-direction:column;align-items:flex-start}
}
@media(max-width:440px){
 .spec-hero-metrics{gap:13px}
 .spec-hero-metrics strong{font-size:21px}
 .spec-scope-options a{font-size:11px;padding:9px}
 .spec-strand-buttons button{padding:9px 10px}
 .spec-detail-header{align-items:flex-start}
 .spec-detail-id{display:none}
 .spec-group-title{align-items:start}
 .spec-group-count{margin-top:10px}
}
@media print{
 .spec-scope-filter,.spec-tools,.spec-explainer,.spec-practice-future,.spec-home-link{display:none!important}
 .spec-topic-grid,.spec-themes{grid-template-columns:1fr 1fr}
 .spec-topic-card,.spec-theme{break-inside:avoid;box-shadow:none!important}
 .spec-hero{min-height:0;padding:10px 0;border:0}
 .spec-hero-decoration{display:none}
 .spec-skill{break-inside:avoid}
}


/* Pass 4B: optional precise part marking and syllabus connections */
.mark-by-parts{
  margin:17px 0 4px;background:#f6faf7;border:1px solid #d8e9df;
  border-radius:13px;overflow:hidden;
}
.mark-by-parts>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;gap:12px;padding:12px 14px;
  border-radius:12px;color:#236856;
}
.mark-by-parts>summary::-webkit-details-marker{display:none}
.mark-by-parts>summary:hover{background:#edf7f0}
.mark-by-parts>summary strong,.mark-by-parts>summary small{display:block}
.mark-by-parts>summary strong{font-size:12px}
.mark-by-parts>summary small{font-size:11px;color:#627b6b;font-weight:500;margin-top:3px}
.mark-by-parts[open]>summary{border-bottom:1px solid #d6e8da;border-radius:12px 12px 0 0}
.detail-chevron{font-size:18px;transition:transform .15s}
.mark-by-parts[open] .detail-chevron{transform:rotate(180deg)}
.mark-by-parts-body{padding:14px}
.mark-by-parts-body>p{font-size:12px;line-height:1.6;margin:0 0 13px}
.detail-part-grid{display:grid;gap:8px}
.detail-part-row{
 display:flex;justify-content:space-between;gap:12px;align-items:center;
 border:1px solid #e1ece4;border-radius:11px;background:white;padding:11px 13px;
}
.detail-part-label{flex:1;min-width:0}
.detail-part-label label{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.detail-part-label label strong{font-size:13px}
.detail-part-label label span{color:var(--muted);font-size:11px}
.detail-part-label a{
 display:block;text-decoration:none;color:#2c7565;
 font-size:11px;line-height:1.5;margin-top:5px;
}
.detail-part-label a:hover{text-decoration:underline}
.detail-part-score{display:flex;align-items:center;gap:8px;flex:none}
.detail-part-score input{
 width:61px;height:40px;border-radius:9px;border:1px solid #bbd5c6;
 padding:6px;font:800 16px Manrope,sans-serif;text-align:center;
 color:var(--ink);background:#fff;
}
.detail-part-score input[aria-invalid="true"]{border-color:#b45c48;box-shadow:0 0 0 2px #fce6e0}
.detail-part-score span{font-size:12px;white-space:nowrap;color:var(--muted)}
.detail-part-bottom{
 display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;
 margin-top:13px;border-top:1px dashed #d1e4d6;padding-top:12px;
}
.detail-part-bottom span{font-size:12px;font-weight:800;color:#1b6f59}
.detail-part-info{font-size:11px!important;margin-top:11px!important;margin-bottom:0!important}
.detail-part-info.mark-error{color:#a94134!important}
.finish-score[readonly]{background:#e9f4eb;color:#236d59;cursor:default}
.question-skill-links{
 margin:19px 0;padding:0;border:1px solid #d7e5de;background:#fcfefd;
 border-radius:13px;
}
.question-skill-links summary{
 display:flex;justify-content:space-between;gap:10px;padding:14px 17px;
 cursor:pointer;font-size:12px;color:#226c5d;font-weight:800;list-style:none;
}
.question-skill-links summary::-webkit-details-marker{display:none}
.question-skill-links[open] summary{border-bottom:1px solid #d8e7db}
.question-skill-links>p{
 padding:13px 16px 0;margin:0;font-size:11px;line-height:1.6;
}
.question-skill-list{display:grid;gap:7px;padding:12px 16px 16px}
.question-skill-list a{
 display:flex;flex-direction:column;gap:4px;padding:10px 12px;
 border-radius:9px;border:1px solid #e2ece6;background:#fff;text-decoration:none;
}
.question-skill-list a:hover{border-color:#a5ccb7;background:#f4faf5}
.question-skill-list a span{font-size:10px;font-weight:800;color:#23745c}
.question-skill-list a strong{font-size:12px;color:var(--ink);font-weight:600}
.spec-skill-practice{
 padding:13px 15px;border-radius:9px;background:#f3faf5;border:1px solid #d8e9dc;
}
.spec-skill-practice>strong{display:block;font-size:12px;color:#226c58}
.spec-skill-practice>p{font-size:11px;color:#6b806f;margin:7px 0 10px;line-height:1.6}
.spec-skill-practice-links{display:grid;gap:7px}
.spec-skill-practice-links a{
 display:flex;align-items:center;gap:12px;padding:10px;
 background:#fff;border:1px solid #e0ede4;border-radius:9px;
 text-decoration:none;color:#1c3e35;font-size:12px;
}
.spec-skill-practice-links a:hover{background:#eaf6ee;border-color:#a8d1b6}
.spec-practice-id{
 flex:none;font-weight:800;font-size:10px;color:#237d63;
 border-radius:6px;background:#e7f4eb;padding:5px 7px;
}
.spec-skill-practice .spec-practice-more{margin:8px 0 0}
@media(max-width:630px){
 .detail-part-row{align-items:flex-start;gap:10px}
 .detail-part-label a{font-size:11px}
 .detail-part-score input{width:54px}
 .spec-skill-practice-links a{align-items:flex-start;flex-direction:column;gap:7px}
 .spec-practice-id{white-space:normal}
}
@media print{
 .mark-by-parts,.question-skill-links,.spec-skill-practice{display:none!important}
}


/* Pass 4C: transparent, self-marked specification progress */
.progress-spec-section{
 margin:32px 0 36px;
 padding:28px 30px;
 border:1px solid #d7e8dc;border-radius:21px;
 background:linear-gradient(155deg,#f7fbf8,#edf6f0);
}
.progress-spec-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-end}
.progress-spec-header h2{font-size:24px;margin:6px 0 8px}
.progress-spec-header p{
 max-width:760px;margin:0;color:#647e73;font-size:13px;line-height:1.7
}
.progress-spec-header .btn{flex:none;white-space:nowrap}
.progress-spec-scope{
 display:flex;gap:5px;flex-wrap:wrap;
 padding:5px;max-width:max-content;margin:22px 0 16px;
 border:1px solid #d0e2d6;border-radius:12px;background:#fff;
}
.progress-spec-scope a{
 text-decoration:none;padding:10px 13px;border-radius:9px;
 font-size:12px;font-weight:800;color:#5d7868;line-height:1.5
}
.progress-spec-scope a:hover{background:#f1faf3}
.progress-spec-scope a.selected{background:#dff1e6;color:#135f4b}
.spec-progress-pulse{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;
 margin:17px 0 18px
}
.spec-progress-pulse>div{
 display:flex;flex-direction:column;gap:5px;min-width:0;padding:18px 19px;
 background:#fff;border:1px solid #d9e7df;border-radius:13px
}
.spec-progress-pulse strong{
 font:800 23px/1.25 Manrope,sans-serif;letter-spacing:-.035em;color:#166e58;
 overflow-wrap:anywhere
}
.spec-progress-pulse span{font-size:11px;font-weight:700;color:#657d70;line-height:1.45}
.spec-progress-pulse.is-compact{
 margin:18px 0 22px;grid-template-columns:repeat(4,minmax(0,1fr))
}
.spec-progress-pulse.is-compact>div{padding:14px 17px;background:#fcfefd}
.spec-progress-pulse.is-compact strong{font-size:19px}
.spec-track{
 width:100%;height:8px;border-radius:99px;background:#e4eee7;
 overflow:hidden;display:block
}
.spec-track>span{
 display:block;height:100%;background:#318c6f;
 border-radius:inherit;min-width:0;transition:width .2s ease
}
.progress-spec-explain{
 padding:14px 17px;margin-bottom:19px;line-height:1.7;
 border-left:3px solid #80b59a;background:#fff;
 border-radius:0 11px 11px 0;font-size:12px;color:#576f65
}
.progress-spec-explain strong{color:#1b604d}
.progress-spec-strands{
 display:flex;flex-wrap:wrap;gap:7px;
 border-top:1px solid #cfe1d4;padding-top:17px
}
.progress-spec-strands a{
 text-decoration:none;border:1px solid #d4e2d9;border-radius:10px;
 background:#fff;padding:9px 15px;color:#557362;font-size:12px;font-weight:800
}
.progress-spec-strands a:hover{border-color:#9bcab1}
.progress-spec-strands a.selected{background:var(--teal);border-color:var(--teal);color:#fff}
.progress-strand-block{margin-top:27px}
.progress-strand-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}
.progress-strand-head h3{font-size:18px;margin:0}
.progress-strand-head span{font-size:11px;color:#647d6f;font-weight:800}
.progress-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.progress-topic-card{
 display:flex;flex-direction:column;gap:10px;text-decoration:none;
 padding:20px 20px 17px;background:#fff;
 border:1px solid #d7e5dc;border-radius:15px;
 transition:border-color .18s,box-shadow .18s,transform .18s
}
.progress-topic-card:hover{border-color:#9fcdb3;box-shadow:0 8px 20px #1f564317;transform:translateY(-1px)}
.progress-topic-card:focus-visible{outline:3px solid #8ecdb2;outline-offset:2px}
.progress-topic-card-head{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:28px}
.progress-topic-accuracy{font:800 16px Manrope,sans-serif;color:#157358;white-space:nowrap}
.progress-topic-accuracy small{font-size:10px;font-weight:600;color:#647b6e}
.progress-topic-no-accuracy{font-size:10px;font-weight:800;color:#62796b}
.progress-topic-card h3{font-size:16px;line-height:1.45;margin:0}
.progress-topic-count{font-size:12px;color:#657c70;margin:0}
.progress-topic-card-footer{
 display:flex;justify-content:space-between;gap:8px;align-items:baseline;
 margin-top:0;font-size:11px;color:#657d70
}
.progress-topic-card-footer strong{color:#187761;white-space:nowrap}
.progress-topic-evidence-caption{
 font-size:10px;color:#62796a;margin:0;line-height:1.5;
 border-top:1px solid #e7f0e9;padding-top:10px
}
.progress-future-note{font-size:12px;color:#718075;margin:12px 0}
.progress-future-note a{font-weight:800;color:#277766}
.progress-spec-footnote{
 font-size:11px;line-height:1.7;color:#668072;
 border-top:1px solid #d1e3d6;padding-top:15px;margin:25px 0 0
}
.spec-card-progress{
 padding-top:10px;margin-top:auto;
 border-top:1px solid #e6f0e9;display:grid;gap:7px
}
.spec-card-progress-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px}
.spec-card-progress-row span{font-size:10px;color:#557667}
.spec-card-progress-row strong{font-size:10px;color:#216d58}
.spec-card-progress-foot{font-size:10px;color:#698073}
.spec-card-progress.no-practice,.spec-card-progress.not-in-scope{
 font-size:11px;line-height:1.5;color:#6d8074;font-style:normal;
}
.spec-card-progress.not-in-scope{color:#887551}
.spec-topic-evidence{
 margin:25px 0 12px;padding:24px;
 background:#f3faf5;border:1px solid #d4e7da;border-radius:17px
}
.spec-topic-evidence-head{display:flex;justify-content:space-between;align-items:center;gap:14px}
.spec-topic-evidence-head h2{font-size:19px;margin:4px 0}
.spec-evidence-caption{
 font-size:11px;color:#477767;font-weight:800;
 border-radius:999px;background:#e4f2e9;padding:7px 10px
}
.spec-topic-evidence-grid{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:9px;margin:16px 0
}
.spec-topic-evidence-grid>div,.spec-topic-evidence-accuracy>div{
 display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid #dcece0;
 border-radius:11px;padding:13px
}
.spec-topic-evidence-grid strong,.spec-topic-evidence-accuracy strong{
 color:#1d775e;font:800 18px Manrope,sans-serif;
}
.spec-topic-evidence-grid span,.spec-topic-evidence-accuracy span{
 color:#667e70;font-size:11px;line-height:1.5
}
.spec-topic-evidence-accuracy{
 display:grid;gap:11px;padding:13px 15px;
 background:#fff;border:1px solid #dcece0;border-radius:11px
}
.spec-topic-evidence-accuracy>div{border:0;padding:0}
.spec-topic-evidence-accuracy>p{
 font-size:11px;line-height:1.7;margin:0;color:#667e70
}
.spec-skill-performance{
 display:grid;gap:13px;padding:14px;
 background:#f7faf8;border:1px solid #dce9df;border-radius:10px
}
.spec-skill-performance-stats{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px
}
.spec-skill-performance-stats>div{
 display:flex;flex-direction:column;gap:4px;
 border-right:1px solid #d9e7db;padding:0 8px 0 0
}
.spec-skill-performance-stats>div:last-child{border-right:0}
.spec-skill-performance-stats strong{font:800 16px Manrope,sans-serif;color:#1e6f57}
.spec-skill-performance-stats span{font-size:10px;color:#688073;line-height:1.5}
.spec-skill-performance-accuracy{
 border-top:1px solid #dbe9df;padding-top:11px;
 display:flex;flex-direction:column;gap:4px
}
.spec-skill-performance-accuracy strong{font-size:12px;color:#226a56}
.spec-skill-performance-accuracy span{font-size:11px;color:#688073}
@media(max-width:1100px){
 .progress-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .progress-spec-pulse{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
 .progress-spec-header{flex-direction:column;align-items:flex-start}
 .spec-progress-pulse,.spec-progress-pulse.is-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
 .spec-topic-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .spec-topic-evidence-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:550px){
 .progress-spec-section{padding:18px 15px;margin:22px -4px}
 .progress-spec-header h2{font-size:21px}
 .progress-topic-grid{grid-template-columns:1fr}
 .progress-spec-scope{max-width:none}
 .progress-spec-scope a{flex:1;font-size:11px}
 .progress-spec-strands a{padding:8px 11px}
 .spec-progress-pulse,.spec-progress-pulse.is-compact{gap:8px}
 .spec-progress-pulse>div,.spec-progress-pulse.is-compact>div{padding:12px 11px}
 .spec-progress-pulse strong{font-size:18px}
 .spec-progress-pulse.is-compact strong{font-size:16px}
 .spec-progress-pulse span{font-size:10px}
 .spec-topic-evidence{padding:15px}
 .spec-topic-evidence-grid{gap:7px}
 .spec-topic-evidence-grid strong{font-size:17px}
 .spec-skill-performance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .spec-skill-performance-stats>div:nth-child(2){border-right:0}
}
@media(prefers-reduced-motion:reduce){
 .spec-track>span,.progress-topic-card{transition:none}
}
@media print{
 .progress-spec-scope,.progress-spec-strands{display:none!important}
 .progress-topic-card{break-inside:avoid;box-shadow:none!important}
 .spec-topic-evidence{break-inside:avoid}
}


/* Pass 4D: grounded revision suggestions, protected retry history & local backups */
.revision-suggestions{
  margin:27px 0 34px;padding:25px;
  border:1px solid #c6dfd0;background:linear-gradient(135deg,#f2faf5,#fff);
  border-radius:19px;box-shadow:0 8px 25px #245b400b;
}
.revision-suggestions-head{
 display:flex;align-items:flex-end;justify-content:space-between;
 gap:22px;margin-bottom:19px
}
.revision-suggestions-head h2{font-size:22px;line-height:1.3;margin:6px 0}
.revision-suggestions-head p{font-size:12px;margin:4px 0;max-width:790px;line-height:1.7}
.revision-suggestions-head .btn{flex:none;white-space:nowrap}
.revision-suggestions-grid{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px
}
.revision-suggestion{
 display:flex;flex-direction:column;min-width:0;gap:10px;
 border:1px solid #d7e7db;border-radius:14px;padding:19px;background:#fff
}
.revision-suggestion-top{
 display:flex;align-items:center;gap:8px;flex-wrap:wrap
}
.revision-suggestion-index{
 display:grid;place-items:center;
 border-radius:8px;background:#e0f2e7;color:#176c53;
 width:26px;height:26px;font:800 12px Manrope,sans-serif;flex:none
}
.revision-suggestion-kind{
 font-size:10px;font-weight:800;color:#147158;
 background:#e9f6ed;border:1px solid #cbe9d7;border-radius:99px;padding:4px 9px
}
.revision-suggestion-id{margin-left:auto;font:800 10px Manrope,sans-serif;color:#728a7a}
.revision-suggestion h3{font-size:17px;line-height:1.35;margin:0}
.revision-suggestion-skill{
 padding:8px 10px;margin:0!important;background:#f6f9f6;border-left:2px solid #aed3bb;
 font-size:11px;line-height:1.6;color:#4c735d
}
.revision-suggestion-reason{font-size:12px;line-height:1.7;margin:0;flex:1}
.revision-suggestion-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:3px}
.revision-suggestion-actions .btn{font-size:12px}
.revision-suggestion-spec{font-size:11px;font-weight:800;color:#287b60;text-decoration:none}
.revision-suggestion-spec:hover{text-decoration:underline}
.revision-suggestions-note{
 margin:17px 1px 0;font-size:11px;color:#618071;line-height:1.7
}
.revision-suggestions-empty{
 border:1px dashed #b4d5c0;border-radius:12px;padding:22px;
 background:#fff
}
.revision-suggestions-empty h3{margin:0 0 7px;font-size:16px}
.revision-suggestions-empty p{font-size:12px;margin:0}

.reattempt-panel{
 margin:20px 0 17px;padding:20px;background:#f8fbf9;
 border:1px solid #d5e8dc;border-radius:17px
}
.reattempt-head{
 display:flex;align-items:center;justify-content:space-between;gap:16px
}
.reattempt-head h3{font-size:18px;margin:5px 0 6px}
.reattempt-head p{font-size:12px;line-height:1.6;margin:0;max-width:530px}
.reattempt-head .btn{flex:none;white-space:nowrap}
.reattempt-state{
 flex:none;background:#edf4ef;color:#55766b;padding:8px 12px;border-radius:11px;
 font-size:11px;font-weight:800;line-height:1.4
}
.attempt-first-note,.attempt-history-privacy,.attempt-history-status{
 font-size:11px!important;line-height:1.65!important;color:#698074!important;
 margin:12px 0 0!important
}
.attempt-history-status:not(:empty){color:#a45043!important;font-weight:800}
.attempt-trend{
 display:flex;align-items:center;gap:11px;flex-wrap:wrap;
 margin:16px 0;padding:11px 12px;background:#e9f6ed;border-radius:11px;
 border:1px solid #c9e5d2
}
.attempt-trend strong{font-size:12px;color:#216b53}
.attempt-trend span{font-size:11px;color:#486b57}
.attempt-history-list{display:flex;flex-direction:column;gap:9px}
.attempt-history-item{
 background:#fff;border:1px solid #d9e6dc;border-radius:12px;overflow:hidden
}
.attempt-history-item[open]{border-color:#a9cfb6}
.attempt-history-item>summary{
 display:flex;align-items:center;gap:11px;flex-wrap:wrap;
 list-style:none;cursor:pointer;padding:12px 13px;font-size:11px
}
.attempt-history-item>summary::-webkit-details-marker{display:none}
.attempt-history-item>summary:hover{background:#f4faf5}
.attempt-history-item>summary strong{font-size:14px;color:#206f59}
.attempt-history-item>summary small{font-size:10px;color:#778c7f}
.attempt-badge{
 border-radius:99px;background:#edf6f0;color:#276e58;
 padding:5px 8px;font-size:10px;font-weight:800
}
.attempt-chevron{font-size:19px;color:#78907e;margin-left:auto}
.attempt-history-item[open] .attempt-chevron{transform:rotate(180deg)}
.attempt-detail{padding:14px;border-top:1px solid #e4eee7;display:grid;gap:12px}
.attempt-bar{height:8px;border-radius:99px;background:#e5f0e7;overflow:hidden}
.attempt-bar span{display:block;height:100%;background:#369876;border-radius:inherit}
.attempt-working-block{
 border:1px solid #e1ebe3;background:#fcfefd;border-radius:11px;
 padding:13px;min-width:0
}
.attempt-working-block>strong{display:block;font-size:11px;color:#326c57;margin-bottom:8px}
.attempt-working-block pre{
 white-space:pre-wrap;overflow-wrap:anywhere;margin:0;
 font:13px/1.8 'DM Sans',sans-serif;max-height:240px;overflow-y:auto
}
.attempt-working-block ol{padding-left:24px;margin:4px 0}
.attempt-working-block li{padding:5px 0;font-size:14px;overflow-x:auto}
.attempt-working-block li p{font-size:11px;color:#667c6e;margin:4px 0}
.attempt-working-block canvas{
 display:block;width:100%;height:auto;max-width:640px;
 background:#fff;border:1px solid #cbded0;border-radius:10px
}
.attempt-no-working,.attempt-current-note{font-size:11px;margin:0;color:#667d6d}
.q-retrying{margin-left:auto;font-weight:900;color:#d18a45;line-height:1.2}

.progress-transfer{
 margin:30px 0 4px;padding:25px;
 background:#fff;border:1px solid #d9e8df;border-radius:19px
}
.transfer-title{
 display:flex;justify-content:space-between;align-items:center;gap:20px
}
.transfer-title h2{font-size:22px;margin:6px 0 8px}
.transfer-title p{max-width:750px;line-height:1.7;font-size:12px;margin:0}
.transfer-title button{flex:none;white-space:nowrap}
.transfer-local-count{
 font-size:11px;color:#5e7766;background:#f1f8f3;
 padding:10px 13px;border-radius:9px;margin:16px 0 0
}
.transfer-import{margin-top:21px;padding-top:18px;border-top:1px solid #dfebe2}
.transfer-import h3{font-size:16px;margin:0 0 8px}
.transfer-import>label{display:block;margin:10px 0 7px;font-size:12px;font-weight:700}
.transfer-import>input[type=file]{
 display:block;width:100%;max-width:480px;
 border:1px solid #cadfd1;border-radius:10px;
 background:#fafdfb;padding:9px 11px;font-size:12px
}
.transfer-import-preview{
 border:1px solid #cee3d4;background:#f8fcf9;border-radius:12px;
 padding:16px;margin:14px 0
}
.transfer-import-preview[hidden]{display:none}
.transfer-import-preview>p{font-size:12px;line-height:1.65;margin:0 0 13px}
.transfer-import-preview fieldset{
 border:0;padding:0;margin:0;display:grid;gap:8px
}
.transfer-import-preview legend{
 font-size:12px;font-weight:800;color:#2b6957;margin-bottom:10px
}
.transfer-import-preview label{
 display:flex;align-items:flex-start;gap:11px;padding:12px;
 background:#fff;border:1px solid #dae9e0;border-radius:10px;
 cursor:pointer
}
.transfer-import-preview label:has(input:checked){
 background:#edf8f0;border-color:#8fceb1
}
.transfer-import-preview input[type=radio]{
 width:16px;height:16px;margin-top:2px;accent-color:#28785e;flex:none
}
.transfer-import-preview label span{display:flex;flex-direction:column;gap:3px}
.transfer-import-preview label strong{font-size:12px}
.transfer-import-preview label small{font-size:11px;line-height:1.6;color:#6b8071}
#apply-import{margin-top:15px}
.transfer-status{font-size:11px;margin:12px 0 0;color:#316d59;line-height:1.7}
.transfer-status.transfer-error{color:#b04b42;font-weight:800}
.transfer-privacy{
 font-size:11px;line-height:1.7;color:#6c7e74;
 border-top:1px solid #e3eee5;margin:21px 0 0;padding-top:13px
}
.import-notice{
 padding:12px 15px;background:#e7f6ed;border:1px solid #b8dfc4;
 border-radius:11px;color:#176548;font-size:12px;font-weight:700
}
@media(max-width:850px){
 .revision-suggestions-grid{grid-template-columns:1fr}
 .revision-suggestions-head,.transfer-title{align-items:flex-start;flex-direction:column}
 .revision-suggestions-head .btn{align-self:flex-start}
}
@media(max-width:600px){
 .revision-suggestions,.progress-transfer{padding:16px}
 .revision-suggestions-head h2,.transfer-title h2{font-size:20px}
 .reattempt-panel{padding:15px}
 .reattempt-head{align-items:flex-start;flex-direction:column}
 .attempt-history-item>summary{gap:8px}
 .attempt-history-item>summary small{flex-basis:100%}
 .transfer-import-preview{padding:11px}
 .revision-suggestion{padding:15px}
}
@media print{
 .revision-suggestions,.progress-transfer,.reattempt-panel{display:none!important}
}


/* ================================================================
   THE STUDY CALENDAR / Identity system 01
   Ink • warm graph paper • punchy coral • electric chartreuse
   Strong typographic hierarchy, ruled grids and functional marks.
   ================================================================ */
:root{
 --bg:#f2f0e7;--white:#fffefa;--ink:#17262e;--muted:#58676a;
 --line:#cbd1c9;--teal:#1d645b;--pale:#eaf0dc;--blue:#2948b9;
 --shadow:6px 7px 0 #19282c13;
 --editorial-ink:#17262e;--editorial-orange:#f36d4d;
 --editorial-lime:#dcf48a;--editorial-cobalt:#2a45bd;
 --editorial-cream:#f2f0e7;--editorial-paper:#fffefa;
}
html{scroll-padding-top:22px}
body{
 background-color:var(--bg);
 background-image:linear-gradient(#223f3408 1px,transparent 1px),
 linear-gradient(90deg,#223f3408 1px,transparent 1px);
 background-size:34px 34px;
 color:var(--ink);font-family:"DM Sans",system-ui,sans-serif;
}
.shell{max-width:1560px;padding:0 clamp(18px,3vw,50px)}
h1,h2,h3,h4{font-family:"Space Grotesk",Manrope,sans-serif;letter-spacing:-.045em}
.eyebrow,.pill,.qid,.week-no,.qualification{
 font-family:"IBM Plex Mono",ui-monospace,monospace;letter-spacing:.035em
}
.eyebrow{color:#236f5c;font-size:10px}
.eyebrow:before{content:"/ ";font-weight:700}
a:focus-visible,button:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible{
 outline:3px solid var(--editorial-orange);outline-offset:3px
}
.topbar{
 min-height:80px;gap:clamp(12px,3vw,34px);
 padding:12px 0;border-bottom:3px solid var(--editorial-ink);
}
.brand-icon{
 width:46px;height:46px;background:var(--editorial-orange);
 color:var(--editorial-ink);border-radius:2px;
 font:700 29px "Space Grotesk",sans-serif;transform:rotate(-5deg);
 box-shadow:3px 3px 0 var(--editorial-ink)
}
.brand strong{font:700 17px/1.1 "Space Grotesk",sans-serif;letter-spacing:-.035em}
.brand small{font:700 9px/1.3 "IBM Plex Mono",monospace;letter-spacing:.055em;color:#38645b;margin-top:6px}
.topbar nav{display:flex;align-items:center;gap:2px}
.topbar nav a{
 font:600 11px/1.4 "IBM Plex Mono",monospace;letter-spacing:0;
 color:#334c50;border-radius:3px;padding:12px 13px;text-transform:uppercase
}
.topbar nav a:hover{background:#e4eddb;color:var(--editorial-ink)}
.topbar nav a.active{background:var(--editorial-ink);color:#fff;border-radius:3px}
.qualification{
 font:700 11px "IBM Plex Mono",monospace;
 border:2px solid var(--editorial-ink);border-radius:0;
 padding:8px 9px;color:var(--editorial-ink)
}
.qualification b{color:var(--editorial-orange)}
.page{padding-top:28px}
.btn{
 background:var(--editorial-ink);border-color:var(--editorial-ink);
 border-radius:3px;font-family:"Space Grotesk",sans-serif;font-weight:700;
 box-shadow:2px 3px 0 #162b2b1e
}
.btn:hover{background:#344755;transform:translateY(-1px)}
.btn.ghost{background:#fffefa;color:var(--editorial-ink);border-color:#879895}
.btn.ghost:hover{background:var(--editorial-lime)}
.card,.panel,.progress-item,.paper,.side,.spec-topic-card,.progress-topic-card,
.spec-theme,.spec-skill,.spec-search-wrap input{
 border-radius:5px
}
.section-heading{border-bottom:2px solid var(--editorial-ink);padding-bottom:12px}
.section-heading h2{font-size:26px}
.section-heading .eyebrow{color:var(--teal)}
.pill{border-radius:3px}
footer{
 border-top:3px solid var(--editorial-ink);color:#536569;padding-top:20px;
 font-family:"IBM Plex Mono",monospace;font-size:10px
}
footer b{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.03em}

/* The calendar occupies the first viewport: masthead, then ruled planner */
.planner-page{padding-top:21px}
.planner-masthead{
 position:relative;padding:26px clamp(19px,3vw,37px) 22px;
 border:3px solid var(--editorial-ink);border-bottom:0;
 background:var(--editorial-ink);color:#fff;overflow:hidden
}
.planner-masthead:before{
 content:"";position:absolute;right:-95px;top:-115px;
 width:370px;height:370px;border:50px solid #fbffde0f;
 border-radius:50%;pointer-events:none
}
.planner-edition{
 display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;
 position:relative;z-index:1;
 font:600 10px "IBM Plex Mono",monospace;letter-spacing:.08em;
 color:#c7d7d3
}
.planner-title-row{
 display:flex;align-items:end;justify-content:space-between;gap:20px;position:relative;z-index:1
}
.planner-title-row h1{
 font:700 clamp(44px,6.5vw,100px)/.95 "Space Grotesk",sans-serif;
 letter-spacing:-.085em;max-width:1100px;text-transform:uppercase;
 margin:18px 0 23px;color:#fff
}
.planner-title-row em{
 color:var(--editorial-lime);font-style:normal;white-space:nowrap
}
.planner-dot{color:var(--editorial-orange)}
.planner-header-meta{
 display:flex;flex-direction:column;align-items:flex-end;
 flex:none;padding:0 0 15px;min-width:130px
}
.planner-header-meta strong{
 color:var(--editorial-orange);font:700 clamp(29px,3vw,40px)/1 "Space Grotesk",sans-serif
}
.planner-header-meta span{
 font:600 10px "IBM Plex Mono",monospace;color:#c5d8ca;margin-top:5px
}
.planner-subline{
 display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
 border-top:1px solid #a6b8aa6e;padding-top:14px;position:relative;z-index:1;
 font:600 10px/1.5 "IBM Plex Mono",monospace;letter-spacing:.02em;color:#dbe3d8
}
.planner-board{
 border:3px solid var(--editorial-ink);background:var(--editorial-paper);
 box-shadow:8px 8px 0 #17262e24;margin-bottom:36px
}
.planner-board-heading{
 display:flex;align-items:center;justify-content:space-between;gap:16px;
 background:var(--editorial-orange);color:var(--editorial-ink);
 border-bottom:2px solid var(--editorial-ink);padding:12px 19px;
 font:700 12px "IBM Plex Mono",monospace
}
.planner-board-heading>strong{letter-spacing:.07em}
.planner-legend{display:flex;gap:17px;flex-wrap:wrap}
.planner-legend span{display:inline-flex;align-items:center;gap:7px;font-size:10px}
.planner-legend i{display:block;width:10px;height:10px;border:1.5px solid var(--editorial-ink)}
.planner-legend .legend-open{background:var(--editorial-lime)}
.planner-legend .legend-future{background:var(--editorial-paper)}
.planner-spread+.planner-spread{border-top:3px solid var(--editorial-ink)}
.planner-spread-label{
 display:flex;align-items:center;justify-content:space-between;
 padding:7px 15px 6px;border-bottom:1.5px solid var(--editorial-ink);
 background:#e9ebe2;color:#425052;
 font:600 10px "IBM Plex Mono",monospace;letter-spacing:.07em
}
.planner-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.planner-cell{
 min-width:0;display:flex;flex-direction:column;text-decoration:none;
 padding:16px 15px 14px;min-height:228px;
 border-right:1.5px solid #aeb9b0;position:relative;overflow:hidden;
 background:var(--editorial-paper);
 transition:background .18s,box-shadow .18s,color .18s
}
.planner-cell:last-child{border-right:0}
.planner-cell:focus-visible{outline:3px solid var(--editorial-cobalt);outline-offset:-4px;z-index:2}
.planner-cell.is-open{background:#f9fcf0}
.planner-cell.is-open:hover{
 background:#ebf4cc;box-shadow:inset 0 0 0 3px var(--editorial-cobalt);z-index:1
}
.planner-cell.is-finished{background:#e0ecd8}
.planner-cell.is-upcoming{cursor:default;background:#faf9f3}
.planner-cell.is-upcoming:after{
 content:"";position:absolute;top:0;right:0;width:0;height:0;
 border-top:22px solid #d5d9cf;border-left:22px solid transparent
}
.planner-cell-top{display:flex;align-items:center;justify-content:space-between;gap:7px}
.planner-cell-label{font:600 9px "IBM Plex Mono",monospace;letter-spacing:.11em;color:#677a79}
.planner-cell-flag{
 font:700 9px "IBM Plex Mono",monospace;letter-spacing:.04em;
 padding:4px 5px;border:1px solid var(--editorial-ink);
 color:var(--editorial-ink);white-space:nowrap
}
.planner-cell-flag.ready{background:var(--editorial-lime)}
.planner-cell-flag.future{background:transparent;border-color:#c9d1c7;color:#87928f}
.planner-cell-number{
 font:700 clamp(46px,5vw,71px)/1 "Space Grotesk",sans-serif;letter-spacing:-.09em;
 margin:16px 0 5px;color:var(--editorial-orange)
}
.planner-cell.is-upcoming .planner-cell-number{color:#c6ceca}
.planner-cell h3{
 font:700 clamp(13px,1.3vw,17px)/1.35 "Space Grotesk",sans-serif;
 letter-spacing:-.04em;margin:0 0 20px;max-width:240px;min-height:43px;color:var(--editorial-ink)
}
.planner-cell.is-upcoming h3{color:#677776}
.planner-cell-bottom{
 display:flex;align-items:flex-end;justify-content:space-between;gap:8px;
 border-top:1px solid #d0d9d0;padding-top:9px;margin-top:auto;
 color:#506a67
}
.planner-cell-bottom>span{
 font:600 9px/1.3 "IBM Plex Mono",monospace;letter-spacing:.005em
}
.planner-cell-bottom>strong{font:700 21px/1 "Space Grotesk",sans-serif;color:var(--editorial-cobalt)}
.planner-cell.is-upcoming .planner-cell-bottom strong{color:#acb7af}
.planner-cell-meter{
 position:absolute;left:0;bottom:0;width:100%;height:4px;background:#d5e6da
}
.planner-cell-meter span{display:block;height:100%;background:var(--editorial-cobalt)}
.planner-board-bottom{
 display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;
 padding:12px 18px;border-top:2px solid var(--editorial-ink);
 background:#e3e8d7;font:700 10px "IBM Plex Mono",monospace;letter-spacing:.04em
}
.planner-shortcuts{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:30px
}
.planner-shortcuts a{
 display:flex;align-items:center;gap:15px;padding:18px;
 text-decoration:none;border-top:4px solid var(--editorial-ink);
 border-left:1px solid var(--line);border-right:1px solid var(--line);
 border-bottom:1px solid var(--line);background:#fffefa;
 min-width:0;transition:background .15s
}
.planner-shortcuts a:hover{background:var(--editorial-lime)}
.planner-shortcut-num{font:700 25px "Space Grotesk",sans-serif;color:var(--editorial-orange);flex:none}
.planner-shortcuts a>span:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.planner-shortcuts strong{font:700 13px "Space Grotesk",sans-serif;letter-spacing:-.02em}
.planner-shortcuts small{font-size:11px;color:#586e67}
.planner-shortcuts b{font-size:21px;color:var(--editorial-cobalt)}
.planner-next{
 display:flex;align-items:center;gap:20px;flex-wrap:wrap;
 margin-top:13px;padding:15px 19px;background:#24353e;color:#fff
}
.planner-next span{font:700 10px "IBM Plex Mono",monospace;color:var(--editorial-orange)}
.planner-next strong{font:600 12px "Space Grotesk",sans-serif;letter-spacing:.01em}
.planner-next a{
 margin-left:auto;color:var(--editorial-lime);
 font:700 10px "IBM Plex Mono",monospace;text-decoration:none
}
.planner-next a:hover{text-decoration:underline}
.locked-week-page .locked-week-notice{
 max-width:820px;border:3px solid var(--editorial-ink);padding:32px;background:var(--white);
 box-shadow:7px 7px 0 #16262e22
}
.locked-week-topics{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:28px 0}
.locked-week-topics>div{padding:15px;border-top:3px solid var(--editorial-orange);background:#f2f4eb}
.locked-week-topics strong{font:700 10px "IBM Plex Mono",monospace}

/* Workbook / question view: a structured printed examination sheet */
.study-page{padding-top:19px}
.study-header{
 display:flex;align-items:center;gap:20px;border-bottom:4px solid var(--editorial-ink);
 padding:8px 0 20px;margin-bottom:18px
}
.study-back{
 flex:none;align-self:flex-start;text-decoration:none;
 font:700 11px "IBM Plex Mono",monospace;
 color:#244db2;border:1.5px solid #244db2;padding:9px 12px;margin-top:2px
}
.study-back:hover{background:#e4f0f0}
.study-header-title{flex:1;min-width:0}
.study-header-title h1{
 margin:7px 0 0;font:700 clamp(28px,3.3vw,49px)/1.08 "Space Grotesk",sans-serif;
 letter-spacing:-.065em;color:var(--editorial-ink)
}
.study-header-progress{
 flex:none;display:flex;flex-direction:column;align-items:flex-end;border-left:2px solid #b8c5bf;
 padding:3px 0 3px 17px
}
.study-header-progress strong{font:700 31px/1 "Space Grotesk",sans-serif}
.study-header-progress strong span{font-size:17px;color:#74847e}
.study-header-progress small{
 margin-top:5px;font:600 9px "IBM Plex Mono",monospace;color:#667872
}
.study-section-nav{
 display:flex;align-items:stretch;border:2px solid var(--editorial-ink);
 background:var(--editorial-ink);color:white;margin:0 0 14px
}
.study-section-nav-heading{
 flex:0 0 120px;padding:13px;border-right:1px solid #7c908d;
 display:flex;flex-direction:column;justify-content:center;gap:5px
}
.study-section-nav-heading strong{font:700 11px "IBM Plex Mono",monospace;letter-spacing:.07em}
.study-section-nav-heading span{font:400 10px "IBM Plex Mono",monospace;color:#b5c7be}
.study-section-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));flex:1;min-width:0;gap:2px}
.study-section-link{
 min-width:0;display:flex;flex-direction:column;gap:5px;
 padding:10px 11px;text-decoration:none;color:#d0e2d5;
 background:#263a42;border:0
}
.study-section-link:hover{background:#41575a;color:#fff}
.study-section-link.is-selected{background:var(--editorial-lime);color:var(--editorial-ink)}
.study-section-code{font:700 10px "IBM Plex Mono",monospace;color:var(--editorial-orange)}
.study-section-link.is-selected .study-section-code{color:#385a44}
.study-section-name{font:700 12px/1.25 "Space Grotesk",sans-serif}
.study-section-progress{font:600 10px "IBM Plex Mono",monospace;opacity:.82}
.study-workbench{
 display:grid;grid-template-columns:245px minmax(0,1fr);
 gap:0;align-items:stretch;border:2px solid var(--editorial-ink);
 box-shadow:6px 7px 0 #17262e1c;background:var(--editorial-paper)
}
.study-workbench .side.question-index{
 border:0;border-right:2px solid var(--editorial-ink);border-radius:0;
 padding:0;background:#e9ece5;position:relative;top:auto
}
.question-index-heading{
 display:flex;flex-direction:column;gap:5px;padding:17px 15px 14px;
 background:#e1f1d7;border-bottom:2px solid var(--editorial-ink)
}
.question-index-heading span{
 font:700 10px "IBM Plex Mono",monospace;color:#266055;letter-spacing:.06em
}
.question-index-heading strong{font:700 16px "Space Grotesk",sans-serif}
.question-index .question-links{display:flex;flex-direction:column;gap:0}
.question-index .question-index-item{
 display:flex;align-items:center;gap:10px;width:100%;text-align:left;
 border:0;border-bottom:1px solid #c4d0c7;border-radius:0;
 padding:10px 11px;color:var(--editorial-ink);background:transparent;
 min-width:0
}
.question-index .question-index-item:hover{background:#dce6d7}
.question-index .question-index-item.active{
 background:#fffefa;box-shadow:inset 5px 0 0 var(--editorial-orange)
}
.question-index .qid{
 border-radius:2px;border:1px solid #a1b1a9;
 background:#f6f8f1;flex:none;min-width:43px;padding:6px 4px;
 color:#263f40;font:700 10px "IBM Plex Mono",monospace
}
.question-index .question-index-item.active .qid{
 background:var(--editorial-ink);color:#fff;border-color:var(--editorial-ink)
}
.question-index-title{font-size:11px;line-height:1.35;flex:1;min-width:0}
.question-index-foot{
 display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;
 padding:12px;font:700 9px "IBM Plex Mono",monospace;color:#64786d
}
.question-index .q-complete-indicator{color:#297d5c}
.study-workbench .paper.exam-sheet{
 border:0;border-radius:0;background:var(--editorial-paper);
 min-width:0;padding:clamp(20px,3vw,43px)
}
.exam-sheet-topline{
 display:flex;align-items:center;flex-wrap:wrap;gap:9px;
 padding:0 0 13px;border-bottom:2px solid var(--editorial-ink);
 font:700 10px "IBM Plex Mono",monospace;color:#496168
}
.exam-question-number{color:var(--editorial-cobalt);margin-right:auto}
.exam-sheet-points{
 background:var(--editorial-lime);color:var(--editorial-ink);
 padding:6px 9px;border:1.5px solid var(--editorial-ink)
}
.exam-sheet-time{color:#607771}
.exam-sheet-title{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:18px 0 16px}
.exam-sheet-code{
 font:700 11px "IBM Plex Mono",monospace;color:var(--editorial-orange);
 padding:5px 8px;background:var(--editorial-ink)
}
.exam-sheet-title h2{
 font:700 clamp(21px,2.4vw,35px)/1.2 "Space Grotesk",sans-serif;
 letter-spacing:-.045em;margin:0
}
.study-workbench .paper .stem{font-size:16px;line-height:1.9}
.study-workbench .paper .parts li{border-color:#cbd5cd}
.study-workbench .paper .marks{font-family:"IBM Plex Mono",monospace}
.study-workbench .paper .letter{color:#2d51b2}
.study-workbench .paper hr{border-color:#a6b5ad}
.study-workbench .student-workspace{
 border:2px solid #b1c9b5;border-radius:5px;background:#f8fbf2;box-shadow:none
}
.study-workbench .finish-assessment,.study-workbench .reattempt-panel,
.study-workbench .question-skill-links{border-radius:5px}
.study-workbench .foot-nav{
 border-top:2px solid var(--editorial-ink);padding-top:19px;margin-top:26px
}
.study-workbench .foot-nav .btn{min-width:150px}
.study-section-link:focus-visible,.study-back:focus-visible,.planner-shortcuts a:focus-visible{
 outline:3px solid var(--editorial-orange);outline-offset:2px
}

/* Apply the same visual grammar to the supplementary academic tools */
.spec-hero{border:2px solid var(--editorial-ink);border-radius:5px;background:#eaf0df;box-shadow:5px 5px 0 #17262e17}
.spec-hero .page-title,.spec-detail-header .page-title{font-family:"Space Grotesk",sans-serif}
.spec-topic-card{border:1.5px solid #bdccc0;box-shadow:none}
.spec-topic-card:hover{transform:translateY(-1px);box-shadow:4px 5px 0 #17262e14}
.spec-topic-card h3{font-family:"Space Grotesk",sans-serif}
.spec-scope-filter,.spec-tools,.spec-explainer{border-radius:5px}
.spec-group-title,.spec-section-heading{border-bottom:2px solid var(--editorial-ink);padding-bottom:10px}
.spec-theme{border-top:4px solid var(--editorial-orange)}
.spec-skill summary,.spec-skill-content{background:var(--editorial-paper)}
.progress-spec-section{background:#e9efe0;border-radius:5px;border:2px solid #b8c8b9}
.progress-topic-card{border-top:4px solid var(--editorial-ink)}
.progress-topic-card:hover{box-shadow:4px 5px 0 #17262e18}
.spec-progress-pulse>div{border-radius:3px}
.revision-suggestions,.progress-transfer{border-radius:5px}
.revision-suggestions{background:#ebf1df;border-top:5px solid var(--editorial-ink)}
.revision-suggestion{border-radius:4px}
.progress-transfer{border-top:5px solid var(--editorial-orange)}
.back{color:var(--editorial-cobalt);font-family:"IBM Plex Mono",monospace}
.page-title{font-family:"Space Grotesk",sans-serif;letter-spacing:-.06em}

/* Layout adaptations: calendar remains visibly ruled and easy to tap */
@media(max-width:1230px){
 .planner-cell{padding:13px 11px;min-height:214px}
 .planner-cell h3{font-size:14px}
 .planner-cell-number{font-size:59px}
 .study-section-nav-heading{flex-basis:90px}
 .study-section-link{padding:9px 8px}
 .study-section-name{font-size:11px}
 .study-workbench{grid-template-columns:220px minmax(0,1fr)}
}
@media(max-width:980px){
 .planner-title-row h1{font-size:clamp(42px,6vw,76px)}
 .planner-header-meta{display:none}
 .planner-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
 .planner-cell{min-height:210px}
 .planner-cell-number{font-size:55px}
 .planner-cell h3{font-size:13px}
 .planner-cell-flag{font-size:8px}
 .planner-cell-bottom>span{font-size:8px}
 .study-section-nav{flex-direction:column}
 .study-section-nav-heading{flex:none;flex-direction:row;gap:12px;border-right:0;border-bottom:1px solid #8ba3a0}
 .study-section-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
 .study-workbench{grid-template-columns:195px minmax(0,1fr)}
}
@media(max-width:730px){
 .topbar{padding-top:15px;gap:12px}
 .topbar nav{width:100%;justify-content:flex-start;overflow-x:auto;margin:0;order:3}
 .topbar nav a{font-size:10px;padding:9px 11px}
 .brand strong{font-size:15px}
 .brand-icon{width:39px;height:39px}
 .page.planner-page{padding-top:13px}
 .planner-masthead{padding:21px 17px 15px}
 .planner-title-row h1{font-size:clamp(40px,9vw,65px);margin:14px 0 15px}
 .planner-edition{font-size:9px}
 .planner-subline{font-size:9px;gap:9px}
 .planner-board{box-shadow:4px 5px 0 #17262e20}
 .planner-board-heading{padding:11px 12px}
 .planner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .planner-cell{
  min-height:188px;border-right:1px solid #adbcaf;border-bottom:1px solid #adbcaf;
  padding:13px
 }
 .planner-cell:nth-child(even){border-right:0}
 .planner-cell:nth-last-child(-n+1){border-bottom:0}
 .planner-cell-number{font-size:57px;margin:10px 0 5px}
 .planner-cell h3{font-size:15px;min-height:0;margin-bottom:12px}
 .planner-cell-bottom>span{font-size:9px}
 .planner-board-bottom{font-size:9px}
 .planner-shortcuts{grid-template-columns:1fr;gap:7px;margin-top:20px}
 .planner-shortcuts a{padding:14px}
 .planner-next{gap:9px}
 .planner-next a{margin-left:0;flex-basis:100%}
 .study-header{gap:12px;flex-wrap:wrap}
 .study-back{padding:8px 9px}
 .study-header-title{flex:1 1 70%}
 .study-header-progress{flex-basis:100%;flex-direction:row;justify-content:flex-end;gap:8px;border-left:0;padding:0}
 .study-header-progress strong{font-size:21px}
 .study-header-progress small{margin:0;align-self:center}
 .study-section-strip{
  display:flex;overflow-x:auto;gap:2px;scrollbar-width:thin;scroll-snap-type:x proximity
 }
 .study-section-link{flex:0 0 155px;scroll-snap-align:start}
 .study-workbench{display:block;border:2px solid var(--editorial-ink)}
 .study-workbench .side.question-index{
  position:relative;border-right:0;border-bottom:2px solid var(--editorial-ink)
 }
 .question-index-heading{padding:9px 12px;flex-direction:row;align-items:center;justify-content:space-between}
 .question-index-heading strong{font-size:12px}
 .question-index .question-links{
  display:flex;flex-direction:row;gap:3px;overflow-x:auto;padding:8px;
  scroll-snap-type:x proximity;scrollbar-width:thin
 }
 .question-index .question-index-item{
  flex:0 0 170px;padding:9px;border:1px solid #c0cdc4;
  border-radius:3px;scroll-snap-align:start;background:#f3f6ee
 }
 .question-index .question-index-item.active{
  border-color:var(--editorial-ink);box-shadow:inset 0 -4px 0 var(--editorial-orange)
 }
 .question-index-foot{display:none}
 .study-workbench .paper.exam-sheet{padding:19px 16px}
 .exam-sheet-title{gap:8px;padding:15px 0}
 .exam-sheet-title h2{font-size:24px}
 .locked-week-topics{grid-template-columns:1fr}
}
@media(max-width:420px){
 .planner-title-row h1{font-size:40px}
 .planner-edition span:nth-child(2){flex-basis:100%}
 .planner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .planner-cell{padding:10px;min-height:180px}
 .planner-cell-number{font-size:46px}
 .planner-cell h3{font-size:13px}
 .planner-cell-flag{font-size:8px;padding:3px}
 .planner-cell-bottom>span{font-size:8px}
 .study-header-title h1{font-size:26px}
 .study-workbench .paper.exam-sheet{padding:14px 12px}
 .study-workbench .foot-nav .btn{min-width:0;flex:1}
}
@media(prefers-reduced-motion:reduce){
 .planner-cell,.planner-shortcuts a{transition:none!important}
}
@media print{
 body{background:#fff!important}
 .planner-masthead{-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .planner-cell{min-height:155px;break-inside:avoid}
 .planner-shortcuts,.planner-next,.study-section-nav,.study-header{display:none!important}
 .study-workbench{display:block;border:0;box-shadow:none}
 .study-workbench .paper.exam-sheet{padding:0}
 .study-workbench .question-index{display:none!important}
}


/* Practical reference pages, not marketing landing pages */
.guide-routine{border:2px solid var(--editorial-ink);background:var(--editorial-paper)}
.guide-routine-row{
 display:grid;grid-template-columns:54px 105px minmax(145px,.85fr) minmax(200px,1.4fr);
 gap:14px;align-items:center;padding:13px 17px;border-bottom:1px solid #bbc6be
}
.guide-routine-row:last-child{border-bottom:0}
.guide-routine-index{
 font:700 25px "Space Grotesk",sans-serif;color:var(--editorial-orange)
}
.guide-routine-row>strong{font:700 12px "IBM Plex Mono",monospace}
.guide-routine-row>span:nth-of-type(2){font:700 14px "Space Grotesk",sans-serif}
.guide-routine-row p{font-size:12px;margin:0}
.guide-instructions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.guide-instructions>div{
 background:#fffefa;border-top:4px solid var(--editorial-ink);
 border-left:1px solid var(--line);border-right:1px solid var(--line);
 border-bottom:1px solid var(--line);padding:17px
}
.guide-instructions b{
 display:block;font:700 30px "Space Grotesk",sans-serif;
 color:var(--editorial-orange);margin-bottom:10px
}
.guide-instructions strong{font-size:13px}
.guide-instructions p{font-size:11px;line-height:1.6;margin:6px 0 0}
.guide-ao{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.guide-ao>div{padding:17px;background:#e9f0df;border:1px solid #c4d1c0}
.guide-ao strong{font:700 19px "Space Grotesk",sans-serif;color:var(--editorial-cobalt)}
.guide-ao p{font-size:12px;margin:5px 0 0}
.guide-privacy{margin:27px 0}
.guide-privacy a{font-weight:800;color:var(--editorial-cobalt)}
.final-page .phase{
 border-top:4px solid var(--editorial-ink);background:var(--editorial-paper);
 border-radius:2px
}
.final-page .exam{border-radius:2px;background:var(--editorial-paper)}
.final-page .exam-date{font-family:"IBM Plex Mono",monospace}
@media(max-width:1050px){
 .guide-routine-row{grid-template-columns:42px 100px minmax(120px,1fr)}
 .guide-routine-row p{grid-column:3}
 .guide-instructions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .guide-routine-row{grid-template-columns:32px 1fr;gap:8px 12px;padding:12px}
 .guide-routine-row>span:nth-of-type(2){grid-column:2}
 .guide-routine-row p{grid-column:2}
 .guide-instructions,.guide-ao{grid-template-columns:1fr}
}


/* Week 10 — genuine paper session and evidence-led diagnostic review.
   Reuse the editorial graph-paper palette, not the old dashboard cards. */
.mock-paper-banner{
 margin:16px 0 19px;border:2px solid var(--editorial-ink);
 background:var(--editorial-paper,#fafbf4);
 box-shadow:4px 4px 0 #21343e1b
}
.mock-banner-top{
 display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
 padding:9px 16px;background:var(--editorial-ink,#172e39);color:#fff;
 font:700 11px "IBM Plex Mono",monospace;letter-spacing:.07em
}
.mock-banner-core{
 display:flex;justify-content:space-between;align-items:center;gap:24px;
 padding:15px 17px;border-bottom:1px solid #abbeb4
}
.mock-banner-core>div:first-child>strong{
 display:block;font:700 clamp(19px,2.6vw,28px) "Space Grotesk",sans-serif;letter-spacing:-.035em
}
.mock-banner-core p{margin:4px 0 0;font-size:12px}
.mock-banner-clock{min-width:142px;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.mock-clock{
 font:700 clamp(30px,4vw,42px) "IBM Plex Mono",monospace;
 font-variant-numeric:tabular-nums;line-height:1.12;color:var(--editorial-cobalt,#376f9c)
}
.mock-clock.mock-clock-expired{color:#9b422f}
.mock-clock-quiet{font:700 20px "IBM Plex Mono",monospace;color:var(--editorial-ink)}
.mock-banner-clock>span:last-child{font:700 9px "IBM Plex Mono",monospace;letter-spacing:.06em}
.mock-banner-split{
 display:block;margin:0;padding:9px 17px 0;
 font:700 11px "IBM Plex Mono",monospace;color:var(--editorial-cobalt,#376f9c)
}
.mock-banner-footer{
 padding:12px 17px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap
}
.mock-banner-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.mock-banner-footer p{font-size:11px;line-height:1.55;margin:0;max-width:525px}
.mock-exam-lock{
 background:#e9f0df;border:2px dashed #718b7f;padding:18px;
 margin-top:18px
}
.mock-exam-lock strong{font:700 15px "Space Grotesk",sans-serif}
.mock-exam-lock p{margin:5px 0 0;font-size:12px;line-height:1.6}
.mock-review-page{max-width:1360px;margin:auto}
.mock-review-heading{
 margin:16px 0 20px;padding:24px 26px;border:2px solid var(--editorial-ink);
 background:linear-gradient(transparent 27px,#d3ded63c 28px),var(--editorial-paper,#fafbf4);
 background-size:100% 29px
}
.mock-review-heading h1{margin:8px 0 10px}
.mock-review-heading>p{max-width:760px;line-height:1.7}
.mock-review-total{
 display:inline-block;padding:9px 12px;border-top:3px solid var(--editorial-orange,#cf6337);
 background:#fffdfa;font:700 12px "IBM Plex Mono",monospace
}
.mock-review-paper-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:0 0 24px}
.mock-review-paper{padding:20px;border:1px solid #a9bdb4;border-top:5px solid var(--editorial-ink);background:#fffefa}
.mock-review-paper-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mock-review-paper-top>strong{font:700 11px "IBM Plex Mono",monospace}
.mock-review-paper h2{margin:10px 0;font-size:22px}
.mock-review-paper p{font-size:12px;line-height:1.6}
.mock-review-paper p.mock-review-score{font:700 28px "IBM Plex Mono",monospace;color:var(--editorial-cobalt);margin-bottom:10px}
.mock-review-paper .link{font-size:12px;font-weight:700;color:var(--editorial-cobalt)}
.mock-review-split{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.mock-review-split span{border:1px solid #bfd0c5;background:#f1f6ee;padding:5px 8px;font:700 10px "IBM Plex Mono",monospace}
.mock-review-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:17px}
.mock-review-record,.mock-review-reflection{padding:21px 19px;border:1px solid #b7c7ba;background:#fffefa}
.mock-review-record h2,.mock-review-reflection h2{margin:8px 0 11px;font-size:23px}
.mock-review-record>p,.mock-review-reflection>p{font-size:12px;line-height:1.7}
.mock-score-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}
.mock-score-table th,.mock-score-table td{border-bottom:1px solid #d4dfd5;padding:11px 9px;vertical-align:top}
.mock-score-table thead th{font:700 11px "IBM Plex Mono",monospace;background:#eaf2e8}
.mock-score-table tbody th{font-weight:700}
.mock-score-table td:nth-child(2),.mock-score-table td:nth-child(3){font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}
.mock-score-table a{color:var(--editorial-cobalt);text-decoration-thickness:1px;text-underline-offset:3px}
.mock-unmarked{font-weight:700;color:#8b563d}
.mock-priorities{padding:0;list-style:none;margin:10px 0 22px;border-top:1px solid #c7d6ca}
.mock-priorities li{
 display:flex;justify-content:space-between;gap:10px;align-items:start;
 padding:10px 0;border-bottom:1px solid #c7d6ca;font-size:12px
}
.mock-priorities a{color:var(--editorial-cobalt);font-weight:700}
.mock-priorities span{font:700 11px "IBM Plex Mono",monospace;white-space:nowrap}
.mock-empty{padding:12px;background:#eef2e8}
.mock-diagnostic-field{margin:17px 0}
.mock-diagnostic-field label{font:700 15px "Space Grotesk",sans-serif;display:block;margin-bottom:3px}
.mock-diagnostic-field p{font-size:11px;margin:0 0 7px}
.mock-diagnostic-field textarea{
 width:100%;min-height:95px;padding:12px 13px;border:1px solid #8eaaa0;
 border-radius:2px;background:repeating-linear-gradient(#fffefa 0px,#fffefa 30px,#e9eee4 31px);
 resize:vertical;line-height:1.8
}
.mock-review-foot{font-size:11px;margin:18px 0}
@media(max-width:840px){
 .mock-review-layout{grid-template-columns:1fr}
 .mock-banner-footer{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
 .mock-review-paper-grid{grid-template-columns:1fr}
 .mock-review-heading{padding:17px}
 .mock-banner-core{gap:12px;align-items:start;flex-wrap:wrap}
 .mock-banner-clock{align-items:flex-start;min-width:0}
 .mock-banner-top{font-size:9px}
 .mock-paper-banner .btn{padding:9px 11px}
 .mock-review-record,.mock-review-reflection{padding:13px}
}
@media print{
 .mock-paper-banner,.mock-exam-lock,.mock-review-reflection{display:none!important}
 .mock-review-record{border:0}
}
