/* ============================================================
   EngPath — shared stylesheet (multi-page)
   Academic identity · deep green + white
   ============================================================ */
:root{
  --paper:#FAF8F2; --paper-2:#F1EEE4; --white:#FFFFFF;
  --ink:#1A2620; --ink-soft:#40514A; --muted:#6C7A70;
  --green:#16422E; --green-2:#2E6B4C; --green-3:#4E8C6A; --green-tint:#EAF1EC;
  --green-line:rgba(22,66,46,.14); --hair:#E2E1D5; --hair-2:#D5D8CC;
  --field:#FFFFFF; --field-line:#CBD2C8; --good:#2E6B4C; --danger:#B23A2E;
  --warn:#B4791F;
  --shadow-sm:0 1px 2px rgba(30,45,35,.05);
  --shadow:0 2px 6px rgba(30,45,35,.05),0 20px 44px -26px rgba(20,50,35,.30);
  --wrap:1180px;
  --serif:"Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --sans:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
img{max-width:100%;display:block;} a{color:inherit;text-decoration:none;} svg{display:block;}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:700;letter-spacing:-.005em;line-height:1.12;text-wrap:balance;}
p{margin:0;}

.eyebrow{font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--green-2);display:inline-flex;align-items:center;gap:.7em;}
.eyebrow::before{content:"";width:30px;height:2px;background:var(--green-2);border-radius:2px;}
.lead{color:var(--ink-soft);font-size:1.08rem;max-width:62ch;}

.wrap{width:min(var(--wrap),92vw);margin-inline:auto;}
.section{padding-block:clamp(52px,7vw,92px);}
.shead{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(28px,4vw,48px);max-width:64ch;}
.shead h2{font-size:clamp(1.9rem,4vw,2.8rem);}
.rule{display:flex;align-items:center;gap:16px;font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;}
.rom{color:var(--green-2);}
.rule .ln{flex:1;height:1px;background:var(--hair-2);}
.band{background:var(--paper-2);border-block:1px solid var(--hair);}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;cursor:pointer;font-family:var(--sans);font-weight:650;font-size:.94rem;padding:12px 22px;border-radius:2px;border:1px solid transparent;transition:transform .12s,box-shadow .16s,background .16s,color .16s,border-color .16s;}
.btn svg{width:16px;height:16px;}
.btn-primary{background:var(--green);color:#fff;box-shadow:0 10px 22px -12px rgba(22,66,46,.7);}
.btn-primary:hover{background:#0f3323;transform:translateY(-1px);}
.btn-ghost{border-color:var(--field-line);color:var(--ink);background:var(--white);}
.btn-ghost:hover{border-color:var(--green);color:var(--green);}

/* top bar */
.topbar{background:var(--green);color:#e4f0e9;font-size:.8rem;}
.topbar-in{width:min(var(--wrap),92vw);margin-inline:auto;display:flex;align-items:center;gap:22px;height:38px;}
.topbar a{color:#e4f0e9;display:inline-flex;align-items:center;gap:7px;opacity:.95;transition:opacity .15s;}
.topbar a:hover{opacity:1;text-decoration:underline;}
.topbar svg{width:14px;height:14px;}
.topbar .sp{margin-left:auto;}
.topbar .div{width:1px;height:14px;background:rgba(255,255,255,.22);}
@media (max-width:720px){.topbar .hide-sm{display:none;}}

/* header */
.header{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:saturate(140%) blur(9px);border-bottom:1px solid var(--hair);}
.nav{width:min(var(--wrap),92vw);margin-inline:auto;display:flex;align-items:center;gap:20px;height:72px;}
.brand{display:flex;align-items:center;gap:13px;}
.brand .em{width:44px;height:44px;flex:none;color:var(--green);}
.brand .wm{display:flex;flex-direction:column;line-height:1;}
.brand .wm b{font-family:var(--serif);font-weight:700;font-size:1.28rem;letter-spacing:-.01em;color:var(--ink);}
.brand .wm b span{color:var(--green-2);}
.brand .wm small{font-family:var(--sans);font-weight:600;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:4px;}
.navlinks{display:flex;gap:2px;margin-left:auto;align-items:center;}
.navlinks a{font-size:.93rem;color:var(--ink-soft);padding:9px 13px;font-weight:550;position:relative;transition:color .15s;}
.navlinks a:hover{color:var(--green);}
.navlinks a[aria-current="page"]{color:var(--green);}
.navlinks a[aria-current="page"]::after{content:"";position:absolute;left:13px;right:13px;bottom:0;height:2px;background:var(--green);}
.nav .btn{margin-left:8px;}
.burger{display:none;width:42px;height:42px;border:1px solid var(--hair-2);background:var(--white);border-radius:3px;place-items:center;cursor:pointer;color:var(--ink);}
.burger svg{width:20px;height:20px;}
.mobile{display:none;}
@media (max-width:900px){
  .navlinks,.nav>.btn{display:none;}
  .burger{display:grid;margin-left:auto;}
  .mobile{display:block;position:fixed;inset:0;z-index:150;background:var(--paper);padding:90px 26px 26px;transform:translateY(-100%);transition:transform .34s cubic-bezier(.4,0,.1,1);overflow:auto;}
  .mobile.open{transform:none;}
  .mobile a{display:block;font-family:var(--serif);font-size:1.5rem;padding:15px 4px;border-bottom:1px solid var(--hair);color:var(--ink);}
  .mobile a[aria-current="page"]{color:var(--green);}
  .mobile .btn{margin-top:22px;width:100%;justify-content:center;font-size:1.05rem;}
}

/* hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--hair);}
.hero-in{width:min(var(--wrap),92vw);margin-inline:auto;display:grid;grid-template-columns:1.02fr 1.05fr;gap:50px;align-items:center;padding-block:clamp(44px,6vw,82px);}
.hero h1{font-size:clamp(2.5rem,5.2vw,4rem);margin-top:22px;}
.hero h1 .u{color:var(--green-2);font-style:italic;}
.hero-sub{color:var(--ink-soft);font-size:1.12rem;max-width:48ch;margin-top:20px;}
.hero-why{display:flex;align-items:flex-start;gap:9px;margin-top:15px;max-width:46ch;font-size:.94rem;line-height:1.5;color:var(--ink-soft);}
.hero-why svg{flex:none;width:19px;height:19px;color:var(--warn);margin-top:2px;}
.hero-why b{color:var(--green);}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.hero-meta{display:flex;margin-top:34px;border:1px solid var(--hair-2);border-radius:4px;overflow:hidden;background:var(--white);width:fit-content;max-width:100%;}
.hero-meta div{padding:14px 22px;border-left:1px solid var(--hair-2);}
.hero-meta div:first-child{border-left:0;}
.hero-meta b{font-family:var(--serif);font-size:1.6rem;font-weight:700;display:block;line-height:1;}
.hero-meta .u{color:var(--green-2);}
.hero-meta span{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;}
/* hero — consult-an-engineer callout (marketing highlight) */
.hero-consult{display:flex;align-items:center;gap:14px;margin-top:22px;padding:13px 15px;max-width:52ch;background:linear-gradient(100deg,var(--green-tint),var(--white));border:1px solid var(--green-line);border-left:4px solid var(--green-2);border-radius:9px;box-shadow:var(--shadow-sm);transition:transform .14s,box-shadow .16s,border-color .16s;}
.hero-consult:hover{transform:translateY(-1px);box-shadow:var(--shadow);border-left-color:var(--green);}
.hero-consult .hc-ic{flex:none;width:42px;height:42px;display:grid;place-items:center;background:var(--green);color:#fff;border-radius:9px;box-shadow:0 8px 18px -10px rgba(22,66,46,.75);}
.hero-consult .hc-ic svg{width:23px;height:23px;}
.hero-consult .hc-txt{display:flex;flex-direction:column;gap:3px;min-width:0;}
.hero-consult .hc-txt b{font-family:var(--serif);font-size:1.04rem;line-height:1.15;color:var(--green);display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.hero-consult .hc-tag{font-family:var(--sans);font-weight:700;font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-2);background:var(--white);border:1px solid var(--green-line);padding:2px 8px;border-radius:20px;}
.hero-consult .hc-txt small{font-size:.83rem;color:var(--ink-soft);line-height:1.42;}
.hero-consult .hc-go{flex:none;width:17px;height:17px;color:var(--green-2);margin-left:6px;transition:transform .16s;}
.hero-consult:hover .hc-go{transform:translateX(3px);}
@media (max-width:940px){.hero-in{grid-template-columns:1fr;gap:32px;}.demo-wrap{order:2;}}

/* page hero (interior pages) */
.pagehero{background:var(--green);color:#eaf4ee;}
.pagehero-in{width:min(var(--wrap),92vw);margin-inline:auto;padding-block:clamp(40px,5vw,64px);}
.pagehero h1{color:#fff;font-size:clamp(2.1rem,4.4vw,3.1rem);margin-top:12px;}
.pagehero p{color:#bcd4c6;margin-top:14px;max-width:60ch;font-size:1.06rem;}
.pagehero .eyebrow{color:#8fc6a6;}
.pagehero .eyebrow::before{background:#8fc6a6;}
.crumb{display:flex;gap:9px;align-items:center;font-size:.82rem;color:#9ec2ae;}
.crumb a{color:#cfe4d8;}
.crumb a:hover{color:#fff;text-decoration:underline;}

/* ===== demonstrator (generic) ===== */
.demo{background:var(--white);border:1px solid var(--hair-2);border-radius:6px;box-shadow:var(--shadow);overflow:hidden;}
.demo-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--hair);}
.demo-head b{font-family:var(--serif);font-size:1.02rem;}
.demo-head span{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green-2);font-weight:700;}
.demo svg.stage{width:100%;height:auto;display:block;touch-action:none;background:var(--white);}
.demo-foot{display:grid;border-top:1px solid var(--hair);}
.demo-foot.f4{grid-template-columns:repeat(4,1fr);}
.demo-foot.f3{grid-template-columns:repeat(3,1fr);}
.demo-foot.f2{grid-template-columns:repeat(2,1fr);}
.demo-foot > div{padding:12px 12px;border-left:1px solid var(--hair);text-align:center;}
.demo-foot > div:first-child{border-left:0;}
.demo-foot b{font-family:var(--serif);font-size:1.12rem;display:block;color:var(--green);}
.demo-foot span{font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.demo-ctrls{border-top:1px solid var(--hair);background:var(--paper);padding:6px 18px 12px;}
.ctrl{display:flex;align-items:center;gap:14px;padding:8px 0;}
.ctrl label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;white-space:nowrap;min-width:96px;}
.ctrl input[type=range]{flex:1;accent-color:var(--green);height:4px;}
.ctrl select{font-family:var(--sans);font-size:.86rem;padding:7px 10px;border:1px solid var(--field-line);border-radius:5px;background:var(--white);color:var(--ink);flex:1;}
.ctrl output{font-family:var(--serif);font-weight:700;color:var(--green);min-width:76px;text-align:right;}
.hintbubble{position:absolute;top:60px;left:50%;transform:translateX(-50%);font-size:.72rem;color:var(--green);font-weight:700;background:rgba(255,255,255,.86);padding:4px 12px;border-radius:20px;border:1px solid var(--green-line);display:inline-flex;align-items:center;gap:7px;pointer-events:none;animation:hint 2.4s ease-in-out infinite;}
.hintbubble svg{width:13px;height:13px;}
@keyframes hint{0%,100%{transform:translateX(-50%)}50%{transform:translateX(calc(-50% + 6px))}}
.grab{cursor:grab;} .grab:active{cursor:grabbing;}
/* utilization / verdict bar */
.util{padding:12px 18px;border-top:1px solid var(--hair);display:flex;align-items:center;gap:14px;}
.util-track{flex:1;height:12px;border-radius:7px;background:var(--hair);overflow:hidden;position:relative;}
.util-fill{height:100%;width:0;background:var(--good);border-radius:7px;transition:width .12s,background .12s;}
.util-tag{font-family:var(--serif);font-weight:700;font-size:.95rem;min-width:120px;text-align:right;}
.util-tag.ok{color:var(--good);} .util-tag.bad{color:var(--danger);}

/* value cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.card{background:var(--white);border:1px solid var(--hair);border-radius:5px;padding:28px 26px 30px;display:flex;flex-direction:column;gap:12px;transition:border-color .18s,transform .18s,box-shadow .18s;}
.card:hover{border-color:var(--green-3);transform:translateY(-3px);box-shadow:var(--shadow);}
.card .ic{width:44px;height:44px;color:var(--green);}
.card h3{font-size:1.24rem;}
.card p{color:var(--ink-soft);font-size:.97rem;}
@media (max-width:820px){.cards{grid-template-columns:1fr;}}

/* subjects grid */
.subgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.subj{display:flex;flex-direction:column;gap:14px;background:var(--white);border:1px solid var(--hair);border-radius:5px;padding:26px 24px;transition:border-color .18s,transform .18s,box-shadow .18s;}
.subj:hover{border-color:var(--green-3);transform:translateY(-3px);box-shadow:var(--shadow);}
.subj-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.subj-ic{width:52px;height:52px;color:var(--green);flex:none;}
.code{font-family:var(--sans);font-size:.64rem;letter-spacing:.14em;font-weight:700;color:var(--green-2);border:1px solid var(--green-line);border-radius:3px;padding:4px 8px;background:var(--green-tint);white-space:nowrap;}
.subj h3{font-size:1.16rem;}
.subj p{color:var(--ink-soft);font-size:.93rem;}
.subj .go{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;font-weight:650;font-size:.88rem;color:var(--green-2);padding-top:4px;}
.subj .go svg{width:15px;height:15px;transition:transform .15s;}
.subj:hover .go svg{transform:translateX(3px);}
.badge-demo{display:inline-flex;align-items:center;gap:6px;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-2);background:var(--green-tint);border:1px solid var(--green-line);border-radius:20px;padding:3px 9px;}
.badge-demo svg{width:11px;height:11px;}
@media (max-width:900px){.subgrid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.subgrid{grid-template-columns:1fr;}}

/* prose / learn list */
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,4vw,56px);align-items:start;}
@media (max-width:860px){.two-col{grid-template-columns:1fr;}}
.learn{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;}
.learn li{display:flex;gap:13px;align-items:flex-start;padding:13px 0;border-top:1px solid var(--hair);color:var(--ink-soft);font-size:.97rem;}
.learn li:last-child{border-bottom:1px solid var(--hair);}
.learn svg{width:20px;height:20px;color:var(--green);flex:none;margin-top:2px;}
.prose p{color:var(--ink-soft);margin-top:16px;max-width:64ch;}
.prose p:first-child{margin-top:0;}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--hair);border-radius:5px;overflow:hidden;background:var(--white);}
.step{padding:30px 26px;border-right:1px solid var(--hair);display:flex;flex-direction:column;gap:12px;}
.step:last-child{border-right:0;}
.step-n{font-family:var(--serif);font-size:1.5rem;color:var(--green-3);font-weight:700;display:flex;align-items:center;gap:12px;}
.step-n::after{content:"";flex:1;height:1px;background:var(--hair-2);}
.step h3{font-size:1.14rem;}
.step p{color:var(--ink-soft);font-size:.93rem;}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;}.step:nth-child(2){border-right:0;}.step:nth-child(1),.step:nth-child(2){border-bottom:1px solid var(--hair);}}
@media (max-width:520px){.steps{grid-template-columns:1fr;}.step{border-right:0;border-bottom:1px solid var(--hair);}.step:last-child{border-bottom:0;}}

/* stat / problem */
.problem-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,70px);align-items:center;}
.gauge{position:relative;display:grid;place-items:center;}
.gauge svg{width:min(260px,72vw);height:auto;}
.gauge-num{position:absolute;text-align:center;}
.gauge-num b{font-family:var(--serif);font-size:clamp(2.4rem,7vw,3.3rem);font-weight:700;display:block;line-height:1;color:var(--green);}
.gauge-num span{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.problem h2{font-size:clamp(1.7rem,3.6vw,2.5rem);}
.problem p{color:var(--ink-soft);margin-top:16px;max-width:54ch;}
.cohort{display:flex;flex-wrap:wrap;gap:5px;margin-top:24px;max-width:360px;}
.cohort i{width:15px;height:22px;border-radius:2px;background:var(--hair-2);}
.cohort i.pass{background:var(--green);}
.cohort-cap{font-size:.74rem;color:var(--muted);margin-top:12px;font-weight:600;}
@media (max-width:760px){.problem-grid{grid-template-columns:1fr;gap:34px;}}

/* ===== form ===== */
.reg-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,4vw,56px);align-items:start;}
@media (max-width:900px){.reg-grid{grid-template-columns:1fr;}}
.reg-aside h2{font-size:clamp(1.8rem,3.6vw,2.5rem);margin-top:12px;}
.reg-aside p{color:var(--ink-soft);margin-top:16px;}
.facts{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-direction:column;}
.facts li{display:flex;gap:14px;align-items:center;padding:15px 0;border-top:1px solid var(--hair);}
.facts li:last-child{border-bottom:1px solid var(--hair);}
.facts svg{width:20px;height:20px;color:var(--green);flex:none;}
.facts b{display:block;font-weight:700;font-size:.96rem;}
.facts span{color:var(--muted);font-size:.85rem;}
.form{background:var(--white);border:1px solid var(--hair-2);border-radius:6px;padding:clamp(22px,3vw,36px);box-shadow:var(--shadow);}
.form-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;}
.progress{font-size:.72rem;color:var(--muted);letter-spacing:.06em;font-weight:600;}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field.full{grid-column:1/-1;}
.field label{font-size:.82rem;font-weight:650;color:var(--ink-soft);display:flex;align-items:center;gap:6px;}
.field label .req{color:var(--green-2);}
.field .hint{font-size:.68rem;color:var(--muted);font-weight:500;}
.input,.select,.textarea{font-family:var(--sans);font-size:.96rem;color:var(--ink);background:var(--field);border:1px solid var(--field-line);border-radius:4px;padding:12px 13px;width:100%;transition:border-color .15s,box-shadow .15s;appearance:none;}
.textarea{min-height:104px;resize:vertical;}
.select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%236C7A70' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint);}
.field.err .input,.field.err .select,.field.err .textarea{border-color:var(--danger);box-shadow:0 0 0 3px rgba(178,58,46,.12);}
.err-msg{display:none;color:var(--danger);font-size:.76rem;font-weight:600;}
.field.err .err-msg{display:block;}
.group-label{font-size:.82rem;font-weight:650;color:var(--ink-soft);margin-bottom:2px;display:flex;align-items:center;gap:6px;}
.group-label .req{color:var(--green-2);}
.chips{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
@media (max-width:560px){.chips{grid-template-columns:1fr;}.fgrid{grid-template-columns:1fr;}}
.chip{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--field-line);border-radius:4px;cursor:pointer;background:var(--field);transition:border-color .15s,background .15s;font-size:.9rem;user-select:none;}
.chip:hover{border-color:var(--green-3);}
.chip input{position:absolute;opacity:0;width:0;height:0;}
.box{width:18px;height:18px;border:1.5px solid var(--field-line);border-radius:4px;flex:none;display:grid;place-items:center;transition:all .15s;}
.box svg{width:11px;height:11px;color:#fff;opacity:0;transform:scale(.6);transition:all .15s;}
.chip input:checked ~ .box{background:var(--green);border-color:var(--green);}
.chip input:checked ~ .box svg{opacity:1;transform:scale(1);}
.chip:has(input:checked){border-color:var(--green);background:var(--green-tint);}
.chip input:focus-visible ~ .box{box-shadow:0 0 0 3px var(--green-tint);}
.chip small{display:block;color:var(--muted);font-size:.66rem;letter-spacing:.06em;font-weight:600;}
.chip .txt{display:flex;flex-direction:column;line-height:1.25;color:var(--ink);}
/* format cards — high-contrast selected state */
.format{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media (max-width:560px){.format{grid-template-columns:1fr;}}
.fmt{border:1px solid var(--field-line);border-radius:5px;padding:15px 15px;cursor:pointer;background:var(--field);display:flex;flex-direction:column;gap:5px;transition:border-color .15s,background .15s;position:relative;}
.fmt input{position:absolute;opacity:0;}
.fmt b{font-size:1rem;font-family:var(--serif);color:var(--ink);}
.fmt span{font-size:.82rem;color:var(--muted);}
.fmt .pill{position:absolute;top:12px;right:12px;font-size:.58rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--green-3);border-radius:20px;padding:3px 8px;}
.fmt:has(input:checked){border-color:var(--green);background:var(--green-tint);box-shadow:inset 0 0 0 1px var(--green);}
.fmt:has(input:checked) b{color:var(--green);}
.fmt:has(input:focus-visible){box-shadow:0 0 0 3px var(--green-tint);}
.consent{display:flex;gap:11px;align-items:flex-start;margin-top:18px;font-size:.85rem;color:var(--ink-soft);}
.submit-row{display:flex;align-items:center;gap:14px;margin-top:20px;flex-wrap:wrap;}
.submit-row .btn-primary{padding:13px 26px;font-size:1rem;}
.note{font-size:.72rem;color:var(--muted);}
.success{display:none;text-align:center;padding:14px 6px 6px;}
.success.show{display:block;animation:fade .4s ease;}
@keyframes fade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.check{width:66px;height:66px;margin:0 auto 18px;border-radius:50%;background:var(--green-tint);display:grid;place-items:center;color:var(--green);}
.check svg{width:32px;height:32px;}
.success h3{font-size:1.6rem;}
.success p{color:var(--ink-soft);margin:10px auto 0;max-width:44ch;}
.summary{text-align:left;background:var(--paper-2);border:1px solid var(--hair);border-radius:5px;padding:16px 18px;margin:20px auto 0;max-width:470px;font-size:.88rem;}
.summary div{display:flex;gap:10px;padding:7px 0;border-bottom:1px dashed var(--hair-2);}
.summary div:last-child{border-bottom:0;}
.summary dt{font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);min-width:100px;flex:none;margin:0;font-weight:700;padding-top:2px;}
.summary dd{margin:0;color:var(--ink);}
.success-actions{display:flex;gap:12px;justify-content:center;margin-top:22px;flex-wrap:wrap;}

/* FAQ */
.faq{display:grid;gap:12px;max-width:830px;}
.q{border:1px solid var(--hair);border-radius:5px;background:var(--white);overflow:hidden;}
.q summary{list-style:none;cursor:pointer;padding:19px 22px;display:flex;align-items:center;gap:16px;font-family:var(--serif);font-weight:700;font-size:1.08rem;color:var(--ink);}
.q summary::-webkit-details-marker{display:none;}
.q summary .qn{color:var(--green-2);flex:none;font-size:.95rem;}
.q summary .plus{margin-left:auto;width:20px;height:20px;position:relative;flex:none;color:var(--muted);}
.q summary .plus::before,.q summary .plus::after{content:"";position:absolute;background:currentColor;border-radius:2px;}
.q summary .plus::before{left:0;right:0;top:9px;height:2px;}
.q summary .plus::after{top:0;bottom:0;left:9px;width:2px;transition:transform .25s,opacity .25s;}
.q[open] summary .plus::after{transform:rotate(90deg);opacity:0;}
.q[open] summary{color:var(--green);}
.q-body{padding:0 22px 20px;color:var(--ink-soft);font-size:.96rem;max-width:70ch;}

/* CTA strip */
.ctastrip{background:var(--green);color:#fff;border-radius:10px;padding:34px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.ctastrip h3{font-family:var(--serif);font-size:1.7rem;margin:0 0 8px;color:#fff;}
.ctastrip p{margin:0;color:#cfe0d6;}
.ctastrip .btn{background:#fff;color:var(--green);}
.ctastrip .btn:hover{background:#eaf4ee;}

/* footer */
.footer{background:var(--green);color:#cfe0d6;padding-block:56px 30px;}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:36px;}
.foot-brand .fb{display:flex;align-items:center;gap:13px;}
.foot-brand .em{width:46px;height:46px;color:#fff;}
.foot-brand b{font-family:var(--serif);font-size:1.3rem;color:#fff;}
.foot-brand b span{color:#8fc6a6;}
.foot-brand p{color:#a7c4b4;margin-top:16px;max-width:34ch;font-size:.92rem;}
.footcol h4{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#8fc6a6;margin-bottom:14px;font-weight:700;}
.footcol ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px;}
.footcol a{color:#cfe0d6;font-size:.93rem;}
.footcol a:hover{color:#fff;text-decoration:underline;}
.social{display:flex;gap:10px;margin-top:18px;}
.social a{width:40px;height:40px;border:1px solid rgba(255,255,255,.2);border-radius:4px;display:grid;place-items:center;color:#cfe0d6;transition:all .15s;}
.social a:hover{color:#fff;border-color:#8fc6a6;background:rgba(255,255,255,.06);transform:translateY(-2px);}
.social svg{width:18px;height:18px;}
.foot-btm{margin-top:44px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;font-size:.78rem;color:#8fc6a6;}
.foot-btm .sp{margin-left:auto;}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr;}.foot-brand{grid-column:1/-1;}}

/* toast */
.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,150%);z-index:300;background:var(--ink);color:#fff;padding:12px 20px;border-radius:4px;font-size:.9rem;font-weight:600;box-shadow:0 16px 40px -14px rgba(0,0,0,.5);display:flex;align-items:center;gap:10px;transition:transform .32s cubic-bezier(.4,0,.1,1);}
.toast.show{transform:translate(-50%,0);}
.toast svg{width:17px;height:17px;color:#8fc6a6;}

a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:3px;}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}}

/* ===== year groups + compact subject pages ===== */
.yeargroup{margin-bottom:34px;}
.yeargroup > h3{font-size:1.15rem;display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.yeargroup > h3 .yt{font-family:var(--sans);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--green);border-radius:20px;padding:4px 11px;}
.yeargroup > h3 .ln{flex:1;height:1px;background:var(--hair-2);}
.subgrid.two{grid-template-columns:repeat(2,1fr);}
@media (max-width:640px){.subgrid.two{grid-template-columns:1fr;}}
.subj .yeartag{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.pagehero.compact .pagehero-in{padding-block:clamp(28px,3.5vw,44px);}
.subj-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(28px,4vw,52px);align-items:start;}
@media (max-width:900px){.subj-layout{grid-template-columns:1fr;}.subj-layout .demoside{order:2;}}
.subj-summary{color:var(--ink-soft);font-size:1.02rem;}
.meta-note{margin-top:22px;border:1px solid var(--hair);border-radius:6px;overflow:hidden;background:var(--white);}
.meta-note div{display:flex;gap:12px;padding:14px 16px;border-top:1px solid var(--hair);font-size:.9rem;}
.meta-note div:first-child{border-top:0;}
.meta-note .k{font-weight:700;color:var(--green);min-width:130px;flex:none;display:flex;align-items:center;gap:8px;}
.meta-note .k svg{width:16px;height:16px;flex:none;}
.meta-note .v{color:var(--ink-soft);}
.reco{margin-top:20px;background:var(--green-tint);border:1px solid var(--green-line);border-left:3px solid var(--green);border-radius:5px;padding:15px 17px;}
.reco b{display:block;font-family:var(--serif);font-size:.95rem;color:var(--green);margin-bottom:4px;}
.reco p{color:var(--ink-soft);font-size:.92rem;}
.drawnote{margin-top:16px;display:flex;gap:12px;align-items:flex-start;background:var(--paper-2);border:1px dashed var(--green-3);border-radius:5px;padding:14px 16px;font-size:.9rem;color:var(--ink-soft);}
.drawnote svg{width:22px;height:22px;color:var(--green);flex:none;margin-top:1px;}
.drawnote b{color:var(--ink);}
.subj-cta{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.badge-draw{display:inline-flex;align-items:center;gap:6px;font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--warn);background:#F6EFDD;border:1px solid #E4D3A6;border-radius:20px;padding:3px 9px;}
.badge-draw svg{width:11px;height:11px;}

/* ===== members / auth ===== */
.auth-wrap{min-height:calc(100vh - 130px);display:grid;place-items:center;padding:40px 20px;}
.auth-card{width:100%;max-width:440px;background:var(--white);border:1px solid var(--hair-2);border-radius:8px;box-shadow:var(--shadow);padding:clamp(24px,4vw,38px);}
.auth-card h1{font-size:1.7rem;margin-bottom:6px;}
.auth-card .sub{color:var(--muted);font-size:.92rem;margin-bottom:22px;}
.auth-tabs{display:flex;gap:4px;background:var(--paper-2);border-radius:6px;padding:4px;margin-bottom:22px;}
.auth-tabs button{flex:1;border:0;background:none;padding:9px;border-radius:4px;font-family:var(--sans);font-weight:650;font-size:.9rem;color:var(--muted);cursor:pointer;}
.auth-tabs button.on{background:var(--white);color:var(--green);box-shadow:var(--shadow-sm);}
.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.auth-field label{font-size:.8rem;font-weight:650;color:var(--ink-soft);}
.auth-field input,.auth-field select{font-family:var(--sans);font-size:.95rem;padding:11px 13px;border:1px solid var(--field-line);border-radius:5px;background:var(--field);color:var(--ink);}
.auth-field input:focus,.auth-field select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint);}
/* show / hide password */
.pw-wrap{position:relative;display:flex;}
.pw-wrap input{flex:1;width:100%;padding-right:46px;}
.pw-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;background:transparent;border:0;border-radius:5px;cursor:pointer;color:var(--muted);}
.pw-toggle:hover{color:var(--green);}
.pw-toggle:focus-visible{outline:2px solid var(--green);outline-offset:1px;}
.pw-toggle svg{width:19px;height:19px;pointer-events:none;}
.pw-toggle .i-eyeoff{display:none;}
.pw-toggle[aria-pressed="true"] .i-eye{display:none;}
.pw-toggle[aria-pressed="true"] .i-eyeoff{display:block;}
.auth-msg{display:none;margin:6px 0 14px;padding:11px 14px;border-radius:5px;font-size:.86rem;font-weight:600;}
.auth-msg.err{display:block;background:rgba(178,58,46,.08);color:var(--danger);border:1px solid rgba(178,58,46,.25);}
.auth-msg.ok{display:block;background:var(--green-tint);color:var(--green);border:1px solid var(--green-line);}
.auth-card .btn-primary{width:100%;justify-content:center;padding:13px;font-size:1rem;}
.auth-foot{text-align:center;margin-top:18px;font-size:.85rem;color:var(--muted);}
.auth-foot a{color:var(--green-2);font-weight:600;}
.signup-hint{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:12px 14px;border-radius:6px;background:var(--green-tint);border:1px solid var(--green-line);font-size:.85rem;line-height:1.5;color:var(--ink-soft);}
.signup-hint svg{flex:none;width:19px;height:19px;color:var(--green-2);margin-top:1px;}
.signup-hint b{color:var(--green);}
.signup-hint a{color:var(--green-2);font-weight:700;text-decoration:underline;}

.mhead{background:var(--white);border-bottom:1px solid var(--hair);position:sticky;top:0;z-index:100;}
.mhead-in{width:min(1180px,94vw);margin-inline:auto;display:flex;align-items:center;gap:16px;height:64px;}
.mhead .brand .em{color:var(--green);}
.mhead .who{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.9rem;color:var(--ink-soft);}
.role-badge{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:20px;background:var(--green-tint);color:var(--green);border:1px solid var(--green-line);}
.role-badge.tutor{background:#F6EFDD;color:var(--warn);border-color:#E4D3A6;}
.role-badge.admin{background:var(--green);color:#fff;border-color:var(--green);}

.pending{max-width:520px;margin:60px auto;text-align:center;background:var(--white);border:1px solid var(--hair-2);border-radius:8px;padding:40px 30px;box-shadow:var(--shadow);}
.pending .ic{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:#F6EFDD;color:var(--warn);display:grid;place-items:center;}
.pending .ic svg{width:32px;height:32px;}
.pending h2{font-size:1.5rem;}.pending p{color:var(--ink-soft);margin-top:10px;}
.pending-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px;}
.pending-actions .btn svg{width:15px;height:15px;}
@media (max-width:460px){ .pending-actions{flex-direction:column;} .pending-actions .btn{width:100%;justify-content:center;} }

/* post-signup notice (login page) */
.signup-done{text-align:center;}
.signup-done .sd-ic{width:60px;height:60px;margin:2px auto 14px;border-radius:50%;background:#F6EFDD;color:var(--warn);display:grid;place-items:center;}
.signup-done .sd-ic svg{width:30px;height:30px;}
.signup-done h2{font-size:1.4rem;}
.signup-done .sd-msg{color:var(--ink-soft);margin-top:10px;font-size:.94rem;line-height:1.6;}
.signup-done .sd-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px;}
.signup-done .sd-actions .btn{width:100%;justify-content:center;}
.signup-done .sd-actions .btn svg{width:15px;height:15px;}
.signup-done .sd-back{margin-top:16px;font-size:.85rem;}
.signup-done .sd-back a{color:var(--green-2);font-weight:600;cursor:pointer;}

.mlayout{width:min(1180px,94vw);margin:26px auto 60px;display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:start;}
@media (max-width:860px){.mlayout{grid-template-columns:1fr;}}
.panel{background:var(--white);border:1px solid var(--hair);border-radius:8px;overflow:hidden;}
.panel-h{padding:14px 18px;border-bottom:1px solid var(--hair);font-family:var(--serif);font-weight:700;font-size:1.05rem;display:flex;align-items:center;gap:10px;}
.panel-h svg{width:18px;height:18px;color:var(--green);}
.panel-b{padding:16px 18px;}
.subj-list{display:flex;flex-direction:column;}
.subj-list button{text-align:left;border:0;background:none;border-top:1px solid var(--hair);padding:13px 18px;cursor:pointer;font-family:var(--sans);display:flex;flex-direction:column;gap:2px;transition:background .12s;}
.subj-list button:first-child{border-top:0;}
.subj-list button:hover{background:var(--paper-2);}
.subj-list button.on{background:var(--green-tint);}
.subj-list button b{font-size:.95rem;color:var(--ink);}
.subj-list button small{font-size:.7rem;color:var(--muted);letter-spacing:.05em;}

.chat{display:flex;flex-direction:column;height:min(70vh,620px);}
.chat-head{padding:16px 20px;border-bottom:1px solid var(--hair);}
.chat-head b{font-family:var(--serif);font-size:1.15rem;}
.chat-head span{display:block;font-size:.8rem;color:var(--muted);margin-top:2px;}
.chat-body{flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:14px;background:var(--paper);}
.chat-empty{margin:auto;text-align:center;color:var(--muted);font-size:.9rem;max-width:34ch;}
.msg{max-width:80%;}
.msg .meta{font-size:.68rem;color:var(--muted);margin-bottom:4px;display:flex;align-items:center;gap:7px;}
.msg .bub{background:var(--white);border:1px solid var(--hair);border-radius:10px;padding:11px 14px;font-size:.93rem;color:var(--ink);line-height:1.5;white-space:pre-wrap;word-wrap:break-word;}
.msg.tutor .bub{background:var(--green);color:#fff;border-color:var(--green);}
.msg.tutor .meta{color:var(--green-2);font-weight:700;}
.msg.mine{align-self:flex-end;}
.msg.mine .bub{background:var(--green-tint);border-color:var(--green-line);}
.msg.mine .meta{justify-content:flex-end;}
.chat-foot{border-top:1px solid var(--hair);padding:12px 16px;display:flex;gap:10px;align-items:flex-end;}
.chat-foot textarea{flex:1;resize:none;font-family:var(--sans);font-size:.95rem;padding:11px 13px;border:1px solid var(--field-line);border-radius:8px;min-height:44px;max-height:120px;background:var(--field);color:var(--ink);}
.chat-foot textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint);}
.chat-foot button{flex:none;height:44px;}

.sched-item{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--hair);font-size:.9rem;}
.sched-item:first-child{border-top:0;}
.sched-item .d{font-weight:700;color:var(--green);min-width:96px;}
.sched-item .m{color:var(--ink-soft);}
.sched-empty{color:var(--muted);font-size:.88rem;}
.admin-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--hair);font-size:.9rem;flex-wrap:wrap;}
.admin-row:first-child{border-top:0;}
.admin-row .grow{flex:1;min-width:150px;}
.admin-row .btn{padding:7px 14px;font-size:.82rem;}
.mini-note{font-size:.78rem;color:var(--muted);margin-top:8px;}
.tab-row{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;}
.tab-row button{border:1px solid var(--hair-2);background:var(--white);border-radius:20px;padding:7px 15px;font-family:var(--sans);font-weight:600;font-size:.82rem;color:var(--ink-soft);cursor:pointer;}
.tab-row button.on{background:var(--green);color:#fff;border-color:var(--green);}

/* ===== members: composer, media, student picker, consultation, admin enrolment ===== */
.chat-foot .icon-btn{flex:none;width:42px;height:44px;border:1px solid var(--field-line);background:var(--white);border-radius:8px;display:grid;place-items:center;cursor:pointer;color:var(--green);}
.chat-foot .icon-btn:hover{border-color:var(--green);}
.chat-foot .icon-btn svg{width:20px;height:20px;}
.attach-preview{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 16px;border-top:1px solid var(--hair);background:var(--green-tint);font-size:.82rem;color:var(--green);}
.attach-preview button{border:0;background:none;color:var(--green);cursor:pointer;font-size:1rem;font-weight:700;}
.bub.media{padding:6px;background:none;border:0;}
.msg.tutor .bub.media,.msg.mine .bub.media{background:none;}
.att-img{max-width:230px;max-height:230px;border-radius:8px;display:block;border:1px solid var(--hair);}
.att-vid{max-width:260px;border-radius:8px;display:block;}
.att-file{display:inline-flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--hair);border-radius:8px;padding:9px 12px;color:var(--green);font-size:.85rem;font-weight:600;}
.att-file svg{width:18px;height:18px;}
.stud-pick{width:100%;}
.stud-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--white);border:1px solid var(--hair);border-radius:8px;padding:13px 15px;margin-bottom:8px;cursor:pointer;font-family:var(--sans);color:var(--ink);}
.stud-btn:hover{border-color:var(--green);}
.stud-btn b{font-weight:650;}
.stud-btn svg{width:16px;height:16px;color:var(--green-2);}
.member-card{border:1px solid var(--hair);border-radius:8px;padding:14px 16px;margin-bottom:12px;}
.member-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.member-top .btn{padding:6px 12px;font-size:.8rem;}
.enr-grid{display:flex;flex-direction:column;gap:6px;}
@media (max-width:560px){.enr-grid{grid-template-columns:1fr;}}
.enr-chip{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--ink-soft);background:var(--paper-2);border:1px solid var(--hair);border-radius:6px;padding:7px 10px;cursor:pointer;}
.enr-chip input{accent-color:var(--green);width:15px;height:15px;}
.enr-chip:has(input:checked){background:var(--green-tint);border-color:var(--green-line);color:var(--green);font-weight:600;}
.cons-row{padding:9px 0;border-top:1px solid var(--hair);font-size:.85rem;}
.cons-row:first-child{border-top:0;}
.cons-status{font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:20px;margin-left:8px;background:var(--paper-2);color:var(--muted);}
.cons-status.s-requested{background:#F6EFDD;color:var(--warn);}
.cons-status.s-scheduled{background:var(--green-tint);color:var(--green);}
.cons-status.s-done{background:var(--green);color:#fff;}
.cons-status.s-cancelled{background:#f3d9d6;color:var(--danger);}
.mini-sel{font-family:var(--sans);font-size:.8rem;padding:6px 8px;border:1px solid var(--field-line);border-radius:5px;background:var(--white);color:var(--ink);}

/* prominent header Log in button */
.navlinks a.nav-login{border:1px solid var(--field-line);border-radius:2px;padding:9px 16px;color:var(--green);font-weight:650;margin-left:8px;}
.navlinks a.nav-login:hover{border-color:var(--green);background:var(--green-tint);}
.navlinks a.nav-login::after{display:none;}

/* login page polish */
.auth-wrap{background:linear-gradient(180deg,var(--paper),var(--paper-2));}
.auth-card{position:relative;}
.auth-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--green);border-radius:8px 8px 0 0;}

/* admin schedule editor */
.sched-form{background:var(--paper-2);border:1px solid var(--hair);border-radius:8px;padding:16px;}
.sched-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:560px){.sched-form .row2{grid-template-columns:1fr;}}
.sched-form .auth-field{margin-bottom:12px;}

/* install-app banner + forgot password */
.ep-install{position:fixed;left:16px;right:16px;bottom:16px;z-index:400;max-width:520px;margin-inline:auto;background:#fff;border:1px solid #d5d8cc;border-radius:12px;box-shadow:0 16px 40px -14px rgba(0,0,0,.35);padding:13px 15px;animation:epislide .3s ease;}
@keyframes epislide{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.ep-install-in{display:flex;align-items:center;gap:13px;}
.ep-install-in .ico{width:40px;height:40px;flex:none;border-radius:9px;background:#16422E;display:grid;place-items:center;}
.ep-install-in .ico svg{width:22px;height:22px;color:#fff;}
.ep-install-in .tx{flex:1;min-width:0;}
.ep-install-in .tx b{display:block;font-size:.94rem;color:#16232f;}
.ep-install-in .tx span{display:block;font-size:.8rem;color:#6c7a70;line-height:1.4;}
.ep-install-btn{flex:none;background:#16422E;color:#fff;border:0;border-radius:8px;padding:10px 16px;font-weight:650;cursor:pointer;font-family:inherit;font-size:.9rem;}
.ep-install-btn:hover{background:#0f3323;}
.ep-install-x{flex:none;background:none;border:0;color:#6c7a70;font-size:1.05rem;cursor:pointer;padding:4px 6px;line-height:1;}
.auth-forgot{display:block;text-align:right;margin:-6px 0 14px;font-size:.82rem;}
.auth-forgot a{color:var(--green-2);font-weight:600;cursor:pointer;}

/* ===== mobile header login + menu contrast fixes ===== */
.nav-login-m{display:none;}
@media (max-width:900px){
  .nav-login-m{display:inline-flex;align-items:center;margin-left:auto;white-space:nowrap;font-weight:650;font-size:.88rem;color:var(--green);border:1px solid var(--field-line);border-radius:4px;padding:9px 15px;background:var(--white);}
  .nav-login-m:hover{border-color:var(--green);}
  .burger{margin-left:10px;}
}
/* mobile menu: primary button must be white text on green (was dark/invisible) */
.mobile .btn-primary{color:#fff;background:var(--green);}
.mobile .nav-login-m{display:none;}
/* members header: keep tidy on small screens */
@media (max-width:560px){
  .mhead .who #whoName{display:none;}
  .mhead .brand .wm small{display:none;}
  .mhead .who{gap:10px;}
}

/* ============================================================
   MEMBERS APP — WhatsApp-style messaging
   ============================================================ */
.ma{ max-width:1180px; margin:0 auto; height:calc(100dvh - 64px); display:flex; flex-direction:column; }
.matabs{ display:flex; gap:6px; padding:10px 14px; background:var(--white); border-bottom:1px solid var(--hair); z-index:40; overflow-x:auto; flex:none; }
.matab{ border:0; background:none; padding:9px 15px; border-radius:22px; font-family:var(--sans); font-weight:650; font-size:.9rem; color:var(--muted); cursor:pointer; white-space:nowrap; display:flex; align-items:center; gap:7px; }
.matab.on{ background:var(--green); color:#fff; }
.matab svg{ width:17px; height:17px; }
.mapage{ display:none; flex:1; min-height:0; }
.mapage.on{ display:block; height:100%; overflow-y:auto; }        /* schedule/people/consult/admin scroll inside the frame */
#page-chats.on{ overflow:hidden; }                                /* chats: only the message body scrolls */

/* chats two-pane */
.chats{ display:grid; grid-template-columns:360px 1fr; height:100%; border-top:1px solid var(--hair); }
.chatlist{ border-right:1px solid var(--hair); overflow-y:auto; background:var(--white); }
.chatlist .grouphdr{ padding:12px 16px 6px; font-size:.66rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.chatrow{ display:flex; align-items:center; gap:13px; padding:14px 16px; border-bottom:1px solid var(--hair); cursor:pointer; transition:background .12s; }
.chatrow:hover{ background:var(--paper-2); }
.chatrow.on{ background:var(--green-tint); }
.chatrow .av{ width:48px; height:48px; border-radius:50%; background:var(--green); color:#fff; display:grid; place-items:center; flex:none; }
.chatrow .av svg{ width:26px; height:26px; }
.chatrow .ct{ flex:1; min-width:0; }
.chatrow .ct b{ font-family:var(--serif); font-weight:700; font-size:1.04rem; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chatrow .ct small{ color:var(--muted); font-size:.82rem; display:block; margin-top:2px; }
.chatrow .chev{ color:var(--muted); flex:none; }
.chatrow .chev svg{ width:16px; height:16px; }

/* conversation */
.conv{ display:flex; flex-direction:column; height:100%; background:var(--paper); min-width:0; }
.conv-empty{ display:grid; place-items:center; height:100%; color:var(--muted); text-align:center; padding:30px; }
.conv-empty svg{ width:56px; height:56px; color:var(--hair-2); margin-bottom:14px; }
.conv-head{ background:var(--white); border-bottom:1px solid var(--hair); padding:11px 14px; display:flex; align-items:center; gap:12px; }
.conv-head .back{ display:none; background:none; border:0; cursor:pointer; color:var(--green); padding:4px; }
.conv-head .back svg{ width:24px; height:24px; }
.conv-head .av{ width:42px; height:42px; border-radius:50%; background:var(--green); color:#fff; display:grid; place-items:center; flex:none; }
.conv-head .av svg{ width:22px; height:22px; }
.conv-head .hh{ flex:1; min-width:0; }
.conv-head .hh b{ font-family:var(--serif); font-size:1.06rem; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.conv-head .hh small{ color:var(--muted); font-size:.8rem; }
.conv-actions{ display:flex; gap:8px; flex:none; }
.hcall{ width:40px; height:40px; border-radius:50%; border:1px solid var(--green-line); background:var(--green-tint); color:var(--green); display:grid; place-items:center; cursor:pointer; transition:background .14s,color .14s,transform .12s; }
.hcall svg{ width:19px; height:19px; }
.hcall:hover{ background:var(--green); color:#fff; transform:translateY(-1px); }
.conv-segrow{ background:var(--white); border-bottom:1px solid var(--hair); padding:8px 14px; display:flex; flex:none; }
.seg{ display:flex; gap:3px; background:var(--paper-2); border-radius:22px; padding:3px; flex:none; }
.seg button{ border:0; background:none; padding:7px 15px; border-radius:20px; font-family:var(--sans); font-weight:650; font-size:.82rem; color:var(--muted); cursor:pointer; }
.seg button.on{ background:var(--white); color:var(--green); box-shadow:var(--shadow-sm); }
.conv-body{ flex:1; overflow-y:auto; padding:18px 18px 8px; display:flex; flex-direction:column; gap:12px; }
.conv-body .daynote{ align-self:center; background:rgba(22,66,46,.08); color:var(--green); font-size:.72rem; font-weight:600; padding:4px 12px; border-radius:20px; }
.conv-foot{ border-top:1px solid var(--hair); background:var(--white); padding:10px 14px; display:flex; gap:9px; align-items:flex-end; }
.conv-foot .icon-btn{ flex:none; width:42px; height:44px; border:1px solid var(--field-line); background:var(--white); border-radius:9px; display:grid; place-items:center; cursor:pointer; color:var(--green); }
.conv-foot .icon-btn svg{ width:20px; height:20px; }
.conv-foot textarea{ flex:1; resize:none; font-family:var(--sans); font-size:.96rem; padding:11px 14px; border:1px solid var(--field-line); border-radius:22px; min-height:44px; max-height:120px; background:var(--field); color:var(--ink); }
.conv-foot textarea:focus{ outline:none; border-color:var(--green); box-shadow:0 0 0 3px var(--green-tint); }
.conv-foot .send{ flex:none; width:46px; height:46px; border-radius:50%; background:var(--green); color:#fff; border:0; cursor:pointer; display:grid; place-items:center; }
.conv-foot .send svg{ width:20px; height:20px; }
.conv-foot .send:disabled{ opacity:.5; }

/* mobile: conversation becomes full-screen, list hides */
@media (max-width:900px){
  .chats{ grid-template-columns:1fr; height:100%; }
  .chatlist{ border-right:0; }
  .chats .conv{ display:none; }
  .chats.open .chatlist{ display:none; }
  .chats.open .conv{ display:flex; }
  .conv-head .back{ display:inline-flex; }
}

/* header website button */
.mhead .who .site-btn{ display:inline-flex; align-items:center; gap:7px; border:1px solid var(--hair-2); border-radius:22px; padding:7px 13px; color:var(--green); font-weight:650; font-size:.85rem; background:var(--white); }
.mhead .who .site-btn svg{ width:17px; height:17px; }
.mhead .who .site-btn:hover{ border-color:var(--green); }
@media (max-width:560px){ .mhead .who .site-btn span{ display:none; } .mhead .who #whoName{ display:none; } }

/* page-view padding for schedule/book/admin */
.mpad{ padding:26px 18px 70px; }
.mpad .panel{ max-width:820px; margin:0 auto 18px; }

/* members header polish */
.mhead .who{ gap:10px; flex-wrap:nowrap; }
.mhead .who .btn{ white-space:nowrap; }
.mhead-in{ gap:12px; }
@media (max-width:560px){ .mhead .who #whoRole{ display:none; } }

/* ============================================================
   MEMBERS — People directory + audio/video calls
   ============================================================ */
.ppl-wrap{ display:block; }
.ppl-group + .ppl-group{ border-top:1px solid var(--hair); }
.ppl-group .grouphdr{ padding:13px 16px 7px; font-size:.66rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:8px; }
.ppl-group .grouphdr .cnt{ background:var(--green-tint); color:var(--green); border:1px solid var(--green-line); border-radius:20px; font-size:.62rem; padding:1px 8px; }
.ppl-row{ display:flex; align-items:center; gap:13px; padding:11px 16px; border-top:1px solid var(--hair); }
.ppl-row:first-child{ border-top:0; }
.ppl-row .av{ position:relative; width:46px; height:46px; border-radius:50%; background:var(--green); color:#fff; display:grid; place-items:center; flex:none; }
.ppl-row .av svg{ width:25px; height:25px; }
.ppl-row .av .dot{ position:absolute; right:-1px; bottom:-1px; width:13px; height:13px; border-radius:50%; background:var(--muted); border:2.5px solid var(--white); }
.ppl-row.online .av .dot{ background:#22a06b; }
.ppl-row .ct{ flex:1; min-width:0; }
.ppl-row .ct b{ font-family:var(--serif); font-weight:700; font-size:1.02rem; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ppl-row .ct small{ color:var(--muted); font-size:.8rem; display:block; margin-top:1px; }
.ppl-row.online .ct .pstat{ color:#22a06b; font-weight:650; }
.ppl-row .callbtns{ display:flex; gap:8px; flex:none; }
.cbtn{ width:42px; height:42px; border-radius:50%; border:1px solid var(--green-line); background:var(--green-tint); color:var(--green); display:grid; place-items:center; cursor:pointer; transition:transform .12s,background .15s,color .15s,box-shadow .15s; }
.cbtn svg{ width:20px; height:20px; }
.cbtn:hover{ background:var(--green); color:#fff; transform:translateY(-1px); box-shadow:0 8px 16px -8px rgba(22,66,46,.6); }
.cbtn.video{ background:var(--white); }
.ppl-row:not(.online) .callbtns{ opacity:.45; }

/* incoming call */
.incoming{ position:fixed; inset:0; z-index:900; display:none; align-items:center; justify-content:center; background:rgba(9,20,15,.55); backdrop-filter:blur(3px); padding:22px; }
.incoming.on{ display:flex; }
.in-card{ background:var(--white); border-radius:18px; padding:30px 26px 24px; width:100%; max-width:320px; text-align:center; box-shadow:0 30px 70px -20px rgba(0,0,0,.5); animation:inpop .25s ease; }
@keyframes inpop{ from{ transform:scale(.9); opacity:0; } to{ transform:none; opacity:1; } }
.in-av{ width:78px; height:78px; border-radius:50%; background:var(--green); color:#fff; display:grid; place-items:center; margin:0 auto 14px; }
.in-av svg{ width:44px; height:44px; }
.in-card b{ font-family:var(--serif); font-size:1.35rem; display:block; }
.in-card #inKind{ color:var(--muted); font-size:.88rem; display:block; margin-top:3px; }
.in-actions{ display:flex; justify-content:center; gap:40px; margin-top:24px; }
.in-btn{ width:62px; height:62px; border-radius:50%; border:0; cursor:pointer; color:#fff; display:grid; place-items:center; transition:transform .12s; }
.in-btn svg{ width:27px; height:27px; }
.in-btn:hover{ transform:translateY(-2px); }
.in-btn.decline{ background:#d43b34; transform:rotate(135deg); }
.in-btn.decline:hover{ transform:rotate(135deg) translateY(-2px); }
.in-btn.accept{ background:#22a06b; animation:ringpulse 1.1s ease-in-out infinite; }
@keyframes ringpulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(34,160,107,.5); } 50%{ box-shadow:0 0 0 14px rgba(34,160,107,0); } }

/* active call overlay */
.call-overlay{ position:fixed; inset:0; z-index:920; display:none; background:#0c1a14; overflow:hidden; }
.call-overlay.on{ display:block; }
.call-remote{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#0c1a14; }
.call-overlay.audio .call-remote{ display:none; }
.call-avatar{ position:absolute; inset:0; margin:auto; width:130px; height:130px; border-radius:50%; background:var(--green-2); color:#fff; display:none; place-items:center; font-family:var(--serif); font-weight:700; font-size:3rem; box-shadow:0 0 0 12px rgba(255,255,255,.06); }
.call-overlay.audio .call-avatar{ display:grid; }
.call-local{ position:absolute; top:16px; right:16px; width:118px; height:158px; object-fit:cover; border-radius:12px; border:2px solid rgba(255,255,255,.5); background:#22332b; z-index:2; box-shadow:0 10px 24px -8px rgba(0,0,0,.6); }
.call-overlay.audio .call-local{ display:none; }
.call-top{ position:absolute; top:0; left:0; right:0; padding:20px 20px 40px; text-align:center; color:#fff; background:linear-gradient(180deg,rgba(0,0,0,.5),transparent); z-index:2; }
.call-top b{ font-family:var(--serif); font-size:1.3rem; display:block; }
.call-top #callStatus{ font-size:.9rem; opacity:.85; display:block; margin-top:3px; }
.call-timer{ font-size:.85rem; opacity:.8; font-variant-numeric:tabular-nums; }
.call-controls{ position:absolute; left:0; right:0; bottom:0; padding:26px 20px calc(30px + env(safe-area-inset-bottom)); display:flex; justify-content:center; gap:22px; z-index:3; background:linear-gradient(0deg,rgba(0,0,0,.55),transparent); }
.call-btn{ width:62px; height:62px; border-radius:50%; border:0; cursor:pointer; background:rgba(255,255,255,.16); color:#fff; display:grid; place-items:center; backdrop-filter:blur(4px); transition:background .15s,transform .12s; }
.call-btn svg{ width:26px; height:26px; }
.call-btn:hover{ transform:translateY(-2px); }
.call-btn.off{ background:#fff; color:var(--ink); }
.call-btn.end{ background:#d43b34; }
.call-btn.end svg{ width:30px; height:30px; }
@media (max-width:560px){ .call-local{ width:96px; height:130px; } .call-btn,.in-btn{ width:56px; height:56px; } }

/* consultation — admin reschedule fields */
.admin-row.cons-adm{ flex-direction:column; align-items:stretch; gap:9px; }
.cons-set{ display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.cons-set .mini-sel,.cons-set .mini-inp{ padding:8px 10px; border:1px solid var(--field-line); border-radius:6px; font-family:var(--sans); font-size:.85rem; background:var(--field); color:var(--ink); }
.cons-set .mini-inp.grow{ flex:1; min-width:150px; }
.cons-set .mini-btn{ padding:9px 15px; white-space:nowrap; }

/* profile photo */
.who-av{ position:relative; width:36px; height:36px; border-radius:50%; border:0; padding:0; cursor:pointer; background:var(--green-2); color:#fff; font-family:var(--serif); font-weight:700; font-size:.82rem; flex:none; }
.who-av #whoAvInner{ position:absolute; inset:0; border-radius:50%; overflow:hidden; display:grid; place-items:center; }
.who-av img{ width:100%; height:100%; object-fit:cover; }
.who-av .cam{ position:absolute; right:-3px; bottom:-3px; width:16px; height:16px; background:var(--white); border:1px solid var(--hair-2); border-radius:50%; display:grid; place-items:center; color:var(--green); }
.who-av .cam svg{ width:9px; height:9px; }
.ppl-row .av img{ width:100%; height:100%; border-radius:50%; object-fit:cover; }

/* admin — app install status */
.app-yes{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--green-2);border-radius:20px;padding:5px 11px;white-space:nowrap;flex:none;}
.app-no{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--paper-2);border:1px solid var(--hair);border-radius:20px;padding:5px 11px;white-space:nowrap;flex:none;}

/* admin — total installs summary */
.app-total{background:var(--green);color:#fff;border-radius:10px;padding:16px 18px;margin-bottom:16px;font-size:1rem;}
.app-total b{font-family:var(--serif);font-size:1.8rem;display:inline-block;margin-right:6px;}
.app-total span{display:block;margin-top:6px;font-size:.8rem;color:#bfe0cd;}
.app-sub{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px;}

/* admin — reject button + row buttons */
.row-btns{display:flex;gap:8px;flex:none;}
.btn-reject{border-color:#d9b4b0;color:var(--danger);background:var(--white);}
.btn-reject:hover{background:#fbeeec;border-color:var(--danger);color:var(--danger);}
