/* ==========================================================
   OLYMPIA CORE LAB — Design System
   Academic-tech: ink navy + parchment + amber crest accent
   ========================================================== */

:root{
  --ink-950:#0b0f1a;
  --ink-900:#10162a;
  --ink-800:#161d38;
  --ink-700:#202a4d;
  --ink-600:#2c3866;
  --line:#2a3358;
  --parchment:#f4efe4;
  --parchment-dim:#c9c3b4;
  --paper:#fbf8f1;
  --amber:#e8a33d;
  --amber-dim:#a97a2f;
  --gold-line:#c9992f;
  --teal:#4fb8a6;
  --rose:#d9707a;
  --violet:#9b8cf2;

  --status-draft:#8a90a8;
  --status-review:#e8a33d;
  --status-approved:#4fb8a6;
  --status-published:#6fd08a;
  --status-archived:#5b6280;

  --radius-lg:18px;
  --radius-md:12px;
  --radius-sm:8px;
  --shadow-soft:0 12px 32px -14px rgba(0,0,0,.55);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:
    radial-gradient(1100px 500px at 12% -10%, rgba(232,163,61,.08), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(155,140,242,.07), transparent 55%),
    var(--ink-950);
  color:var(--parchment);
  font-family:'Space Grotesk', system-ui, sans-serif;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:600;
  letter-spacing:.2px;
  margin:0 0 .4em;
}

a{color:inherit; text-decoration:none;}
p{line-height:1.6; color:var(--parchment-dim);}
code, .mono{font-family:'JetBrains Mono', monospace;}

/* ---------- Topbar ---------- */
.topbar{
  display:flex; align-items:center; gap:28px;
  padding:16px 32px;
  border-bottom:1px solid var(--line);
  background:rgba(11,15,26,.85);
  backdrop-filter:blur(10px);
  position:sticky; top:0; z-index:50;
}
.brand{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif;}
.brand-mark{color:var(--amber); font-size:22px;}
.brand-text{font-size:15px; letter-spacing:1.5px; font-weight:600;}
.brand-text b{color:var(--amber); font-weight:700;}
.topnav{display:flex; gap:6px; flex:1;}
.topnav a{
  padding:8px 14px; border-radius:999px; font-size:14px; color:var(--parchment-dim);
  transition:.15s;
}
.topnav a:hover{color:var(--parchment); background:var(--ink-800);}
.topnav a.active{color:var(--ink-950); background:var(--amber); font-weight:600;}
.nav-cta{
  margin-left:8px; border:1px solid var(--gold-line); color:var(--amber) !important;
  background:transparent !important;
}
.nav-cta:hover{background:var(--amber) !important; color:var(--ink-950) !important;}
.topbar-right{display:flex; align-items:center; gap:12px;}
.user-chip{display:flex; align-items:center; gap:8px; padding:6px 12px; background:var(--ink-800); border-radius:999px; border:1px solid var(--line);}
.user-avatar{font-size:16px;}
.user-name{font-size:13px; font-weight:500;}
.user-role{font-size:10px; text-transform:uppercase; letter-spacing:.6px; padding:2px 8px; border-radius:999px; background:var(--ink-700); color:var(--parchment-dim);}
.user-role.role-admin{color:var(--rose);}
.user-role.role-teacher{color:var(--violet);}
.user-role.role-student{color:var(--teal);}

.btn-ghost-sm, .btn-primary-sm{
  padding:8px 16px; border-radius:999px; font-size:13px; font-weight:600; border:1px solid var(--line);
  cursor:pointer;
}
.btn-ghost-sm{background:transparent; color:var(--parchment);}
.btn-ghost-sm:hover{background:var(--ink-800);}
.btn-primary-sm{background:var(--amber); color:var(--ink-950); border-color:var(--amber);}
.btn-primary-sm:hover{background:#f2b657;}

/* ---------- Shell ---------- */
.main-shell{flex:1; width:100%; max-width:1180px; margin:0 auto; padding:32px;}
.site-footer{
  text-align:center; padding:22px; font-size:12px; color:var(--parchment-dim);
  border-top:1px solid var(--line); opacity:.7;
}

/* ---------- Flash ---------- */
.flash{padding:12px 18px; border-radius:var(--radius-sm); margin-bottom:18px; font-size:14px; border:1px solid;}
.flash-success{background:rgba(79,184,166,.12); border-color:var(--teal); color:#a9e6dc;}
.flash-error{background:rgba(217,112,122,.12); border-color:var(--rose); color:#f2b7bd;}

/* ---------- Page header ---------- */
.page-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:28px; gap:20px; flex-wrap:wrap;}
.page-eyebrow{font-size:12px; text-transform:uppercase; letter-spacing:2px; color:var(--amber); margin-bottom:6px; display:block;}
.page-head h1{font-size:30px;}
.page-desc{max-width:640px;}

/* ---------- Stat cards ---------- */
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:34px;}
.stat-card{
  background:linear-gradient(180deg, var(--ink-800), var(--ink-900));
  border:1px solid var(--line); border-radius:var(--radius-lg); padding:20px;
  box-shadow:var(--shadow-soft);
}
.stat-card .num{font-family:'Fraunces',serif; font-size:32px; color:var(--amber);}
.stat-card .label{font-size:12px; color:var(--parchment-dim); text-transform:uppercase; letter-spacing:1px; margin-top:4px;}

/* ---------- Section titles ---------- */
.section-title{display:flex; align-items:center; justify-content:space-between; margin:36px 0 16px;}
.section-title h2{font-size:20px; margin:0;}
.section-title a{font-size:13px; color:var(--amber);}

/* ---------- Lab grid ---------- */
.lab-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:16px;}
.lab-card{
  background:var(--ink-800); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:22px; transition:.18s; position:relative; overflow:hidden;
}
.lab-card:hover{border-color:var(--gold-line); transform:translateY(-2px);}
.lab-card .lab-icon{font-size:28px; display:block; margin-bottom:10px;}
.lab-card h3{font-size:17px; margin-bottom:6px;}
.lab-card p{font-size:13px; margin:0 0 12px;}
.lab-card .lab-count{font-size:12px; color:var(--amber); font-weight:600;}
.lab-branch-tag{
  position:absolute; top:16px; right:16px; font-size:10px; text-transform:uppercase;
  letter-spacing:1px; padding:3px 9px; border-radius:999px; background:var(--ink-700); color:var(--parchment-dim);
}

/* ---------- Project cards ---------- */
.project-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr)); gap:18px;}
.project-card{
  background:var(--ink-800); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:20px; display:flex; flex-direction:column; gap:10px;
  box-shadow:var(--shadow-soft);
}
.project-card .pc-top{display:flex; justify-content:space-between; align-items:flex-start; gap:8px;}
.project-card h3{font-size:17px; margin:0;}
.project-card .pc-lab{font-size:11px; color:var(--amber); text-transform:uppercase; letter-spacing:.8px;}
.project-card p.pc-tagline{font-size:13px; margin:0; color:var(--parchment-dim); min-height:36px;}
.pc-meta{display:flex; align-items:center; gap:8px; font-size:12px; color:var(--parchment-dim);}
.pc-tags{display:flex; gap:6px; flex-wrap:wrap;}
.tag-chip{font-size:11px; padding:2px 9px; border-radius:999px; background:var(--ink-700); color:var(--parchment-dim); border:1px solid var(--line);}
.pc-actions{display:flex; gap:8px; margin-top:auto; padding-top:8px;}
.pc-actions a{flex:1; text-align:center; padding:9px 0; border-radius:var(--radius-sm); font-size:13px; font-weight:600;}
.pc-actions .btn-open{background:var(--ink-700); border:1px solid var(--line); color:var(--parchment);}
.pc-actions .btn-open:hover{border-color:var(--gold-line);}
.pc-actions .btn-demo{background:var(--amber); color:var(--ink-950);}
.pc-actions .btn-demo:hover{background:#f2b657;}

/* ---------- Badges ---------- */
.badge{font-size:11px; padding:4px 11px; border-radius:999px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; white-space:nowrap;}
.badge-draft{background:rgba(138,144,168,.15); color:var(--status-draft);}
.badge-review{background:rgba(232,163,61,.15); color:var(--status-review);}
.badge-approved{background:rgba(79,184,166,.15); color:var(--status-approved);}
.badge-published{background:rgba(111,208,138,.15); color:var(--status-published);}
.badge-archived{background:rgba(91,98,128,.2); color:var(--status-archived);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  padding:11px 22px; border-radius:999px; font-size:14px; font-weight:600;
  border:1px solid var(--line); cursor:pointer; background:var(--ink-800); color:var(--parchment);
  font-family:inherit;
}
.btn:hover{border-color:var(--gold-line);}
.btn-amber{background:var(--amber); color:var(--ink-950); border-color:var(--amber);}
.btn-amber:hover{background:#f2b657;}
.btn-outline{background:transparent;}
.btn-danger{background:transparent; border-color:var(--rose); color:var(--rose);}
.btn-danger:hover{background:rgba(217,112,122,.12);}
.btn-block{width:100%;}
.btn-sm{padding:7px 14px; font-size:12px;}

/* ---------- Forms ---------- */
.form-card{
  max-width:520px; margin:0 auto; background:var(--ink-800); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:32px; box-shadow:var(--shadow-soft);
}
.form-wide{max-width:760px;}
label{display:block; font-size:13px; font-weight:600; margin:16px 0 6px; color:var(--parchment);}
label:first-child{margin-top:0;}
input[type=text], input[type=password], input[type=url], textarea, select{
  width:100%; padding:11px 14px; background:var(--ink-900); border:1px solid var(--line);
  border-radius:var(--radius-sm); color:var(--parchment); font-family:inherit; font-size:14px;
}
input:focus, textarea:focus, select:focus{outline:none; border-color:var(--gold-line);}
textarea{resize:vertical; min-height:100px; font-family:inherit;}
.field-hint{font-size:12px; color:var(--parchment-dim); margin-top:4px;}
.form-row{display:flex; gap:14px;}
.form-row > div{flex:1;}
.radio-tiles{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:6px;}
.radio-tile{border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; cursor:pointer; font-size:13px; background:var(--ink-900);}
.radio-tile input{width:auto; margin-right:8px;}
.radio-tile.checked{border-color:var(--amber); background:rgba(232,163,61,.08);}

/* ---------- Auth pages ---------- */
.auth-shell{display:flex; justify-content:center; padding-top:40px;}
.role-demo-box{margin-top:18px; font-size:12px; color:var(--parchment-dim); border-top:1px dashed var(--line); padding-top:14px;}
.role-demo-box code{color:var(--amber);}

/* ---------- Workspace ---------- */
.ws-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap;
  padding-bottom:20px; border-bottom:1px solid var(--line); margin-bottom:0;
}
.ws-lab-tag{font-size:12px; color:var(--amber); text-transform:uppercase; letter-spacing:1px;}
.ws-title{font-size:28px; margin:6px 0;}
.ws-tagline{color:var(--parchment-dim); font-size:14px;}
.ws-meta-row{display:flex; gap:18px; margin-top:12px; flex-wrap:wrap; font-size:13px; color:var(--parchment-dim);}
.ws-meta-row b{color:var(--parchment);}
.ws-actions{display:flex; gap:10px; flex-wrap:wrap;}

.tabs{display:flex; gap:4px; margin:22px 0 24px; border-bottom:1px solid var(--line); overflow-x:auto;}
.tabs a{padding:11px 18px; font-size:14px; color:var(--parchment-dim); border-bottom:2px solid transparent; white-space:nowrap;}
.tabs a:hover{color:var(--parchment);}
.tabs a.active{color:var(--amber); border-color:var(--amber); font-weight:600;}

.panel{background:var(--ink-800); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px;}
.panel + .panel{margin-top:16px;}

/* Overview */
.story-block h4{font-size:13px; text-transform:uppercase; letter-spacing:1px; color:var(--amber); margin:20px 0 8px;}
.story-block h4:first-child{margin-top:0;}
.story-block p{white-space:pre-wrap;}

/* Files */
.file-row{display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); font-size:13px;}
.file-row:last-child{border-bottom:none;}
.file-name{display:flex; align-items:center; gap:10px;}

/* Versions timeline */
.version-item{display:flex; gap:16px; padding:14px 0; border-bottom:1px solid var(--line);}
.version-item:last-child{border-bottom:none;}
.version-dot{width:10px; height:10px; border-radius:50%; background:var(--amber); margin-top:6px; flex-shrink:0;}
.version-label{font-weight:600; font-size:14px;}
.version-stage{font-size:11px; text-transform:uppercase; color:var(--parchment-dim); margin-left:8px;}
.version-note{font-size:13px; color:var(--parchment-dim); margin-top:4px;}
.version-time{font-size:12px; color:var(--parchment-dim); margin-top:4px;}

/* Reviews */
.review-item{padding:14px 0; border-bottom:1px solid var(--line);}
.review-item:last-child{border-bottom:none;}
.review-head{display:flex; gap:10px; align-items:center; font-size:13px;}
.review-action-tag{font-size:11px; padding:2px 9px; border-radius:999px; text-transform:uppercase; font-weight:600;}
.ra-approve{background:rgba(79,184,166,.15); color:var(--status-approved);}
.ra-request_changes{background:rgba(217,112,122,.15); color:var(--rose);}
.ra-comment{background:var(--ink-700); color:var(--parchment-dim);}
.ra-publish{background:rgba(111,208,138,.15); color:var(--status-published);}
.ra-archive{background:rgba(91,98,128,.2); color:var(--status-archived);}
.review-comment{font-size:13px; margin-top:6px; color:var(--parchment);}

.workflow-stepper{display:flex; align-items:center; gap:6px; margin-bottom:24px; flex-wrap:wrap;}
.wf-step{font-size:11px; padding:6px 12px; border-radius:999px; background:var(--ink-700); color:var(--parchment-dim); text-transform:uppercase; letter-spacing:.5px;}
.wf-step.done{background:rgba(79,184,166,.18); color:var(--status-approved);}
.wf-step.current{background:var(--amber); color:var(--ink-950); font-weight:700;}
.wf-arrow{color:var(--parchment-dim);}

/* ---------- Sandbox (Live Code) ---------- */
.sandbox-toolbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:12px;}
.sandbox-tabs{display:flex; gap:4px;}
.sandbox-tabs button{
  padding:8px 16px; border-radius:8px 8px 0 0; border:1px solid var(--line); border-bottom:none;
  background:var(--ink-900); color:var(--parchment-dim); font-family:'JetBrains Mono',monospace; font-size:12px; cursor:pointer;
}
.sandbox-tabs button.active{background:var(--ink-700); color:var(--amber);}
.sandbox-split{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; height:520px;}
.sandbox-editor-pane{position:relative; border-right:1px solid var(--line); background:var(--ink-900);}
.sandbox-editor-pane textarea{
  width:100%; height:100%; border:none; border-radius:0; background:var(--ink-900); color:#dbe4ff;
  font-family:'JetBrains Mono',monospace; font-size:13px; padding:16px; resize:none; line-height:1.6;
}
.sandbox-editor-pane textarea:focus{outline:none;}
.code-editor{display:none;}
.code-editor.active{display:block; height:100%;}
.sandbox-preview-pane{background:#fff; height:100%;}
.sandbox-preview-pane iframe{width:100%; height:100%; border:none;}
.sandbox-footer{display:flex; justify-content:space-between; align-items:center; margin-top:12px;}
.save-status{font-size:12px; color:var(--parchment-dim);}

/* Showcase clean mode */
.showcase-hero{text-align:center; padding:50px 20px 30px;}
.showcase-hero .page-eyebrow{justify-content:center;}
.showcase-filter{display:flex; gap:8px; justify-content:center; margin-bottom:30px; flex-wrap:wrap;}
.showcase-filter a{padding:7px 16px; border-radius:999px; border:1px solid var(--line); font-size:13px; color:var(--parchment-dim);}
.showcase-filter a.active{background:var(--amber); color:var(--ink-950); border-color:var(--amber); font-weight:600;}

.showcase-single{max-width:920px; margin:0 auto;}
.showcase-single-hero{text-align:center; padding:20px 0 30px; border-bottom:1px solid var(--line); margin-bottom:26px;}
.showcase-single-hero .pc-lab{display:block; margin-bottom:10px;}
.showcase-single-hero h1{font-size:34px;}
.showcase-authors{font-size:13px; color:var(--parchment-dim); margin-top:10px;}
.showcase-demo-frame{border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; height:560px; margin:20px 0; background:#fff;}
.showcase-demo-frame iframe{width:100%; height:100%; border:none;}

.empty-state{text-align:center; padding:60px 20px; color:var(--parchment-dim);}
.empty-state .icon{font-size:38px; display:block; margin-bottom:14px;}

@media (max-width: 880px){
  .topbar{flex-wrap:wrap; gap:12px;}
  .topnav{order:3; width:100%;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .sandbox-split{grid-template-columns:1fr; height:auto;}
  .sandbox-editor-pane{height:280px;}
  .sandbox-preview-pane{height:280px;}
}

/* ==========================================================
   OLYMPIA LAB — Identity layer 2026
   Built on top of the original Core Lab runtime UI.
   Official crest palette sampled from supplied Olympia logo:
   purple #743C94, gold #DBB740.
   ========================================================== */
:root{
  --olympia-purple:#743c94;
  --olympia-purple-deep:#4e2866;
  --olympia-purple-soft:#f2eaf6;
  --olympia-gold:#dbb740;
  --olympia-gold-deep:#b99122;
  --olympia-ink:#25222a;
  --olympia-muted:#6f6973;
  --olympia-bg:#f8f6f2;
  --olympia-paper:#ffffff;
  --olympia-line:#e7e0e8;
  --ink-950:#f8f6f2;
  --ink-900:#fff;
  --ink-800:#fff;
  --ink-700:#f4eef6;
  --ink-600:#e9dced;
  --line:#e7e0e8;
  --parchment:#25222a;
  --parchment-dim:#6f6973;
  --paper:#fff;
  --amber:#dbb740;
  --amber-dim:#b99122;
  --gold-line:#dbb740;
  --shadow-soft:0 14px 36px rgba(62,35,74,.08);
}
html{background:var(--olympia-bg);}
body{
  background:
    radial-gradient(900px 420px at 0% 0%,rgba(116,60,148,.07),transparent 65%),
    radial-gradient(800px 360px at 100% 5%,rgba(219,183,64,.10),transparent 62%),
    var(--olympia-bg);
  color:var(--olympia-ink);
  font-family:'Be Vietnam Pro','Segoe UI',Arial,sans-serif;
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.brand{font-family:'Be Vietnam Pro','Segoe UI',Arial,sans-serif;}
p{color:var(--olympia-muted);}
a{transition:.18s ease;}

/* Topbar / identity */
.topbar{
  padding:12px 30px;
  min-height:74px;
  gap:26px;
  border-bottom:1px solid rgba(116,60,148,.13);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(18px);
  box-shadow:0 4px 20px rgba(66,39,76,.04);
}
.brand{gap:12px;min-width:220px;}
.brand-logo{width:42px;height:42px;object-fit:contain;mix-blend-mode:multiply;}
.brand-copy{display:flex;flex-direction:column;line-height:1.12;}
.brand-copy strong{font-size:16px;color:var(--olympia-purple);letter-spacing:.2px;}
.brand-copy small{font-size:9px;letter-spacing:1.25px;text-transform:uppercase;color:#8a7f8c;margin-top:4px;font-weight:700;}
.topnav{gap:3px;align-items:center;}
.topnav a{color:#5f5662;padding:9px 12px;font-size:13px;font-weight:600;}
.topnav a:hover{background:var(--olympia-purple-soft);color:var(--olympia-purple);}
.topnav a.active{background:var(--olympia-purple);color:#fff;}
.topbar-right{margin-left:auto;}
.user-chip{background:#f8f4f9;border-color:#eadfed;padding:6px 10px;border-radius:12px;}
.user-stack{display:flex;flex-direction:column;gap:1px;}
.user-name{color:#403743;font-size:12px;}
.user-role{padding:0;background:transparent;font-size:9px;}
.user-role.role-admin{color:#a6405c}.user-role.role-teacher{color:var(--olympia-purple)}.user-role.role-student{color:#237d70}
.btn-ghost-sm,.btn-primary-sm{border-radius:10px;}
.btn-ghost-sm{color:#5f5662;border-color:#dfd5e1;background:#fff;}
.btn-primary-sm{background:var(--olympia-purple);border-color:var(--olympia-purple);color:#fff;}
.btn-primary-sm:hover{background:var(--olympia-purple-deep);}
.main-shell{max-width:1240px;padding:36px 32px 56px;}

/* Type */
.page-eyebrow,.section-kicker,.path-kicker{color:var(--olympia-purple);font-weight:800;letter-spacing:1.7px;}
.page-head h1{font-size:34px;color:#342b37;letter-spacing:-.8px;}
.page-desc{line-height:1.75;color:#706873;}
.inline-link,.text-link,.section-title a{color:var(--olympia-purple);font-weight:700;}
.section-title{align-items:flex-end;margin:44px 0 17px;}
.section-title h2{font-size:23px;color:#352d38;}
.section-kicker{display:block;font-size:10px;margin-bottom:5px;}
.compact-title{margin:0 0 12px;align-items:center;}

/* Buttons */
.btn{border-radius:11px;background:#fff;color:#4a414d;border:1px solid #ddd2df;box-shadow:none;}
.btn:hover{border-color:var(--olympia-purple);color:var(--olympia-purple);}
.btn-amber,.btn-gold{background:var(--olympia-gold);color:#33280b;border-color:var(--olympia-gold);font-weight:800;}
.btn-amber:hover,.btn-gold:hover{background:#e5c65f;color:#271e06;border-color:#e5c65f;}
.btn-lg{padding:13px 22px;font-size:14px;}
.btn-outline{background:#fff;color:#5b4f5f;border-color:#d9cedc;}
.btn-danger{color:#b13f55;border-color:#e4b6c0;background:#fff;}

/* Cards */
.stat-card,.lab-card,.project-card,.panel,.form-card{
  background:rgba(255,255,255,.96);
  border:1px solid var(--olympia-line);
  box-shadow:var(--shadow-soft);
}
.stat-card{border-radius:16px;padding:19px;}
.stat-card .num{font-family:'Be Vietnam Pro',sans-serif;color:var(--olympia-purple);font-size:30px;font-weight:800;}
.stat-card .label{color:#817684;}
.lab-card{border-radius:18px;min-height:205px;}
.lab-card:hover{border-color:rgba(116,60,148,.45);box-shadow:0 16px 34px rgba(70,35,86,.11);}
.lab-card .lab-branch-tag{background:#f3ecf6;color:var(--olympia-purple);}
.lab-card .lab-count,.project-card .pc-lab{color:var(--olympia-purple);}
.project-card{border-radius:18px;}
.project-card .pc-actions .btn-open{background:#f5eff7;border-color:#eadfed;color:var(--olympia-purple);}
.project-card .pc-actions .btn-demo{background:var(--olympia-gold);color:#30250b;}
.pc-meta,.pc-tags,.tag-chip{color:#756d78;}
.tag-chip{background:#f5f2f6;border-color:#e8e0ea;}
.panel{border-radius:18px;color:var(--olympia-ink);}

/* Home */
.home-hero{
  min-height:440px;
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:54px;align-items:center;
  margin:-36px -32px 34px;padding:62px 64px 56px;
  background:
    linear-gradient(115deg,rgba(80,36,105,.98),rgba(116,60,148,.96) 62%,rgba(97,45,125,.96)),
    var(--olympia-purple);
  position:relative;overflow:hidden;
}
.home-hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px);background-size:22px 22px;opacity:.33;}
.hero-copy,.hero-crest-wrap{position:relative;z-index:1;}
.home-hero .page-eyebrow{color:#f1d476;}
.home-hero h1{font-size:48px;line-height:1.13;letter-spacing:-1.8px;color:#fff;margin:9px 0 18px;max-width:700px;}
.home-hero h1 em{font-style:normal;color:#f0ce59;font-weight:700;}
.home-hero p{font-size:16px;line-height:1.8;color:rgba(255,255,255,.80);max-width:690px;}
.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:27px;}
.home-hero .btn-outline{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.36);color:#fff;}
.home-hero .btn-outline:hover{background:rgba(255,255,255,.15);}
.home-hero .text-link{color:#fff;padding:8px 4px;}
.hero-crest-wrap{display:flex;justify-content:center;}
.hero-crest-card{width:min(340px,100%);background:#fff;border:1px solid rgba(255,255,255,.35);padding:28px;border-radius:26px;box-shadow:0 24px 70px rgba(28,8,40,.25);text-align:center;}
.hero-crest-card img{display:block;width:210px;max-width:85%;height:210px;object-fit:contain;margin:0 auto 18px;mix-blend-mode:multiply;}
.hero-crest-card div{display:flex;justify-content:center;align-items:center;gap:10px;color:var(--olympia-purple);font-size:10px;letter-spacing:1.2px;}
.hero-crest-card div span{color:var(--olympia-gold);font-size:16px;}
.home-stats{margin-top:0;}
.pathway-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:30px 0 18px;}
.pathway-card{position:relative;display:flex;gap:18px;padding:24px;border:1px solid var(--olympia-line);background:#fff;border-radius:18px;min-height:230px;box-shadow:var(--shadow-soft);}
.pathway-card .path-no{font-size:12px;font-weight:800;color:#ac9cb0;}
.pathway-card h2{font-size:19px;margin:5px 0 10px;color:#3d3440;}
.pathway-card p{font-size:13px;line-height:1.7;margin-bottom:18px;}
.pathway-card a{font-size:13px;font-weight:800;color:var(--olympia-purple);}
.idea-path{border-top:4px solid var(--olympia-gold)}.build-path{border-top:4px solid var(--olympia-purple)}.impact-path{border-top:4px solid #6a9b86}
.values-section{display:grid;grid-template-columns:.85fr 1.65fr;gap:34px;margin:52px 0 22px;padding:34px;border-radius:22px;background:#4f2a66;color:#fff;}
.values-intro h2{font-size:24px;color:#fff}.values-intro p{color:rgba(255,255,255,.7)}.values-section .page-eyebrow{color:#f2d66f}
.values-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.value-mini{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:88px 1fr;gap:2px 8px;align-items:center;}
.value-mini span{grid-row:1/3;color:#f2d66f;font-size:9px;font-weight:800;letter-spacing:.8px}.value-mini strong{font-size:12px;color:#fff}.value-mini small{font-size:10px;color:rgba(255,255,255,.58)}

/* Forms */
.form-card{padding:32px;border-radius:20px;}
.form-xl{max-width:940px;}
.form-section{padding:6px 0 30px;border-bottom:1px solid #eee7ef;margin-bottom:26px;}
.form-section:last-of-type{border-bottom:none;}
.form-section-title{display:flex;gap:13px;align-items:flex-start;margin-bottom:20px;}
.form-section-title>span{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:10px;background:var(--olympia-purple);color:#fff;font-size:11px;font-weight:800;flex:0 0 auto;}
.form-section-title h3{font-size:17px;margin:0;color:#3b323e;}.form-section-title p{font-size:12px;margin:3px 0 0;}
label{color:#4a414d;font-size:12px;margin-top:15px;}
input[type=text],input[type=password],input[type=url],input[type=email],input[type=number],textarea,select{
  background:#fff;border:1px solid #ddd3df;color:#312a34;border-radius:10px;padding:11px 13px;font-family:'Be Vietnam Pro','Segoe UI',Arial,sans-serif;
}
input:focus,textarea:focus,select:focus{border-color:var(--olympia-purple);box-shadow:0 0 0 3px rgba(116,60,148,.08);}
input[type=file]{width:100%;padding:12px;border:1px dashed #d6c9da;border-radius:10px;background:#fbf9fc;color:#5c5260;}
.field-hint{color:#84798a;line-height:1.55;}
.form-row.thirds>div{flex:1;min-width:0;}
.radio-tiles{gap:9px;}.radio-tiles.two-col{grid-template-columns:repeat(2,1fr)}.radio-tiles.four-col{grid-template-columns:repeat(4,1fr)}
.radio-tile{background:#faf7fb;border-color:#e5dce8;color:#5c5260;margin:0;padding:11px 12px;border-radius:10px;}
.radio-tile:has(input:checked){border-color:var(--olympia-purple);background:#f2eaf6;color:var(--olympia-purple);}
.values-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px;}
.values-grid.compact{grid-template-columns:repeat(3,1fr);}
.value-choice{position:relative;margin:0;padding:14px 14px 13px 38px;border:1px solid #e4dbe7;border-radius:12px;background:#fff;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-height:82px;}
.value-choice input{position:absolute;left:14px;top:17px;accent-color:var(--olympia-purple);}
.value-choice:has(input:checked){border-color:var(--olympia-purple);background:#f5eef8;box-shadow:inset 0 0 0 1px rgba(116,60,148,.16)}
.value-choice .value-code{font-size:9px;color:var(--olympia-purple);font-weight:800;letter-spacing:.6px;}
.value-choice strong{font-size:13px;color:#463a49;}.value-choice small{font-size:10px;color:#8a7e8d;font-weight:500;}
.form-submit-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px;border-radius:16px;background:#f4eef6;border:1px solid #e6d8ea;}
.form-submit-bar div{display:flex;flex-direction:column;gap:3px}.form-submit-bar strong{color:#4c3158}.form-submit-bar span{font-size:11px;color:#817485;}
.success-shell{max-width:650px;margin:64px auto;text-align:center;background:#fff;border:1px solid var(--olympia-line);border-radius:24px;padding:48px;box-shadow:var(--shadow-soft)}
.success-mark{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#eaf7ef;color:#25844f;font-size:26px;font-weight:800;margin:0 auto 20px}.success-shell h1{font-size:31px}.success-shell .muted{font-size:13px}.success-actions{display:flex;justify-content:center;gap:10px;margin-top:24px;}

/* Project identity */
.identity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 20px;}
.identity-item{padding:13px 14px;border-radius:11px;background:#faf7fb;border:1px solid #ebe3ed;display:flex;flex-direction:column;gap:4px;min-width:0;}
.identity-item span{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:#938797;font-weight:800;}
.identity-item strong{font-size:12px;line-height:1.45;color:#443948;overflow-wrap:anywhere;}
.project-values{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 18px;}
.value-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;background:#f4edf7;border:1px solid #e4d8e8;border-radius:999px;color:#5a4264;font-size:10px;}
.value-badge b{color:var(--olympia-purple);font-size:8px;letter-spacing:.5px;}

/* Existing workspace converted to light shell */
.ws-head{color:#352d38;}.ws-title{color:#352d38;}.ws-lab-tag{color:var(--olympia-purple)}.ws-tagline,.ws-meta-row{color:#756d78}.workflow-stepper,.tabs{border-color:#e5dce8}.tabs a{color:#746b77}.tabs a.active{color:var(--olympia-purple);border-color:var(--olympia-purple)}
.badge-draft{background:#f1eff2;color:#6d6670}.badge-review{background:#fff5d8;color:#9b7414}.badge-approved{background:#e6f5f1;color:#237b6e}.badge-published{background:#e8f5ea;color:#3c7d4f}.badge-archived{background:#efedf2;color:#6c6570}

/* Keep code editor deliberately dark */
.sandbox-toolbar,.sandbox-editor-pane,.sandbox-editor-pane textarea{background:#17131c;color:#e7dfeb}.sandbox-tabs button{background:#211a29;color:#b9adbe}.sandbox-tabs button.active{background:#34253e;color:#f2d66f}.sandbox-split{border-color:#dcd1df;box-shadow:0 12px 28px rgba(52,27,63,.09)}

/* Admin */
.admin-nav,.subtabs{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:-8px 0 22px;padding:7px;background:#eee7f0;border:1px solid #e4d9e7;border-radius:13px;width:max-content;max-width:100%;}
.admin-nav a,.subtabs a{padding:8px 12px;border-radius:9px;color:#645969;font-size:12px;font-weight:700;}.admin-nav a.active,.subtabs a.active{background:var(--olympia-purple);color:#fff}.admin-nav a span{display:inline-block;margin-left:5px;padding:1px 6px;border-radius:99px;background:#fff3c5;color:#8d6a12;font-size:9px;}
.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;}.admin-split{display:grid;grid-template-columns:360px 1fr;gap:16px;align-items:start;}.admin-list-panel{padding:8px;max-height:75vh;overflow:auto;position:sticky;top:94px;}
.admin-list-row,.idea-admin-row{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid #eee8ef;color:#4e4551;}.admin-list-row:last-child,.idea-admin-row:last-child{border-bottom:0}.admin-list-row:hover,.idea-admin-row:hover,.idea-admin-row.selected{background:#f6eff8;border-radius:10px}.admin-list-row>div,.idea-admin-row>div{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.admin-list-row strong,.idea-admin-row strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-list-row span,.idea-admin-row span{font-size:10px;color:#897d8c}.idea-id{flex:0 0 34px;color:#aa99ae!important;font-weight:700}.mini-status{font-size:9px;padding:4px 7px;border-radius:999px;white-space:nowrap;background:#eee;color:#655}.status-idea-new{background:#fff1c9;color:#8c6811}.status-idea-reviewing{background:#efe6f5;color:#6d3d82}.status-idea-accepted{background:#e5f4eb;color:#36784e}.status-idea-declined{background:#f5e8e8;color:#985252}.status-idea-converted{background:#e8eef9;color:#466398}
.idea-review-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.idea-review-card h4{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--olympia-purple);margin-top:22px}.linked-panel{border-left:4px solid #4c9a6d}.conversion-panel{border-left:4px solid var(--olympia-gold)}
.admin-inline-form{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.admin-inline-form input,.admin-inline-form select{width:auto;min-width:130px;flex:1}.admin-records{display:grid;gap:12px;margin-top:16px}.admin-record-card{background:#fff;border:1px solid var(--olympia-line);border-radius:16px;padding:18px;box-shadow:var(--shadow-soft)}.compact-record{padding:14px}.record-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.record-heading>div{display:flex;flex-direction:column;gap:3px}.record-heading strong{color:#463b49}.record-heading span{font-size:10px;color:#918695}.record-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.switchline{display:flex;align-items:center;gap:7px;margin:0;color:#6d626f}.switchline input{accent-color:var(--olympia-purple)}.icon-field{max-width:80px}.order-field{max-width:90px}.values-admin-note{padding:17px 19px;border-radius:14px;background:#fff6d8;border:1px solid #edd786}.values-admin-note p{font-size:12px;margin-bottom:0}.admin-project-editor{padding:24px}.admin-filter-title{padding:8px 10px;color:#746a77;font-size:11px;}

/* Footer */
.site-footer{background:#fff;border-top:1px solid var(--olympia-line);padding:26px 32px;opacity:1;}
.footer-inner{max-width:1180px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:20px}.footer-brand{display:flex;align-items:center;gap:10px}.footer-brand img{width:36px;height:36px;object-fit:contain;mix-blend-mode:multiply}.footer-brand div{display:flex;flex-direction:column;text-align:left}.footer-brand strong{color:var(--olympia-purple);font-size:12px}.footer-brand span{font-size:10px;color:#958998}.footer-links{display:flex;gap:16px}.footer-links a{font-size:11px;color:#6c6170;font-weight:600}

/* Responsive */
@media(max-width:1020px){.home-hero{grid-template-columns:1fr;padding:50px 34px}.hero-crest-wrap{display:none}.pathway-grid{grid-template-columns:1fr 1fr}.values-section{grid-template-columns:1fr}.admin-split{grid-template-columns:300px 1fr}.identity-grid{grid-template-columns:repeat(2,1fr)}.radio-tiles.four-col{grid-template-columns:repeat(2,1fr)}.values-grid.compact{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.topbar{padding:10px 16px;gap:8px}.brand{min-width:auto}.brand-copy small{display:none}.topnav{width:100%;order:3;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.topnav a{white-space:nowrap}.topbar-right{margin-left:auto}.user-name{display:none}.main-shell{padding:24px 16px 42px}.home-hero{margin:-24px -16px 24px;padding:42px 20px}.home-hero h1{font-size:36px}.stat-grid{grid-template-columns:repeat(2,1fr)}.pathway-grid{grid-template-columns:1fr}.form-row,.form-row.thirds{flex-direction:column;gap:0}.radio-tiles.two-col,.radio-tiles.four-col,.values-grid,.values-grid.compact{grid-template-columns:1fr}.form-card{padding:22px 16px}.form-submit-bar{flex-direction:column;align-items:stretch}.form-submit-bar .btn{width:100%}.values-section{padding:24px 18px}.values-strip{grid-template-columns:1fr}.admin-columns{grid-template-columns:1fr}.admin-split{grid-template-columns:1fr}.admin-list-panel{position:static;max-height:420px}.admin-inline-form{display:grid;grid-template-columns:1fr}.admin-inline-form input,.admin-inline-form select{width:100%}.identity-grid{grid-template-columns:1fr 1fr}.footer-inner{flex-direction:column}.footer-links{flex-wrap:wrap;justify-content:center}}
@media(max-width:460px){.topbar-right .btn-ghost-sm{display:none}.brand-logo{width:36px;height:36px}.brand-copy strong{font-size:14px}.home-hero h1{font-size:31px}.identity-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.values-section{border-radius:16px}.success-shell{padding:32px 18px;margin:30px auto}.idea-review-top{flex-direction:column}.admin-nav{width:100%;overflow-x:auto;flex-wrap:nowrap}.admin-nav a{white-space:nowrap}}
.role-fixed-box{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #e4d9e7;background:#f7f2f8;border-radius:10px}.role-fixed-box strong{font-size:13px;color:var(--olympia-purple)}.role-fixed-box span{font-size:10px;color:#85798a;line-height:1.5}.card-values{margin:0}.card-values .value-badge{padding:4px 7px;font-size:9px}


/* ===== Fresh Olympia 2026: bright school palette + portfolios ===== */
:root{--olympia-purple:#743c94;--olympia-purple-deep:#542768;--olympia-purple-pale:#f5eef8;--olympia-gold:#dbb740;--olympia-gold-pale:#fff8dc;--olympia-cream:#fbfaf7;--olympia-text:#312b34;--olympia-soft:#766e79;}
body{background:linear-gradient(180deg,#fff 0,#fbfaf7 48%,#fff 100%);}
.main-shell{max-width:1280px;}
.btn-purple{background:var(--olympia-purple);border-color:var(--olympia-purple);color:#fff}.btn-purple:hover{background:var(--olympia-purple-deep);color:#fff;border-color:var(--olympia-purple-deep)}
.bright-hero{background:linear-gradient(135deg,#fff 0%,#fff 58%,#f7f0fa 58%,#f7f0fa 100%);color:var(--olympia-text);border-bottom:1px solid #eee4f0;min-height:470px;}
.bright-hero:before{background-image:radial-gradient(rgba(116,60,148,.10) 1px,transparent 1px);opacity:.55}.bright-hero .page-eyebrow{color:var(--olympia-purple)}.bright-hero h1{color:#342b37;font-size:52px}.bright-hero h1 em{color:var(--olympia-purple)}.bright-hero p{color:#6d6571}.bright-hero .text-link{color:var(--olympia-purple)}
.hero-visual{position:relative;min-height:350px}.brand-shape{position:absolute;border-radius:34px}.shape-purple{width:265px;height:270px;background:var(--olympia-purple);right:12%;top:16px;transform:rotate(8deg)}.shape-gold{width:220px;height:230px;background:var(--olympia-gold);right:2%;bottom:4px;transform:rotate(-8deg)}.crest-float{position:absolute;width:260px;height:285px;right:14%;top:34px;background:#fff;border:1px solid #eadfec;border-radius:28px;box-shadow:0 24px 65px rgba(69,34,82,.17);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;z-index:2}.crest-float img{width:175px;height:175px;object-fit:contain;mix-blend-mode:multiply}.crest-float strong{font-size:10px;letter-spacing:1.4px;color:var(--olympia-purple);margin-top:13px}.crest-float span{font-size:10px;color:#988c9c;margin-top:4px}
.bright-values{background:linear-gradient(135deg,#faf5fc,#fff8d9);color:var(--olympia-text);border:1px solid #eadfed}.bright-values .page-eyebrow{color:var(--olympia-purple)}.bright-values .values-intro h2{color:#3b303f}.bright-values .values-intro p{color:#716777}.bright-values .value-mini{background:#fff;border-color:#eadfed}.bright-values .value-mini span{color:var(--olympia-purple)}.bright-values .value-mini strong{color:#463b49}.bright-values .value-mini small{color:#8b808e}
.portfolio-hero{padding:54px 40px;border-radius:28px;background:linear-gradient(120deg,#f7effa,#fff 55%,#fff6d2);border:1px solid #eee2f0;margin-bottom:24px;position:relative;overflow:hidden}.portfolio-hero:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;background:var(--olympia-gold);opacity:.25;right:-40px;top:-50px}.portfolio-hero h1{font-size:46px;line-height:1.1;color:#382e3b}.portfolio-hero h1 em{font-style:normal;color:var(--olympia-purple)}.portfolio-hero p{max-width:760px;font-size:15px}.portfolio-switch{display:flex;gap:7px;padding:6px;background:#f3edf5;border:1px solid #e7dce9;border-radius:13px;width:max-content}.portfolio-switch a{padding:8px 15px;border-radius:9px;font-size:12px;font-weight:700;color:#675d6a}.portfolio-switch a.active{background:#fff;color:var(--olympia-purple);box-shadow:0 3px 10px rgba(73,37,87,.08)}
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.person-card{display:flex;gap:16px;padding:22px;background:#fff;border:1px solid var(--olympia-line);border-radius:20px;box-shadow:var(--shadow-soft)}.person-card:hover{transform:translateY(-2px);border-color:#d8c5dd}.person-avatar{width:52px;height:52px;border-radius:18px;background:var(--olympia-purple-pale);display:grid;place-items:center;font-size:24px;flex:0 0 auto}.person-card h3{font-size:17px;margin:3px 0 5px}.person-card p{font-size:12px;margin:0 0 11px}.person-grade{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:var(--olympia-purple);font-weight:800}.person-meta{display:flex;gap:8px}.person-meta span{font-size:9px;padding:4px 7px;border-radius:999px;background:#f7f3f8;color:#746779}
.project-portfolio,.student-portfolio{max-width:1120px;margin:0 auto}.portfolio-project-hero{display:grid;grid-template-columns:1fr 190px;gap:40px;align-items:center;padding:46px;border-radius:28px;background:linear-gradient(130deg,#fff,#f7f0fa);border:1px solid #eadfed}.portfolio-type{display:block;font-size:10px;font-weight:800;letter-spacing:1.4px;color:var(--olympia-purple);margin-bottom:10px}.portfolio-project-hero h1,.student-portfolio-hero h1{font-size:45px;line-height:1.08;color:#342b37}.portfolio-lead{font-size:16px;line-height:1.75;max-width:760px}.portfolio-hero-meta{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0}.portfolio-hero-meta span{font-size:10px;padding:6px 9px;border-radius:999px;background:#fff;border:1px solid #e5d9e7;color:#675c6b}.project-portfolio-mark{width:175px;height:175px;border-radius:38px;background:var(--olympia-purple);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:16px 16px 0 var(--olympia-gold)}.project-portfolio-mark>span{font-size:54px}.project-portfolio-mark small{font-size:9px;letter-spacing:1.4px;margin-top:8px}.portfolio-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.portfolio-facts>div{padding:17px;border-radius:15px;background:#fff;border:1px solid #ebe3ed;display:flex;flex-direction:column;gap:6px}.portfolio-facts span{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:#958999;font-weight:800}.portfolio-facts strong{font-size:12px;color:#433847}.portfolio-facts a{color:var(--olympia-purple)}
.portfolio-values{margin:34px 0;padding:30px;border-radius:22px;background:#fff8db;border:1px solid #efde95;display:grid;grid-template-columns:280px 1fr;gap:28px}.portfolio-values h2{font-size:22px}.portfolio-values p{font-size:12px}.portfolio-value-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.portfolio-value-list>div{display:grid;grid-template-columns:72px 1fr;gap:2px 8px;align-items:center;background:#fff;border:1px solid #eee1b9;border-radius:12px;padding:11px}.portfolio-value-list b{grid-row:1/3;font-size:8px;letter-spacing:.5px;color:var(--olympia-purple)}.portfolio-value-list strong{font-size:11px}.portfolio-value-list small{font-size:9px;color:#91836b}
.portfolio-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:28px 0}.portfolio-story-card{padding:28px;background:#fff;border:1px solid var(--olympia-line);border-radius:20px}.portfolio-story-card>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--olympia-purple);color:#fff;font-size:10px;font-weight:800;margin-bottom:14px}.portfolio-story-card h2{font-size:18px}.portfolio-story-card p{font-size:13px;white-space:normal}.portfolio-section{margin:38px 0;padding-top:26px;border-top:1px solid #eee6ef}.portfolio-section h2{font-size:23px}.team-chips{display:flex;gap:8px;flex-wrap:wrap}.team-chips span{padding:9px 12px;border-radius:999px;background:#f5eef8;color:#5f4569;font-size:11px}.journey-line{position:relative;margin-top:20px}.journey-line:before{content:"";position:absolute;left:8px;top:10px;bottom:14px;width:2px;background:#e1d2e5}.journey-node{display:grid;grid-template-columns:18px 1fr;gap:16px;position:relative;padding-bottom:22px}.journey-node>span{width:18px;height:18px;border:5px solid #f7effa;border-radius:50%;background:var(--olympia-purple);z-index:2}.journey-node b{font-size:12px}.journey-node small{display:block;font-size:9px;color:#938598;margin-top:2px}.journey-node p{font-size:11px;margin:5px 0 0}
.student-portfolio-hero{display:flex;align-items:center;gap:28px;padding:42px;border-radius:28px;background:linear-gradient(120deg,#fff,#faf4fc 62%,#fff4c5);border:1px solid #eadfed}.student-avatar-xl{width:110px;height:110px;border-radius:30px;background:#fff;border:1px solid #e5d8e7;box-shadow:10px 10px 0 var(--olympia-gold);display:grid;place-items:center;font-size:48px;flex:0 0 auto}.portfolio-intro-card{margin:18px 0;padding:26px 30px;border-radius:18px;background:#fff;border:1px solid var(--olympia-line)}.portfolio-intro-card>p{font-size:14px;max-width:850px}.interest-line{font-size:11px;color:#6f6573}.student-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.student-summary>div{padding:20px;background:#fff;border:1px solid var(--olympia-line);border-radius:16px;display:flex;flex-direction:column}.student-summary strong{font-size:28px;color:var(--olympia-purple)}.student-summary span{font-size:10px;color:#8a7f8d;text-transform:uppercase;letter-spacing:.6px}.student-values{background:#f7f0fa;border-color:#e4d6e8}
.portfolio-admin-box{background:#fbf8fc!important;border:1px solid #e8dceb!important;border-radius:16px;padding:20px;margin:18px 0}.portfolio-switches{display:flex;gap:20px;flex-wrap:wrap;margin-top:16px}.admin-section{padding:4px 0 26px;margin-bottom:24px;border-bottom:1px solid #eee6ef}.admin-section h3{font-size:15px;color:var(--olympia-purple);margin-bottom:14px}.admin-head-actions,.record-actions-top{display:flex;gap:8px;align-items:center}.btn-quiet{font-size:10px;color:#817485;padding:6px}.setup-shell{max-width:620px;margin:20px auto 70px}.setup-brand{text-align:center;margin-bottom:24px}.setup-brand img{width:110px;height:110px;object-fit:contain;mix-blend-mode:multiply}.setup-brand>span{display:block;font-size:9px;letter-spacing:1.4px;color:var(--olympia-purple);font-weight:800}.setup-brand h1{font-size:32px;margin:8px 0}.setup-brand p{font-size:13px}.record-actions-top{justify-content:flex-end}
@media(max-width:980px){.bright-hero{grid-template-columns:1fr}.hero-visual{display:none}.people-grid{grid-template-columns:1fr 1fr}.portfolio-values{grid-template-columns:1fr}.portfolio-project-hero{grid-template-columns:1fr}.project-portfolio-mark{display:none}.portfolio-facts{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.bright-hero h1{font-size:38px}.portfolio-hero{padding:34px 22px}.portfolio-hero h1{font-size:36px}.people-grid{grid-template-columns:1fr}.portfolio-project-hero,.student-portfolio-hero{padding:28px 20px}.portfolio-project-hero h1,.student-portfolio-hero h1{font-size:34px}.student-portfolio-hero{align-items:flex-start;flex-direction:column}.student-avatar-xl{width:78px;height:78px;font-size:34px}.portfolio-facts{grid-template-columns:1fr 1fr}.portfolio-story-grid{grid-template-columns:1fr}.portfolio-value-list{grid-template-columns:1fr}.student-summary{grid-template-columns:1fr 1fr 1fr}.admin-head-actions{flex-wrap:wrap}}


/* ---- V4 enhancements: interdisciplinary labs, admin polish, bold homepage ---- */
.subtabs,.admin-nav{width:100%;max-width:100%;flex-wrap:wrap;overflow:visible}
.subtabs a,.admin-nav a{white-space:normal;line-height:1.25;text-align:center}
.panel{overflow:hidden}
.admin-record-card .form-row{flex-wrap:wrap}
.admin-inline-form{width:100%}
.admin-inline-form > *{min-width:0}

.labs-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:8px}
.labs-checkbox-grid.compact{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.mini-check-card{display:flex;flex-direction:column;gap:4px;padding:12px 12px 11px;border:1px solid #e4d9e7;border-radius:14px;background:#fff;cursor:pointer;min-height:92px;position:relative}
.mini-check-card input{position:absolute;right:10px;top:10px;accent-color:var(--olympia-purple)}
.mini-check-card span{font-size:22px;line-height:1}
.mini-check-card strong{font-size:13px;color:#3e3542;line-height:1.35;padding-right:20px}
.mini-check-card small{font-size:11px;color:#8d8390;text-transform:uppercase;letter-spacing:.8px}
.mini-check-card:hover{border-color:#cdb9d6;box-shadow:0 8px 18px rgba(90,56,106,.08)}

.home-labs .lab-card,.lab-grid .lab-card{background:#fff;border:1px solid #eadfec;border-radius:24px;box-shadow:0 14px 40px rgba(90,56,106,.08);padding:28px 26px 22px;min-height:240px}
.home-labs .lab-card:hover,.lab-grid .lab-card:hover{transform:translateY(-5px);border-color:#d0b4db;box-shadow:0 18px 42px rgba(97,58,118,.12)}
.home-labs .lab-card::before,.lab-grid .lab-card::before{content:"";position:absolute;inset:0 0 auto 0;height:120px;background:linear-gradient(135deg,rgba(116,60,148,.08),rgba(219,183,64,.06));opacity:.9}
.home-labs .lab-card > *,.lab-grid .lab-card > *{position:relative;z-index:1}
.home-labs .lab-card:nth-child(5n+1),.lab-grid .lab-card:nth-child(5n+1){background:linear-gradient(180deg,#fff 0%,#fbf7ff 100%)}
.home-labs .lab-card:nth-child(5n+2),.lab-grid .lab-card:nth-child(5n+2){background:linear-gradient(180deg,#fff 0%,#f7fbff 100%)}
.home-labs .lab-card:nth-child(5n+3),.lab-grid .lab-card:nth-child(5n+3){background:linear-gradient(180deg,#fff 0%,#fff9ee 100%)}
.home-labs .lab-card:nth-child(5n+4),.lab-grid .lab-card:nth-child(5n+4){background:linear-gradient(180deg,#fff 0%,#f7fffb 100%)}
.home-labs .lab-card:nth-child(5n+5),.lab-grid .lab-card:nth-child(5n+5){background:linear-gradient(180deg,#fff 0%,#fff6fa 100%)}
.lab-card .lab-icon{font-size:34px;margin:8px 0 16px}
.lab-card h3{font-size:18px;color:#332c36;margin-bottom:10px}
.lab-card p{font-size:14px;color:#736b76;line-height:1.65;max-width:29ch}
.lab-card .lab-count{font-size:13px;color:var(--olympia-purple);font-weight:800}
.lab-branch-tag{background:#f2eaf6;color:var(--olympia-purple);font-weight:800;padding:6px 11px;font-size:11px}

.flow-showcase{margin:30px 0 18px}
.flow-card{background:linear-gradient(160deg,#6e45a0 0%,#7e5ab0 55%,#7443a0 100%);border-radius:34px;padding:34px 34px 28px;position:relative;color:#fff;overflow:hidden;box-shadow:0 25px 60px rgba(74,33,111,.22)}
.flow-card::before{content:"";position:absolute;right:-70px;top:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14),rgba(255,255,255,0));}
.flow-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;position:relative;z-index:1}
.flow-header h2{color:#fff;font-size:30px}
.flow-pill{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);font-weight:700;color:#dff3e8}
.flow-steps{display:grid;gap:16px;margin:26px 0 26px;max-width:540px;position:relative;z-index:1}
.flow-step{display:flex;align-items:center;gap:16px;color:#f1e7fb}
.flow-step span{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.11);font-weight:800}
.flow-step.active span{background:#f0c544;color:#5a3e00}
.flow-step strong{display:block;font-size:20px;color:#fff;margin-bottom:4px}
.flow-step small{font-size:14px;color:#dcccf1}
.flow-note{background:#fff;border-radius:20px;padding:18px 22px;max-width:640px;position:relative;z-index:1}
.flow-note strong{display:block;color:#5d3485;font-size:14px;letter-spacing:.8px;margin-bottom:6px}
.flow-note span{color:#6d6275}

.dramatic-home .hero-copy p{max-width:700px}
.project-values.card-values,.lab-tags{display:flex;gap:6px;flex-wrap:wrap}

@media(max-width:760px){
  .flow-card{padding:24px 20px;border-radius:24px}
  .flow-header{flex-direction:column}
  .flow-header h2{font-size:24px}
  .flow-step strong{font-size:18px}
  .subtabs,.admin-nav{padding:8px}
  .subtabs a,.admin-nav a{flex:1 1 140px}
}


/* ---- V4.1 homepage rebuild ---- */
.home-flow-wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:18px;margin:34px 0 18px;align-items:stretch}
.flow-card-hero{min-height:100%;padding:38px 36px 30px;border-radius:30px}
.flow-card-hero .section-kicker.light{color:#e9d8fa}
.flow-card-hero p{color:rgba(255,255,255,.82);max-width:640px;font-size:15px;line-height:1.75;margin:10px 0 0}
.home-side-stack{display:grid;gap:14px}
.side-info-card{border-radius:24px;padding:24px 22px;background:#fff;border:1px solid #e8dcec;box-shadow:0 16px 34px rgba(79,40,99,.08)}
.side-info-card h3{font-size:22px;color:#352c38;margin:6px 0 10px}
.side-info-card p{font-size:14px;line-height:1.7;color:#746b77;margin:0}
.mini-kicker{display:inline-flex;font-size:10px;letter-spacing:1.25px;font-weight:800;color:var(--olympia-purple);text-transform:uppercase}
.side-info-card.accent-gold{background:linear-gradient(180deg,#fffaf0,#fff)}
.side-info-card.accent-gold .mini-kicker{color:#b28718}
.side-info-card.accent-purple{background:linear-gradient(180deg,#fbf7ff,#fff)}
.side-info-card.accent-soft{background:linear-gradient(180deg,#f7fbff,#fff)}
.labs-showcase-head .section-title{margin-top:44px}
.labs-showcase-head .page-desc{margin-top:6px;max-width:720px}
.home-labs{margin-top:8px}
.home-stats .stat-card{background:#fff;border:1px solid #eadfec;box-shadow:0 14px 34px rgba(69,35,82,.07)}
.home-stats .stat-card .num{color:var(--olympia-purple)}
.home-stats .stat-card .label{color:#857a87}
.pathway-grid{margin-top:22px}
.pathway-card{background:#fff;border:1px solid #eadfec;box-shadow:0 16px 34px rgba(69,35,82,.06)}
.pathway-card:hover{transform:translateY(-3px)}
@media(max-width:1000px){.home-flow-wrap{grid-template-columns:1fr}.home-side-stack{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.home-side-stack{grid-template-columns:1fr}.flow-card-hero{padding:28px 22px 24px}.side-info-card{padding:20px 18px}.labs-showcase-head .section-title{margin-top:30px}}


/* ---- V4.2 homepage declutter ---- */
.home-featured-head{margin-top:34px}
.home-featured-head .page-desc{margin-top:8px;max-width:760px}


/* ---- V4.3 premium homepage & featured ---- */
.brand-copy small{font-size:10px;letter-spacing:1.45px}
.home-road-section{margin:30px 0 40px;padding:34px 28px 28px;border-radius:34px;background:#27153d;color:#fff;box-shadow:0 26px 60px rgba(31,11,51,.22)}
.home-road-head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:28px;align-items:end;margin-bottom:26px}
.home-road-head h2{font-family:'Playfair Display',serif;font-size:62px;line-height:.95;letter-spacing:-1.5px;color:#fff;margin:10px 0 0}
.home-road-head p{font-size:17px;line-height:1.8;color:rgba(240,233,247,.9);max-width:520px;margin:0 0 8px auto}
.section-kicker.gold{color:#f2c84a}
.journey-road{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 24px}
.road-step{position:relative;padding:18px 18px 16px;border-radius:20px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09)}
.road-step span{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.12);font-weight:800;color:#fff;margin-bottom:16px}
.road-step.active span{background:#f0c544;color:#523500}
.road-step strong{display:block;font-size:20px;color:#fff;margin-bottom:6px}
.road-step small{display:block;font-size:13px;line-height:1.55;color:#d5c8e3}
.format-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:8px}
.format-card{padding:30px 28px;border-radius:24px;background:#3a2853;border:1px solid rgba(255,255,255,.09)}
.format-card h3{font-family:'Playfair Display',serif;font-size:28px;color:#fff;margin:18px 0 12px}
.format-card p{font-size:15px;line-height:1.7;color:#d9cde8;margin:0}
.format-icon{width:52px;height:52px;border-radius:16px;background:#fff;color:var(--olympia-purple);display:grid;place-items:center;font-weight:800;font-size:24px}
.home-road-cta{margin-top:22px;padding:28px 30px;border-radius:28px;background:linear-gradient(135deg,#7848c2,#9a6ed0);display:flex;justify-content:space-between;gap:18px;align-items:center}
.home-road-cta h3{font-family:'Playfair Display',serif;font-size:54px;line-height:1;color:#fff;margin:10px 0 10px}
.home-road-cta p{font-size:16px;color:#f4eefe;max-width:640px;margin:0}
.btn-light{background:#fff;color:var(--olympia-purple);border-color:#fff}
.btn-light:hover{background:#f7f3fb}
.page-desc{font-size:15px;line-height:1.72;color:#726879;max-width:760px}
.featured-projects-showcase{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;margin-top:16px;align-items:start}
.featured-hero-card{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:24px;padding:32px;border-radius:30px;background:linear-gradient(135deg,#fff,#faf4fc 60%,#fff5cf);border:1px solid #eadfed;box-shadow:0 22px 52px rgba(70,35,86,.1)}
.featured-lab-line{font-size:12px;font-weight:800;color:var(--olympia-purple);letter-spacing:.9px;text-transform:uppercase;margin:8px 0 10px}
.featured-hero-card h3{font-family:'Playfair Display',serif;font-size:44px;line-height:1;color:#34293a;margin:0 0 12px}
.featured-hero-card p{font-size:16px;line-height:1.78;color:#6e6572;max-width:720px}
.featured-value-row{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.featured-meta-row{display:flex;gap:10px;flex-wrap:wrap;color:#7c7080;font-size:12px;font-weight:600;margin:14px 0 18px}
.featured-meta-row span{padding:7px 10px;border-radius:999px;background:#f4edf7;border:1px solid #eadfed}
.featured-cta-row{display:flex;gap:10px;flex-wrap:wrap}
.featured-hero-mark{width:180px;height:180px;border-radius:36px;background:var(--olympia-purple);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:16px 16px 0 var(--olympia-gold)}
.featured-hero-mark span{font-size:60px;line-height:1}.featured-hero-mark small{font-size:10px;letter-spacing:1.4px;text-align:center;margin-top:10px}
.featured-side-grid{display:grid;grid-template-columns:1fr;gap:16px}
.featured-side-grid .project-card{min-height:205px}
.home-featured-head .section-title{margin-bottom:0}
@media(max-width:1180px){.format-card-grid{grid-template-columns:repeat(2,1fr)}.journey-road{grid-template-columns:repeat(2,1fr)}.featured-projects-showcase{grid-template-columns:1fr}.featured-side-grid{grid-template-columns:repeat(2,1fr)}.home-road-head h2{font-size:54px}}
@media(max-width:900px){.home-road-head{grid-template-columns:1fr}.home-road-head p{margin:0;max-width:none}.home-road-cta{flex-direction:column;align-items:flex-start}.home-road-cta h3{font-size:42px}.featured-hero-card{grid-template-columns:1fr}.featured-hero-mark{display:none}}
@media(max-width:680px){.home-road-section{padding:24px 18px 18px;border-radius:24px}.home-road-head h2{font-size:40px}.journey-road,.format-card-grid,.featured-side-grid{grid-template-columns:1fr}.format-card{padding:22px 20px}.format-card h3{font-size:24px}.home-road-cta{padding:22px 18px}.home-road-cta h3{font-size:34px}.featured-hero-card{padding:24px 20px}.featured-hero-card h3{font-size:34px}}


/* ---- V4.5 public content layer ---- */
.compact-cta{padding:24px 28px}.compact-cta h3{margin-bottom:0}.footer-version{display:flex;align-items:center;gap:8px;font-size:10px;color:#8b7f8f}.footer-version b{padding:5px 8px;border-radius:999px;background:#f2eaf6;color:var(--olympia-purple)}
.about-hero,.news-hero{padding:54px 42px;border-radius:30px;background:linear-gradient(120deg,#fff,#faf4fc 62%,#fff5cf);border:1px solid #eadfed;margin-bottom:24px}.about-hero h1,.news-hero h1{font-family:'Playfair Display',serif;font-size:50px;line-height:1.05;color:#332a37;max-width:920px}.about-hero p,.news-hero p{font-size:16px;line-height:1.8;max-width:800px}.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.about-grid article{padding:28px;border-radius:22px;background:#fff;border:1px solid #e9dfea;box-shadow:var(--shadow-soft)}.about-grid article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--olympia-purple);color:#fff;font-size:11px;font-weight:800}.about-grid h2{font-size:21px;margin-top:16px}.about-grid p{font-size:14px;line-height:1.75}.about-signature{display:flex;align-items:center;gap:20px;padding:24px 28px;border-radius:22px;background:#27153d;color:#fff}.about-signature img{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:18px;padding:6px}.about-signature div{display:flex;flex-direction:column}.about-signature span{font-size:10px;letter-spacing:1.4px;color:#e4d2ef}.about-signature strong{font-family:'Playfair Display',serif;font-size:28px}.about-signature small{color:#cdbede}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.news-card{display:flex;flex-direction:column;gap:12px;padding:24px;background:#fff;border:1px solid #e9dfea;border-radius:20px;box-shadow:var(--shadow-soft)}.news-card:hover{transform:translateY(-2px);border-color:#d7c2de}.news-card>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.news-version{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;background:#f2eaf6;color:var(--olympia-purple);font-size:10px;font-weight:800;letter-spacing:.6px}.news-card small{font-size:10px;color:#968b99}.news-card h2{font-size:20px;margin:0}.news-card p{font-size:13px;margin:0;flex:1}.news-card b{font-size:12px;color:var(--olympia-purple)}.news-detail{max-width:860px;margin:0 auto;padding:26px 0 60px}.news-detail h1{font-family:'Playfair Display',serif;font-size:48px;line-height:1.08;margin-top:16px}.news-lead{font-size:18px;line-height:1.7}.news-body{margin:28px 0;padding:28px;background:#fff;border:1px solid #e9dfea;border-radius:20px;line-height:1.85;color:#514856}.content-editor{max-width:900px}.content-editor label{margin-top:18px}.content-editor .btn{margin-top:20px}
@media(max-width:900px){.about-grid,.news-grid{grid-template-columns:1fr}.about-hero h1,.news-hero h1{font-size:40px}.footer-version{justify-content:center}}

/* V4.6 upload-readiness */
.version-snapshot-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:7px}.version-snapshot-meta span{font-size:10px;padding:4px 7px;border-radius:999px;background:#f5eff7;color:#745d7c}.version-snapshot-meta a{font-size:10px;color:var(--olympia-purple);font-weight:800}.html-import-panel{background:linear-gradient(135deg,#fff,#faf5fc)!important;border-color:#e4d7e8!important}.snapshot-code-grid{display:grid;grid-template-columns:1fr;gap:14px}.snapshot-code-grid textarea{font-family:'JetBrains Mono',monospace;font-size:12px;background:#fbf9fc}.success-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px 0}

.external-forward-box{margin-top:12px;padding:14px 16px;border:1px solid #e5d8e8;border-radius:14px;background:#fbf7fc;display:flex;flex-direction:column;gap:4px}.external-forward-box span{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#8b7e8f;font-weight:800}.external-forward-box strong a{color:var(--olympia-purple);font-size:13px}.external-forward-box small{font-size:11px;color:#8b808e}
.mentor-list{display:grid;gap:12px}.mentor-assignment{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--olympia-line);border-radius:16px;background:#fff}.mentor-assignment strong{display:block;color:#3f3543}.mentor-assignment span{font-size:11px;color:#8b808e}.mentor-assignment .badge{margin-left:auto}
