/* Path to Glory · styles for the live site (login, forms, booking, desk). Builds on styles.css. */
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}

/* Smaller badge title on narrow screens so "INSTRUCTOR" never clips. */
@media (max-width:420px){.b-role{font-size:29px}}

/* Office Hours has its own page (index.html?hours) */
html:not(.hours-page) #book{display:none}
.hours-page main>section:not(#book){display:none}
.hours-page #book .no{display:none}
.bk-locked{margin:0;padding:clamp(22px,4vw,36px)}

/* ---------- top bar + login ---------- */
.topbar .code{color:#fff;text-decoration:none}
.auth{display:flex;align-items:center;gap:8px;flex:none}
button.cta{border:0;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.topbar .cta.discord{background:#5865f2}
.topbar .cta.discord:hover{background:var(--ink)}
.topbar .ghost-cta{background:transparent;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.75)}
.topbar .ghost-cta:hover{background:var(--ink);box-shadow:none}
.me-menu{position:relative}
.me-chip{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;text-transform:none;letter-spacing:.02em;max-width:200px;background:none;border:0;padding:4px 0;font:inherit;cursor:pointer}
.me-caret{flex:none;width:0;height:0;margin-top:4px;border:4px solid transparent;border-top-color:#fff}
.me-pop{display:none;position:absolute;right:0;top:calc(100% + 10px);min-width:190px;background:var(--paper);color:var(--ink);box-shadow:0 14px 28px -10px rgba(0,0,0,.7);font:600 11.5px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.me-pop::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}   /* keeps the menu open while the mouse crosses the gap */
.me-menu.open .me-pop{display:block}
@media (hover:hover){.me-menu:hover .me-pop{display:block}}
.me-pop a,.me-pop button{display:block;width:100%;padding:13px 14px;text-align:left;color:inherit;text-decoration:none;background:none;border:0;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.me-pop a:hover,.me-pop button:hover,.me-pop a:focus-visible,.me-pop button:focus-visible{background:var(--red);color:#fff}
.me-links:not(:empty){border-bottom:1px solid var(--paper-rule)}
/* a coach's session settings */
.ss-pop{border:0;padding:clamp(20px,4vw,28px);width:min(460px,calc(100vw - 32px));background:var(--paper);color:var(--ink)}
.ss-pop::backdrop{background:rgba(0,0,0,.65)}
.ss-pop h3{font:900 28px/1 var(--f-display);letter-spacing:-.03em;text-transform:uppercase;margin:0 0 8px}
.ss-pop p{margin:0 0 18px;color:var(--ink-soft)}
.ss-q{display:grid;gap:7px;margin-bottom:16px;justify-items:start}
.ss-q>span{font:600 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.ss-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}
.ss-reset{background:none;border:0;padding:0;font:600 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.me-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-chip:hover span{text-decoration:underline;text-underline-offset:4px}
.av{border-radius:50%;object-fit:cover;flex:none;display:inline-block;vertical-align:middle}
.av-ph{display:inline-grid;place-items:center;background:var(--ink);color:var(--paper);font-family:var(--f-display);font-weight:800}
@media (max-width:1100px){.auth{margin-left:auto}}
@media (max-width:520px){.me-chip span{display:none}.topbar .code{font-size:10px;letter-spacing:.06em}}

/* ---------- form fields (staff desk, office hours) ---------- */
.fld{display:grid;gap:6px;min-width:0;border:0;margin:0;padding:0;align-content:start}
.fld.wide{grid-column:1/-1}
.fld .k,.fld legend.k{font:600 11px/1.35 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:0}
.fld input:not([type=radio]):not([type=checkbox]),.fld select{width:100%;min-width:0;border:0;border-bottom:1.5px solid var(--ink);border-radius:0;background:transparent;font:700 18px/1.3 var(--f-type);color:var(--ink);padding:6px 2px}
.fld textarea{width:100%;resize:vertical;border:1.5px solid var(--ink);border-radius:0;padding:8px 10px;font:700 16px/1.4 var(--f-type);color:var(--ink);background:rgba(255,255,255,.55)}
.fld input::placeholder,.ta::placeholder{color:#a8a299;font-weight:400}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.checks input{accent-color:var(--red);width:18px;height:18px;margin:0}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ---------- office hours: coach cards + a pop-up with the coach's week planner (home.js) ---------- */
.evdot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--ink-soft)}
.evdot.mock,.evdot.final{background:var(--red)}
.evdot.scrim{background:var(--kraft-shade)}
.evdot.kickoff{background:var(--green)}
.bk-sheet{padding:clamp(18px,3vw,28px)}
.bk-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;border-bottom:3px solid var(--ink);padding-bottom:12px;margin-bottom:16px}
.bk-top h3{font:900 clamp(22px,3vw,30px)/1 var(--f-display);text-transform:uppercase;letter-spacing:-.03em;margin:0}
.bk-top > span{font:400 13px/1.4 var(--f-type);color:var(--ink-soft)}
.bk-top .k{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:6px}
.bk-grp{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--red-deep);margin:18px 0 8px}
.bk-grp:first-of-type{margin-top:0}
.bk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.bk-card{appearance:none;border:0;border-left:4px solid var(--kraft-shade);background:#fff;color:var(--ink);text-align:left;padding:12px 14px;cursor:pointer;display:grid;gap:4px;font:inherit;min-width:0}
.bk-card:hover:not(:disabled){background:#f4f1ea;border-left-color:var(--red)}
.bk-card b{font:900 18px/1.05 var(--f-display);text-transform:uppercase;letter-spacing:-.02em;overflow-wrap:anywhere}
.bk-card span{font:500 11px/1.35 var(--f-mono);color:var(--ink-soft)}
.bk-card em{font:600 11px/1.3 var(--f-mono);font-style:normal;color:#2c7a4e}
.bk-card:disabled{cursor:default}
.bk-card:disabled em{color:#9f998f}
dialog#bk-pop{border:0;padding:clamp(18px,3vw,26px);width:min(1040px,calc(100vw - 32px));max-height:calc(100vh - 32px);background-color:var(--paper);background-image:var(--grain);color:var(--ink);box-shadow:var(--lift);color-scheme:light}
dialog#bk-pop::backdrop{background:rgba(10,8,6,.6)}
.bk-tools{display:flex;gap:14px;align-items:center}
.bk-seg{display:inline-flex;border:1.5px solid var(--ink)}
.bk-seg button{appearance:none;border:0;background:#fff;color:var(--ink);font:600 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:9px 11px;cursor:pointer}
.bk-seg button+button{border-left:1.5px solid var(--ink)}
.bk-seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.bk-seg button:disabled{color:#b3ada3;cursor:default}
.bk-wk-only{font:600 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--ink);padding:8px 2px 6px}
.bk-body{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;align-items:start}
.bk-step{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--red-deep);margin:0 0 8px}
.bk-empty{border:1.5px dashed #c9c3b8;padding:28px 18px;text-align:center;font:400 14px/1.5 var(--f-type);color:var(--ink-soft)}
.bk-scroll{overflow-x:auto}
.bk-wk{border-collapse:collapse;width:100%;min-width:520px;table-layout:fixed}
.bk-wk th{font:600 10px/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:6px 4px;text-align:center}
.bk-wk th b{display:block;font:800 16px/1 var(--f-display);color:var(--ink)}
.bk-wk th.past b{color:#b3ada3}
.bk-wk th.tm{width:64px;text-align:right;padding-right:10px;font:500 11px/1 var(--f-type);letter-spacing:0;text-transform:none}
.bk-wk td{border:1px solid #e9e5dd;height:26px;padding:0}
.bk-wk td.off{background:#fbfaf7}
.bk-wk td > *{display:block;width:100%;height:26px}
.bk-wk td button{appearance:none;border:0;background:#e6d2ae;cursor:pointer;padding:0}
.bk-wk td button:hover{background:#d6bd94}
.bk-wk td button.req{box-shadow:inset 0 0 0 1.5px var(--red)}
.bk-wk td button.in{background:#5b554d}
.bk-wk td button.on{background:var(--ink)}
.bk-wk td .is-open{background:#e6d2ae}
.bk-wk td .is-requested{background:#e6d2ae;box-shadow:inset 0 0 0 1.5px var(--red)}
.bk-note{margin:0;font:400 14px/1.5 var(--f-type)}
.bk-req a.btn{justify-self:start;text-decoration:none}
.bk-wk td .is-booked{background:repeating-linear-gradient(135deg,#bdb6ab 0 4px,#d3cdc3 4px 8px)}
.bk-wk td .is-mine{background:#fff;box-shadow:inset 0 0 0 2px var(--green)}
.bk-wk td .is-mine-ok{background:var(--green)}
.bk-wk tr.gap td,.bk-wk tr.gap th{height:12px;border:0;background:repeating-linear-gradient(90deg,#d8d3c9 0 6px,transparent 6px 12px) center/100% 1px no-repeat}
.bk-key{display:flex;gap:6px 14px;flex-wrap:wrap;font:500 11px/1.4 var(--f-mono);color:var(--ink-soft);margin-top:10px}
.bk-wk,.bk-key,.bk-seg{-webkit-user-select:none;user-select:none}   /* quick clicks on the planner don't highlight the text around it */
.bk-key i{display:inline-block;width:14px;height:10px;margin-right:5px;vertical-align:-1px}
.bk-key i.open{background:#e6d2ae}
.bk-key i.wait{background:#e6d2ae;box-shadow:inset 0 0 0 1.5px var(--red)}
.bk-key i.is-booked{background:repeating-linear-gradient(135deg,#bdb6ab 0 3px,#d3cdc3 3px 6px)}
.bk-key i.is-mine{background:#fff;box-shadow:inset 0 0 0 2px var(--green)}
.bk-key i.is-mine-ok{background:var(--green)}
.bk-key i.on{background:var(--ink)}
.bk-req{background:#fff;border-top:8px solid var(--red);box-shadow:0 1px 0 rgba(0,0,0,.06),0 14px 30px -18px rgba(0,0,0,.5);padding:16px 18px;display:grid;gap:12px;align-content:start}
.bk-req h4{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--red-deep);margin:0}
.bk-req dl{margin:0;display:grid;gap:8px}
.bk-req dt,.bk-lbl{font:600 10px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.bk-lbl{display:block;margin-bottom:5px}
.bk-req dd{margin:3px 0 0;font:700 15px/1.35 var(--f-type)}
.bk-req dd.empty{font-weight:400;color:#9f998f}
.bk-yours{display:block;font:400 13px/1.4 var(--f-type);color:var(--ink-soft)}
.bk-req textarea{width:100%;min-height:70px;font:400 14px/1.4 var(--f-type);border:1.5px solid var(--ink);padding:8px;resize:vertical;background:#fff;color:var(--ink)}
.bk-req textarea::placeholder{color:#a8a299}
.bk-req .btn{justify-self:start}
.bk-req .bk-seg button{padding:8px 10px}
.bk-fine{font:400 12.5px/1.45 var(--f-type);color:var(--ink-soft);margin:0}
.bk-rule{margin-top:6px}
@media (max-width:880px){ .bk-body{grid-template-columns:minmax(0,1fr)} }
.mine{margin-top:32px;background-color:var(--kraft);background-image:var(--grain);padding:clamp(16px,3vw,26px);border-radius:3px;box-shadow:var(--lift);color:var(--ink)}
.mine:empty{display:none}
.mine-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.mine-head h3{font:900 24px/1 var(--f-display);letter-spacing:-.03em;text-transform:uppercase;margin:0}
.mine-head a{font:600 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--kraft-ink)}
.req-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
/* fixed status and Cancel columns, so dates and coaches line up whatever the status says */
.req-list li{display:grid;grid-template-columns:92px minmax(0,1.3fr) minmax(0,1fr) 64px;gap:12px;align-items:center;background:var(--paper);padding:10px 14px}
.req-list li > :first-child{justify-self:start}
.mine-note{margin:10px 0 0;font:400 13px/1.4 var(--f-type);color:#5a4630}
.mine-note a{color:inherit}
.req-list li > :last-child{justify-self:end}
.req-list li > .rq-who:last-child{justify-self:start}   /* a row with no Cancel keeps its text in line with the others */
.rq-when{font:700 15px/1.3 var(--f-type)}
.rq-who{font-size:14px;color:var(--ink-soft)}
@media (max-width:640px){.req-list li{grid-template-columns:92px minmax(0,1fr)}.req-list .rq-who{grid-column:1/-1}}
.chip-st{display:inline-block;font:600 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 7px;border:1.5px solid currentColor;white-space:nowrap}
.st-pending{color:#a06c12}
.st-accepted{color:#fff;background:var(--green);border-color:var(--green)}
.st-declined{color:var(--red-deep)}
.st-done{color:#1f6e43}
.st-expired{color:#7d776f;border-style:dashed}
.st-cancelled,.st-withdrawn{color:#8f887e}
.st-waitlist{color:#4f6286}
.linkbtn{appearance:none;border:0;background:none;color:var(--red-deep);font:600 12px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:6px 4px;text-decoration:underline;text-underline-offset:3px}
.linkbtn:disabled{opacity:.5;cursor:not-allowed}
.empty-note{color:var(--ink-soft);margin:6px 0 0}
.empty-note.on-dark{color:var(--muted)}
.mb-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px}
.mb-foot a{font:600 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:#ff8a80;text-decoration:none}
.mb-foot a:hover{text-decoration:underline}

/* ---------- feedback ---------- */
#toasts{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(70px + env(safe-area-inset-bottom,0px));display:grid;gap:8px;z-index:60;width:min(380px,calc(100vw - 32px))}
.toast{background:var(--ink);color:var(--paper);font:500 14px/1.45 var(--f-display);padding:12px 16px;box-shadow:var(--lift);border-left:5px solid var(--green);transition:opacity .4s,transform .4s}
.toast.bad{border-left-color:var(--red)}
.toast.out{opacity:0;transform:translateY(6px)}
#demo-bar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;background:#f2c94c;color:#1e1a0e;font:500 13px/1.3 var(--f-mono);padding:8px max(16px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));box-shadow:0 -6px 18px rgba(0,0,0,.35)}
#demo-bar b{text-transform:uppercase;letter-spacing:.12em}
#demo-bar select,#demo-bar button{font:inherit;padding:5px 8px;border:1.5px solid #1e1a0e;background:#fff8dc;color:#1e1a0e;border-radius:0}
#demo-bar #demo-day{max-width:220px}
#demo-bar button{cursor:pointer}
body:has(#demo-bar){padding-bottom:64px}
@media (max-width:640px){#demo-bar>span{display:none}}

/* ---------- desk ---------- */
.desk{padding-block:40px 80px;display:grid;gap:26px}
.loading{color:var(--muted)}
.gate{padding:clamp(24px,4vw,44px);max-width:640px}
.gate h2{font:900 clamp(30px,4vw,46px)/.95 var(--f-display);letter-spacing:-.045em;text-transform:uppercase;margin:10px 0 14px}
.gate p{margin:0 0 20px;max-width:52ch}
/* desk header: who you are, and three numbers for the tab you're on (each opens that part of the desk) */
.dhead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 28px;align-items:center;padding:20px 24px}
.dh-who{display:flex;gap:16px;align-items:center;min-width:0}
.dh-who .mono-label{color:var(--ink-soft)}
.dhead h1{font:900 clamp(26px,3.6vw,38px)/.95 var(--f-display);letter-spacing:-.04em;text-transform:uppercase;margin:4px 0 6px;overflow-wrap:anywhere}
.dh-sub{margin:0;font:500 12px/1.4 var(--f-mono);color:var(--ink-soft);overflow-wrap:anywhere}
.dh-stats{display:grid;grid-template-columns:repeat(3,minmax(110px,auto));gap:8px}
.dh-stats:empty{display:none}
.dh-stat{appearance:none;border:0;border-top:4px solid var(--ink);background:#fff;color:var(--ink);display:grid;gap:4px;align-content:start;text-align:left;padding:10px 14px;cursor:pointer;font:inherit;min-width:0}
.dh-stat:hover{background:#f4f1ea}
.dh-stat.hot{border-top-color:var(--red)}
.dh-stat b{font:900 22px/1 var(--f-display);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dh-stat span{font:600 10px/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
@media (max-width:820px){.dhead{grid-template-columns:minmax(0,1fr)}.dh-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:420px){.dhead{padding:16px}.dh-stat{padding:9px 10px}.dh-stat b{font-size:17px;white-space:normal;overflow-wrap:anywhere}}
.rchips{display:flex;flex-wrap:wrap;gap:6px}
.rchip{display:inline-block;font:600 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 8px;background:#3a3a40;color:#f4f4f2;white-space:nowrap}
.rchip.green{background:var(--green);color:#fff}
.rchip.red{background:var(--red);color:#fff}
.desk-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:3px solid var(--kraft)}
.desk-tabs:empty{display:none}
.dtab{appearance:none;border:0;background:var(--kraft-shade);color:#2f2416;font:600 13px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:13px 16px;border-radius:8px 8px 0 0;cursor:pointer}
.dtab[aria-selected="true"]{background:var(--kraft)}
#desk-body{display:grid;gap:26px}
.desk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
@media (max-width:820px){.desk-grid{grid-template-columns:minmax(0,1fr)}}
.dpanel{padding:clamp(20px,3.4vw,34px);min-width:0}
.dpanel h2,.dpanel-flat h2{font:900 clamp(24px,2.8vw,34px)/1 var(--f-display);letter-spacing:-.035em;text-transform:uppercase;margin:0 0 14px}
.dpanel-flat h2{color:var(--paper)}
.dp-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px 16px;flex-wrap:wrap;margin-bottom:12px}
.dp-head h2{margin:0}
.count{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 8px;background:var(--red);color:#fff;font:800 18px/1 var(--f-display);vertical-align:middle;margin-left:6px;letter-spacing:0}
.muted{color:var(--ink-soft)}
.dpanel-flat .muted{color:var(--muted)}
.small{font-size:13px}
.big-name{font:900 30px/1 var(--f-display);text-transform:uppercase;letter-spacing:-.03em;margin:0 0 8px}
.plain{list-style:none;padding:0;margin:10px 0 18px;display:grid;gap:4px;font:700 17px/1.4 var(--f-type)}
.note-box{background:#fff6d6;border-left:4px solid #e0b43a;padding:10px 12px;margin:0 0 14px}
.tbl{overflow-x:auto;margin-top:8px}
.tbl table{border-collapse:collapse;width:100%;min-width:600px;font-size:15px}
.tbl th{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding:10px 8px;border-bottom:2px solid var(--ink)}
.tbl td{padding:10px 8px;border-bottom:1px solid var(--paper-rule);vertical-align:middle}
.past{margin-top:16px}
.past summary{cursor:pointer;font:600 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}

/* request slips (mentor) */
.slips{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.slip{background-color:#fbfbf8;color:var(--ink);padding:18px;box-shadow:var(--lift);border-top:10px solid var(--red);display:grid;gap:10px;align-content:start;min-width:0}
.slip:nth-child(odd){transform:rotate(-.8deg)}
.slip:nth-child(even){transform:rotate(.7deg)}
.slip-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.slip-top b{display:block;font-weight:800;overflow-wrap:anywhere}
.slip-top .muted{font-size:13px}
.slip-when{margin:0;font:400 15px/1.45 var(--f-type)}
.slip-when b{font-size:19px}
.slip-kind{margin:0;font:600 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--red-deep)}
.slip-note{margin:0;font-style:italic;color:var(--ink-soft);overflow-wrap:anywhere}
.slip-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}

/* mentor calendar */
.cal2{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--paper-rule);border:1px solid var(--paper-rule)}
.cal2 .wkl{grid-column:1/-1;background:var(--paper);font:600 10px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--red-deep);padding:9px 6px 7px}
.cd-top{display:flex;align-items:baseline;gap:5px;position:relative;padding-right:10px}
.cd-top small{font:500 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.cd-top b{font:800 20px/1 var(--f-display);font-variant-numeric:tabular-nums}
.cd-top .evdot{top:2px;right:0}
.cd-block,.cd-acc,.cd-pen{font:600 10.5px/1.25 var(--f-mono);padding:3px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-block{background:var(--kraft);color:#2f2416}
.cd-acc{background:var(--green);color:#fff}
.cd-pen{box-shadow:inset 0 0 0 1.5px var(--red);color:var(--red-deep)}
@media (max-width:700px){.cd-block{font-size:0;height:6px;padding:0}.cd-acc,.cd-pen{font-size:9px;padding:2px 3px}.cd-top small{display:none}}
.sheet-in{background:#fbfbf8;border:1.5px solid var(--ink);padding:18px;display:grid;gap:14px;align-content:start;min-width:0}
.sheet-in h3{margin:0;font:900 20px/1 var(--f-display);text-transform:uppercase;letter-spacing:-.02em}
.sheet-in fieldset{border:0;margin:0;padding:0;min-width:0}
.sheet-in legend{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding:0;margin-bottom:8px}
.cform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 26px;margin-top:10px}
.cform .wide{grid-column:1/-1}
@media (max-width:640px){.cform{grid-template-columns:minmax(0,1fr)}}

/* staff */
.subtabs{display:flex;flex-wrap:wrap;gap:6px}
.stab{appearance:none;border:1.5px solid var(--paper);background:transparent;color:var(--paper);font:600 12px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:10px 12px;cursor:pointer}
.stab[aria-pressed="true"]{background:var(--paper);color:var(--ink)}
.apps{display:grid;gap:8px;margin-top:12px}
.app-row{background:#fff;border:1px solid var(--paper-rule)}
.app-row summary{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.app-row summary::-webkit-details-marker{display:none}
.app-row[open] summary{border-bottom:1px dashed #b9b5ac}
.app-row .kv{margin:0 14px;border-top:0}
.app-act{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;padding:14px}
.app-act label{display:grid;gap:4px;font:600 10px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.app-act .grow{flex:1;min-width:200px}
.app-act select,.app-act input,.cell-in{font:500 14px/1.2 var(--f-display);padding:8px;border:1.5px solid var(--ink);border-radius:0;background:#fff;color:var(--ink);width:100%;min-width:0}
.cell-in{min-width:120px}
.kchip{font:600 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 7px;background:var(--ink);color:var(--paper)}
.kchip.solo{background:var(--kraft-shade);color:#2f2416}
@media (max-width:700px){.app-row summary{grid-template-columns:auto minmax(0,1fr) auto}.app-row summary>.muted,.app-row summary>.rchip,.app-row summary>span:empty{display:none}}
.teams-admin{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:24px;align-items:start}
@media (max-width:900px){.teams-admin{grid-template-columns:minmax(0,1fr)}}
.tlist{display:grid;gap:8px}
.tcard{appearance:none;width:100%;display:flex;align-items:center;gap:12px;background:#fff;border:0;border-left:4px solid var(--kraft-shade);padding:10px 12px;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.tcard:hover{background:#f4f1ea}
.tcard[aria-pressed="true"]{border-left-color:var(--red);box-shadow:inset 0 0 0 2px var(--ink)}
.tcard>span{display:grid;gap:3px;min-width:0}
.tcard b{font:900 17px/1.1 var(--f-display);text-transform:uppercase;letter-spacing:-.02em}
.tprofile{background:#fff;border:1.5px solid var(--ink);padding:18px 20px}
.tp-head{display:flex;gap:16px;align-items:center;border-bottom:3px solid var(--ink);padding-bottom:14px}
.tp-head h3{font:900 clamp(24px,3vw,32px)/1 var(--f-display);text-transform:uppercase;letter-spacing:-.03em;margin:6px 0 4px}
.tp-head p{margin:0}
.tp-sub{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 8px}
.tp-kv{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);margin:0;border-top:1px dashed #b9b5ac}
.tp-kv dt,.tp-kv dd{margin:0;padding:9px 0;border-bottom:1px dashed #b9b5ac}
.tp-kv dt{font:600 11px/1.5 var(--f-mono);letter-spacing:.06em;color:var(--ink-soft)}
.tp-kv dd{font:700 15px/1.4 var(--f-type)}
.tp-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;font:400 15px/1.4 var(--f-type)}
.tp-list b{font-weight:700}
.checks{display:grid;gap:6px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--paper-rule);background:#fff}
.checks label{display:flex;gap:8px;align-items:center;font-size:14px}
.row-btns{display:flex;gap:8px;flex-wrap:wrap}
.tbl tr.on td{background:#ece8df}

/* ---------- staff calendars: Hours and Requests (staffcal.js) ---------- */
.sc-top{display:flex;align-items:baseline;gap:6px 16px;flex-wrap:wrap;margin-bottom:14px}
.sc-top h2{margin:0}
.sc-days{display:grid;grid-template-columns:auto repeat(7,minmax(0,1fr));gap:4px;margin-bottom:12px}
.sc-days.dim{opacity:.55}
.sc-wk{font:600 10px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--red-deep);align-self:center;padding-right:6px}
.sc-day{appearance:none;border:1.5px solid var(--paper-rule);background:#fff;color:var(--ink);padding:6px 4px;display:grid;justify-items:center;gap:2px;cursor:pointer;position:relative;font:inherit;min-width:0}
.sc-day small{font:500 10px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.sc-day b{font:800 17px/1 var(--f-display)}
.sc-day span{font:600 10px/1 var(--f-mono);color:#2c7a4e;white-space:nowrap}
.sc-day.today b{color:var(--red)}
.sc-day:hover{border-color:var(--ink)}
.sc-day[aria-pressed="true"]{background:var(--ink);border-color:var(--ink)}
.sc-day[aria-pressed="true"] small,.sc-day[aria-pressed="true"] b{color:var(--paper)}
.sc-day[aria-pressed="true"] span{color:#8fe0b4}
.sc-tools{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-bottom:10px}
.sc-seg{display:flex;border:2px solid var(--ink)}
.sc-seg button{appearance:none;border:0;background:none;font:600 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:9px 12px;cursor:pointer;color:var(--ink)}
.sc-seg button+button{border-left:2px solid var(--ink)}
.sc-seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
.sc-check{display:flex;align-items:center;gap:8px;font:400 14px/1.3 var(--f-type)}
.sc-check input{accent-color:var(--red);width:17px;height:17px}
.sc-check select{font:700 14px/1.2 var(--f-type);border:0;border-bottom:1.5px solid var(--ink);background:transparent;color:var(--ink);padding:4px 0}
.sc-fullbtn{margin-left:auto}
.sc-filters{display:flex;gap:6px;flex-wrap:wrap}
.sc-fl{appearance:none;font:600 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:7px 9px;cursor:pointer;background:#fff;border:1.5px solid var(--paper-rule);color:var(--ink-soft)}
.sc-fl b{font-weight:700;margin-left:3px}
.sc-fl[aria-pressed="true"]{color:#fff}
.sc-fl.pending[aria-pressed="true"]{background:var(--red-deep);border-color:var(--red-deep)}
.sc-fl.accepted[aria-pressed="true"]{background:var(--green);border-color:var(--green)}
.sc-fl.declined[aria-pressed="true"],.sc-fl.cancelled[aria-pressed="true"]{background:#7d776f;border-color:#7d776f}
.sc-legend{display:flex;gap:6px 14px;flex-wrap:wrap;margin:0 0 10px;font:500 11px/1.4 var(--f-mono);color:var(--ink-soft)}
.sc-legend .lg{display:inline-block;width:14px;height:10px;margin-right:5px;vertical-align:-1px}
.lg.hrs{background:var(--kraft)}.lg.acc{background:var(--green)}.lg.pen{background:#fff;box-shadow:inset 0 0 0 2px var(--red)}
.lg.dec{background:#d9d5cc;box-shadow:inset 0 0 0 1.5px #8f887e}.lg.can{background:repeating-linear-gradient(135deg,#d9d5cc 0 3px,#eceae4 3px 6px)}.lg.bg{background:#efe3cf}
/* timeline */
.sc-tl{overflow-x:auto;border:1px solid var(--paper-rule);background:#fff}
.sc-tl-in{min-width:920px}
.sc-row{display:grid;grid-template-columns:170px minmax(0,1fr);border-bottom:1px solid #ebe7df;min-height:46px}
.sc-name{position:sticky;left:0;z-index:3;background:#fff;padding:7px 10px;display:grid;align-content:center;gap:2px;border-right:1px solid var(--paper-rule);min-width:0}
.sc-name b{font:700 15px/1.15 var(--f-type);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-name small{font:500 10px/1.2 var(--f-mono);color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-track{position:relative;background-image:repeating-linear-gradient(to right,#ebe7df 0 1px,transparent 1px 5%)}
.sc-axis{min-height:30px;background:var(--paper);position:sticky;top:0;z-index:4}
.sc-axis .sc-name,.sc-axis .sc-track{background-color:var(--paper)}
.sc-tick{position:absolute;top:0;bottom:0;padding-left:4px;font:600 10px/1 var(--f-mono);color:var(--ink-soft);border-left:1px solid var(--paper-rule);display:flex;align-items:center}
.sc-grp{appearance:none;display:flex;align-items:center;gap:8px;width:100%;border:0;border-bottom:1px solid var(--paper-rule);background:var(--paper);padding:8px 10px;cursor:pointer;font:700 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--red-deep);text-align:left}
.sc-grp small{font-weight:500;color:var(--ink-soft);letter-spacing:.06em}
.sc-grp:hover{background:#ebe8e1}
.sc-none{margin:0;padding:12px;color:var(--ink-soft);font:400 14px/1.4 var(--f-type)}
.sc-none.big{padding:22px 4px;font-size:16px}
.sc-bar{position:absolute;appearance:none;border:0;padding:0 6px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:600 10.5px/1 var(--f-mono);text-align:left;display:flex;align-items:center}
.sc-bar span{overflow:hidden;text-overflow:ellipsis}
.sc-bar.hrs{top:7px;bottom:7px;background:var(--kraft);color:#2f2416;align-items:flex-start;padding-top:4px}
.sc-bar.hrs:hover{box-shadow:inset 0 0 0 2px var(--ink)}
.sc-bar.ses{bottom:9px;height:11px;z-index:2;padding:0}
.sc-bar.ses.accepted{background:var(--green)}
.sc-bar.ses.pending{background:#fff;box-shadow:inset 0 0 0 2px var(--red)}
.sc-bar.ses:hover{outline:2px solid var(--ink);outline-offset:1px}
.sc-bg{position:absolute;top:5px;bottom:5px;background:#efe3cf}
.sc-bar.req{top:9px;bottom:9px;z-index:2}
.sc-bar.req.pending{background:#fff;color:var(--red-deep);box-shadow:inset 0 0 0 2px var(--red)}
.sc-bar.req.accepted{background:var(--green);color:#fff}
.sc-bar.req.declined{background:#d9d5cc;color:#5f5a52;box-shadow:inset 0 0 0 1.5px #8f887e;text-decoration:line-through}
.sc-bar.req.cancelled{background:repeating-linear-gradient(135deg,#d9d5cc 0 4px,#eceae4 4px 8px);color:#5f5a52;text-decoration:line-through}
.sc-bar.req:hover{outline:2px solid var(--ink);outline-offset:1px}
.sc-now{position:absolute;top:0;bottom:0;width:2px;background:var(--red);z-index:3}
/* week grid */
.sc-week .sc-wrow{display:grid;grid-template-columns:170px repeat(7,minmax(0,1fr)) 80px;border-bottom:1px solid #ebe7df}
.sc-whead{background:var(--paper);font:600 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.sc-whead > span{padding:10px 6px}
.sc-whead > span.on{color:var(--ink);background:#e6e2d9}
.sc-wcell{appearance:none;border:0;border-left:1px solid #ebe7df;background:none;padding:6px;display:flex;flex-direction:column;gap:3px;cursor:pointer;text-align:left;min-width:0}
.sc-wcell:hover{background:#f4f1ea}
.sc-wcell span{font:600 10.5px/1.2 var(--f-mono);padding:2px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.w-h{background:var(--kraft);color:#2f2416}.w-acc{background:var(--green);color:#fff}.w-pen{box-shadow:inset 0 0 0 1.5px var(--red);color:var(--red-deep)}.w-none{color:#b3ada3}
.sc-total{border-left:1px solid #ebe7df;padding:8px 6px;font:700 13px/1.2 var(--f-type);align-self:center}
/* list */
.sc-lh{font:900 18px/1 var(--f-display);text-transform:uppercase;letter-spacing:-.02em;margin:22px 0 8px;display:flex;gap:10px;align-items:baseline}
.sc-lh small{font:600 10px/1 var(--f-mono);letter-spacing:.1em;color:var(--ink-soft)}
.sc-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.sc-li{appearance:none;width:100%;border:0;border-left:4px solid var(--paper-rule);background:#fff;display:grid;grid-template-columns:190px 150px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;cursor:pointer;text-align:left;font:inherit;color:var(--ink)}
.sc-li:hover{background:#f4f1ea}
.sc-li .t{font:700 15px/1.2 var(--f-type)}
.sc-li .t small{font:500 10px/1 var(--f-mono);color:var(--ink-soft)}
.sc-li .c{font:700 14px/1.2 var(--f-type);color:var(--red-deep)}
.sc-li .more{font:600 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--red-deep)}
/* full-window view */
.sc-panel.sc-full{position:fixed;inset:0;z-index:90;margin:0;max-width:none;overflow:auto;border-radius:0}
.sc-panel.sc-full .sc-tl-in{min-width:1100px}
html.sc-noscroll{overflow:hidden}
/* pop-up */
dialog#sc-dlg,dialog#cc-dlg,dialog#ask-dlg{border:0;padding:clamp(18px,3vw,28px);width:min(500px,calc(100vw - 32px));background-color:var(--paper);background-image:var(--grain);color:var(--ink);box-shadow:var(--lift)}
dialog#sc-dlg::backdrop,dialog#cc-dlg::backdrop,dialog#ask-dlg::backdrop{background:rgba(10,8,6,.6)}
.sc-dtop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:3px solid var(--ink);padding-bottom:12px}
.sc-dtop h3{font:900 28px/1 var(--f-display);text-transform:uppercase;letter-spacing:-.04em;margin:6px 0 0}
.sc-dtop .k{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.sc-kv{display:grid;grid-template-columns:130px minmax(0,1fr);margin:0}
.sc-kv dt,.sc-kv dd{margin:0;padding:11px 0;border-bottom:1px dashed #b9b5ac}
.sc-kv dt{font:600 10px/1.6 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.sc-kv dd{font:400 15px/1.5 var(--f-type)}
.sc-kv dd b{font-weight:700}
.sc-in{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sc-tag{font:600 10px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--green);color:#fff;padding:3px 5px;margin-left:4px}
.sc-tag.other{background:#7d776f}
.sc-dact{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}
/* mentor calendar pop-up with several requests on a day: the list on the left, the picked one on the right */
dialog#cc-dlg.wide{width:min(800px,calc(100vw - 32px))}
.cc-split{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px}
.cc-side h4{font:600 10px/1.5 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:2px 0 10px}
.cc-side ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cc-srow{appearance:none;width:100%;border:0;border-left:4px solid var(--red);background:#fff;color:var(--ink);text-align:left;padding:9px 10px;cursor:pointer;display:grid;gap:3px;font:inherit}
.cc-srow.acc{border-left-color:var(--green)}
.cc-srow b{font:700 14px/1.2 var(--f-type)}
.cc-srow span{font:500 11px/1.3 var(--f-mono);color:var(--ink-soft)}
.cc-srow:hover{background:#f4f1ea}
.cc-srow[aria-current="true"]{box-shadow:inset 0 0 0 2px var(--ink)}
.cc-otag{font:600 9.5px/1 var(--f-mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);border:1.5px solid var(--red);padding:2px 4px;justify-self:start;margin-top:2px}
.slip-flag{margin:-2px 0 0;white-space:nowrap}
.slip-act .js-open{margin-left:auto}
.cc-side ul .cc-sday{font:600 10px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:8px 0 0}
.cc-side ul .cc-sday:first-child{margin-top:0}
.cc-side ul{max-height:min(60vh,520px);overflow-y:auto}
@media (max-width:720px){ .cc-split{grid-template-columns:minmax(0,1fr);gap:16px} .cc-side ul{max-height:34vh} }
/* are-you-sure step for Accept / Decline / Cancel session (UI.askRequest, staff and coaches) */
.sc-ask-who{font:400 15px/1.55 var(--f-type);margin:14px 0 0;padding-bottom:12px;border-bottom:1px dashed #b9b5ac}
.sc-ask-k{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 6px}
.sc-ask{margin:0;padding-left:20px;font:400 15px/1.55 var(--f-type)}
.sc-ask li+li{margin-top:4px}
.sc-ask-warn{color:var(--red-deep);font:700 14px/1.5 var(--f-type);margin:12px 0 4px}
.sc-ask.warn{color:var(--red-deep)}
.sc-dact .linkbtn{margin-left:auto}
@media (max-width:700px){
  .sc-days{grid-template-columns:repeat(7,minmax(0,1fr))}
  .sc-wk{grid-column:1/-1;padding:4px 0 0}
  .sc-row{grid-template-columns:120px minmax(0,1fr)}
  .sc-week .sc-wrow{grid-template-columns:120px repeat(7,minmax(70px,1fr)) 70px}
  .sc-fullbtn{margin-left:0}
  .sc-li{grid-template-columns:minmax(0,1fr) auto}
  .sc-li .c,.sc-li .p{grid-column:1/-1}
  .sc-kv{grid-template-columns:minmax(0,1fr)}
  .sc-kv dt{border-bottom:0;padding-bottom:0}
}

/* ---------- mentor calendar: Sessions | Hours (coachcal.js) ---------- */
.cc-mode{display:flex;border:2px solid var(--ink)}
.cc-mode button{appearance:none;border:0;background:none;font:600 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:10px 14px;cursor:pointer;color:var(--ink)}
.cc-mode button+button{border-left:2px solid var(--ink)}
.cc-mode button[aria-pressed="true"]{background:var(--ink);color:#fff}
.cc-hint{margin:0 0 12px}
.cc-hintrow{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap;margin:0 0 12px}
.cc-hintrow .cc-hint{margin:0}
/* a day: a full-size day button underneath, the hour and session chips on top as their own buttons */
.cc-day{position:relative;background:var(--paper);color:var(--ink);padding:8px 7px;min-height:104px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cc-day .hit{position:absolute;inset:0;appearance:none;border:0;background:none;padding:0;cursor:pointer;z-index:0}
.cc-day > :not(.hit){position:relative;z-index:1;pointer-events:none}
.cc-day:hover{background:#eae8e2}
.cc-day.on{background:#fff;box-shadow:inset 0 0 0 2px var(--ink)}
.cc-day.today .cd-top b{color:var(--red)}
.cc-day.past,.cc-day.past:hover{opacity:.45;background:#ece9e2}
.cc-day > .blk-btn,.cc-day > .ses-btn{pointer-events:auto;appearance:none;border:0;text-align:left;cursor:pointer;font:600 10.5px/1.25 var(--f-mono);padding:3px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-day > .blk-btn{background:var(--kraft);color:#2f2416}
.cc-day > .ses-btn.cd-acc{background:var(--green);color:#fff}
.cc-day > .ses-btn.cd-pen{background:#fff;box-shadow:inset 0 0 0 1.5px var(--red);color:var(--red-deep)}
.cc-day > .ses-btn:hover{outline:2px solid var(--ink);outline-offset:1px}
.cc-day .cd-top .cd-hrs{margin-left:auto;font:600 10px/1 var(--f-mono);color:#7a5c3a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cc-day.has-hrs{background:#f1e6d4}
.cc-day.has-hrs:hover{background:#ecdec8}
.cc-day.has-hrs.on{background:#fff}
.cc-legend .lg.hrs-tint{background:#f1e6d4;box-shadow:inset 0 0 0 1px #d9c7a8}
/* days that are over: how many sessions were done and requests expired; click one to see what happened */
.cc-day.was{background:#ece9e2}
.cc-day.was:hover{background:#e3dfd6}
.cc-day.was .cd-top small,.cc-day.was .cd-top b{color:#7d776f}
.cc-day.was.on{background:#fff;box-shadow:inset 0 0 0 2px var(--ink)}
.cc-day > .chip-st{justify-self:start;align-self:flex-start;font-size:9.5px;padding:3px 5px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cc-legend .lg.dn{background:#fff;box-shadow:inset 0 0 0 1.5px #1f6e43}
.cc-legend .lg.ex{background:#fff;box-shadow:none;outline:1.5px dashed #7d776f;outline-offset:-1.5px}
.cc-row.gone{border-left-color:#c9c4ba}
.cc-legend{display:flex;gap:6px 14px;flex-wrap:wrap;margin:10px 0 0;font:500 11px/1.4 var(--f-mono);color:var(--ink-soft)}
.cc-legend .lg{display:inline-block;width:12px;height:10px;margin-right:5px;vertical-align:-1px}
.cc-legend .evdot{position:static;display:inline-block;margin-right:5px}
/* Sessions: a day's list */
.cc-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cc-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;background:#fff;border-left:4px solid var(--kraft-shade)}
.cc-row.acc{border-left-color:var(--green)}
.cc-row.pen{border-left-color:var(--red)}
/* row: info on the left, Details › in its own column on the right */
.cc-info{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;min-width:0}
.cc-info .t{font:700 15px/1.3 var(--f-type)}
.cc-act{appearance:none;border:0;border-left:1px solid #e3ded4;background:none;cursor:pointer;font:600 11px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--red-deep);padding:0 14px;text-align:right}
.cc-act:hover{background:#f4f1ea;color:var(--ink)}
.btn.cc-danger{background:var(--red-deep)}
.btn.cc-danger:hover{background:var(--ink)}
.cc-dhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:22px}
.cc-dhead h3{font:900 22px/1 var(--f-display);text-transform:uppercase;letter-spacing:-.03em;margin:0}
@media (max-width:760px){
  .cc-row{grid-template-columns:minmax(0,1fr) 84px}
  .cc-info{grid-template-columns:minmax(0,1fr);gap:2px}
}
@media (max-width:560px){
  .cc-day{min-height:72px;padding:6px 4px}
  .cc-day > .blk-btn,.cc-day > .ses-btn{font-size:9px;padding:2px 3px}
  .cc-mode button{padding:9px 10px}
}

/* ---------- mentor calendar, Hours (coachcal.js): the overview, then the week planner with a side panel ---------- */
.hp-bar{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap;margin:0 0 12px}
.hp-bar p{margin:0}
.hp-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-left:auto}
/* the overview: the Sessions calendar, just to look, with each day's total in the corner */
.hp-ov .cc-day > .blk-btn{pointer-events:none}
.hp-ov .hp-ovtot{position:absolute;bottom:7px;right:8px;font:700 12px/1 var(--f-mono);color:var(--ink)}
.hp-hint{font:400 13.5px/1.5 var(--f-type);color:var(--ink);margin:0 0 12px;padding:9px 12px;background:#fff;border-left:4px solid var(--kraft-ink)}
.hp-hint.rm{border-left-color:var(--red)}
.hp-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}
@media (max-width:760px){ .hp-body{grid-template-columns:minmax(0,1fr)} }
/* + Add hours / − Remove hours: what dragging does */
.hp-tool{display:inline-flex;border:1.5px solid var(--ink)}
.hp-tool button{appearance:none;border:0;background:#fff;color:var(--ink);font:700 12px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:10px 13px;cursor:pointer}
.hp-tool button+button{border-left:1.5px solid var(--ink)}
.hp-tool button[data-tool="add"][aria-pressed="true"]{background:var(--kraft-ink);color:#fff}
.hp-tool button[data-tool="rm"][aria-pressed="true"]{background:var(--red);color:#fff}
/* the planner: 8 AM to 4 AM in half hours */
.hp-scroll{overflow-x:auto}
.hp-pl{border-collapse:collapse;width:100%;min-width:400px;table-layout:fixed;-webkit-user-select:none;user-select:none}
.hp-pl th.tm{width:48px;text-align:right;padding:0 6px 0 0;font:500 10px/1 var(--f-type);color:var(--ink-soft);vertical-align:top}
.hp-pl thead th{padding:0}
.hp-pl thead button{appearance:none;border:0;background:none;width:100%;padding:6px 2px 7px;cursor:pointer;position:relative;font:600 10px/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.hp-pl thead button b{display:block;font:800 16px/1 var(--f-display);color:var(--ink);margin-top:2px}
.hp-pl thead button:hover{background:#ebe7df}
.hp-pl thead th.on button{background:var(--ink);color:#cfcac0}
.hp-pl thead th.on button b{color:#fff}
.hp-pl thead th.today b{color:var(--red)}
.hp-pl thead th.over b{color:#b3ada3}
.hp-pl thead .evdot{top:4px;right:4px}
.hp-pl td{height:14px;padding:0;background:#fbfaf7;border-left:1px solid #e6e2d9;border-right:1px solid #e6e2d9;cursor:cell}
.hp-pl tr.hr td{border-top:1px solid #dcd7cd}
.hp-pl tr.hf td{border-top:1px dashed #ece8e0}
.hp-pl td:hover{background:#efebe3}
.hp-pl td.h{background:#e6d2ae;cursor:pointer}
.hp-pl td.h:hover{background:#d9c39d}
.hp-pl td.s{background:var(--green)}
.hp-pl td.w{box-shadow:inset 0 0 0 1.5px var(--red)}
.hp-pl td.sel{background:#c9ad7d}
.hp-pl td.s.sel{background:#1f6e43}
.hp-pl td.add,.hp-pl td.add:hover{background:var(--kraft-ink)}
.hp-pl td.rm,.hp-pl td.rm:hover{background:repeating-linear-gradient(135deg,#f2c4c0 0 3px,#fff 3px 6px);box-shadow:inset 1.5px 0 0 var(--red),inset -1.5px 0 0 var(--red)}
.hp-pl td.skip{box-shadow:inset 0 0 0 2px var(--red-deep)}   /* removing: a session or waiting request in the way */
.hp-pl td.past,.hp-pl td.past:hover{background:#efede8;box-shadow:none;cursor:default}
/* Write a session: only your free hours can be picked */
.hp-pl.wp td{cursor:default;height:24px}
.hp-pl.wp td:not(.h):not(.s),.hp-pl.wp td:not(.h):not(.s):hover{background:#efede8}
.hp-pl.wp td.s:not(.past),.hp-pl.wp td.s:not(.past):hover{background:var(--green)}
.hp-pl.wp td.can{cursor:pointer}
/* the time being written gets its own blue, so it can't be mistaken for Adding hours (brown) or a booked session (green) */
:root{--pick:#2a5ca8}
.hp-pl.wp td.pick,.hp-pl.wp td.pick:hover{background:var(--pick)}
.hp-side.is-pick{border-top-color:var(--pick)}
.hp-hint.pick{border-left-color:var(--pick)}
.hp-tag.pick{background:var(--pick)}
.hp-key i.pick{background:var(--pick);border-color:var(--pick)}
.hp-pl thead .wd{display:block;position:relative;padding:6px 2px 7px;text-align:center;font:600 10px/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.hp-pl thead .wd b{display:block;font:800 16px/1 var(--f-display);color:var(--ink);margin-top:2px}
.hp-key i.off{background:#efede8}
.hp-fld{display:grid;gap:6px;min-width:0}
.hp-fld .hp-sub{margin:0}
.hp-fld .bk-seg{justify-self:start}
.hp-fld select,.hp-fld input{font:700 13.5px/1.2 var(--f-type);padding:7px 6px;border:1.5px solid var(--ink);border-radius:0;background:#fff;color:var(--ink);width:100%;min-width:0}
.hp-fld input::placeholder{color:#a8a299;font-weight:400}
/* the key: on the right under the panel, one per line */
.hp-right{display:flex;flex-direction:column;gap:14px;min-width:0;overflow-anchor:none}   /* the browser doesn't shift the page to follow the panel as it grows */
.hp-key{display:grid;gap:7px;font:500 11.5px/1.4 var(--f-mono);color:var(--ink-soft);padding:12px 16px;border:1px solid #d8d3c9}
.hp-key .hp-sub{margin:0 0 2px}
.hp-key i{display:inline-block;width:14px;height:10px;margin-right:5px;vertical-align:-1px;background:#fbfaf7;border:1px solid #d8d3c9}
.hp-key i.h{background:#e6d2ae;border-color:#e6d2ae}.hp-key i.s{background:var(--green);border-color:var(--green)}.hp-key i.w{background:#e6d2ae;border-color:var(--red)}
.hp-key i.add{background:var(--kraft-ink);border-color:var(--kraft-ink)}
.hp-key i.rm{background:repeating-linear-gradient(135deg,#f2c4c0 0 3px,#fff 3px 6px);border-color:var(--red)}
.hp-key .evdot{position:static;display:inline-block;width:7px;height:7px;border:0;margin-right:5px;vertical-align:0}
/* the label next to the cursor while dragging */
.hp-tag{position:fixed;z-index:60;pointer-events:none;background:var(--kraft-ink);color:#fff;font:600 11.5px/1 var(--f-mono);padding:7px 9px;white-space:nowrap;box-shadow:0 6px 16px -6px rgba(0,0,0,.55)}
.hp-tag.rm{background:var(--red)}
/* the side panel */
.hp-side{background:#fff;border-top:6px solid var(--ink);box-shadow:0 1px 0 rgba(0,0,0,.06),0 14px 30px -18px rgba(0,0,0,.5);padding:14px 16px 16px;display:grid;gap:11px;align-content:start;min-width:0}
.hp-side.is-add{border-top-color:var(--kraft-ink)}
.hp-side.is-rm{border-top-color:var(--red)}
.hp-side h5{font:900 20px/1.05 var(--f-display);text-transform:uppercase;letter-spacing:-.02em;margin:0}
.hp-side p{margin:0;font:400 13.5px/1.5 var(--f-type)}
.hp-k{font:600 10px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.hp-sub{font:600 10px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:6px 0 0}
.hp-badge{display:inline-block;font:700 11px/1 var(--f-mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--kraft-ink);padding:6px 8px}
.hp-badge.rm{background:var(--red)}
.hp-big{font:700 18px/1.25 var(--f-type)!important}
.hp-side .hp-mut{color:var(--ink-soft);font-size:13px}
.hp-side .hp-warn{color:var(--red-deep);font-size:13px}
.hp-back{justify-self:start;padding:2px 0;font-size:11px}
.hp-kv{margin:0;display:grid;grid-template-columns:72px minmax(0,1fr);border-top:1px dashed #cfcac0}
.hp-kv dt,.hp-kv dd{margin:0;padding:7px 0;border-bottom:1px dashed #cfcac0}
.hp-kv dt{font:600 9.5px/1.8 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.hp-kv dd{font:400 13.5px/1.45 var(--f-type)}
.hp-io{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hp-io label{display:grid;gap:5px;font:600 9.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.hp-io select{font:700 13.5px/1.2 var(--f-type);padding:7px 4px;border:1.5px solid var(--ink);border-radius:0;background:#fff;color:var(--ink);width:100%}
.hp-dpick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.hp-dpick button{appearance:none;border:1.5px solid #cfcac0;background:#fff;font:600 10.5px/1 var(--f-mono);letter-spacing:.04em;padding:8px 2px;cursor:pointer;color:var(--ink)}
.hp-dpick button:hover{border-color:var(--ink)}
.hp-dpick button[aria-pressed="true"]{background:var(--kraft-ink);border-color:var(--kraft-ink);color:#fff}
.is-rm .hp-dpick button[aria-pressed="true"]{background:var(--red);border-color:var(--red)}
.hp-dpick button:disabled{color:#c4beb4;border-color:#ebe7df;cursor:default}
.hp-dpick .all{border-color:var(--ink)}
.hp-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hp-acts .end{margin-left:auto}
.hp-also{display:flex;gap:8px;align-items:flex-start;font:400 13px/1.4 var(--f-type)}
.hp-also input{accent-color:var(--red);margin-top:2px}
.hp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.hp-stats div{background:#f4f1ea;padding:8px 4px;text-align:center}
.hp-stats b{display:block;font:900 20px/1 var(--f-display)}
.hp-stats span{font:500 10px/1.2 var(--f-mono);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em}
.hp-dlist{list-style:none;margin:0;padding:0;border-top:1px dashed #d8d3c9}
.hp-dlist button{appearance:none;border:0;border-bottom:1px dashed #d8d3c9;background:none;width:100%;display:grid;grid-template-columns:50px minmax(0,1fr) 42px;gap:6px;text-align:left;padding:6px 2px;cursor:pointer;font:inherit;color:var(--ink);align-items:baseline}
.hp-dlist.two button{grid-template-columns:minmax(0,1fr) 42px}
.hp-dlist.static li{display:grid;grid-template-columns:50px minmax(0,1fr) 42px;gap:6px;padding:6px 2px;border-bottom:1px dashed #d8d3c9;align-items:baseline}
.hp-dlist button:hover{background:#f4f1ea}
.hp-dlist .d{font:600 10.5px/1.3 var(--f-mono);text-transform:uppercase;letter-spacing:.06em}
.hp-dlist .t{font:400 13px/1.35 var(--f-type)}
.hp-dlist .t.none{color:#a39d93}
.hp-dlist .n{font:700 13px/1.35 var(--f-type);text-align:right}
.hp-dlist .over{opacity:.5}
.hp-rows{list-style:none;margin:0;padding:0;display:grid;gap:5px}
@media (max-width:520px){ .hp-pl{min-width:0} .hp-pl th.tm{width:38px;padding-right:4px} .hp-pl thead button{letter-spacing:.02em} }
