:root{--ink:#17221d;--muted:#657169;--line:#e2e8e4;--paper:#fff;--soft:#f5f8f5;--accent:#285943;--accent-dark:#1c4331;--accent-pale:#e8f0eb;--warm:#f6f1e8;--shadow:0 12px 34px rgba(25,46,36,.08);--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}.shell{width:min(1160px,calc(100% - 40px));margin:auto}.site-header{height:74px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);position:sticky;top:0;z-index:50}.nav-wrap{height:100%;display:flex;align-items:center;gap:38px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:20px;font-weight:750;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--accent);color:white;font-family:Georgia,serif;font-size:21px}.main-nav{display:flex;gap:6px}.main-nav a{color:var(--muted);text-decoration:none;padding:10px 13px;border-radius:9px;font-size:14px;font-weight:600}.main-nav a:hover,.main-nav a.active{color:var(--accent-dark);background:var(--accent-pale)}.profile-chip{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:14px;font-weight:650}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--warm);color:#655431}.soft-section{background:linear-gradient(180deg,#f6f9f7 0%,#fbfcfb 100%);border-bottom:1px solid var(--line)}.hero{padding:64px 0}.hero-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:70px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:var(--accent);display:inline-block;margin-bottom:8px}.hero h1,.page-intro h1,.activity-main>h1{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em;font-weight:500;line-height:1.04;margin:0}.hero h1{font-size:clamp(42px,5vw,66px)}.hero-copy{font-size:19px;color:var(--muted);max-width:690px;margin:18px 0 0}.journey-summary{display:grid;grid-template-columns:repeat(3,1fr);background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.journey-summary div{padding:27px 17px;text-align:center;border-right:1px solid var(--line);text-wrap: nowrap;}.journey-summary div:last-child{border:0}.journey-summary strong{display:block;font-family:Georgia,serif;font-size:30px;font-weight:500}.journey-summary span{color:var(--muted);font-size:12px}.section-space{padding-top:52px}.bottom-space{padding-bottom:80px}.section-heading{margin-bottom:21px}.section-heading.split{display:flex;align-items:end;justify-content:space-between;gap:20px}.section-heading h2{margin:0;font-family:Georgia,serif;font-size:29px;font-weight:500;letter-spacing:-.025em}.featured-card{display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:25px;padding:28px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:white}.featured-icon,.activity-title-icon{display:grid;place-items:center;background:var(--accent-pale);border-radius:16px}.featured-icon{width:76px;height:76px;font-size:30px}.featured-copy h3,.activity-card h3{font-family:Georgia,serif;font-weight:500;letter-spacing:-.02em}.featured-copy h3{font-size:25px;margin:7px 0 6px}.featured-copy p{margin:0 0 14px;color:var(--muted)}.tag-row{display:flex;flex-wrap:wrap;gap:7px}.tag-row span,.timeline-badge{font-size:11px;font-weight:750;background:var(--soft);border:1px solid var(--line);padding:4px 8px;border-radius:999px;color:#4e5e54}.progress-track,.mini-track{height:6px;background:#e7ece8;border-radius:999px;overflow:hidden}.progress-track span,.mini-track i{display:block;height:100%;background:var(--accent);border-radius:999px}.featured-copy small{display:block;color:var(--muted);margin-top:6px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;border:0;border-radius:10px;padding:12px 17px;font-weight:750;font-size:14px;cursor:pointer}.button.primary{background:var(--accent);color:white}.button.primary:hover{background:var(--accent-dark)}.button.secondary{background:var(--accent-pale);color:var(--accent-dark)}.text-link,.back-link{color:var(--accent);font-size:13px;font-weight:750;text-decoration:none}.card-grid{display:grid;gap:18px}.card-grid.three{grid-template-columns:repeat(3,1fr)}.activity-card{border:1px solid var(--line);border-radius:var(--radius);padding:22px;background:white;display:flex;flex-direction:column;min-height:310px;transition:.18s ease}.activity-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.activity-card.large{min-height:330px}.activity-icon{font-size:27px;margin-bottom:21px}.activity-card h3{font-size:22px;line-height:1.16;margin:12px 0 9px}.activity-card p{color:var(--muted);font-size:14px;margin:0 0 24px}.card-footer{margin-top:auto;padding-top:15px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px;color:var(--muted)}.card-footer a{color:var(--accent);font-weight:800;text-decoration:none}.dashboard-grid,.portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:white}.skill-list{display:grid;gap:18px}.skill-list>div{display:grid;grid-template-columns:145px 1fr 80px;gap:14px;align-items:center;font-size:13px}.skill-list b{text-align:right;font-size:11px;color:var(--muted)}.timeline{position:relative}.timeline-item{display:grid;grid-template-columns:65px 1fr;gap:14px;padding:0 0 22px}.timeline-item time{font-size:12px;color:var(--muted);padding-top:3px}.timeline-item strong{display:block;font-size:14px}.timeline-item span:not(.timeline-badge){display:block;color:var(--muted);font-size:12px;margin-top:3px}.page-intro{padding:52px 0}.page-intro h1{font-size:48px;max-width:720px}.page-intro p{font-size:18px;color:var(--muted);max-width:730px;margin:15px 0 0}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:25px}.filter{background:white;border:1px solid var(--line);border-radius:999px;padding:9px 14px;font-size:12px;font-weight:700;color:var(--muted)}.filter.active{background:var(--accent);color:white;border-color:var(--accent)}.activity-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:42px;align-items:start}.back-link{display:inline-block;margin-bottom:33px}.activity-title-icon{width:62px;height:62px;font-size:29px;margin-bottom:20px}.activity-main>h1{font-size:48px;margin:11px 0 13px}.lead{font-size:19px;color:var(--muted);max-width:760px;margin-bottom:34px}.activity-content,.reflection{margin-top:21px}.activity-content h2,.reflection h2{font-family:Georgia,serif;font-size:27px;font-weight:500;margin:0 0 12px}.activity-content p{color:var(--muted)}.prompt-box{background:var(--soft);border-left:3px solid var(--accent);padding:18px;margin:23px 0}.prompt-box p{margin:5px 0 0}.reflection label{display:block;font-size:13px;font-weight:750;margin:19px 0 7px}.reflection textarea{width:100%;min-height:110px;resize:vertical;border:1px solid #ced8d1;border-radius:10px;padding:13px;font:inherit;font-size:14px}.reflection .button{margin-top:20px}.sticky-card{position:sticky;top:96px}.details-list{margin:10px 0 22px}.details-list div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.details-list dt{color:var(--muted)}.details-list dd{margin:0;font-weight:700;text-align:right}.status-note{background:var(--warm);padding:16px;border-radius:12px}.status-note strong,.status-note span{display:block}.status-note span{font-size:12px;color:#756a56;margin-top:4px}.portfolio-intro{display:grid;grid-template-columns:1.5fr .8fr;gap:50px;align-items:center}.portfolio-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:white;border-radius:var(--radius)}.portfolio-stats div{text-align:center;padding:19px 8px;border-right:1px solid var(--line)}.portfolio-stats div:last-child{border:0}.portfolio-stats strong{display:block;font-family:Georgia,serif;font-size:26px;font-weight:500}.portfolio-stats span{font-size:11px;color:var(--muted)}.portfolio-grid{grid-template-columns:minmax(0,1fr) 330px}.portfolio-timeline .timeline-item{grid-template-columns:75px 1fr;padding-bottom:33px}.portfolio-timeline .timeline-item>div{border-left:2px solid var(--accent-pale);padding-left:23px}.portfolio-timeline strong{font-family:Georgia,serif;font-size:20px;font-weight:500;margin-top:7px}.portfolio-timeline p{font-size:14px;color:var(--muted);margin:8px 0}.portfolio-side{position:sticky;top:96px}.portfolio-side h3{font-family:Georgia,serif;font-size:20px;font-weight:500;margin:7px 0 12px}.portfolio-side p{font-size:14px;color:var(--muted)}.portfolio-side hr{border:0;border-top:1px solid var(--line);margin:24px 0}.topic-pills{display:flex;flex-wrap:wrap;gap:7px}.topic-pills span{font-size:11px;background:var(--soft);border-radius:999px;padding:6px 9px;border:1px solid var(--line)}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:11px}.footer-inner{height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px}
@media(max-width:850px){.profile-name{display:none}.main-nav{gap:0}.hero-grid,.portfolio-intro,.activity-layout,.dashboard-grid,.portfolio-grid{grid-template-columns:1fr}.hero{padding:44px 0}.journey-summary{max-width:450px}.card-grid.three{grid-template-columns:1fr 1fr}.sticky-card,.portfolio-side{position:static}.featured-card{grid-template-columns:70px 1fr}.featured-card .button{grid-column:1/-1}.activity-sidebar{order:-1}.portfolio-stats{max-width:460px}}
@media(max-width:600px){.shell{width:min(100% - 26px,1160px)}.site-header{height:auto}.nav-wrap{height:auto;min-height:68px;gap:14px;flex-wrap:wrap;padding:10px 0}.brand{font-size:18px}.main-nav{order:3;width:100%;overflow:auto;border-top:1px solid var(--line);padding-top:8px}.main-nav a{white-space:nowrap}.hero h1{font-size:41px}.hero-copy{font-size:17px}.journey-summary{grid-template-columns:repeat(3,1fr)}.journey-summary div{padding:18px 8px}.journey-summary strong{font-size:24px}.section-space{padding-top:38px}.card-grid.three{grid-template-columns:1fr}.featured-card{display:block}.featured-icon{margin-bottom:15px}.featured-card .button{margin-top:19px;width:100%}.section-heading.split{align-items:start;flex-direction:column}.page-intro h1,.activity-main>h1{font-size:38px}.page-intro{padding:38px 0}.skill-list>div{grid-template-columns:120px 1fr}.skill-list b{display:none}.portfolio-stats{grid-template-columns:repeat(3,1fr)}.footer-inner{flex-direction:column;justify-content:center;align-items:flex-start}.profile-chip{margin-left:auto}}

/* Teacher prototype */
.profile-stack{display:flex;flex-direction:column;line-height:1.15}.profile-stack small{font-size:10px;color:var(--muted);font-weight:600;margin-top:3px}.teacher-hero .hero-copy{max-width:740px}.teacher-summary div{padding-left:12px;padding-right:12px}.teacher-summary span{line-height:1.3;display:block}.compact-heading{margin-bottom:15px}.class-switch-section{padding-top:38px}.class-tabs{display:flex;gap:10px;flex-wrap:wrap}.class-tab{appearance:none;border:1px solid var(--line);background:#fff;padding:14px 18px;border-radius:13px;color:var(--ink);font:inherit;cursor:pointer;text-align:left;min-width:190px;transition:.18s ease}.class-tab span{display:block;font-size:14px;font-weight:750}.class-tab small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.class-tab:hover{border-color:#bdccc3;background:var(--soft)}.class-tab.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 10px 24px rgba(40,89,67,.16)}.class-tab.active small{color:#dceae2}.small-button{padding:10px 14px}.student-table-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;box-shadow:0 8px 26px rgba(25,46,36,.04)}.student-table-head,.student-table-row{display:grid;grid-template-columns:1.45fr 1.3fr .65fr .65fr .8fr 28px;gap:20px;align-items:center}.student-table-head{padding:13px 21px;background:var(--soft);border-bottom:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--muted)}.student-table-row{padding:17px 21px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:.15s ease}.student-table-row:last-child{border-bottom:0}.student-table-row:hover{background:#fafcfb}.student-person{display:flex;align-items:center;gap:11px;min-width:0}.student-person>span:last-child{min-width:0}.student-person strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-avatar{width:35px;height:35px;border-radius:50%;background:var(--accent-pale);display:grid;place-items:center;color:var(--accent-dark);font-size:10px;font-weight:850;flex:none}.mini-avatar.subtle{background:var(--soft);border:1px solid var(--line)}.quiet-note{display:block;font-size:10px;color:#9b6f35;font-weight:650;margin-top:2px}.student-focus{font-size:12px;color:var(--muted)}.metric-cell strong,.metric-cell small{display:block}.metric-cell strong{font-family:Georgia,serif;font-size:17px;font-weight:500}.metric-cell small{font-size:10px;color:var(--muted)}.last-active{font-size:12px;font-weight:700;color:var(--accent)}.last-active.quiet{color:#9b6f35}.row-arrow{color:var(--accent);font-weight:800;text-align:right}.teacher-insights-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:20px}.teacher-feed{display:grid}.teacher-feed-item{display:grid;grid-template-columns:40px 1fr;gap:13px;padding:18px 0;border-top:1px solid var(--line)}.teacher-feed-item:first-child{border-top:0;padding-top:0}.feed-topline{font-size:12px;color:var(--muted)}.feed-topline strong{color:var(--ink)}.feed-topline>span{float:right;font-size:11px}.feed-title{display:inline-block;color:var(--ink);font-family:Georgia,serif;font-size:18px;line-height:1.2;text-decoration:none;margin-top:4px}.feed-title:hover{color:var(--accent)}.feed-meta{font-size:11px;color:var(--muted);margin-top:3px}.reflection-preview{background:var(--soft);border-left:2px solid var(--accent-pale);padding:10px 12px;margin:11px 0 7px;font-size:12px;color:#546158;font-style:italic}.panel-intro{color:var(--muted);font-size:13px;margin:-7px 0 22px}.interest-list{display:grid;gap:17px}.interest-label{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin-bottom:7px}.interest-label strong{font-family:Georgia,serif;font-size:16px;font-weight:500}.interest-callout{display:grid;grid-template-columns:36px 1fr;gap:11px;background:var(--soft);border:1px solid var(--line);padding:15px;border-radius:12px;margin-top:24px}.callout-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--accent-pale);color:var(--accent);font-weight:800}.interest-callout strong{font-size:12px}.interest-callout p{font-size:11px;color:var(--muted);margin:3px 0 0}.recommend-banner{display:grid;grid-template-columns:58px 1fr auto;gap:20px;align-items:center;border-radius:var(--radius);padding:26px 29px;background:linear-gradient(135deg,#eff5f1,#f8faf8);border:1px solid #dce7e0}.recommend-icon{width:54px;height:54px;border-radius:15px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);font-size:23px}.recommend-banner h2{font-family:Georgia,serif;font-size:25px;font-weight:500;margin:2px 0 3px}.recommend-banner p{margin:0;color:var(--muted);font-size:13px}
@media(max-width:950px){.student-table-head{display:none}.student-table-row{grid-template-columns:1.4fr 1fr .55fr .55fr 28px}.student-table-row>.last-active{display:none}.teacher-insights-grid{grid-template-columns:1fr}.teacher-summary strong{font-size:25px}}
@media(max-width:700px){.class-tab{min-width:0;flex:1 1 150px}.student-table-row{grid-template-columns:1fr auto;padding:16px}.student-table-row>.student-focus,.student-table-row>.metric-cell,.student-table-row>.last-active{display:none}.row-arrow{grid-column:2;grid-row:1}.teacher-insights-grid{gap:15px}.recommend-banner{grid-template-columns:48px 1fr}.recommend-banner .button{grid-column:1/-1;width:100%}.feed-topline>span{float:none;display:block;margin-top:2px}.profile-stack small{display:none}}

/* Individual student teacher view */
.student-journey-hero{padding:0}.student-journey-head{padding:48px 0 46px;display:grid;grid-template-columns:1.35fr .85fr;gap:60px;align-items:center}.student-journey-head .back-link{display:block;margin-bottom:25px}.student-journey-head h1{font-family:Georgia,"Times New Roman",serif;font-size:52px;line-height:1.04;letter-spacing:-.035em;font-weight:500;margin:0}.student-journey-head p{font-size:17px;color:var(--muted);margin:13px 0 0}.student-journey-stats{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.student-journey-stats div{text-align:center;padding:24px 11px;border-right:1px solid var(--line)}.student-journey-stats div:last-child{border-right:0}.student-journey-stats strong{display:block;font-family:Georgia,serif;font-size:27px;font-weight:500}.student-journey-stats span{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-top:3px}.student-teacher-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;padding-bottom:33px;border-bottom:1px solid var(--line);margin-bottom:38px}.student-teacher-toolbar h2{font-family:Georgia,serif;font-size:30px;font-weight:500;letter-spacing:-.025em;margin:0}.student-teacher-toolbar p{font-size:13px;color:var(--muted);margin:6px 0 0}.toolbar-actions{display:flex;gap:9px;flex-wrap:wrap}.student-journey-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:34px;align-items:start}.student-section-heading{margin-bottom:23px}.quiet-meta{color:var(--muted);font-size:11px}.teacher-journey-timeline{position:relative}.teacher-journey-timeline:before{content:"";position:absolute;left:54px;top:18px;bottom:30px;width:1px;background:var(--line)}.journey-entry{display:grid;grid-template-columns:78px 1fr;gap:18px;position:relative;padding-bottom:24px}.journey-date{font-size:11px;color:var(--muted);font-weight:700;padding-top:19px;position:relative}.journey-date:after{content:"";position:absolute;right:15px;top:22px;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid var(--accent);z-index:2}.journey-entry-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:24px;box-shadow:0 7px 24px rgba(25,46,36,.035)}.journey-entry-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.journey-entry-top h3{font-family:Georgia,serif;font-size:23px;line-height:1.15;font-weight:500;margin:8px 0 4px}.journey-meta{font-size:11px;color:var(--muted);margin:0}.completion-mark{font-size:10px;font-weight:750;color:var(--accent);background:var(--accent-pale);padding:6px 9px;border-radius:999px;white-space:nowrap}.reflection-block{margin-top:19px;background:var(--soft);border-left:3px solid var(--accent);padding:15px 17px;border-radius:0 10px 10px 0}.reflection-label{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:850;color:var(--accent);margin-bottom:5px}.reflection-block p{font-family:Georgia,serif;font-size:15px;line-height:1.55;color:#3c4b42;margin:0;font-style:italic}.evidence-row{display:grid;grid-template-columns:36px 1fr auto;gap:11px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin-top:14px}.evidence-icon{width:32px;height:32px;border-radius:9px;background:var(--accent-pale);display:grid;place-items:center;color:var(--accent);font-weight:800}.evidence-row small,.evidence-row strong{display:block}.evidence-row small{font-size:9px;color:var(--muted)}.evidence-row strong{font-size:11px;margin-top:1px}.evidence-row a{font-size:11px;color:var(--accent);font-weight:750;text-decoration:none}.teacher-note-block{background:var(--warm);border-radius:11px;padding:14px 15px;margin-top:14px}.teacher-note-block>div{display:flex;align-items:center;gap:8px}.teacher-note-block span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:850;color:#6e5d3c}.teacher-note-block small{font-size:9px;color:#8a7a5d}.teacher-note-block p{font-size:12px;color:#655b49;margin:8px 0 4px}.teacher-note-block a{font-size:10px;color:#6e5d3c;font-weight:750;text-decoration:none}.add-note-button{margin-top:13px;background:transparent;border:0;padding:0;color:var(--accent);font-size:11px;font-weight:750;cursor:pointer}.student-journey-side{display:grid;gap:18px}.sticky-student-panel{position:sticky;top:96px}.student-journey-side h3{font-family:Georgia,serif;font-size:22px;font-weight:500;margin:4px 0 7px}.side-intro{font-size:12px;color:var(--muted);margin:0 0 20px}.student-topic-profile{display:grid;gap:15px}.topic-profile-label{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}.topic-profile-label span{font-size:11px;font-weight:700}.topic-profile-label small{font-size:9px;color:var(--muted)}.student-journey-side hr{border:0;border-top:1px solid var(--line);margin:25px 0}.next-step-card{background:linear-gradient(145deg,#f6faf7,#fff);border:1px solid var(--line);border-radius:13px;padding:15px;margin-top:4px}.next-step-card h4{font-family:Georgia,serif;font-size:18px;font-weight:500;line-height:1.25;margin:9px 0 7px}.next-step-card p{font-size:11px;color:var(--muted);margin:0 0 11px}.application-card{background:#fbfcfb}.application-card p{font-size:12px;color:var(--muted);margin:0 0 16px}.summary-points{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);margin:18px 0}.summary-points span{padding:11px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:9px;color:var(--muted)}.summary-points strong{font-family:Georgia,serif;font-size:19px;font-weight:500;display:block;color:var(--ink)}.full-button{width:100%}
@media(max-width:980px){.student-journey-head{grid-template-columns:1fr}.student-journey-stats{max-width:520px}.student-journey-layout{grid-template-columns:1fr}.sticky-student-panel{position:static}.student-journey-side{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.student-journey-head{padding:34px 0}.student-journey-head h1{font-size:40px}.student-journey-stats{grid-template-columns:repeat(3,1fr)}.student-teacher-toolbar{align-items:flex-start;flex-direction:column}.toolbar-actions{width:100%}.toolbar-actions .button{flex:1}.student-journey-side{grid-template-columns:1fr}.teacher-journey-timeline:before{left:32px}.journey-entry{grid-template-columns:53px 1fr;gap:10px}.journey-date{font-size:9px}.journey-date:after{right:6px}.journey-entry-card{padding:17px}.journey-entry-top{display:block}.completion-mark{display:inline-block;margin-top:9px}.evidence-row{grid-template-columns:32px 1fr}.evidence-row a{grid-column:2}.summary-points{grid-template-columns:1fr 1fr}}


/* External competition achievements */
.portfolio-achievements{margin-bottom:46px}.achievement-intro{max-width:760px;color:var(--muted);font-size:13px;margin:-9px 0 20px}.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.achievement-card{display:grid;grid-template-columns:42px 1fr;gap:14px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:18px;box-shadow:0 6px 20px rgba(25,46,36,.035)}.achievement-card.featured-achievement{border-color:#cfdbd3;background:linear-gradient(145deg,#fbfdfb,#fff)}.achievement-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--warm);color:#8a6b2d;font-size:17px}.achievement-topline{display:flex;justify-content:space-between;gap:14px;align-items:center;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:750}.achievement-topline time{white-space:nowrap}.achievement-card h3{font-family:Georgia,serif;font-size:19px;line-height:1.2;font-weight:500;margin:5px 0 8px}.achievement-result-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.achievement-result-row strong{color:var(--accent-dark);font-size:12px}.achievement-result-row span{font-size:10px;color:var(--muted);background:var(--soft);border:1px solid var(--line);padding:3px 7px;border-radius:999px}.achievement-card p{font-size:11px;color:var(--muted);margin:9px 0 6px}.record-achievement-panel{display:flex;justify-content:space-between;gap:22px;align-items:center;background:var(--soft);border:1px dashed #cbd9d0;border-radius:15px;padding:18px 20px;margin-top:14px}.record-achievement-panel h3{font-family:Georgia,serif;font-size:19px;font-weight:500;margin:0 0 4px}.record-achievement-panel p{font-size:11px;color:var(--muted);margin:0}.record-achievement-panel .eyebrow{margin-bottom:3px}.portfolio-timeline-heading{margin-top:0}.teacher-achievement-section{margin-bottom:40px}.journey-heading-after-achievements{padding-top:6px}.teacher-achievement-section .achievement-card p{margin-bottom:8px}
@media(max-width:800px){.achievement-grid{grid-template-columns:1fr}.record-achievement-panel{align-items:flex-start;flex-direction:column}.record-achievement-panel .button{width:100%}}

/* =========================================================
   BEYOND REPTON — Repton-inspired pilot theme
   Visual direction derived from the supplied Repton website
   screenshots: navy, warm gold, ivory, editorial serif type,
   fine rules and restrained square-cornered controls.
   ========================================================= */
:root{
  --ink:#30384f;
  --muted:#72737a;
  --line:#dedbd3;
  --paper:#ffffff;
  --soft:#f5f4ef;
  --accent:#a58b61;
  --accent-dark:#303950;
  --accent-pale:#f0ebe1;
  --warm:#f3f0e8;
  --shadow:0 14px 36px rgba(48,57,80,.07);
  --radius:2px;
  --repton-navy:#303950;
  --repton-gold:#a58b61;
  --repton-ivory:#f3f2ed;
  --repton-coral:#df6863;
  --repton-teal:#42a09d;
}
body{color:var(--ink);background:#fff;font-family:"Segoe UI",Arial,sans-serif;font-weight:300;letter-spacing:.005em}
.shell{width:min(1180px,calc(100% - 52px))}
.site-header{height:82px;background:rgba(255,255,255,.98);border-bottom:1px solid #e4e1d9;box-shadow:none}
.nav-wrap{gap:44px}
.brand{gap:13px;color:var(--repton-navy);font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:18px;letter-spacing:.01em}
.brand-mark{position:relative;width:42px;height:42px;border:1px solid var(--repton-gold);border-radius:50%;background:transparent;color:var(--repton-gold);font-family:Georgia,serif;display:grid;place-items:center;line-height:1}
.brand-mark span{font-size:18px;transform:translate(-2px,-1px)}
.brand-mark small{position:absolute;right:8px;bottom:7px;font-size:9px;font-weight:400}
.brand-copy{display:flex;align-items:baseline;gap:5px;white-space:nowrap}
.brand-copy strong{font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:14px}
.brand-copy em{font-weight:400;font-style:italic;color:var(--repton-gold);font-size:17px}
.main-nav{gap:24px}
.main-nav a{position:relative;color:#60646e;padding:29px 0 27px;border-radius:0;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;background:transparent!important}
.main-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:20px;height:1px;background:var(--repton-gold);transition:.2s ease}
.main-nav a:hover,.main-nav a.active{color:var(--repton-navy)}
.main-nav a:hover:after,.main-nav a.active:after{right:0}
.profile-chip{color:var(--repton-navy);font-size:12px}.profile-chip small{color:var(--repton-gold);font-size:9px;text-transform:uppercase;letter-spacing:.09em}.avatar{background:var(--repton-navy);color:#fff;border-radius:50%;font-family:Georgia,serif;font-weight:400}
.soft-section{background:linear-gradient(90deg,#f4f3ee 0%,#f8f7f3 50%,#efeee8 100%);border-bottom:0;position:relative}.soft-section:after{content:"";position:absolute;left:50%;bottom:-30px;width:1px;height:60px;background:var(--repton-gold);opacity:.8}
.hero{padding:76px 0 82px}.hero-grid{grid-template-columns:1.45fr .75fr;gap:88px}.eyebrow{color:var(--repton-gold);font-size:10px;letter-spacing:.18em;font-weight:500;margin-bottom:12px;display:block}.hero h1,.page-intro h1,.activity-main>h1,.section-heading h2,.featured-copy h3,.activity-card h3,.portfolio-side h3,.student-journey-head h1,.student-journey-side h3,.journey-entry-top h3,.achievement-card h3,.record-achievement-panel h3{font-family:Georgia,"Times New Roman",serif;color:var(--repton-navy);font-weight:400;letter-spacing:-.015em}.hero h1{font-size:clamp(44px,5vw,64px)}.hero-copy{font-size:17px;line-height:1.7;color:#707178;max-width:650px}
.journey-summary,.portfolio-stats,.student-journey-stats{border-radius:0;border-color:#d9d5cc;box-shadow:none;background:rgba(255,255,255,.7)}.journey-summary div,.portfolio-stats div,.student-journey-stats>div{border-color:#d9d5cc}.journey-summary strong,.portfolio-stats strong,.student-journey-stats strong{color:var(--repton-gold);font-family:Georgia,serif}.journey-summary span,.portfolio-stats span,.student-journey-stats span{text-transform:uppercase;letter-spacing:.08em;font-size:9px}
.section-space{padding-top:68px}.section-heading{margin-bottom:25px}.section-heading h2{font-size:31px}.section-heading.split{border-bottom:1px solid #ece9e1;padding-bottom:14px}.panel,.featured-card,.activity-card,.journey-entry-card,.achievement-card{border-radius:0;border:1px solid #ddd9cf;box-shadow:none}.panel{padding:30px}.featured-card{padding:32px;background:#fff;position:relative}.featured-card:before{content:"";position:absolute;left:-1px;top:-1px;width:5px;height:calc(100% + 2px);background:var(--repton-gold)}
.featured-icon,.activity-title-icon{background:var(--repton-ivory);border-radius:0;color:var(--repton-gold)}
.tag-row span,.timeline-badge,.achievement-result-row span{background:#fff;border-color:#dcd7cc;border-radius:0;color:#76746e;text-transform:uppercase;letter-spacing:.07em;font-size:9px;font-weight:500}.featured-copy p,.activity-card p,.page-intro p,.portfolio-side p,.side-intro{color:#77777b}
.progress-track,.mini-track{height:3px;background:#e4e1d9;border-radius:0}.progress-track span,.mini-track i{background:var(--repton-gold);border-radius:0}
.button{border-radius:0;padding:12px 18px;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:500;border:1px solid transparent}.button.primary{background:var(--repton-navy);color:#fff;border-color:var(--repton-navy)}.button.primary:hover{background:#252d42}.button.secondary{background:transparent;color:var(--repton-navy);border-color:var(--repton-navy)}.button.secondary:hover{background:var(--repton-navy);color:white}.text-link,.back-link{color:var(--repton-gold);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.activity-card{padding:25px;min-height:315px;transition:.2s ease}.activity-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(48,57,80,.07);border-color:#cfc9bd}.activity-icon{filter:saturate(.65)}.activity-card h3{font-size:23px}.card-footer{border-color:#e5e1d7;color:#7c7a75}.card-footer a{color:var(--repton-gold);text-transform:uppercase;letter-spacing:.07em;font-size:9px}
.skill-list b{color:var(--repton-gold);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.timeline-item time{color:var(--repton-gold)}
.page-intro{padding:64px 0 60px;background:#f4f3ee;border-bottom:1px solid #dfdbd2}.page-intro h1{font-size:48px}.filters{gap:10px}.filter{border-radius:0;background:#fff;color:#696a70;text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:500}.filter.active{background:var(--repton-navy);border-color:var(--repton-navy);color:#fff}
.prompt-box,.reflection-block{border-left-color:var(--repton-gold);background:#f5f3ee;border-radius:0}.reflection textarea{border-radius:0;border-color:#d7d2c8}.status-note,.teacher-note-block{background:#f1ede4;border-radius:0}.topic-pills span{border-radius:0;background:#f6f4ef;color:#716f69}.portfolio-timeline .timeline-item>div{border-left-color:#d8ccb8}
.site-footer{background:var(--repton-navy)!important;color:#fff!important;border-top:0!important;margin-top:30px}.footer-inner{min-height:92px;display:flex!important;align-items:center;justify-content:space-between;color:#d9dbe1!important;font-size:10px!important;text-transform:uppercase;letter-spacing:.09em}.footer-inner span:last-child{color:#c2a77c}

/* Teacher / class views */
.teacher-mode .soft-section{background:linear-gradient(90deg,#f1f0eb,#f7f6f2)}
.teacher-mode .class-tab,.teacher-mode .class-choice,.class-selector button{border-radius:0!important}.teacher-mode .class-tab.active,.teacher-mode .class-choice.active,.class-selector button.active{background:var(--repton-navy)!important;color:#fff!important}.teacher-mode table,.students-table{border-radius:0!important}.teacher-mode thead,.students-table thead{background:#f3f1eb!important}.teacher-mode th,.students-table th{color:var(--repton-gold)!important;text-transform:uppercase;letter-spacing:.09em;font-size:9px!important;font-weight:600!important}.teacher-mode td,.students-table td{border-color:#e3dfd5!important}.completion-mark{border-radius:0;background:#efe9de;color:var(--repton-gold)}.evidence-row{border-radius:0}.evidence-icon{border-radius:0;background:#f0ece3;color:var(--repton-gold)}.next-step-card{border-radius:0;background:#f5f3ed}.application-card{background:#faf9f6}

/* External achievements */
.achievement-card,.record-achievement-panel{border-radius:0}.achievement-card.featured-achievement{background:#faf8f3;border-color:#cfbf9f}.achievement-mark{border-radius:0;background:var(--repton-navy);color:#fff}.achievement-result-row strong{color:var(--repton-gold)}.record-achievement-panel{background:#f4f2ed;border-color:#cbbfa8}.achievement-topline{color:#8a8378}.portfolio-achievements{position:relative}

/* Repton-like editorial accent rules */
.section-heading>div:after,.section-heading:not(.split):after{content:"";display:block;width:42px;height:1px;background:var(--repton-gold);margin-top:13px}.section-heading.split>div:after{content:"";display:block;width:42px;height:1px;background:var(--repton-gold);margin-top:13px}.section-heading.split:after{display:none}

@media(max-width:760px){.shell{width:min(100% - 28px,1180px)}.site-header{height:auto}.nav-wrap{min-height:72px;gap:18px;flex-wrap:wrap;padding:10px 0}.brand-copy em{display:none}.main-nav{order:3;width:100%;overflow-x:auto;gap:20px}.main-nav a{padding:9px 0 14px;white-space:nowrap}.main-nav a:after{bottom:8px}.hero{padding:48px 0 58px}.soft-section:after{display:none}.hero-grid{gap:32px}.featured-card{grid-template-columns:1fr}.featured-icon{width:56px;height:56px}.footer-inner{gap:10px;align-items:flex-start!important;flex-direction:column;justify-content:center!important}}

/* Account, login & administration */
.logout-link{margin-left:7px;color:var(--repton-gold);text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font-size:8px;font-weight:600}
.login-page{min-height:100vh;background:linear-gradient(90deg,var(--repton-navy) 0 46%,#f3f2ed 46% 100%);display:grid;place-items:center}
.login-shell{width:min(1050px,calc(100% - 40px));display:grid;grid-template-columns:1fr 460px;align-items:center;gap:90px;padding:60px 0}.login-brand{color:#fff}.login-kicker{display:block;color:#c8ae82;letter-spacing:.18em;font-size:10px;margin-bottom:18px}.login-brand h1{font:400 clamp(46px,6vw,72px)/1 Georgia,serif;margin:0 0 24px;text-transform:uppercase;letter-spacing:.07em}.login-brand h1 em{display:block;color:#c8ae82;text-transform:none;letter-spacing:0;font-weight:400}.login-brand p{max-width:420px;color:#d9dbe1;font-size:17px;line-height:1.8}.login-card,.admin-form-card,.admin-list-card,.admin-help{background:#fff;border:1px solid #ddd9cf;padding:36px}.login-card h2,.admin-form-card h2,.admin-list-card h2,.admin-help h3{font:400 30px/1.15 Georgia,serif;color:var(--repton-navy);margin:0 0 12px}.login-intro{color:var(--muted);margin:0 0 26px}.login-help{display:block;color:var(--muted);margin-top:20px}.admin-form{display:grid;gap:18px}.admin-form label{display:grid;gap:7px;color:var(--repton-navy);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.admin-form input,.admin-form select{width:100%;border:1px solid #d7d2c8;background:#fff;padding:13px 14px;border-radius:0;font:400 14px/1.3 "Segoe UI",Arial,sans-serif;color:var(--ink);outline:none}.admin-form input:focus,.admin-form select:focus{border-color:var(--repton-gold);box-shadow:0 0 0 2px rgba(165,139,97,.12)}.admin-form label small{font-size:10px;text-transform:none;letter-spacing:0;color:var(--muted);font-weight:400}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:8px}.form-submit{width:100%}.form-alert{padding:13px 15px;margin:0 0 20px;border-left:3px solid var(--repton-gold);background:#f5f2eb;font-size:13px}.form-alert.error{border-color:#a54b49;background:#faf0ef}.form-alert.success{border-color:#56806c;background:#eef5f0}.admin-layout{display:grid;grid-template-columns:minmax(0,760px) 1fr;gap:30px;align-items:start}.admin-two-col{display:grid;grid-template-columns:440px 1fr;gap:30px;align-items:start}.admin-help{background:#f5f3ee}.admin-help p{color:var(--muted);font-size:13px;line-height:1.7}.admin-quick-actions{padding-top:42px;display:flex;justify-content:flex-end;gap:10px}.account-list{display:grid}.account-row{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #e5e1d7}.account-row:last-child{border-bottom:0}.account-row strong,.account-row small{display:block}.account-row small{color:var(--muted);font-size:11px}.access-pill{border:1px solid #d7d0c4;padding:5px 8px;text-transform:uppercase;letter-spacing:.06em;font-size:8px;color:var(--repton-gold)}
@media(max-width:800px){.login-page{background:#f3f2ed}.login-shell{grid-template-columns:1fr;gap:28px;padding:30px 0}.login-brand{color:var(--repton-navy)}.login-brand p{color:var(--muted)}.login-brand h1{font-size:42px}.admin-layout,.admin-two-col,.form-grid{grid-template-columns:1fr}.admin-quick-actions{justify-content:flex-start;flex-wrap:wrap}.logout-link{display:none}}
/* Class administration */
.class-admin-card{border-top:1px solid #dedbd3;}.class-admin-card:first-of-type{border-top:0}.class-admin-head{display:flex;justify-content:space-between;gap:15px;align-items:center;}.class-admin-head h3{font:400 21px/1.2 Georgia,serif;color:var(--repton-navy);margin:0 0 4px}.class-admin-head small,.class-member small{display:block;color:var(--muted);font-size:10px}.class-add-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}.class-add-form select{border:1px solid #d7d2c8;background:#fff;padding:10px 12px;color:var(--ink)}.class-member-list{border-top:1px solid #ece9e1}.class-member{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:10px 0;border-bottom:1px solid #ece9e1;font-size:12px}.class-member strong{font-weight:600}.remove-link{border:0;background:none;color:#9a5c59;text-transform:uppercase;letter-spacing:.07em;font-size:8px;cursor:pointer;padding:5px}.remove-link:hover{text-decoration:underline}
@media(max-width:600px){.class-add-form{grid-template-columns:1fr}.class-add-form .button{width:100%}}

/* Beyond Repton: Activity Management */
.activity-admin-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:32px}.activity-admin-intro p{margin-bottom:0}.activity-admin-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #dedbd3;background:#fff}.activity-admin-stats>div{padding:24px 28px;border-right:1px solid #dedbd3}.activity-admin-stats>div:last-child{border-right:0}.activity-admin-stats strong{display:block;font:400 32px/1 Georgia,serif;color:var(--repton-navy)}.activity-admin-stats span{display:block;margin-top:7px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.09em}.activity-filterbar{display:grid;grid-template-columns:minmax(240px,1fr) 180px 210px auto auto;gap:12px;align-items:end;margin-bottom:28px;padding:20px;background:#f5f3ee;border:1px solid #e1ddd4}.activity-filterbar label{display:grid;gap:6px}.activity-filterbar label>span{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--repton-gold)}.activity-filterbar input,.activity-filterbar select,.activity-editor-form textarea{width:100%;border:1px solid #d7d2c8;background:#fff;padding:12px 13px;border-radius:0;font:400 14px/1.4 "Segoe UI",Arial,sans-serif;color:var(--ink)}.clear-filter{align-self:center;margin-left:4px}.activity-admin-list{border-top:1px solid #dedbd3}.activity-admin-row{display:grid;grid-template-columns:84px minmax(0,1fr) 170px;gap:24px;padding:27px 0;border-bottom:1px solid #dedbd3;align-items:start}.activity-admin-state{font-size:8px;text-transform:uppercase;letter-spacing:.11em;border:1px solid #d6d0c5;padding:7px 8px;text-align:center}.activity-admin-state.published{background:var(--repton-navy);border-color:var(--repton-navy);color:#fff}.activity-admin-state.draft{color:#8b7759;background:#f6f1e8}.activity-admin-meta{color:var(--repton-gold);font-size:9px;text-transform:uppercase;letter-spacing:.09em}.activity-admin-copy h2{font:400 24px/1.2 Georgia,serif;color:var(--repton-navy);margin:5px 0 8px}.activity-admin-copy p{color:var(--muted);font-size:13px;margin:0;max-width:720px}.activity-admin-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.activity-admin-tags span{border:1px solid #ddd8cf;padding:4px 7px;color:#77736c;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.activity-admin-actions{display:flex;align-items:flex-end;justify-content:flex-start;flex-direction:column;gap:12px}.activity-admin-actions small{text-align:right;color:var(--muted);font-size:10px}.activity-empty-state{text-align:center;border:1px solid #dedbd3;padding:70px 30px;background:#faf9f6}.activity-empty-state h2{font:400 30px/1.2 Georgia,serif;color:var(--repton-navy);margin:0 0 8px}.activity-empty-state p{color:var(--muted);margin:0 0 22px}.activity-editor-layout{display:grid;grid-template-columns:minmax(0,780px) 1fr;gap:32px;align-items:start}.activity-editor-form{gap:20px}.editor-section{border:1px solid #dedbd3;padding:30px;background:#fff;display:grid;gap:18px}.editor-section h2{font:400 28px/1.15 Georgia,serif;color:var(--repton-navy);margin:-8px 0 0}.editor-help{color:var(--muted);font-size:12px;margin:-7px 0 0}.admin-form textarea{resize:vertical}.three-col{grid-template-columns:repeat(3,1fr)}.topic-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.topic-check{display:flex!important;align-items:center;gap:9px!important;border:1px solid #ddd8cf;padding:10px 12px;color:var(--ink)!important;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;font-weight:400!important;cursor:pointer}.topic-check input{width:auto!important;margin:0}.publish-section{display:flex;justify-content:space-between;align-items:center;gap:30px}.publish-toggle{display:flex!important;align-items:center;gap:12px!important;min-width:230px;border-left:2px solid var(--repton-gold);padding:12px 15px;background:#f5f3ee;color:var(--ink)!important;text-transform:none!important;letter-spacing:0!important}.publish-toggle input{width:auto!important}.publish-toggle strong,.publish-toggle small{display:block}.publish-toggle small{margin-top:3px}.editor-actions{padding:0}.activity-editor-side{min-width:0}.framework-list{display:grid;margin-top:20px}.framework-list>div{padding:14px 0;border-top:1px solid #ddd8cf}.framework-list strong,.framework-list span{display:block}.framework-list strong{font-family:Georgia,serif;color:var(--repton-navy);font-weight:400;font-size:17px}.framework-list span{font-size:11px;color:var(--muted);margin-top:3px}.activity-preview-banner{background:var(--repton-navy);color:#fff}.activity-preview-banner .shell{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:11px}.activity-preview-banner a{color:#d7bf96;text-decoration:none;font-weight:600}.formatted-copy{color:var(--muted);line-height:1.8}.small-button{padding:9px 13px!important}
@media(max-width:900px){.activity-filterbar{grid-template-columns:1fr 1fr}.activity-search{grid-column:1/-1}.activity-admin-row{grid-template-columns:80px 1fr}.activity-admin-actions{grid-column:2;flex-direction:row;align-items:center}.activity-editor-layout{grid-template-columns:1fr}.activity-editor-side .sticky-card{position:static}.topic-check-grid{grid-template-columns:1fr 1fr}.three-col{grid-template-columns:1fr}.activity-admin-intro{align-items:flex-start;flex-direction:column}.activity-admin-stats{grid-template-columns:1fr}.activity-admin-stats>div{border-right:0;border-bottom:1px solid #dedbd3}.activity-admin-stats>div:last-child{border-bottom:0}}
@media(max-width:600px){.activity-filterbar{grid-template-columns:1fr}.activity-search{grid-column:auto}.activity-admin-row{grid-template-columns:1fr}.activity-admin-state{width:max-content}.activity-admin-actions{grid-column:auto;justify-self:start}.topic-check-grid{grid-template-columns:1fr}.publish-section{align-items:flex-start;flex-direction:column}.publish-toggle{width:100%}}

/* Beyond Repton: live student experience */
.explore-intro-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:50px;align-items:end}.explore-count{min-width:150px;border-left:1px solid var(--repton-gold);padding:8px 0 8px 24px}.explore-count strong,.explore-count span{display:block}.explore-count strong{font:400 38px/1 Georgia,serif;color:var(--repton-navy)}.explore-count span{margin-top:6px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.student-filterbar{display:grid;grid-template-columns:minmax(260px,1fr) 160px 160px 190px auto auto;gap:11px;align-items:end;margin-bottom:30px;padding:20px;background:#f5f3ee;border:1px solid #e1ddd4}.student-filterbar label{display:grid;gap:6px}.student-filterbar label>span{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--repton-gold)}.student-filterbar input,.student-filterbar select{width:100%;border:1px solid #d7d2c8;background:#fff;padding:12px 13px;border-radius:0;font:400 13px/1.4 "Segoe UI",Arial,sans-serif;color:var(--ink)}.live-activity-card{position:relative;display:flex;flex-direction:column}.activity-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.text-icon{font-family:Georgia,serif;font-weight:400;font-size:20px;color:var(--repton-navy)}.student-status{display:inline-block;padding:5px 7px;border:1px solid #d8d3c8;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#79736a}.student-status.started{background:var(--repton-navy);border-color:var(--repton-navy);color:#fff}.student-status.completed{background:#edf2ee;border-color:#bfcfc3;color:#466352}.student-status.saved{background:#f3efe6;color:#8b7759}.activity-topics{display:flex;flex-wrap:wrap;gap:5px;margin:5px 0 16px}.activity-topics span,.sidebar-topics span{padding:4px 7px;border:1px solid #ded9cf;color:#7b7469;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.student-card-footer{margin-top:auto}.card-actions{display:flex;align-items:center;gap:12px}.card-actions form{margin:0}.save-link{border:0;background:transparent;padding:0;color:var(--repton-gold);font:inherit;font-size:10px;text-transform:uppercase;letter-spacing:.07em;cursor:pointer}.save-link:hover{text-decoration:underline}.student-empty-state{border:1px solid #dedbd3;background:#faf9f6;padding:65px 34px;text-align:center}.student-empty-state.compact{padding:30px}.student-empty-state h2{font:400 30px/1.15 Georgia,serif;color:var(--repton-navy);margin:0 0 9px}.student-empty-state p{color:var(--muted);max-width:620px;margin:0 auto 22px}.student-welcome-card{display:flex;align-items:center;justify-content:space-between;gap:40px;border-top:1px solid var(--repton-gold);border-bottom:1px solid #dedbd3;padding:34px 0}.student-welcome-card h2{font:400 31px/1.15 Georgia,serif;color:var(--repton-navy);margin:0 0 8px}.student-welcome-card p{color:var(--muted);max-width:700px;margin:0}.live-featured .featured-copy small{color:var(--repton-gold);text-transform:uppercase;letter-spacing:.07em}.inline-empty{color:var(--muted);font-size:13px;padding:18px 0}.live-topic-list b{white-space:nowrap}.live-student-activity .activity-content{margin-top:30px}.start-activity-form{display:inline-block;margin-top:10px}.resource-button{margin-top:10px}.reflection-locked{opacity:.72}.reflection-lock-message{border-left:2px solid var(--repton-gold);background:#f6f3ed;padding:15px;color:var(--muted);font-size:13px}.reflection-actions{display:flex;align-items:center;gap:12px;margin-top:20px}.completion-note{color:#58705f;font-size:11px;text-transform:uppercase;letter-spacing:.07em}.sidebar-topics{display:flex;flex-wrap:wrap;gap:5px;margin:18px 0}.portfolio-module-placeholder{border:1px solid #dedbd3;background:#faf9f6;padding:30px}.portfolio-module-placeholder h3{font:400 23px/1.2 Georgia,serif;color:var(--repton-navy);margin:0 0 7px}.portfolio-module-placeholder p,.muted-copy{color:var(--muted);font-size:13px}.portfolio-activity-link{color:inherit;text-decoration:none}.portfolio-activity-link:hover{color:var(--repton-gold)}
@media(max-width:1050px){.student-filterbar{grid-template-columns:1fr 1fr 1fr}.student-search{grid-column:1/-1}.student-filterbar .clear-filter{align-self:center}.explore-intro-grid{grid-template-columns:1fr}.explore-count{border-left:0;border-top:1px solid var(--repton-gold);padding:18px 0 0}}
@media(max-width:700px){.student-filterbar{grid-template-columns:1fr}.student-search{grid-column:auto}.student-welcome-card{align-items:flex-start;flex-direction:column}.reflection-actions{align-items:stretch;flex-direction:column}.reflection-actions .button{width:100%}.explore-count{min-width:0}}

/* Beyond Repton: student account administration */
.student-admin-intro{display:flex;align-items:end;justify-content:space-between;gap:50px}.student-admin-stats{display:grid;grid-template-columns:repeat(3,100px);border:1px solid #dedbd3;background:#fff}.student-admin-stats>div{text-align:center;padding:17px 12px;border-right:1px solid #dedbd3}.student-admin-stats>div:last-child{border-right:0}.student-admin-stats strong{display:block;font:400 28px/1 Georgia,serif;color:var(--repton-navy)}.student-admin-stats span{display:block;margin-top:6px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.student-admin-toolbar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.student-search-form{display:flex;align-items:end;gap:10px;flex:1}.student-search-form label{display:grid;gap:6px;min-width:180px}.student-search-form label:first-child{width:min(360px,100%)}.student-search-form label>span,.form-section-label{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--repton-gold);font-weight:600}.student-search-form input,.student-search-form select{width:100%;border:1px solid #d7d2c8;background:#fff;padding:11px 12px;border-radius:0;font:400 13px/1.4 "Segoe UI",Arial,sans-serif;color:var(--ink)}.clear-student-search{align-self:center;margin-left:4px}.student-admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.student-account-list{border-top:1px solid #dcd8cf}.student-account-head,.student-account-row{display:grid;grid-template-columns:minmax(250px,1.4fr) minmax(210px,1fr) 165px 90px 75px;gap:20px;align-items:center}.student-account-head{padding:10px 16px;color:var(--repton-gold);font-size:8px;text-transform:uppercase;letter-spacing:.09em}.student-account-row{min-height:86px;padding:16px;border-bottom:1px solid #dedbd3;background:#fff}.student-account-row:hover{background:#fbfaf7}.student-account-person{display:flex;align-items:center;gap:13px;min-width:0}.student-account-person strong,.student-account-person small{display:block}.student-account-person strong{font:400 18px/1.2 Georgia,serif;color:var(--repton-navy)}.student-account-person small{color:var(--muted);font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.student-account-classes{display:flex;flex-wrap:wrap;gap:5px}.student-account-classes>span{border:1px solid #ddd8cf;padding:4px 7px;color:#706a62;font-size:8px;text-transform:uppercase;letter-spacing:.055em}.student-account-login{color:var(--muted);font-size:11px}.account-status{display:inline-block;padding:5px 7px;border:1px solid #d4d0c7;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.account-status.active{background:#edf2ee;border-color:#c2d0c5;color:#496651}.account-status.inactive{background:#f4eeee;border-color:#d9c6c4;color:#8a5955}.student-account-actions{text-align:right}.mobile-field-label{display:none}.student-list-empty{margin-top:10px}.student-edit-layout{grid-template-columns:minmax(0,760px) minmax(250px,1fr)}.student-edit-section{padding-top:20px;border-top:1px solid #e0dcd3}.student-edit-section>.form-section-label{display:block;margin-bottom:12px}.student-class-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.student-class-check{display:flex!important;align-items:flex-start;gap:10px!important;border:1px solid #ddd8cf;padding:12px!important;color:var(--ink)!important;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;font-weight:400!important;cursor:pointer}.student-class-check input{width:auto!important;margin:3px 0 0}.student-class-check strong,.student-class-check small{display:block}.student-class-check strong{font-family:Georgia,serif;font-size:15px;font-weight:400;color:var(--repton-navy)}.student-class-check small{margin-top:2px!important}.student-active-toggle{display:flex!important;align-items:flex-start;gap:12px!important;border-left:2px solid var(--repton-gold);padding:14px 16px!important;background:#f5f3ee;color:var(--ink)!important;text-transform:none!important;letter-spacing:0!important}.student-active-toggle input{width:auto!important;margin-top:4px}.student-active-toggle strong,.student-active-toggle small{display:block}.student-active-toggle small{margin-top:3px!important}.student-account-summary h3{font:400 24px/1.2 Georgia,serif;color:var(--repton-navy);margin:4px 0 17px}.student-summary-list{margin:0 0 22px}.student-summary-list>div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid #ddd8cf;font-size:11px}.student-summary-list dt{color:var(--muted)}.student-summary-list dd{margin:0;text-align:right;color:var(--repton-navy);font-weight:600}
@media(max-width:1000px){.student-admin-intro{align-items:flex-start;flex-direction:column}.student-admin-toolbar{align-items:stretch;flex-direction:column}.student-admin-actions{justify-content:flex-start}.student-account-head{display:none}.student-account-row{grid-template-columns:minmax(220px,1.5fr) 1fr 140px 80px 70px}.student-edit-layout{grid-template-columns:1fr}.student-account-summary{order:-1}}
@media(max-width:760px){.student-search-form{align-items:stretch;flex-direction:column}.student-search-form label,.student-search-form label:first-child{width:100%;min-width:0}.student-search-form .button{width:100%}.student-admin-stats{width:100%;grid-template-columns:repeat(3,1fr)}.student-account-row{grid-template-columns:1fr;gap:11px}.student-account-actions{text-align:left}.student-account-login{display:flex;gap:8px}.mobile-field-label{display:inline;color:var(--repton-gold);text-transform:uppercase;letter-spacing:.06em;font-size:8px}.student-class-checks{grid-template-columns:1fr}.student-admin-actions .button{flex:1}}

/* Beyond Repton: teacher recommendations */
.recommendation-intro{padding-top:52px;padding-bottom:52px}.recommendation-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #dedbd3;background:#fff}.recommendation-stats>div{padding:22px 24px;border-right:1px solid #dedbd3}.recommendation-stats>div:last-child{border-right:0}.recommendation-stats strong,.recommendation-stats span{display:block}.recommendation-stats strong{font:400 32px/1 Georgia,serif;color:var(--repton-navy)}.recommendation-stats span{margin-top:6px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.recommendation-layout{display:grid;grid-template-columns:minmax(0,760px) 1fr;gap:46px;align-items:start}.recommendation-form{border:1px solid #dedbd3;background:#fff;padding:30px;display:grid;gap:22px}.recommendation-field{display:grid;gap:7px}.recommendation-field>span,.recommendation-target-choice legend{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--repton-gold);font-weight:600}.recommendation-field>span small{text-transform:none;letter-spacing:0;color:var(--muted);font-weight:400;margin-left:4px}.recommendation-field select,.recommendation-field textarea{width:100%;border:1px solid #d7d2c8;background:#fff;border-radius:0;padding:13px 14px;font:400 14px/1.45 "Segoe UI",Arial,sans-serif;color:var(--ink)}.recommendation-field textarea{resize:vertical;min-height:122px}.recommendation-field>small{color:var(--muted);font-size:10px}.recommendation-target-choice{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.recommendation-target-choice legend{margin-bottom:8px}.recommendation-target-choice label{border:1px solid #dedbd3;padding:15px;display:flex;align-items:flex-start;gap:10px;cursor:pointer}.recommendation-target-choice input{margin-top:4px;accent-color:var(--repton-navy)}.recommendation-target-choice strong,.recommendation-target-choice small{display:block}.recommendation-target-choice strong{font:400 17px/1.2 Georgia,serif;color:var(--repton-navy)}.recommendation-target-choice small{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.4}.recommendation-actions{display:flex;align-items:center;gap:18px;padding-top:3px}.recommendation-help{position:sticky;top:96px;background:#f6f3ed}.recommendation-help h3{font:400 25px/1.2 Georgia,serif;color:var(--repton-navy);margin:2px 0 12px}.recommendation-help p{color:var(--muted);font-size:13px}.recommendation-help hr{border:0;border-top:1px solid #d9d3c9;margin:22px 0}.recommendation-history-wrap{background:#f6f5f1;border-top:1px solid #dedbd3}.recommendation-list{border-top:1px solid #d8d4cc}.recommendation-row{display:grid;grid-template-columns:82px minmax(0,1fr) 155px;gap:24px;align-items:start;padding:25px 0;border-bottom:1px solid #d8d4cc}.recommendation-audience{width:max-content;min-width:68px;text-align:center;padding:6px 8px;border:1px solid #cfc9be;font-size:8px;text-transform:uppercase;letter-spacing:.09em}.recommendation-audience.class{background:var(--repton-navy);border-color:var(--repton-navy);color:#fff}.recommendation-audience.student{background:#eee8dc;color:#866e4e}.recommendation-date{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--repton-gold)}.recommendation-copy h3{font:400 22px/1.18 Georgia,serif;color:var(--repton-navy);margin:4px 0 7px}.recommendation-target{font-size:12px;color:var(--muted);margin:0}.recommendation-copy blockquote{margin:14px 0 0;padding:11px 15px;border-left:2px solid var(--repton-gold);background:#fff;color:#6e6d69;font-size:12px}.recommendation-row-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.recommendation-row-actions form{margin:0}.recommendation-remove{border:0;background:transparent;padding:0;color:#9a5b58;font:600 9px/1 "Segoe UI",Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.recommendation-remove:hover{text-decoration:underline}.admin-message{padding:13px 16px;margin-bottom:20px;border-left:3px solid;font-size:13px}.admin-message.success{background:#f0f4ef;border-color:#607b66;color:#45604b}.admin-message.error{background:#f8efee;border-color:#a66b67;color:#7b4e4b}
@media(max-width:900px){.recommendation-layout{grid-template-columns:1fr}.recommendation-help{position:static}.recommendation-row{grid-template-columns:75px 1fr}.recommendation-row-actions{grid-column:2;align-items:flex-start;flex-direction:row}.recommendation-stats{grid-template-columns:1fr}.recommendation-stats>div{border-right:0;border-bottom:1px solid #dedbd3}.recommendation-stats>div:last-child{border-bottom:0}}
@media(max-width:600px){.recommendation-target-choice{grid-template-columns:1fr}.recommendation-form{padding:20px}.recommendation-actions{align-items:stretch;flex-direction:column}.recommendation-actions .button{width:100%}.recommendation-row{grid-template-columns:1fr}.recommendation-row-actions{grid-column:auto}.recommendation-audience{margin-bottom:-8px}}

/* =========================================================
   ADMINISTRATION HUB
   Append to assets/css/app.css
   ========================================================= */

.admin-hero p {
    max-width: 720px;
}

.admin-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.admin-card {
    display: flex;
    min-height: 260px;
    flex-direction: column;
    padding: 32px;
    border: 1px solid #ddd8cf;
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.admin-card:hover {
    border-color: #b18a50;
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(39, 51, 77, .06);
}

.admin-card h2 {
    margin: 18px 0 12px;
    font-size: 30px;
    font-weight: 400;
    color: #27334d;
}

.admin-card p {
    margin: 0 0 28px;
    line-height: 1.65;
}

.admin-card-link {
    margin-top: auto;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #27334d;
}

.admin-permission-note {
    margin-top: 28px;
    font-size: 13px;
    color: #77736c;
}

@media (max-width: 900px) {
    .admin-grid {
        grid-template-columns: 1fr;
    }

    .admin-card {
        min-height: 0;
    }
}
/* Multi-teacher class management */
.class-admin-subsection {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid #e7e1d8;
}

.class-admin-subhead {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.class-admin-subhead .eyebrow {
    margin: 0;
}

.class-admin-subhead strong {
    color: #27334d;
    font-weight: 500;
}

.teacher-member-list {
    margin-bottom: 6px;
}

.class-member-list .muted-copy {
    padding: 10px 0;
    margin: 0;
}

/* Refined teacher account rows
   Replace the previous teacher-account-management CSS block with this. */

.teacher-access-layout {
    align-items: start;
}

.teacher-account-manager {
    min-width: 0;
}

.teacher-security-actions {
    margin-top: 18px;
}

.teacher-status-form {
    margin-top: 18px;
}

.teacher-account-card {
    display: block;
    border: 0;
    border-bottom: 1px solid #ded8cf;
    background: transparent;
}

.teacher-account-card.is-inactive {
    opacity: .68;
}

.teacher-account-card > summary {
    list-style: none;
}

.teacher-account-card > summary::-webkit-details-marker {
    display: none;
}

.teacher-account-summary {
    display: grid;
    grid-template-columns: 34px minmax(180px, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    padding: 20px 0;
    cursor: pointer;
}

.teacher-account-summary:hover .teacher-account-edit-link span {
    color: #a47d42;
}

.teacher-account-summary .mini-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
}

.teacher-account-identity {
    display: block;
    min-width: 0;
}

.teacher-account-identity strong {
    display: flex;
    align-items: baseline;
    gap: 7px;
    color: #27334d;
    font-weight: 500;
    line-height: 1.25;
}

.teacher-account-identity > small {
    display: block;
    margin-top: 4px;
    color: #77736c;
}

.self-label {
    display: inline-block !important;
    margin: 0 !important;
    color: #a47d42;
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.teacher-account-badges {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    white-space: nowrap;
}

.teacher-account-edit-link {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

/* Searchable, collapsible class administration */

.class-search-form {
    margin: 22px 0 26px;
}

.class-list-empty {
    margin-top: 18px;
}

.class-admin-details {
    border-top: 1px solid #ded8cf;
    background: transparent;
}

.class-admin-details:last-child {
    border-bottom: 1px solid #ded8cf;
}

.class-admin-details > summary {
    list-style: none;
}

.class-admin-details > summary::-webkit-details-marker {
    display: none;
}

.class-admin-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 0;
    cursor: pointer;
}

.class-admin-head:hover h3 {
    color: #a47d42;
}

.class-admin-head h3 {
    margin: 0 0 5px;
    transition: color .2s ease;
}

.class-admin-head small {
    display: block;
}

.class-admin-toggle {
    flex: 0 0 auto;
    color: #a47d42;
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    transition: transform .2s ease;
}

.class-admin-details[open] .class-admin-toggle {
    transform: rotate(45deg);
}

.class-admin-details[open] .class-admin-head {
    padding-bottom: 18px;
}

.class-admin-details .class-admin-subsection {
    margin-top: 0;
    padding: 24px 0;
    border-top: 1px solid #e7e1d8;
}

.class-admin-details .class-admin-subsection + .class-admin-subsection {
    margin-top: 0;
}

@media (max-width: 700px) {
    .class-search-form {
        align-items: stretch;
        flex-direction: column;
    }

    .class-admin-head {
        align-items: flex-start;
    }
}

/* Class list -> dedicated membership page */

.class-admin-link {
    display: block;
    color: inherit;
    text-decoration: none;
    border-top: 1px solid #ded8cf;
    background: transparent;
}

.class-admin-link:last-child {
    border-bottom: 1px solid #ded8cf;
}

.class-admin-link .class-admin-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 0;
}

.class-admin-link:hover h3 {
    color: #a47d42;
}

.class-admin-link h3 {
    margin: 0 0 5px;
    transition: color .2s ease;
}

.class-admin-link small {
    display: block;
}

.class-admin-arrow {
    flex: 0 0 auto;
    color: #a47d42;
    font-size: 18px;
    line-height: 1;
}

.class-membership-layout {
    align-items: start;
}

.class-membership-add-form {
    margin: 22px 0 24px;
}

.class-member-search-form {
    margin: 22px 0 26px;
}

.class-teacher-list,
.class-student-list {
    border-top: 1px solid #e7e1d8;
}

.class-member-empty {
    margin-top: 18px;
}

@media (max-width: 700px) {
    .class-member-search-form {
        align-items: stretch;
        flex-direction: column;
    }

    .class-admin-link .class-admin-head {
        align-items: flex-start;
    }
}

/* =========================================================
   COMPETITIONS & AWARDS
   ========================================================= */
.competition-admin-stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #dedbd3;background:#fff}.competition-admin-stats>div{padding:24px 28px;border-right:1px solid #dedbd3}.competition-admin-stats>div:last-child{border-right:0}.competition-admin-stats strong{display:block;font:400 32px/1 Georgia,serif;color:var(--repton-navy)}.competition-admin-stats span{display:block;margin-top:7px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.09em}.competition-filterbar{display:grid;grid-template-columns:minmax(260px,1fr) 175px 210px auto auto;gap:12px;align-items:end;margin-bottom:28px;padding:20px;background:#f5f3ee;border:1px solid #e1ddd4}.competition-filterbar label{display:grid;gap:6px}.competition-filterbar label>span{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--repton-gold)}.competition-filterbar input,.competition-filterbar select,.competition-editor-layout input,.competition-editor-layout select{width:100%;border:1px solid #d7d2c8;background:#fff;padding:12px 13px;border-radius:0;font:400 14px/1.4 "Segoe UI",Arial,sans-serif;color:var(--ink)}.competition-admin-list{border-top:1px solid #dedbd3}.competition-admin-row{display:grid;grid-template-columns:78px minmax(0,1fr) 180px;gap:25px;padding:28px 0;border-bottom:1px solid #dedbd3;align-items:start}.competition-date-block{border:1px solid #d7d2c8;text-align:center;background:#fff}.competition-date-block strong,.competition-date-block span,.competition-date-block small{display:block}.competition-date-block strong{padding:6px;background:var(--repton-navy);color:#fff;font-size:8px;letter-spacing:.12em}.competition-date-block span{font:400 29px/1 Georgia,serif;color:var(--repton-navy);padding:9px 5px 2px}.competition-date-block small{padding:0 5px 8px;color:var(--muted);font-size:9px}.competition-admin-meta{color:var(--repton-gold);font-size:9px;text-transform:uppercase;letter-spacing:.09em}.competition-admin-copy h2{font:400 24px/1.2 Georgia,serif;color:var(--repton-navy);margin:5px 0 8px}.competition-admin-copy p{color:var(--muted);font-size:13px;margin:0;max-width:720px}.competition-tags .competition-status.published{background:var(--repton-navy);border-color:var(--repton-navy);color:#fff}.competition-tags .competition-status.draft{background:#f6f1e8;color:#8b7759}.competition-tags .competition-status.archived{background:#eee;color:#777}.competition-two-col{display:grid;grid-template-columns:1fr 1fr;gap:15px}.subject-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.subject-check{min-height:43px}.competition-status-field{min-width:240px}.competition-publish-section{align-items:flex-end}.competition-framework-card h3{font:400 25px/1.2 Georgia,serif;color:var(--repton-navy);margin:5px 0 12px}.competition-framework-card>p{color:var(--muted);font-size:13px}.competition-framework-card strong{color:var(--repton-navy)}
@media(max-width:1000px){.competition-filterbar{grid-template-columns:1fr 1fr}.competition-search{grid-column:1/-1}.competition-admin-row{grid-template-columns:72px 1fr}.competition-admin-row .activity-admin-actions{grid-column:2;flex-direction:row;align-items:center}.competition-admin-stats{grid-template-columns:repeat(2,1fr)}.competition-admin-stats>div:nth-child(2){border-right:0}.competition-admin-stats>div:nth-child(-n+2){border-bottom:1px solid #dedbd3}.subject-check-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.competition-filterbar{grid-template-columns:1fr}.competition-search{grid-column:auto}.competition-admin-row{grid-template-columns:1fr}.competition-date-block{width:74px}.competition-admin-row .activity-admin-actions{grid-column:auto;justify-self:start}.competition-admin-stats{grid-template-columns:1fr}.competition-admin-stats>div{border-right:0!important;border-bottom:1px solid #dedbd3}.competition-admin-stats>div:last-child{border-bottom:0}.competition-two-col,.subject-check-grid{grid-template-columns:1fr}.competition-publish-section{align-items:flex-start}.competition-status-field{width:100%;min-width:0}}

/* Student enjoyment ratings + interest profile */
.enjoyment-rating{border:0;padding:0;margin:27px 0 4px}.enjoyment-rating legend{font-weight:700;font-size:13px;color:var(--repton-navy);margin-bottom:5px}.enjoyment-rating>p{margin:0 0 13px;color:var(--muted);font-size:11px;max-width:650px}.rating-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.rating-options label{position:relative;cursor:pointer}.rating-options input{position:absolute;opacity:0;pointer-events:none}.rating-options span{min-height:72px;border:1px solid #d7d2c8;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:9px 6px;transition:border-color .15s ease,background .15s ease,transform .15s ease}.rating-options strong{font:400 24px/1 Georgia,serif;color:var(--repton-navy)}.rating-options small{font-size:8px;line-height:1.25;color:var(--muted);margin-top:5px}.rating-options input:checked+span{border-color:var(--repton-gold);background:#f5f1e8;box-shadow:inset 0 -3px 0 var(--repton-gold)}.rating-options label:hover span{border-color:#b7aa91}.rating-options input:focus-visible+span{outline:2px solid var(--repton-navy);outline-offset:2px}.journey-entry-statuses{display:flex;align-items:flex-end;gap:6px;flex-direction:column}.interest-rating-badge{font-size:9px;font-weight:750;color:#7b6847;border:1px solid #d8ccb8;padding:5px 8px;white-space:nowrap;background:#faf7f0}.teacher-rating-note{display:flex;align-items:center;gap:10px;margin-top:13px;padding:9px 11px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.teacher-rating-note strong{font:400 18px/1 Georgia,serif;color:var(--repton-navy)}.teacher-rating-note span{font-size:9px;color:var(--muted)}.interest-empty{border:1px solid var(--line);background:#faf9f6;padding:14px;margin-top:8px}.interest-empty strong{font-size:11px;color:var(--repton-navy)}.interest-empty p{font-size:10px;color:var(--muted);line-height:1.5;margin:4px 0 0}
@media(max-width:700px){.rating-options{grid-template-columns:1fr}.rating-options span{min-height:0;flex-direction:row;justify-content:flex-start;gap:10px;padding:12px}.rating-options strong{font-size:20px}.rating-options small{margin:0;font-size:10px}.journey-entry-statuses{align-items:flex-start}}

/* Beyond Repton: private teacher notes on student journey */
.teacher-note-message{margin:-14px 0 28px}
.teacher-note-block{margin-top:16px;padding:16px 18px;background:#f1ede4;border-left:0}
.teacher-note-block>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.teacher-note-block>div span{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6f5b37}
.teacher-note-block>div small{font-size:9px;color:#8a8172;text-transform:none;letter-spacing:0;font-weight:400}
.teacher-note-block p{margin:9px 0 8px;font-size:12px;line-height:1.55;color:#655f55}
.teacher-note-edit{border:0;background:transparent;padding:0;color:#6f5b37;font:600 10px/1.3 "Segoe UI",Arial,sans-serif;cursor:pointer}
.teacher-note-edit:hover{text-decoration:underline}
.add-note-button.has-note{margin-top:9px;color:#8a7653;font-weight:600}
.teacher-note-form{margin-top:15px;padding:18px;border:1px solid #ddd8cf;background:#faf9f6}
.teacher-note-form[hidden]{display:none}
.teacher-note-form label{display:block;margin-bottom:8px;color:#6f5b37;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.teacher-note-form label small{margin-left:8px;color:#8a8172;font-size:9px;font-weight:400;letter-spacing:0;text-transform:none}
.teacher-note-form textarea{display:block;width:100%;min-height:105px;resize:vertical;box-sizing:border-box;border:1px solid #d7d2c8;border-radius:0;background:#fff;padding:13px 14px;color:var(--ink);font:400 13px/1.55 "Segoe UI",Arial,sans-serif}
.teacher-note-form textarea:focus{outline:1px solid var(--repton-gold);outline-offset:0;border-color:var(--repton-gold)}
.teacher-note-form-actions{display:flex;gap:9px;margin-top:11px}
.teacher-note-form-actions .button{min-width:110px}
.teacher-note-unavailable{margin:14px 0 0;color:#9a5b58;font-size:10px}
@media(max-width:600px){.teacher-note-form-actions{flex-direction:column}.teacher-note-form-actions .button{width:100%}}


/* Teacher dashboard empty class state */
.student-table-card.is-empty {
    background: #faf9f6;
}

.dashboard-empty-row {
    min-height: 150px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 30px 34px;
}

.dashboard-empty-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1px solid #d8d1c5;
    color: var(--repton-gold);
    background: #fff;
    font: 400 22px/1 Georgia, serif;
}

.dashboard-empty-copy strong {
    display: block;
    margin-bottom: 6px;
    color: var(--repton-navy);
    font: 400 21px/1.2 Georgia, serif;
}

.dashboard-empty-copy span {
    display: block;
    max-width: 620px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}

.dashboard-empty-action {
    color: var(--repton-gold);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
}

.dashboard-empty-action:hover {
    text-decoration: underline;
}

@media (max-width: 720px) {
    .dashboard-empty-row {
        grid-template-columns: 40px minmax(0, 1fr);
        padding: 24px 20px;
    }

    .dashboard-empty-action {
        grid-column: 1 / -1;
        margin-left: 58px;
        white-space: normal;
    }
}


/* Teacher dashboard — Recent discoveries */
.teacher-activity-panel {
    overflow: hidden;
}

.teacher-activity-panel .section-heading {
    margin-bottom: 8px;
}

.teacher-discovery-list {
    display: grid;
}

.teacher-discovery-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 22px;
    gap: 14px;
    align-items: start;
    padding: 18px 0;
    border-top: 1px solid var(--line);
    color: var(--ink);
    text-decoration: none;
    transition: background .15s ease, padding .15s ease, margin .15s ease;
}

.teacher-discovery-item:first-child {
    border-top: 0;
}

.teacher-discovery-item:hover {
    margin-left: -12px;
    margin-right: -12px;
    padding-left: 12px;
    padding-right: 12px;
    background: #fbfaf7;
}

.teacher-discovery-copy {
    display: block;
    min-width: 0;
}

.teacher-discovery-topline {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: baseline;
    margin-bottom: 7px;
}

.teacher-discovery-topline strong {
    color: var(--repton-navy);
    font-size: 12px;
    font-weight: 650;
}

.teacher-discovery-topline small {
    flex: none;
    color: var(--muted);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.teacher-discovery-activity {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.teacher-discovery-activity b {
    min-width: 0;
    color: var(--repton-navy);
    font: 400 18px/1.25 Georgia, "Times New Roman", serif;
}

.discovery-status {
    flex: none;
    display: inline-block;
    padding: 4px 7px;
    border: 1px solid #d8d2c7;
    background: #fff;
    color: var(--muted);
    font-size: 8px;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.discovery-status.completed {
    background: #f2eee5;
    border-color: #e4dccd;
    color: #9b743b;
}

.discovery-status.started {
    background: #f4f7f5;
    border-color: #d6e0da;
    color: #557162;
}

.teacher-discovery-meta {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.4;
}

.teacher-discovery-reflection {
    display: block;
    margin-top: 11px;
    padding: 10px 12px;
    border-left: 2px solid var(--repton-gold);
    background: #f5f3ee;
    color: #626064;
    font: italic 12px/1.55 Georgia, "Times New Roman", serif;
}

.teacher-discovery-arrow {
    align-self: center;
    color: var(--repton-gold);
    font-size: 15px;
    transition: transform .15s ease;
}

.teacher-discovery-item:hover .teacher-discovery-arrow {
    transform: translateX(3px);
}

@media (max-width: 700px) {
    .teacher-discovery-item {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 11px;
    }

    .teacher-discovery-arrow {
        display: none;
    }

    .teacher-discovery-topline {
        display: block;
    }

    .teacher-discovery-topline small {
        display: block;
        margin-top: 2px;
    }

    .teacher-discovery-activity {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .teacher-discovery-activity b {
        flex-basis: 100%;
    }
}

/* Teacher header profile link */
.profile-main-link{
    display:flex;
    align-items:center;
    gap:9px;
    color:inherit;
    text-decoration:none;
    min-width:0;
}
.profile-main-link .avatar{
    transition:background .18s ease,color .18s ease,transform .18s ease;
}
.profile-main-link .profile-name{
    transition:color .18s ease;
}
.profile-main-link:hover .profile-name,
.profile-main-link:focus-visible .profile-name{
    color:var(--repton-gold);
}
.profile-main-link:hover .avatar,
.profile-main-link:focus-visible .avatar{
    background:#252d42;
    transform:translateY(-1px);
}
.profile-main-link:focus-visible{
    outline:1px solid var(--repton-gold);
    outline-offset:5px;
}

/* Teacher self-service profile */
.teacher-profile-layout{
    display:grid;
    grid-template-columns:minmax(0,760px) minmax(260px,1fr);
    gap:30px;
    align-items:start;
}
.teacher-profile-main{
    display:grid;
    gap:28px;
}
.teacher-profile-card{
    padding:34px 36px;
}
.teacher-profile-card .section-heading{
    margin-bottom:24px;
}
.teacher-profile-side{
    position:sticky;
    top:106px;
}
.teacher-profile-summary{
    padding:30px;
}
.teacher-profile-summary hr{
    border:0;
    border-top:1px solid #ded8cf;
    margin:24px 0;
}
.teacher-profile-preview{
    display:flex;
    align-items:center;
    gap:14px;
    margin:14px 0 18px;
    padding:18px 0;
    border-top:1px solid #ded8cf;
    border-bottom:1px solid #ded8cf;
}
.teacher-profile-preview .avatar{
    width:44px;
    height:44px;
    flex:0 0 44px;
}
.teacher-profile-preview strong,
.teacher-profile-preview small{
    display:block;
}
.teacher-profile-preview strong{
    color:var(--repton-navy);
    font:400 20px/1.2 Georgia,"Times New Roman",serif;
}
.teacher-profile-preview small{
    margin-top:4px;
    color:var(--repton-gold);
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.09em;
}
.teacher-profile-email{
    overflow-wrap:anywhere;
}
.admin-form input[readonly]{
    background:#f5f3ee;
    color:#77736c;
    cursor:not-allowed;
}
@media(max-width:900px){
    .teacher-profile-layout{
        grid-template-columns:1fr;
    }
    .teacher-profile-side{
        position:static;
        order:-1;
    }
}
@media(max-width:600px){
    .teacher-profile-card{
        padding:24px 20px;
    }
}

/* Student dashboard — teacher recommendations */
.student-teacher-recommendations{
    position:relative;
}

.student-teacher-recommendations .section-heading{
    margin-bottom:0;
}

.recommendation-count{
    color:var(--repton-gold);
    font-size:9px;
    font-weight:600;
    letter-spacing:.09em;
    text-transform:uppercase;
    white-space:nowrap;
}

.student-recommendation-stack{
    display:grid;
    gap:14px;
    border-top:1px solid #ded8cf;
}

.student-recommendation-card{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    gap:20px;
    align-items:start;
    background: #fbf9f4;
    border: 1px solid #c9b28a;
    padding: 26px 30px;
}

.student-recommendation-card.featured{
    position:relative;
}

.student-recommendation-card.featured:before{
    content:"";
    position:absolute;
    left:-18px;
    top:25px;
    bottom:25px;
    width:2px;
    background:var(--repton-gold);
}

.student-recommendation-mark{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border:1px solid #d7d0c4;
    background:#f5f2eb;
    color:var(--repton-gold);
    font-size:15px;
    line-height:1;
}

.student-recommendation-copy{
    min-width:0;
}

.student-recommendation-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px 14px;
    margin-bottom:7px;
    color:var(--muted);
    font-size:10px;
}

.student-recommendation-meta span{
    position:relative;
}

.student-recommendation-meta span + span:before{
    content:"";
    position:absolute;
    left:-8px;
    top:50%;
    width:2px;
    height:2px;
    border-radius:50%;
    background:#b9b2a6;
    transform:translateY(-50%);
}

.student-recommendation-card h3{
    margin:0 0 13px;
    color:var(--repton-navy);
    font:400 24px/1.2 Georgia,"Times New Roman",serif;
}

.student-recommendation-card .tag-row{
    margin-bottom:13px;
}

.student-recommendation-card .student-recommendation-copy > p{
    max-width:760px;
    margin:13px 0 0;
    color:var(--muted);
    font-size:13px;
    line-height:1.65;
}

.student-recommendation-note{
    max-width:760px;
    margin-top:15px;
    padding:13px 15px;
    border-left:2px solid var(--repton-gold);
    background:#f5f3ee;
}

.student-recommendation-note > span{
    display:block;
    margin-bottom:5px;
    color:var(--repton-gold);
    font-size:8px;
    font-weight:650;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.student-recommendation-note p{
    margin:0;
    color:#626064;
    font:italic 13px/1.55 Georgia,"Times New Roman",serif;
}

.student-recommendation-action{
    min-width:176px;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:9px;
    padding-top:2px;
}

.student-recommendation-action .button{
    min-width:176px;
    white-space:nowrap;
}

.student-recommendation-action small{
    color:var(--muted);
    font-size:9px;
    letter-spacing:.06em;
    text-transform:uppercase;
}

@media(max-width:760px){
    .student-recommendation-card{
        grid-template-columns:38px minmax(0,1fr);
        gap:14px;
    }

    .student-recommendation-card.featured:before{
        display:none;
    }

    .student-recommendation-action{
        grid-column:2;
        min-width:0;
        align-items:flex-start;
    }

    .student-recommendation-action .button{
        width:100%;
        min-width:0;
    }

    .student-recommendation-meta span + span:before{
        display:none;
    }

    .student-recommendation-meta{
        display:grid;
        gap:2px;
    }
}

/* Student dashboard — My teachers */
.student-teacher-directory{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.student-teacher-directory-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    padding:24px;
    border:1px solid #ded8cf;
    background:#fff;
}

.student-teacher-directory-head{
    display:flex;
    align-items:center;
    gap:14px;
}

.student-teacher-directory-head .avatar{
    width:42px;
    height:42px;
    flex:0 0 42px;
}

.student-teacher-directory-head h3{
    margin:0;
    color:var(--repton-navy);
    font:400 21px/1.2 Georgia,"Times New Roman",serif;
}

.student-teacher-directory-head p{
    margin:4px 0 0;
    color:var(--repton-gold);
    font-size:9px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.student-teacher-class-list{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:18px;
}

.student-teacher-class-list span{
    padding:5px 7px;
    border:1px solid #ddd8cf;
    color:#77736c;
    font-size:8px;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.student-teacher-contact{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-top:auto;
    padding-top:20px;
}

.student-teacher-contact > span{
    min-width:0;
    overflow-wrap:anywhere;
    color:var(--muted);
    font-size:11px;
}

.student-teacher-contact .button{
    flex:none;
}

@media(max-width:800px){
    .student-teacher-directory{
        grid-template-columns:1fr;
    }
}

@media(max-width:520px){
    .student-teacher-contact{
        align-items:stretch;
        flex-direction:column;
    }

    .student-teacher-contact .button{
        width:100%;
    }
}


/* =========================================================
   STUDENT DASHBOARD — main content + sticky teaching team
   ========================================================= */

.student-dashboard-body{
    display:grid;
    grid-template-columns:minmax(0,1fr) 292px;
    gap:34px;
    align-items:start;
    padding-top:68px;
}

.student-dashboard-main{
    min-width:0;
}

.student-dashboard-section{
    padding-top:0;
    margin-bottom:64px;
}

.student-dashboard-section:last-child{
    margin-bottom:0;
}

.student-dashboard-support{
    min-width:0;
    align-self:stretch;
}

/* The aside must stretch to the full grid-row height so the sticky panel
   has vertical space to travel while the main dashboard column scrolls. */
.student-teacher-rail{
    position:sticky;
    top:106px;
    border:1px solid #d8d1c5;
    background:linear-gradient(180deg,#f8f5ee 0%,#f4f1ea 100%);
    padding:26px 24px;
}

.student-teacher-rail-heading{
    padding-bottom:18px;
    border-bottom:1px solid #d8d1c5;
}

.student-teacher-rail-heading .eyebrow{
    margin-bottom:8px;
}

.student-teacher-rail-heading h2{
    margin:0;
    color:var(--repton-navy);
    font:400 28px/1.1 Georgia,"Times New Roman",serif;
}

.student-teacher-rail-heading p{
    margin:10px 0 0;
    color:var(--muted);
    font-size:11px;
    line-height:1.6;
}

.student-dashboard-support .student-teacher-directory{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
}

.student-dashboard-support .student-teacher-directory-card{
    padding:20px 0;
    border:0;
    border-bottom:1px solid #d8d1c5;
    background:transparent;
}

.student-dashboard-support .student-teacher-directory-card:last-child{
    border-bottom:0;
    padding-bottom:0;
}

.student-dashboard-support .student-teacher-directory-head{
    align-items:flex-start;
    gap:12px;
}

.student-dashboard-support .student-teacher-directory-head .avatar{
    width:38px;
    height:38px;
    flex:0 0 38px;
}

.student-dashboard-support .student-teacher-directory-head h3{
    font-size:19px;
}

.student-dashboard-support .student-teacher-directory-head p{
    margin-top:3px;
    font-size:8px;
}

.student-dashboard-support .student-teacher-class-list{
    gap:5px;
    margin:13px 0 0 50px;
}

.student-dashboard-support .student-teacher-class-list span{
    background:rgba(255,255,255,.58);
    border-color:#d6cec0;
}

.student-dashboard-support .student-teacher-contact{
    display:block;
    margin:14px 0 0 50px;
    padding-top:0;
}

.student-dashboard-support .student-teacher-contact > span{
    display:block;
    margin-bottom:7px;
    font-size:10px;
}

.student-dashboard-support .student-teacher-contact .text-link{
    display:inline-block;
}

.student-dashboard-suggestions{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.student-dashboard-suggestions .activity-card{
    min-height:290px;
}

.student-current-card{
    background:linear-gradient(90deg,#fff 0%,#fbfaf7 100%);
}

.student-current-card .featured-copy small{
    color:var(--repton-teal);
    font-weight:600;
}

.student-current-card:before{
    background:var(--repton-teal);
}

.student-teacher-recommendations .student-recommendation-card{
    box-shadow:0 12px 30px rgba(48,57,80,.045);
}

.student-dashboard-body + .section-space{
    padding-top:68px;
}

@media(max-width:1050px){
    .student-dashboard-body{
        grid-template-columns:minmax(0,1fr) 260px;
        gap:26px;
    }

    .student-recommendation-card{
        grid-template-columns:38px minmax(0,1fr);
    }

    .student-recommendation-action{
        grid-column:2;
        align-items:flex-start;
    }
}

@media(max-width:900px){
    .student-dashboard-body{
        grid-template-columns:1fr;
    }

    .student-dashboard-support{
        order:2;
    }

    .student-teacher-rail{
        position:static;
    }

    .student-dashboard-support .student-teacher-directory{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:16px;
        margin-top:18px;
    }

    .student-dashboard-support .student-teacher-directory-card{
        padding:20px;
        border:1px solid #d8d1c5;
        background:rgba(255,255,255,.55);
    }

    .student-dashboard-support .student-teacher-class-list,
    .student-dashboard-support .student-teacher-contact{
        margin-left:0;
    }
}

@media(max-width:650px){
    .student-dashboard-suggestions,
    .student-dashboard-support .student-teacher-directory{
        grid-template-columns:1fr;
    }

    .student-dashboard-section{
        margin-bottom:46px;
    }

    .student-dashboard-body{
        padding-top:48px;
    }

    .student-teacher-rail{
        padding:22px 20px;
    }
}

.student-teacher-contact-actions{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
}

.student-teacher-contact-actions .text-link{
    margin:0;
}


/* =========================================================
   REFERENCE & APPLICATION SUMMARY — prototype
   ========================================================= */

.reference-summary-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    gap:34px;
    align-items:start;
}

.reference-summary-main{
    min-width:0;
}

.reference-demo-banner{
    margin-bottom:38px;
    padding:22px 24px;
    border-left:3px solid var(--repton-gold);
    background:#f7f4ed;
}

.reference-demo-banner strong{
    display:block;
    color:var(--repton-navy);
    font:400 20px/1.35 Georgia,"Times New Roman",serif;
}

.reference-demo-banner p{
    margin:8px 0 0;
    color:var(--muted);
    font-size:12px;
    line-height:1.65;
}

.reference-summary-section{
    margin-top:46px;
}

.reference-summary-section:first-of-type{
    margin-top:0;
}

.reference-summary-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    border:1px solid #d8d1c5;
    background:#fff;
}

.reference-summary-stats > div{
    padding:22px 18px;
    border-right:1px solid #d8d1c5;
}

.reference-summary-stats > div:last-child{
    border-right:0;
}

.reference-summary-stats strong{
    display:block;
    color:var(--repton-navy);
    font:400 30px/1 Georgia,"Times New Roman",serif;
}

.reference-summary-stats span{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:9px;
    line-height:1.4;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.reference-topic-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.reference-topic-grid article{
    padding:18px 20px;
    border:1px solid #ddd8cf;
    background:#fff;
}

.reference-topic-grid strong,
.reference-topic-grid span{
    display:block;
}

.reference-topic-grid strong{
    color:var(--repton-navy);
    font:400 19px/1.2 Georgia,"Times New Roman",serif;
}

.reference-topic-grid span{
    margin-top:5px;
    color:var(--repton-gold);
    font-size:9px;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.reference-evidence-list{
    border-top:1px solid #d8d1c5;
}

.reference-evidence-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:20px;
    align-items:center;
    padding:20px 0;
    border-bottom:1px solid #d8d1c5;
}

.reference-evidence-row span{
    color:var(--repton-gold);
    font-size:9px;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.reference-evidence-row h3{
    margin:5px 0 4px;
    color:var(--repton-navy);
    font:400 21px/1.2 Georgia,"Times New Roman",serif;
}

.reference-evidence-row p{
    margin:0;
    color:var(--muted);
    font-size:11px;
}

.reference-interest-list{
    border:1px solid #d8d1c5;
    background:#fff;
}

.reference-interest-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:20px;
    align-items:center;
    padding:18px 20px;
    border-bottom:1px solid #d8d1c5;
}

.reference-interest-row:last-child{
    border-bottom:0;
}

.reference-interest-row > div:first-child strong,
.reference-interest-row > div:first-child span{
    display:block;
}

.reference-interest-row > div:first-child strong{
    color:var(--repton-navy);
    font:400 19px/1.2 Georgia,"Times New Roman",serif;
}

.reference-interest-row > div:first-child span{
    margin-top:5px;
    color:var(--muted);
    font-size:10px;
}

.reference-interest-score{
    text-align:right;
}

.reference-interest-score strong,
.reference-interest-score span{
    display:block;
}

.reference-interest-score strong{
    color:var(--repton-gold);
    font:400 25px/1 Georgia,"Times New Roman",serif;
}

.reference-interest-score span{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.reference-use-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}

.reference-use-grid article{
    padding:22px;
    border:1px solid #ddd8cf;
    background:#fbfaf7;
}

.reference-use-grid article > span{
    color:var(--repton-gold);
    font:400 22px/1 Georgia,"Times New Roman",serif;
}

.reference-use-grid h3{
    margin:12px 0 7px;
    color:var(--repton-navy);
    font:400 19px/1.2 Georgia,"Times New Roman",serif;
}

.reference-use-grid p{
    margin:0;
    color:var(--muted);
    font-size:11px;
    line-height:1.6;
}

.reference-summary-side{
    min-width:0;
    align-self:stretch;
}

.reference-summary-sticky{
    position:sticky;
    top:106px;
    padding:28px;
    border:1px solid #d8d1c5;
    background:linear-gradient(180deg,#f8f5ee 0%,#f4f1ea 100%);
}

.reference-summary-sticky h2{
    margin:0;
    color:var(--repton-navy);
    font:400 28px/1.15 Georgia,"Times New Roman",serif;
}

.reference-summary-sticky p{
    color:var(--muted);
    font-size:12px;
    line-height:1.65;
}

.reference-summary-sticky hr{
    border:0;
    border-top:1px solid #d8d1c5;
    margin:24px 0;
}

.reference-summary-sticky .button{
    margin-top:18px;
}

@media(max-width:980px){
    .reference-summary-layout{
        grid-template-columns:1fr;
    }

    .reference-summary-side{
        order:-1;
    }

    .reference-summary-sticky{
        position:static;
    }

    .reference-summary-stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .reference-summary-stats > div:nth-child(2){
        border-right:0;
    }

    .reference-summary-stats > div:nth-child(-n+2){
        border-bottom:1px solid #d8d1c5;
    }
}

@media(max-width:700px){
    .reference-topic-grid,
    .reference-use-grid{
        grid-template-columns:1fr;
    }

    .reference-evidence-row{
        grid-template-columns:1fr;
    }
}

@media(max-width:520px){
    .reference-summary-stats{
        grid-template-columns:1fr;
    }

    .reference-summary-stats > div{
        border-right:0;
        border-bottom:1px solid #d8d1c5;
    }

    .reference-summary-stats > div:last-child{
        border-bottom:0;
    }

    .reference-interest-row{
        grid-template-columns:1fr;
    }

    .reference-interest-score{
        text-align:left;
    }
}

/* =========================================================
   STUDENT ACTIVITY EVIDENCE
   Append to assets/css/app.css
   ========================================================= */

.activity-evidence-panel{
    margin-top:21px;
}

.activity-evidence-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:20px;
}

.activity-evidence-heading h2{
    margin:0;
    color:var(--repton-navy);
    font:400 27px/1.2 Georgia,"Times New Roman",serif;
}

.activity-evidence-heading p{
    max-width:650px;
    margin:8px 0 0;
    color:var(--muted);
    font-size:12px;
    line-height:1.6;
}

.activity-evidence-list,
.teacher-evidence-list{
    display:grid;
    gap:10px;
    margin-bottom:18px;
}

.activity-evidence-item{
    display:grid;
    grid-template-columns:36px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding:12px 13px;
    border:1px solid var(--line);
    background:#fff;
}

.activity-evidence-icon{
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    background:var(--repton-ivory);
    color:var(--repton-gold);
    font-weight:700;
}

.activity-evidence-copy{
    min-width:0;
}

.activity-evidence-copy small,
.activity-evidence-copy strong{
    display:block;
}

.activity-evidence-copy small{
    color:var(--muted);
    font-size:9px;
}

.activity-evidence-copy strong{
    margin-top:2px;
    overflow-wrap:anywhere;
    color:var(--repton-navy);
    font-size:11px;
    font-weight:600;
}

.activity-evidence-actions{
    display:flex;
    align-items:center;
    gap:12px;
}

.activity-evidence-actions form{
    margin:0;
}

.evidence-remove-link{
    border:0;
    background:transparent;
    padding:0;
    color:#9a5b58;
    font:600 9px/1 "Segoe UI",Arial,sans-serif;
    letter-spacing:.07em;
    text-transform:uppercase;
    cursor:pointer;
}

.evidence-remove-link:hover{
    text-decoration:underline;
}

.activity-evidence-upload{
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid var(--line);
}

.activity-evidence-upload > label{
    display:block;
    margin-bottom:8px;
    color:var(--repton-gold);
    font-size:9px;
    font-weight:600;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.activity-evidence-upload-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
}

.activity-evidence-upload input[type="file"]{
    width:100%;
    border:1px solid #d7d2c8;
    background:#fff;
    padding:10px 12px;
    color:var(--ink);
    font:400 12px/1.4 "Segoe UI",Arial,sans-serif;
}

.activity-evidence-upload > small{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:9px;
}

.teacher-evidence-list{
    margin-top:14px;
    margin-bottom:0;
}

.teacher-evidence-private{
    margin-top:14px;
    padding:12px 14px;
    border:1px solid var(--line);
    background:#faf9f6;
}

.teacher-evidence-private span,
.teacher-evidence-private strong,
.teacher-evidence-private small{
    display:block;
}

.teacher-evidence-private span{
    color:var(--repton-gold);
    font-size:8px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.teacher-evidence-private strong{
    margin-top:3px;
    color:var(--repton-navy);
    font-size:11px;
}

.teacher-evidence-private small{
    margin-top:3px;
    color:var(--muted);
    font-size:9px;
}

@media(max-width:650px){
    .activity-evidence-heading{
        display:block;
    }

    .activity-evidence-heading .quiet-meta{
        display:block;
        margin-top:8px;
    }

    .activity-evidence-item{
        grid-template-columns:32px minmax(0,1fr);
    }

    .activity-evidence-actions{
        grid-column:2;
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }

    .activity-evidence-upload-row{
        grid-template-columns:1fr;
    }

    .activity-evidence-upload-row .button{
        width:100%;
    }
}

/* Student dashboard — automatic personalised recommendations */
.personalised-activity-card{
    position:relative;
    overflow:hidden;
}
.personalised-activity-card.interest{
    border-top:2px solid var(--repton-gold);
}
.personalised-activity-card.discovery{
    border-top:2px solid var(--repton-teal);
}
.personalised-reason{
    min-height:27px;
    margin:-25px -25px 19px;
    padding:8px 12px;
    border-bottom:1px solid #e5e1d7;
    background:#f7f4ed;
}
.personalised-activity-card.discovery .personalised-reason{
    background:#f1f7f6;
}
.personalised-reason span{
    display:block;
    color:var(--repton-gold);
    font-size:8px;
    font-weight:650;
    letter-spacing:.08em;
    line-height:1.35;
    text-transform:uppercase;
}
.personalised-activity-card.discovery .personalised-reason span{
    color:#3e8582;
}
@media(max-width:650px){
    .personalised-reason{
        margin:-25px -25px 17px;
    }
}


/* =========================================================
   DEVELOPER DASHBOARD + READ-ONLY STUDENT PREVIEW
   ========================================================= */
.developer-mode .soft-section{background:linear-gradient(90deg,#f1f0eb,#f7f6f2)}
.developer-intro{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:70px;align-items:center}
.developer-summary{grid-template-columns:repeat(3,1fr)}
.developer-status-copy{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.developer-metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid #d8d1c5;background:#fff}
.developer-metric{min-width:0;padding:22px 18px;border-right:1px solid #d8d1c5}
.developer-metric:last-child{border-right:0}.developer-metric span,.developer-metric strong,.developer-metric small{display:block}
.developer-metric span{color:var(--repton-gold);font-size:8px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.developer-metric strong{margin-top:8px;color:var(--repton-navy);font:400 30px/1 Georgia,"Times New Roman",serif}
.developer-metric small{margin-top:6px;color:var(--muted);font-size:9px;line-height:1.35}
.developer-dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:start}
.developer-lower-grid{grid-template-columns:.82fr 1.18fr}.developer-panel{min-width:0}
.developer-event-list{border-top:1px solid #ded8cf}.developer-event-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:12px;align-items:start;padding:15px 0;border-bottom:1px solid #ded8cf}
.developer-event-mark{color:var(--repton-gold)}.developer-event-row strong,.developer-event-row span{display:block}.developer-event-row strong{color:var(--repton-navy);font-size:11px}.developer-event-row span{margin-top:3px;color:var(--muted);font-size:11px}.developer-event-row time{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.developer-check-list{border-top:1px solid #ded8cf}.developer-check-list>a,.developer-check-list>div{display:flex;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid #ded8cf;color:inherit;text-decoration:none}.developer-check-list>a:hover small{color:var(--repton-gold)}.developer-check-list span{color:var(--repton-navy);font-size:11px}.developer-check-list span strong{font:400 19px/1 Georgia,serif}.developer-check-list small{color:var(--muted);font-size:9px;text-align:right}
.developer-system-list{border-top:1px solid #ded8cf}.developer-system-list>div{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #ded8cf;font-size:10px}.developer-system-list strong{font-weight:600}.system-dot{width:6px;height:6px;border-radius:50%;background:#b8b1a5}.system-dot.ok{background:#5f7e68}.developer-system-note{margin:18px 0 0;color:var(--muted);font-size:10px;line-height:1.6}
.developer-tool-actions{display:grid;gap:10px}.developer-tool-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:13px;align-items:center;padding:15px;border:1px solid #ddd8cf;background:#fff;color:inherit;text-decoration:none;transition:.15s ease}.developer-tool-card:hover{border-color:#bda77f;background:#fbfaf7}.developer-tool-icon{width:34px;height:34px;display:grid;place-items:center;background:var(--repton-navy);color:#fff;font:400 16px/1 Georgia,serif}.developer-tool-card strong,.developer-tool-card small{display:block}.developer-tool-card strong{color:var(--repton-navy);font-size:11px}.developer-tool-card small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.45}.developer-tool-card>b{color:var(--repton-gold);font-size:14px}.developer-tool-card.is-disabled{opacity:.55}
.developer-privacy-banner{display:grid;grid-template-columns:52px minmax(0,1fr);gap:20px;padding:28px 30px;border:1px solid #d8d1c5;background:#f7f4ed}.developer-privacy-mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid #d8d1c5;background:#fff;color:var(--repton-gold);font-size:18px}.developer-privacy-banner h2{margin:2px 0 6px;color:var(--repton-navy);font:400 25px/1.2 Georgia,serif}.developer-privacy-banner p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.developer-preview-bar{background:var(--repton-navy);color:#fff;border-bottom:1px solid #232c41}.developer-preview-bar .shell{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:10px}.developer-preview-bar strong{color:#d8bd8e}.developer-preview-bar a{color:#d8bd8e;text-decoration:none;text-transform:uppercase;letter-spacing:.06em;font-size:8px;font-weight:600}.student-preview-bar{background:#263248}.developer-student-preview .site-header{position:sticky;top:0}.developer-student-preview .developer-preview-bar{position:sticky;top:82px;z-index:45}
.developer-preview-safety{border:1px solid #d8d1c5;background:rgba(255,255,255,.7);padding:22px 24px}.developer-preview-safety strong,.developer-preview-safety span{display:block}.developer-preview-safety strong{color:var(--repton-gold);font:400 26px/1 Georgia,serif}.developer-preview-safety span{margin-top:7px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.developer-student-search{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:12px;align-items:end;margin-bottom:20px;padding:20px;border:1px solid #e1ddd4;background:#f5f3ee}.developer-student-search label{display:grid;gap:6px}.developer-student-search label>span{color:var(--repton-gold);font-size:9px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.developer-student-search input{width:100%;border:1px solid #d7d2c8;background:#fff;padding:12px 13px;border-radius:0;font:400 13px/1.4 "Segoe UI",Arial,sans-serif;color:var(--ink)}
.developer-preview-note{display:grid;grid-template-columns:44px minmax(0,1fr);gap:15px;align-items:start;margin-bottom:24px;padding:18px 20px;border-left:2px solid var(--repton-gold);background:#faf8f3}.developer-preview-note .developer-privacy-mark{width:36px;height:36px}.developer-preview-note strong{display:block;color:var(--repton-navy);font-size:11px}.developer-preview-note p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.55}
.developer-student-preview-list{border-top:1px solid #ded8cf}.developer-student-preview-row{display:grid;grid-template-columns:minmax(260px,1fr) 210px auto;gap:24px;align-items:center;padding:18px 0;border-bottom:1px solid #ded8cf}.developer-student-preview-identity{display:flex;align-items:center;gap:12px;min-width:0}.developer-student-preview-identity strong,.developer-student-preview-identity small{display:block}.developer-student-preview-identity strong{color:var(--repton-navy);font:400 18px/1.2 Georgia,serif}.developer-student-preview-identity small{margin-top:3px;color:var(--muted);font-size:9px}.developer-student-preview-metrics{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid #ded8cf}.developer-student-preview-metrics>span{padding:3px 15px;border-right:1px solid #ded8cf}.developer-student-preview-metrics strong,.developer-student-preview-metrics small{display:block}.developer-student-preview-metrics strong{color:var(--repton-navy);font:400 20px/1 Georgia,serif}.developer-student-preview-metrics small{margin-top:4px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:1050px){.developer-intro{grid-template-columns:1fr}.developer-summary{max-width:520px}.developer-metric-grid{grid-template-columns:repeat(3,1fr)}.developer-metric:nth-child(3){border-right:0}.developer-metric:nth-child(-n+3){border-bottom:1px solid #d8d1c5}.developer-dashboard-grid,.developer-lower-grid{grid-template-columns:1fr}}
@media(max-width:800px){.developer-student-preview-row{grid-template-columns:1fr auto}.developer-student-preview-metrics{grid-column:1;border-left:0}.developer-student-preview-row form{grid-column:2;grid-row:1/3}.developer-nav{gap:16px}.developer-preview-bar .shell{align-items:flex-start;flex-direction:column;padding-top:10px;padding-bottom:10px}.developer-student-preview .developer-preview-bar{position:static}}
@media(max-width:650px){.developer-metric-grid{grid-template-columns:1fr 1fr}.developer-metric{border-bottom:1px solid #d8d1c5}.developer-metric:nth-child(odd){border-right:1px solid #d8d1c5}.developer-metric:nth-child(even){border-right:0}.developer-metric:nth-last-child(-n+2){border-bottom:0}.developer-student-search{grid-template-columns:1fr}.developer-student-preview-row{grid-template-columns:1fr}.developer-student-preview-metrics,.developer-student-preview-row form{grid-column:auto;grid-row:auto}.developer-student-preview-row .button{width:100%}.developer-preview-note{grid-template-columns:1fr}.developer-preview-note .developer-privacy-mark{display:none}}

/* Developer preview — blocked write action */
.preview-blocked-page{
    min-height:100vh;
    background:linear-gradient(180deg,#f4f3ee 0,#fff 72%);
}
.preview-blocked-header{
    position:relative;
}
.preview-blocked-header-label{
    margin-left:auto;
    color:var(--repton-gold);
    font-size:9px;
    font-weight:600;
    letter-spacing:.1em;
    text-transform:uppercase;
}
.preview-blocked-bar{
    position:relative!important;
    top:auto!important;
}
.preview-blocked-main{
    padding:74px 0 96px;
}
.preview-blocked-shell{
    display:grid;
    place-items:center;
}
.preview-blocked-card{
    width:min(700px,100%);
    padding:52px 56px 48px;
    border:1px solid #d8d1c5;
    border-top:3px solid var(--repton-gold);
    background:#fff;
    text-align:center;
    box-shadow:0 16px 42px rgba(48,57,80,.06);
}
.preview-blocked-mark{
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    margin:0 auto 20px;
    border:1px solid #d8d1c5;
    background:#f7f4ed;
    color:var(--repton-gold);
    font:400 25px/1 Georgia,"Times New Roman",serif;
}
.preview-blocked-card .eyebrow{
    margin-bottom:12px;
}
.preview-blocked-card h1{
    max-width:590px;
    margin:0 auto;
    color:var(--repton-navy);
    font:400 38px/1.15 Georgia,"Times New Roman",serif;
    letter-spacing:-.02em;
}
.preview-blocked-card p{
    max-width:590px;
    margin:20px auto 0;
    color:var(--muted);
    font-size:14px;
    line-height:1.75;
}
.preview-blocked-actions{
    display:flex;
    justify-content:center;
    gap:10px;
    margin-top:30px;
    flex-wrap:wrap;
}
.preview-blocked-note{
    display:block;
    max-width:560px;
    margin:27px auto 0;
    padding-top:19px;
    border-top:1px solid #e4e0d8;
    color:#8a877f;
    font-size:9px;
    line-height:1.6;
    letter-spacing:.03em;
}
@media(max-width:650px){
    .preview-blocked-main{padding:42px 0 70px}
    .preview-blocked-card{padding:38px 24px 34px}
    .preview-blocked-card h1{font-size:31px}
    .preview-blocked-actions{align-items:stretch;flex-direction:column}
    .preview-blocked-actions .button{width:100%}
    .preview-blocked-header-label{display:none}
}


/* =========================================================
   BEYOND REPTON — AUDIT LOG
   ========================================================= */
.audit-hero-note{
    min-width:190px;
    padding:18px 22px;
    border-left:1px solid var(--repton-gold);
}
.audit-hero-note strong,
.audit-hero-note span{display:block}
.audit-hero-note strong{
    color:var(--repton-navy);
    font:400 24px/1.1 Georgia,"Times New Roman",serif;
}
.audit-hero-note span{
    margin-top:7px;
    color:var(--muted);
    font-size:9px;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.audit-filterbar{
    display:grid;
    grid-template-columns:minmax(220px,1.3fr) minmax(150px,.9fr) 130px minmax(160px,1fr) 130px 135px 135px auto auto;
    gap:10px;
    align-items:end;
    margin-bottom:38px;
    padding:20px;
    border:1px solid #e1ddd4;
    background:#f5f3ee;
}
.audit-filterbar label{
    display:grid;
    gap:6px;
    min-width:0;
}
.audit-filterbar label>span{
    color:var(--repton-gold);
    font-size:8px;
    font-weight:600;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.audit-filterbar input,
.audit-filterbar select{
    width:100%;
    min-width:0;
    height:41px;
    padding:10px 11px;
    border:1px solid #d7d2c8;
    border-radius:0;
    background:#fff;
    color:var(--ink);
    font:400 12px/1.3 "Segoe UI",Arial,sans-serif;
}
.audit-clear{
    align-self:center;
    white-space:nowrap;
}
.audit-heading{margin-bottom:0}
.audit-retention-note{
    color:var(--muted);
    font-size:9px;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.audit-list{
    border-top:1px solid #d8d1c5;
}
.audit-entry{
    display:grid;
    grid-template-columns:95px minmax(0,1fr);
    gap:24px;
    padding:26px 0;
    border-bottom:1px solid #d8d1c5;
}
.audit-entry-time{
    padding-top:2px;
    border-right:1px solid #e5e1d8;
}
.audit-entry-time strong,
.audit-entry-time span{display:block}
.audit-entry-time strong{
    color:var(--repton-navy);
    font:400 20px/1 Georgia,"Times New Roman",serif;
}
.audit-entry-time span{
    margin-top:6px;
    color:var(--muted);
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.audit-entry-main{min-width:0}
.audit-entry-topline{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}
.audit-entry-topline>span:first-child strong,
.audit-entry-topline>span:first-child small{display:block}
.audit-entry-topline>span:first-child strong{
    color:var(--repton-navy);
    font-size:13px;
    font-weight:650;
}
.audit-entry-topline>span:first-child small{
    margin-top:3px;
    color:var(--repton-gold);
    font-size:8px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.audit-action-pill{
    flex:none;
    padding:5px 7px;
    border:1px solid #d7d0c4;
    color:#756f64;
    background:#faf8f3;
    font-size:8px;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.audit-entry-main>p{
    margin:11px 0 8px;
    color:#4f5159;
    font-size:13px;
    line-height:1.6;
}
.audit-entry-meta{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
}
.audit-entry-meta span{
    color:var(--muted);
    font-size:9px;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.audit-change-details{
    margin-top:15px;
    border-top:1px solid #ece8df;
}
.audit-change-details>summary{
    width:max-content;
    padding-top:11px;
    color:var(--repton-gold);
    cursor:pointer;
    font-size:9px;
    font-weight:600;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.audit-change-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:12px;
}
.audit-change-grid>div{
    padding:13px 15px;
    border:1px solid #e2ddd3;
    background:#faf9f6;
}
.audit-change-grid span{
    color:var(--repton-gold);
    font-size:8px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.audit-change-grid p{
    margin:6px 0 0;
    color:#646167;
    font-size:10px;
    line-height:1.55;
    overflow-wrap:anywhere;
}
@media(max-width:1180px){
    .audit-filterbar{grid-template-columns:repeat(4,minmax(0,1fr))}
    .audit-search{grid-column:span 2}
}
@media(max-width:760px){
    .audit-filterbar{grid-template-columns:1fr 1fr}
    .audit-search{grid-column:1/-1}
    .audit-entry{grid-template-columns:1fr;gap:10px}
    .audit-entry-time{border-right:0}
    .audit-entry-time strong,.audit-entry-time span{display:inline;margin-right:7px}
    .audit-change-grid{grid-template-columns:1fr}
    .audit-hero-note{min-width:0;border-left:0;border-top:1px solid var(--repton-gold);padding:18px 0 0}
}
@media(max-width:520px){
    .audit-filterbar{grid-template-columns:1fr}
    .audit-search{grid-column:auto}
    .audit-entry-topline{display:block}
    .audit-action-pill{display:inline-block;margin-top:10px}
}

/* =========================================================
   STUDENT EXPLORE — scalable catalogue
   ========================================================= */
.explore-page-body{
    display:grid;
    gap:58px;
}
.explore-page-body .student-filterbar{
    margin-bottom:0;
}
.explore-activity-section{
    min-width:0;
}
.explore-section-heading{
    align-items:flex-end;
    margin-bottom:22px;
}
.explore-section-heading>div>p{
    max-width:720px;
    margin:8px 0 0;
    color:var(--muted);
    font-size:12px;
    line-height:1.6;
}
.completed-toggle{
    flex:none;
    margin-bottom:4px;
    white-space:nowrap;
}
.compact-activity-grid{
    gap:16px;
}
.compact-activity-card{
    min-height:260px;
    padding:21px 22px 20px;
}
.compact-card-topline{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    min-height:26px;
}
.compact-tag-row{
    gap:5px;
}
.compact-tag-row span{
    padding:3px 7px;
    font-size:8px;
}
.compact-activity-card .student-status{
    flex:none;
    padding:4px 6px;
}
.compact-activity-card h3{
    margin:14px 0 8px;
    font-size:21px;
    line-height:1.16;
}
.compact-activity-card .activity-card-description{
    display:-webkit-box;
    overflow:hidden;
    margin:0 0 14px;
    color:var(--muted);
    font-size:12px;
    line-height:1.6;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.compact-activity-topics{
    margin:0 0 13px;
}
.compact-activity-topics span{
    padding:3px 6px;
    font-size:7px;
}
.compact-activity-card .student-card-footer{
    padding-top:12px;
    font-size:10px;
}
.continue-section{
    padding-bottom:4px;
}
.continue-activity-card{
    border-top:2px solid var(--repton-teal);
    background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%);
}
.continue-activity-card .student-status.started{
    background:var(--repton-teal);
    border-color:var(--repton-teal);
}
.explore-load-more{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    margin-top:28px;
    padding-top:24px;
    border-top:1px solid #e5e1d7;
}
.explore-load-more>span{
    color:var(--muted);
    font-size:10px;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.explore-scroll-anchor{
    position:relative;
    top:-110px;
}
.completed-section{
    padding-top:6px;
    border-top:1px solid #dedbd3;
}
.completed-activity-grid .compact-activity-card{
    background:#fcfcfa;
}
.completed-activity-grid .student-status.completed{
    background:#edf2ee;
}
@media(max-width:850px){
    .explore-page-body{gap:46px}
    .compact-activity-card{min-height:245px}
}
@media(max-width:700px){
    .explore-section-heading{align-items:flex-start}
    .completed-toggle{margin-top:5px}
    .explore-load-more{align-items:stretch;flex-direction:column;text-align:center}
    .explore-load-more .button{width:100%}
    .compact-activity-card{min-height:0}
}


/* =========================================================
   Recommendation pathway: readiness feedback + teacher insights
   ========================================================= */
.difficulty-feedback{
    border:0;
    padding:0;
    margin:28px 0 4px;
}
.difficulty-feedback legend{
    font-weight:700;
    font-size:13px;
    color:var(--repton-navy);
    margin-bottom:5px;
}
.difficulty-feedback>p{
    margin:0 0 13px;
    color:var(--muted);
    font-size:11px;
    max-width:680px;
}
.difficulty-feedback-options{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}
.difficulty-feedback-options label{
    position:relative;
    cursor:pointer;
    margin:0;
}
.difficulty-feedback-options input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.difficulty-feedback-options span{
    min-height:78px;
    border:1px solid #d7d2c8;
    background:#fff;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:11px 12px;
    transition:border-color .15s ease,background .15s ease;
}
.difficulty-feedback-options strong{
    display:block;
    color:var(--repton-navy);
    font:400 16px/1.2 Georgia,serif;
}
.difficulty-feedback-options small{
    display:block;
    color:var(--muted);
    font-size:9px;
    line-height:1.35;
    margin-top:5px;
}
.difficulty-feedback-options input:checked+span{
    border-color:var(--repton-gold);
    background:#f5f1e8;
    box-shadow:inset 0 -3px 0 var(--repton-gold);
}
.difficulty-feedback-options label:hover span{border-color:#b7aa91}
.difficulty-feedback-options input:focus-visible+span{
    outline:2px solid var(--repton-navy);
    outline-offset:2px;
}

.activity-framework-fields label small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:9px;
    line-height:1.4;
    text-transform:none;
    letter-spacing:0;
}
.framework-suggestion{
    margin-top:-7px;
    padding:10px 12px;
    border-left:2px solid var(--repton-gold);
    background:#f8f6f1;
    color:#706c64;
    font-size:10px;
    line-height:1.5;
}

.teacher-content-insights .section-heading{
    margin-bottom:20px;
}
.teacher-content-insights .panel-intro{
    max-width:760px;
    margin:7px 0 0;
}
.activity-insight-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.activity-insight-card{
    border:1px solid #ddd9cf;
    background:#fff;
    padding:24px;
    position:relative;
}
.activity-insight-card.needs-content{
    border-left:4px solid var(--repton-gold);
}
.activity-insight-card.coverage-ok{
    border-left:4px solid #a9b7ae;
}
.activity-insight-topline{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:9px;
}
.activity-insight-signal,
.activity-insight-rating{
    font-size:8px;
    text-transform:uppercase;
    letter-spacing:.09em;
}
.activity-insight-signal{
    color:var(--repton-gold);
    font-weight:700;
}
.activity-insight-rating{
    color:var(--muted);
}
.activity-insight-card h3{
    margin:0 0 14px;
    color:var(--repton-navy);
    font:400 24px/1.18 Georgia,serif;
}
.activity-insight-stats{
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    padding:11px 0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    color:var(--muted);
    font-size:10px;
}
.activity-insight-stats strong{
    color:var(--repton-navy);
    font-weight:700;
}
.activity-insight-next{
    margin-top:16px;
}
.activity-insight-next span,
.activity-insight-next strong{
    display:block;
}
.activity-insight-next span{
    color:var(--muted);
    font-size:8px;
    text-transform:uppercase;
    letter-spacing:.09em;
}
.activity-insight-next strong{
    margin-top:4px;
    color:var(--repton-navy);
    font:400 18px/1.25 Georgia,serif;
}
.activity-insight-message{
    min-height:48px;
    margin:13px 0 16px;
    color:var(--muted);
    font-size:11px;
    line-height:1.55;
}
.activity-insight-empty{
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    gap:14px;
    align-items:center;
}
.activity-insight-empty strong{font-size:12px;color:var(--repton-navy)}
.activity-insight-empty p{margin:4px 0 0;color:var(--muted);font-size:11px}

@media(max-width:800px){
    .difficulty-feedback-options{grid-template-columns:1fr 1fr}
    .activity-insight-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
    .difficulty-feedback-options{grid-template-columns:1fr}
    .difficulty-feedback-options span{min-height:0}
    .activity-insight-topline{align-items:flex-start;flex-direction:column;gap:4px}
}

/* =========================================================
   COMPETITIONS — individual student selections
   ========================================================= */
.competition-student-selector{
    margin-top:4px;
}
.competition-selected-list{
    display:grid;
    border-top:1px solid #ded8cf;
}
.competition-selected-student{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:18px;
    align-items:center;
    padding:15px 0;
    border-bottom:1px solid #ded8cf;
}
.competition-selected-student strong,
.competition-selected-student small{
    display:block;
}
.competition-selected-student strong{
    color:var(--repton-navy);
    font:400 17px/1.25 Georgia,"Times New Roman",serif;
}
.competition-selected-student small{
    margin-top:4px;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}
.competition-eligibility-exception{
    color:#9b743b;
    font-weight:650;
}
.competition-selected-student form,
.competition-student-results form{
    margin:0;
}
.competition-student-search{
    margin:4px 0 0;
    padding:18px;
    border:1px solid #e1ddd4;
    background:#f5f3ee;
}
.competition-student-search label:first-child{
    width:min(440px,100%);
}
.competition-student-results{
    margin-top:16px;
}
.competition-student-results .class-member{
    padding:13px 0;
}
.competition-student-results .class-member>span{
    min-width:0;
}
.competition-student-results .class-member strong,
.competition-student-results .class-member small{
    display:block;
}
.competition-student-results .class-member strong{
    color:var(--repton-navy);
    font-weight:600;
}
.competition-student-results .class-member small{
    margin-top:3px;
    color:var(--muted);
    font-size:10px;
}
.competition-student-results .button{
    flex:none;
}
@media(max-width:650px){
    .competition-selected-student{
        grid-template-columns:1fr;
    }
    .competition-selected-student form{
        justify-self:start;
    }
    .competition-student-search{
        padding:15px;
    }
    .competition-student-results .class-member{
        align-items:flex-start;
        flex-direction:column;
    }
    .competition-student-results .button{
        width:100%;
    }
}


/* Explore catalogue: external learning resource attribution and provider filter */
.explore-page-body .student-filterbar{
    grid-template-columns:minmax(190px,1.4fr) repeat(4,minmax(118px,1fr)) auto auto;
}
.explore-card-source{
    display:flex;
    align-items:center;
    gap:7px;
    margin-top:13px;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}
.explore-card-source strong{color:var(--repton-navy);font-weight:650}
.explore-source-symbol{
    flex:none;
    display:grid;
    place-items:center;
    width:19px;height:19px;
    border:1px solid #d9d2c5;
    color:var(--repton-gold);
    font-size:12px;
}
.explore-card-source + h3{margin-top:9px}
@media(max-width:1150px){
    .explore-page-body .student-filterbar{grid-template-columns:repeat(3,minmax(0,1fr))}
    .explore-page-body .student-search{grid-column:1/-1}
}
@media(max-width:700px){
    .explore-page-body .student-filterbar{grid-template-columns:1fr}
    .explore-page-body .student-search{grid-column:auto}
}


/* Enriva student reflection — one thoughtful response, two ratings, optional next step */
.live-student-activity .reflection-intro{max-width:650px;margin:0 0 22px;line-height:1.75}
.live-student-activity .reflection-guidance{padding:17px 20px;margin:0 0 24px;background:#f5f3ee;border-left:2px solid var(--repton-gold)}
.live-student-activity .reflection-guidance .eyebrow{display:block;margin-bottom:5px}
.live-student-activity .reflection-guidance p{margin:0;color:#575765;font-size:13px;line-height:1.7}
.live-student-activity .reflection textarea[name="what_learned"]{min-height:145px;line-height:1.65}
.live-student-activity .reflection textarea:focus-visible{outline:2px solid var(--repton-gold);outline-offset:2px}
.live-student-activity .reflection-previous-note{font-size:11px;color:var(--muted);padding:12px 14px;background:#faf9f6;border:1px solid #e6e0d6;line-height:1.6}
.live-student-activity .reflection-next-steps{margin:24px 0 0;padding:16px 0;border-top:1px solid #e4dfd6;border-bottom:1px solid #e4dfd6}
.live-student-activity .reflection-next-steps summary{cursor:pointer;color:var(--repton-navy);font-size:13px;font-weight:600;line-height:1.5;list-style-position:inside}
.live-student-activity .reflection-next-steps summary span{color:var(--muted);font-weight:400;font-size:11px}
.live-student-activity .reflection-next-steps textarea{margin-top:14px;min-height:75px}
.live-student-activity .reflection-next-steps summary:focus-visible{outline:2px solid var(--repton-gold);outline-offset:3px}
.visually-hidden-reflection{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.live-student-activity .reflection .enjoyment-rating{margin-top:29px}
.live-student-activity .reflection .difficulty-feedback{margin-top:25px}
@media(max-width:700px){.live-student-activity .reflection-guidance{padding:15px}.live-student-activity .reflection textarea[name="what_learned"]{min-height:125px}}


/* Enriva: student exploration companion — scoped to the activity page */
.live-student-activity .activity-sidebar{display:flex;flex-direction:column;gap:18px;min-width:0;align-self:stretch}
.live-student-activity .activity-details-panel{flex:none}
.live-student-activity .activity-companion{position:sticky;top:104px;flex:none;padding:24px 23px;border-top:2px solid var(--repton-gold);background:#fff;max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain}
.live-student-activity .activity-companion .eyebrow{margin-bottom:11px}
.live-student-activity .activity-companion-status{display:flex;align-items:center;gap:9px;color:var(--repton-navy);font-size:13px}
.live-student-activity .activity-companion-status strong{font-weight:650}
.live-student-activity .activity-companion-dot{width:8px;height:8px;border:1px solid var(--repton-gold);border-radius:50%;flex:none}
.live-student-activity .activity-companion-dot.is-started{background:var(--repton-gold)}
.live-student-activity .activity-companion-dot.is-complete{background:#537e66;border-color:#537e66}
.live-student-activity .activity-companion-intro{color:var(--muted);font-size:11px;line-height:1.65;margin:9px 0 16px}
.live-student-activity .activity-companion-links{border-top:1px solid #e3ded5}
.live-student-activity .activity-companion-links a{display:grid;grid-template-columns:25px minmax(0,1fr) 11px;gap:9px;align-items:center;color:var(--repton-navy);text-decoration:none;padding:12px 0;border-bottom:1px solid #e3ded5;font-size:12px;font-weight:600;line-height:1.4}
.live-student-activity .activity-companion-links a:hover{color:#927345}
.live-student-activity .activity-companion-links a:focus-visible{outline:2px solid var(--repton-gold);outline-offset:2px}
.live-student-activity .activity-companion-links a>span:nth-child(2){min-width:0}
.live-student-activity .activity-companion-links small{display:block;font-size:9px;font-weight:400;color:var(--muted);margin-top:3px}
.live-student-activity .activity-companion-link-icon{display:grid;place-items:center;width:24px;height:24px;color:var(--repton-gold);background:#f5f2eb;font-size:13px}
.live-student-activity .activity-companion-help{padding:15px;margin-top:18px;background:#f5f3ee;border-left:2px solid var(--repton-gold)}
.live-student-activity .activity-companion-help strong{color:var(--repton-navy);font-size:12px;font-weight:650}
.live-student-activity .activity-companion-help p{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.65}
.live-student-activity #explore-resource,.live-student-activity #reflection,.live-student-activity #evidence{scroll-margin-top:110px}
@media(max-width:850px){
 .live-student-activity .activity-sidebar{order:-1;display:flex}
 .live-student-activity .activity-details-panel{display:block}
 .live-student-activity .activity-companion{display:none}
}


/* Enriva teacher student journey: reflective learning and supportive insights */
.teacher-reflection-summary{margin-top:18px;padding:19px 21px;border:1px solid #e2dcd0;background:#fbfaf7}
.teacher-reflection-summary>.eyebrow{display:block;margin-bottom:11px}
.teacher-reflection-main{border-left:2px solid var(--repton-gold);padding-left:14px}
.teacher-reflection-main p{color:#424b5e;font:400 16px/1.65 Georgia,"Times New Roman",serif;margin:5px 0 0;overflow-wrap:anywhere}
.teacher-reflection-detail,.teacher-reflection-next{padding:13px 0 0;margin-top:13px;border-top:1px solid #e6e1d8}
.teacher-reflection-detail strong,.teacher-reflection-next strong{display:block;color:#9b7c51;font-size:9px;text-transform:uppercase;letter-spacing:.09em}
.teacher-reflection-detail p,.teacher-reflection-next p{margin:6px 0 0;font-size:12px;line-height:1.65;color:#555c65;overflow-wrap:anywhere}
.teacher-reflection-next{border-left:2px solid #b9a079;padding-left:13px}
.teacher-reflection-private{font-size:12px;color:var(--muted);margin:0}
.teacher-learning-signals{display:flex;flex-wrap:wrap;align-items:center;gap:8px 13px;margin-top:12px}
.teacher-learning-signals>span{padding:7px 10px;border:1px solid #dfd8ce;background:#f8f5ee;font-size:10px;color:#565d6a}
.teacher-learning-signals strong{color:var(--repton-navy);font-weight:650}
.teacher-learning-signals>small{width:100%;font-size:9px;color:var(--muted)}
.teacher-opportunities-panel h3{margin-bottom:8px}
.teacher-opportunity-item{padding:15px 0;border-top:1px solid #e5e0d6}
.teacher-opportunity-item>span{display:block;color:var(--repton-gold);text-transform:uppercase;letter-spacing:.08em;font-size:9px;margin-bottom:5px}
.teacher-opportunity-item strong{display:block;color:var(--repton-navy);font:400 16px/1.3 Georgia,serif}
.teacher-opportunity-item p,.teacher-opportunities-empty{font-size:11px;line-height:1.65;color:var(--muted);margin:7px 0 0}
@media(max-width:700px){.teacher-reflection-summary{padding:16px}.teacher-reflection-main p{font-size:15px}}


/* Teacher student journey: compact record tabs, a shorter timeline, useful navigation */
.teacher-journey-switcher{margin-bottom:38px}
.teacher-journey-tabbar{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid #d8d1c5;margin:5px 0 24px}
.teacher-journey-tabbar button{border:0;border-bottom:2px solid transparent;background:transparent;padding:14px 15px;color:#75716b;font:500 11px/1.35 "Segoe UI",Arial,sans-serif;cursor:pointer;text-align:left}
.teacher-journey-tabbar button:first-child{padding-left:0}
.teacher-journey-tabbar button.is-active{border-bottom-color:var(--repton-gold);color:var(--repton-navy)}
.teacher-journey-tabbar button:hover{color:var(--repton-navy)}
.teacher-journey-tabbar button:focus-visible{outline:2px solid var(--repton-navy);outline-offset:2px}
.teacher-journey-tabbar button span{display:inline-block;margin-left:6px;padding:2px 6px;background:#f4f1ea;color:#817052;font-size:9px}
.teacher-journey-switcher [hidden],.teacher-journey-timeline [hidden]{display:none!important}
.teacher-journey-switcher .teacher-current-work,.teacher-journey-switcher .teacher-achievement-section{margin:0}
.teacher-journey-empty{padding:28px;border:1px solid #dedbd3;background:#faf9f6;color:var(--muted);font-size:12px}
.teacher-show-completed{display:block;margin:18px 0 42px auto}
.teacher-journey-quicknav{position:sticky;top:100px;z-index:2;padding:20px 24px!important;background:#faf9f6!important}
.teacher-journey-quicknav a{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e4ded4;padding:12px 0;color:var(--repton-navy);text-decoration:none;font-size:11px}
.teacher-journey-quicknav a:hover{color:var(--repton-gold)}
.teacher-journey-quicknav a span{color:var(--muted);font-size:9px;white-space:nowrap}
#completed-journey{scroll-margin-top:110px}#journey-sections{scroll-margin-top:110px}
@media(max-width:980px){.teacher-journey-quicknav{position:static}}
@media(max-width:600px){.teacher-journey-tabbar{display:grid;grid-template-columns:1fr}.teacher-journey-tabbar button,.teacher-journey-tabbar button:first-child{padding:12px 6px}.teacher-show-completed{width:100%}}


/* Enriva teacher timeline navigator */
.teacher-journey-quicknav{position:static!important;top:auto!important;z-index:auto!important}
.student-journey-side{align-self:stretch}
.teacher-timeline-navigator{position:sticky;top:105px;align-self:start;max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain;border-top:2px solid var(--repton-gold)}
.teacher-timeline-navigator h3{margin:3px 0 8px}
.teacher-timeline-navigator>p{font-size:11px;line-height:1.65;color:var(--muted)}
.teacher-timeline-form{display:grid;gap:8px;margin-top:19px}
.teacher-timeline-form label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--repton-gold);font-weight:600;margin-top:7px}
.teacher-timeline-form select{width:100%;min-width:0;border:1px solid #d7d2c8;border-radius:0;background:white;color:var(--repton-navy);padding:11px 12px;font:400 12px/1.5 "Segoe UI",Arial,sans-serif}
.teacher-timeline-form button{margin-top:13px}
.teacher-timeline-note{font-size:10px!important;margin:15px 0 0!important;color:var(--muted);line-height:1.6}
.teacher-timeline-clear{display:inline-block;margin-top:12px;font-size:10px;color:var(--repton-gold);text-decoration:none}
.teacher-timeline-filter-summary{margin:0 0 22px;border-left:2px solid var(--repton-gold);background:#f7f4ed;padding:14px 17px;color:var(--repton-navy);font-size:12px}
.teacher-timeline-filter-summary a{display:inline-block;margin-left:12px;color:#937343}
.teacher-timeline-filter-summary p{margin:8px 0 0;font-size:11px;color:var(--muted)}
@media(max-width:980px){.teacher-timeline-navigator{position:static;max-height:none;overflow:visible}}
@media(max-height:620px){.teacher-timeline-navigator{position:static;max-height:none;overflow:visible}}


/* Teacher student sidebar: natural panel heights; only timeline navigator sticks. */
.student-journey-layout > .student-journey-side {
  display:flex;
  flex-direction:column;
  align-self:stretch;
  align-items:stretch;
  gap:18px;
  min-width:0;
}
.student-journey-side > .panel {flex:0 0 auto;min-height:0;}
.student-journey-side > .teacher-timeline-navigator {
  position:sticky;
  top:105px;
  align-self:stretch;
  height:max-content;
  max-height:calc(100vh - 120px);
}
@media(max-width:980px), (max-height:620px) {
  .student-journey-side > .teacher-timeline-navigator {
    position:static;max-height:none;overflow:visible;
  }
}


/* Teacher timeline navigator: keep page-wheel scrolling available on hover.
   The compact sticky panel does not need its own scroll container. */
.teacher-timeline-navigator,
.student-journey-side > .teacher-timeline-navigator {
  max-height: none;
  overflow: visible;
  overscroll-behavior: auto;
}


/* Enriva v2B — Student learning pathways (scoped, additive) */
.student-pathway-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.student-pathway-card,.student-pathway-progress,.student-pathway-step{border:1px solid #ded8cf;background:#fff;padding:24px}
.student-pathway-card h3,.student-pathway-step h3{margin:8px 0;color:var(--repton-navy);font:400 24px/1.2 Georgia,serif}
.student-pathway-card p,.student-pathway-reason{color:var(--muted);font-size:12px;line-height:1.65}
.student-pathway-card-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:15px}
.student-pathway-card-foot small,.student-pathway-small{color:var(--muted);font-size:10px}
.student-pathway-track{height:5px;background:#e8e3d9;margin-top:18px;overflow:hidden}
.student-pathway-track>span{display:block;height:100%;background:var(--repton-gold)}
.student-pathway-progress{display:grid;grid-template-columns:1fr minmax(140px,240px);gap:22px;align-items:center;margin-bottom:40px;background:#f8f6f1}
.student-pathway-progress strong{display:block;color:var(--repton-navy);font:400 24px Georgia,serif}
.student-pathway-progress p{margin:6px 0 0;color:var(--muted);font-size:11px}
.student-pathway-steps{display:grid;gap:12px;max-width:890px}
.student-pathway-step{position:relative;border-left:3px solid var(--repton-gold);margin-left:calc(var(--step-depth,0) * 28px)}
.student-pathway-step.is-branch:before{content:'↳';position:absolute;left:-23px;top:19px;color:var(--repton-gold)}
.student-pathway-step-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.student-pathway-step .text-link{display:inline-block;margin-top:12px}
.student-pathway-step .student-status{white-space:nowrap}
@media(max-width:760px){.student-pathway-grid,.student-pathway-progress{grid-template-columns:1fr}.student-pathway-step{margin-left:calc(var(--step-depth,0) * 12px);padding:18px}.student-pathway-step.is-branch:before{left:-15px}.student-pathway-card{padding:20px}}


/* Enriva v2C — guided, non-restrictive pathways */
.student-pathway-guidance{margin:0 0 34px;padding:26px 30px;border:1px solid #c6b292;border-left:3px solid var(--repton-gold);background:#fbf9f4;display:flex;gap:22px;align-items:center;justify-content:space-between}
.student-pathway-guidance h2{margin:0 0 8px;color:var(--repton-navy);font:400 26px/1.2 Georgia,serif}
.student-pathway-guidance p{margin:0 0 9px;font-size:12px;color:var(--muted);line-height:1.65}
.student-pathway-guidance small,.student-pathway-advice{font-size:11px;color:var(--muted)}
.student-pathway-guidance .button{flex:none}
.student-pathway-step.is-recommended{border-color:#baa077;box-shadow:inset 3px 0 0 var(--repton-gold)}
.student-pathway-recommended-label{display:inline-block;margin:0 0 9px;padding:5px 8px;background:#f2ede3;border:1px solid #d9c8a9;color:#876d45;font-size:9px;text-transform:uppercase;letter-spacing:.07em}
.student-pathway-branch-label{margin:0 0 8px!important;color:#977749!important;font-size:10px!important}
.student-pathway-card-suggestion{margin:13px 0!important;padding:10px 12px;background:#f8f5ee;border-left:2px solid var(--repton-gold);font-size:11px!important}
.student-pathway-card-suggestion strong{color:var(--repton-navy)}
.student-pathway-step{scroll-margin-top:105px}
@media(max-width:700px){.student-pathway-guidance{display:block;padding:21px}.student-pathway-guidance .button{margin-top:17px;width:100%}}


/* Enriva v2D · Teacher Pathway Feedback */
.pr-builder-links{display:flex;flex-wrap:wrap;gap:10px}
.pathway-report .pr-filters{display:grid;grid-template-columns:minmax(230px,1fr) minmax(230px,1fr) auto;gap:14px;align-items:end;padding:20px;border:1px solid #ded8cf;background:#f7f5f0;margin-bottom:30px}
.pathway-report .pr-filters label{display:grid;gap:8px;min-width:0}
.pathway-report .pr-filters label>span{color:var(--repton-gold);font-size:9px;text-transform:uppercase;letter-spacing:.09em}
.pathway-report .pr-filters select{width:100%;min-width:0;padding:12px;background:white;border:1px solid #d8d2c8;color:var(--repton-navy);font:inherit;font-size:13px}
.pr-report-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:12px 0 26px}.pr-report-heading h2{font:400 30px/1.2 Georgia,serif;color:var(--repton-navy);margin:0 0 8px}.pr-report-heading p{color:var(--muted);font-size:13px;margin:0}.pr-view-note{color:var(--muted);font-size:10px;white-space:nowrap}
.pr-stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #ded8cf}.pr-stats>div{padding:22px;border-right:1px solid #ded8cf}.pr-stats>div:last-child{border-right:0}.pr-stats strong{display:block;font:400 31px/1.1 Georgia,serif;color:var(--repton-navy)}.pr-stats span{display:block;margin-top:9px;color:var(--muted);font-size:9px;letter-spacing:.05em;text-transform:uppercase}
.pr-definition{max-width:980px;margin:14px 0 22px;color:var(--muted);font-size:11px;line-height:1.7}.pr-section{margin-top:50px}.pr-table-wrap{overflow-x:auto;border:1px solid #ded8cf}.pr-table{width:100%;border-collapse:collapse;min-width:710px;text-align:left}.pr-table th{background:#f5f3ee;color:var(--repton-gold);font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:600;padding:15px;border-bottom:1px solid #ded8cf}.pr-table td{vertical-align:top;border-top:1px solid #e7e2da;padding:16px 15px;color:var(--repton-navy);font-size:12px}.pr-table td strong{display:block;font-size:13px;font-weight:600}.pr-table td small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.pr-feedback{font-size:11px;color:#69666a;line-height:1.8}.pr-review{display:inline-block;padding:5px 7px;border:1px solid #e0c6ae;background:#fcf5ed;color:#8d623c;font-size:9px;white-space:nowrap}.pr-quiet{color:var(--muted);font-size:10px}.pr-progress{margin-top:8px;height:4px;background:#e8e4dc;width:140px;max-width:100%}.pr-progress span{display:block;height:100%;background:var(--repton-gold)}
@media(max-width:800px){.pathway-report .pr-filters{grid-template-columns:1fr}.pr-stats{grid-template-columns:1fr 1fr}.pr-stats>div:nth-child(2){border-right:0}.pr-stats>div:nth-child(-n+2){border-bottom:1px solid #ded8cf}.pr-report-heading{display:block}.pr-view-note{display:block;margin-top:10px}}
@media(max-width:500px){.pr-stats>div{padding:16px}.pr-stats strong{font-size:26px}.pr-builder-links{width:100%}.pr-builder-links .button{flex:1}}

/* Restored teacher Pathway Builder styles retained from v2A.2; v2D report rules preserved. */
/* Enriva Pathway Builder v2A — appended to original stylesheet */
.pathway-builder{min-width:0}.pathway-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:26px;align-items:start}.pathway-main{display:grid;gap:22px;min-width:0}.pathway-layout>.editor-section{align-self:start}.pathway-builder .editor-section{padding:27px;gap:14px}.pathway-builder .editor-section h2{font:400 26px/1.2 Georgia,serif;color:var(--repton-navy);margin:0}.pathway-form{display:grid;gap:14px}.pathway-form label,.pathway-suggestion-controls label,.pathway-focus label{display:grid;gap:7px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--repton-gold)}.pathway-form input,.pathway-form select,.pathway-form textarea,.pathway-suggestion-controls input,.pathway-suggestion-controls select,.pathway-focus select{width:100%;min-width:0;padding:11px 12px;border:1px solid #d7d2c8;background:white;color:var(--repton-navy);font:400 12px/1.5 'Segoe UI',Arial,sans-serif;letter-spacing:0;text-transform:none}.pathway-builder-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:25px;padding:24px 27px;border:1px solid #dedbd3;background:#faf9f6}.pathway-builder-summary h2{font:400 30px/1.15 Georgia,serif;margin:0;color:var(--repton-navy)}.pathway-builder-summary p{margin:7px 0 0;color:var(--muted);font-size:12px}.pathway-summary-actions{display:flex;align-items:center;gap:10px}.pathway-summary-actions form{margin:0}.pathway-node{border-left:3px solid var(--repton-gold);background:#f6f3ed;padding:18px 20px}.pathway-node span,.pathway-edge small,.pathway-suggestion-heading small{display:block;color:var(--repton-gold);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.pathway-node strong,.pathway-edge strong,.pathway-suggestion-heading strong{display:block;margin:5px 0;color:var(--repton-navy);font:400 19px/1.25 Georgia,serif}.pathway-node a,.pathway-edge a{font-size:10px;color:var(--repton-gold);text-decoration:none}.pathway-edge{display:flex;justify-content:space-between;gap:15px;padding:17px 0 17px 22px;border-left:1px solid #b6aa95;border-bottom:1px solid #e5e1d7}.pathway-edge p{font-size:11px;color:var(--muted);margin:6px 0}.pathway-edge form{flex:none}.pathway-remove{border:0;background:none;color:#9a5b58;cursor:pointer;font-size:9px;text-transform:uppercase}.pathway-focus{display:flex;align-items:end;gap:10px}.pathway-focus label{flex:1;min-width:0}.pathway-suggestion{border:1px solid #dedbd3;padding:18px 20px;display:grid;gap:12px}.pathway-suggestion-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.pathway-suggestion>p{margin:0;color:var(--muted);font-size:11px;line-height:1.65}.pathway-match{flex:none;border:1px solid #dedbd3;padding:5px 8px;color:#746a5d;font-size:9px}.pathway-suggestion .pathway-warning{color:#9a5b58;font-weight:650}.pathway-suggestion-controls{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:10px;align-items:end}.pathway-suggestion-controls .button{white-space:nowrap}.pathway-aside .editor-section{position:static}.pathway-note{font-size:11px;color:var(--muted);line-height:1.6;border-top:1px solid #dedbd3;padding-top:15px}.pathway-list-link{display:block;border-top:1px solid #dedbd3;padding:14px 0;color:var(--repton-navy);text-decoration:none}.pathway-list-link strong,.pathway-list-link small{display:block}.pathway-list-link small{font-size:10px;color:var(--muted);margin-top:5px}.pathway-preset-form{margin-bottom:18px;padding:14px;border:1px solid #dedbd3;background:#faf9f6}.pathway-preset-form small{display:block;margin-top:9px;color:var(--muted);font-size:10px}
@media(max-width:1050px){.pathway-suggestion-controls{grid-template-columns:1fr 1fr}.pathway-suggestion-controls .button{grid-column:1/-1}}
@media(max-width:830px){.pathway-layout{grid-template-columns:1fr}.pathway-builder-summary{align-items:flex-start;flex-direction:column}.pathway-summary-actions{flex-wrap:wrap}}
@media(max-width:540px){.pathway-builder .editor-section{padding:18px}.pathway-suggestion-controls{grid-template-columns:1fr}.pathway-focus{align-items:stretch;flex-direction:column}.pathway-suggestion-heading{flex-direction:column}.pathway-summary-actions .button{width:100%}}

/* Pathway Builder v2A.1 — draft deletion */
.pathway-list-item{display:flex;align-items:center;gap:15px;border-top:1px solid #dedbd3}.pathway-list-item .pathway-list-link{border:0;min-width:0;flex:1}.pathway-list-item form{flex:none;margin:0}.pathway-delete{border:1px solid #d6bab6;background:#fff7f6;padding:9px 12px;color:#944d48;font-weight:600}.pathway-delete:hover,.pathway-delete:focus-visible{background:#f7e9e7;border-color:#a65d56}.pathway-delete-panel{border-top:1px solid #dedbd3;margin-top:17px;padding-top:21px}.pathway-delete-panel p{color:var(--muted);font-size:11px;line-height:1.6;margin:0 0 14px}@media(max-width:540px){.pathway-list-item{align-items:flex-start;flex-direction:column;gap:0;padding-bottom:14px}.pathway-list-item .pathway-list-link{padding-bottom:8px}}

/* Pathway Builder v2A.2 — highlight newly created connection after redirect. */
.pathway-builder .pathway-edge{scroll-margin-top:112px}
.pathway-builder .pathway-edge:target{background:#faf6ed;border-left:3px solid var(--repton-gold);padding-left:19px;animation:pathway-connection-focus 2.6s ease-out}
@keyframes pathway-connection-focus{0%,48%{background:#f2e9d7}100%{background:#faf6ed}}
@media(prefers-reduced-motion:reduce){.pathway-builder .pathway-edge:target{animation:none}}

/* School branding: preserve existing shared styles and layout. */
.enriva-brand-image{display:block;max-width:190px;max-height:48px;width:auto;height:auto;object-fit:contain}
.enriva-brand-name{font:400 19px/1.15 Georgia,"Times New Roman",serif;letter-spacing:.02em;color:var(--repton-navy)}
.branding-settings-layout{display:grid;grid-template-columns:minmax(0,730px) minmax(250px,1fr);gap:30px;align-items:start}
.branding-settings-card{border:1px solid var(--line);background:#fff;padding:30px}
.branding-settings-card h2{font:400 27px/1.2 Georgia,serif;margin:0 0 14px;color:var(--repton-navy)}
.branding-settings-card p{color:var(--muted);font-size:12px;line-height:1.6}
.branding-settings-card label{display:grid;gap:7px;margin:20px 0;color:var(--repton-gold);text-transform:uppercase;letter-spacing:.07em;font-size:10px}
.branding-settings-card input{border:1px solid #d7d2c8;padding:12px;width:100%;font:400 14px/1.4 "Segoe UI",Arial,sans-serif;color:var(--ink)}
.branding-mode-value{display:inline-block;padding:7px 10px;border:1px solid var(--line);font-size:11px}
.branding-preview{border-top:2px solid var(--repton-gold);padding-top:20px;margin-top:20px}
.branding-preview strong{display:block;font:400 28px/1.2 Georgia,serif;color:var(--repton-navy)}
.branding-preview span{display:block;color:var(--muted);font-size:12px;margin-top:6px}
@media(max-width:850px){.branding-settings-layout{grid-template-columns:1fr}}
