/* ===========================================================================
   Corporate tier: mobile-app ergonomics. Scoped to [data-form-section^=corp]
   so nothing outside the corporate sections changes. Where these rules
   deviate from the site's form conventions (tiny uppercase labels, compact
   pills) they do so deliberately: 38 full-sentence items and thumb-driven
   answering follow app design rules, not editorial-label rules.
   =========================================================================== */
/* Question text reads as sentences, not micro-labels. 17px, mixed case. */
[data-form-section^="corp"] .corp-item .checkin-label{
  text-transform:none;letter-spacing:0;font-size:1.05rem;font-weight:450;
  line-height:1.5;color:var(--text-primary,#F4EFE6);margin-bottom:.7rem}
/* Thumb-sized answers: >=46px targets, roomier gaps, full-width rows. */
[data-form-section^="corp"] .pill{
  min-height:46px;display:inline-flex;align-items:center;justify-content:center;
  font-size:.95rem;padding:.55rem 1.05rem}
/* Every answer row is a grid of EQUAL-width buttons (content-sized buttons
   read as ragged). Text rows: as many 130px+ columns as fit, labels wrap
   inside the button. Numeric scales override below with exact counts. */
[data-form-section^="corp"] .pill-row{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
[data-form-section^="corp"] .pill{white-space:normal;text-align:center;min-width:0}
[data-form-section^="corp"] .pill-row[data-field^="ffmq_"]{grid-template-columns:repeat(5,1fr)}
[data-form-section^="corp"] .pill-row[data-field^="who5_"]{grid-template-columns:repeat(6,1fr)}
[data-form-section^="corp"] .pill-row[data-field="micro_count"]{grid-template-columns:repeat(6,1fr)}
@media (min-width:660px){
  [data-form-section^="corp"] .pill-row[data-field="micro_count"]{grid-template-columns:repeat(12,1fr)}
}
/* 1-to-10 scales: a fixed grid so every button is the same size. Five per
   row on phones (5+5), one row of ten when there is room. */
[data-form-section^="corp"] .pill-row[data-field^="self_"],
[data-form-section^="corp"] .pill-row[data-field="energy"],
[data-form-section^="corp"] .pill-row[data-field="stress"]{
  display:grid;grid-template-columns:repeat(5,1fr)}
@media (min-width:660px){
  [data-form-section^="corp"] .pill-row[data-field^="self_"],
  [data-form-section^="corp"] .pill-row[data-field="energy"],
  [data-form-section^="corp"] .pill-row[data-field="stress"]{
    grid-template-columns:repeat(10,1fr)}
}
/* An intro sentence never touches the card below it. Fixes the recurring
   not-enough-space-above-the-box problem in one place. */
[data-form-section^="corp"] p.dash-note + .checkin-form-card{margin-top:1.15rem}
/* Links inside corporate sections are copper, never browser blue. */
[data-form-section^="corp"] a{color:var(--accent,#C17A3E);text-decoration:underline;text-underline-offset:2px}
/* Progress breakdown: one bucket per line. */
.corp-progress-breakdown{display:grid;gap:.3rem;margin-top:.7rem}
.corp-progress-breakdown div{font-size:.9rem;line-height:1.45;color:var(--text-secondary)}
.corp-progress-breakdown strong{color:var(--accent,#C17A3E);font-weight:600}
/* Answer-scale legend: one anchor per line, the number in copper. The same
   scale carries a whole part, so it has to be scannable at a glance. */
.corp-scale-legend{display:grid;gap:.3rem;margin:.65rem 0 .25rem;padding:.75rem .95rem;
  border-left:3px solid var(--accent,#C17A3E);background:rgba(244,239,230,.045);
  border-radius:0 8px 8px 0}
.corp-scale-legend span{font-size:.92rem;line-height:1.45;color:var(--text-secondary)}
.corp-scale-legend strong{color:var(--accent,#C17A3E);display:inline-block;min-width:1.15rem}
/* Self-rating anchors: the two ends on their own lines, air before the buttons. */
.corp-anchors{display:grid;gap:.25rem;margin:.15rem 0 .8rem}
.corp-anchors div{font-size:.92rem;line-height:1.4;color:var(--text-secondary)}
.corp-anchors strong{color:var(--accent,#C17A3E);display:inline-block;min-width:1.5rem}
/* Selected state must be legible at arm's length: solid copper, dark text. */
[data-form-section^="corp"] .pill.selected{
  background:var(--accent,#C17A3E);border-color:var(--accent,#C17A3E);
  color:#1A1814;font-weight:600}
/* One item per visual row, separated by hairlines: a list, not a wall. */
[data-form-section^="corp"] .corp-item{
  padding:1rem 0;border-bottom:1px solid rgba(244,239,230,.07)}
[data-form-section^="corp"] .corp-item:last-child{border-bottom:none}
/* 16px inputs so iOS never zoom-jumps; generous tap area on the date. */
[data-form-section^="corp"] .checkin-textarea,
[data-form-section^="corp"] .checkin-date{font-size:16px;min-height:48px}
[data-form-section^="corp"] .checkin-textarea{min-height:88px}
/* The primary action is unmissable on a phone: full-width, 52px. */
[data-form-section^="corp"] .checkin-save{width:100%;min-height:52px;font-size:.78rem}
@media (min-width:700px){[data-form-section^="corp"] .checkin-save{width:auto}}
/* ===== Corporate redesign · Pass 1 tokens (2026-07-31) =====
   Scope: .corp-view wraps ONLY renderCorporateView output, so the tennis
   and program tiers never see these rules. State palette, one meaning per
   color: accent = current item / primary action / today, nothing else;
   cream .32 = done; cream .12 = not yet or locked; cream .42 = labels.
   Coach judgment colors stay .ccp-scoped and never reach participants. */
.corp-view .dash-note{font-size:.95rem;line-height:1.68;color:rgba(244,239,230,.82);max-width:66ch}
.corp-view .checkin-block-eyebrow{color:rgba(244,239,230,.42)}
.corp-view .checkin-save{font-size:.76rem;font-weight:600;letter-spacing:.16em;color:#1A1814;padding:.85rem 1.7rem}
.corp-view .checkin-save:hover:not(:disabled){background:#CE8A50}
.corp-view .corp-wk-btn{font-size:.72rem;border-color:rgba(193,122,62,.55)}
.corp-view .mdc-deactivate-link{font-size:.8rem;font-weight:400;letter-spacing:0;text-transform:none;color:rgba(244,239,230,.5);text-decoration:underline;text-underline-offset:3px;padding:.6rem .5rem}
.corp-view .corp-t-title{font-family:var(--fd);font-size:1.5rem;font-weight:400;line-height:1.2;color:var(--text-primary)}
.corp-view .corp-t-sub{font-family:var(--fd);font-size:1.12rem;font-weight:400;color:rgba(244,239,230,.6)}
.corp-view .corp-t-item{font-family:var(--fb);font-size:1.06rem;font-weight:500;color:var(--cream)}
/* Pass 2: the week arc */
.corp-view .corp-arc{display:flex;gap:4px;align-items:flex-end;margin-bottom:.3rem}
.corp-view .corp-arc-wk{flex:1;background:none;border:0;padding:.3rem 0 0;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;gap:.3rem;min-height:44px}
.corp-view .corp-arc-bar{display:block;height:6px;border-radius:3px;background:rgba(244,239,230,.09)}
.corp-view .corp-arc-wk.done .corp-arc-bar{background:rgba(244,239,230,.28)}
.corp-view .corp-arc-wk.cur .corp-arc-bar{height:12px;background:var(--accent)}
.corp-view .corp-arc-n{font-size:.56rem;font-variant-numeric:tabular-nums;color:rgba(244,239,230,.42);text-align:center}
.corp-view .corp-arc-wk.cur .corp-arc-n{color:var(--accent);font-size:.64rem;font-weight:600}
.corp-view .corp-arc-caption{display:flex;justify-content:space-between;align-items:baseline;font-size:.7rem;letter-spacing:.08em;color:rgba(244,239,230,.42);margin-bottom:1.1rem}
.corp-view .corp-arc-caption strong{color:var(--cream);font-weight:600}
.corp-view .corp-pager2{display:flex;align-items:center;gap:.5rem}
.corp-view .corp-pager2 .corp-week-pos{flex:1;text-align:center}
.corp-view .corp-pager2 .corp-pager-arrow{border:0;background:none;color:rgba(244,239,230,.35);font-size:1.45rem;min-width:44px;min-height:44px;padding:0}
.corp-view .corp-pager2 .corp-pager-arrow:not(:disabled):hover{color:var(--cream)}
.corp-view .corp-pager2 .corp-pager-arrow:disabled{opacity:.3}
.corp-view .corp-week-eyebrow{display:block;font-size:.6rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,239,230,.42)}
.corp-view .corp-week-eyebrow .corp-week-hint{display:inline;font-size:inherit;letter-spacing:.1em;color:rgba(244,239,230,.35)}
.corp-view .corp-pager2 .corp-t-title{display:block;margin-top:.2rem;text-transform:none;letter-spacing:normal}
.corp-view .corp-arc-wk.view .corp-arc-n{color:var(--cream);text-decoration:underline;text-underline-offset:3px}
/* Pass 3: the material spine */
.corp-view .corp-spine-summary{font-size:.82rem;color:rgba(244,239,230,.45);margin:-.3rem 0 .8rem}
.corp-view .corp-spine{position:relative;padding-left:2.1rem}
.corp-view .corp-spine::before{content:'';position:absolute;left:1.35rem;top:1.5rem;bottom:1.4rem;width:1px;background:rgba(244,239,230,.12)}
.corp-view .corp-spine-item{position:relative;padding:.85rem 0 .95rem;border-bottom:1px solid rgba(244,239,230,.06)}
.corp-view .corp-spine-item:last-child{border-bottom:0;padding-bottom:.4rem}
.corp-view .corp-spine-dot{position:absolute;left:-.75rem;top:1.05rem;width:13px;height:13px;border-radius:50%;transform:translateX(-50%);background:rgba(244,239,230,.32);z-index:1}
.corp-view .corp-spine-item.cur .corp-spine-dot{background:var(--accent);box-shadow:0 0 0 4px rgba(193,122,62,.16)}
.corp-view .corp-spine-item.todo .corp-spine-dot{background:var(--card-bg);border:1px solid rgba(244,239,230,.2)}
.corp-view .corp-spine-eyebrow{font-size:.58rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,239,230,.42);margin-bottom:.3rem}
.corp-view .corp-spine-item.cur .corp-spine-eyebrow{color:var(--accent)}
.corp-view a.corp-spine-title{display:inline-block;text-decoration:none;color:rgba(244,239,230,.85);font-size:.98rem}
.corp-view a.corp-spine-title.done{color:rgba(244,239,230,.42)}
.corp-view a.corp-t-item.corp-spine-title{color:var(--cream);font-size:1.06rem}
.corp-view .corp-spine-note{margin:.35rem 0 0;font-size:.88rem}
.corp-view .corp-spine-meta{font-size:.78rem;color:rgba(244,239,230,.42);margin:.3rem 0 0}
.corp-view a.corp-spine-open{display:inline-flex;align-items:center;justify-content:center;margin-top:.75rem;text-decoration:none;text-align:center}
/* Pass 4: progress + last 7 days */
.corp-view .corp-prog-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.7rem}
.corp-view .corp-prog-n{font-family:var(--fd);font-size:2.4rem;line-height:1;color:var(--cream)}
.corp-view .corp-prog-lbl{display:inline-block;margin-left:.4rem;font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,239,230,.42)}
.corp-view .corp-prog-rates{text-align:right;font-size:.78rem;color:rgba(244,239,230,.45);display:flex;flex-direction:column;gap:.5rem;min-width:11.5rem}
.corp-view .corp-prog-rate > span:first-child{display:block;margin-bottom:.25rem}
.corp-view .corp-mini{display:block;height:4px;border-radius:2px;background:rgba(244,239,230,.09);overflow:hidden}
.corp-view .corp-mini > span{display:block;height:100%;border-radius:2px;background:rgba(244,239,230,.32)}
.corp-view .corp-prog-track{display:block;height:6px;border-radius:3px;background:rgba(244,239,230,.09);overflow:hidden;margin-bottom:1.1rem}
.corp-view .corp-prog-track > span{display:block;height:100%;border-radius:3px;background:var(--accent);transition:width var(--t-once) var(--e-inout)}
.corp-view .corp-r7-cell{min-height:38px;min-width:0;overflow:hidden;border-radius:9px;background:rgba(244,239,230,.03);border:1px solid rgba(244,239,230,.08);padding:.4rem .25rem .4rem .35rem;display:flex;flex-direction:column;gap:3px}
.corp-view .corp-r7-cell.logged{background:rgba(193,122,62,.14);border-color:rgba(193,122,62,.42)}
.corp-view .corp-r7-cell.today{border:1.5px solid var(--accent);box-shadow:0 0 0 3px rgba(193,122,62,.1)}
.corp-view .corp-r7-date{font-size:.56rem;color:rgba(244,239,230,.5);margin-bottom:2px;white-space:nowrap;overflow:hidden}
.corp-view .corp-r7-bar{display:block;width:9px;height:3px;border-radius:1.5px;background:rgba(244,239,230,.14)}
.corp-view .corp-r7-bar.on{background:var(--accent)}
.corp-view .corp-r7-legend{display:flex;gap:1.1rem;align-items:center;margin-top:.55rem;font-size:.7rem;color:rgba(244,239,230,.4)}
.corp-view .corp-r7-swatch{display:inline-block;width:9px;height:3px;border-radius:1.5px;background:var(--accent)}
.corp-view .corp-r7-swatch.dim{background:rgba(244,239,230,.14)}
.corp-view .corp-r7-mini{display:inline-flex;flex-direction:column;gap:2px;margin-right:.4rem;vertical-align:-2px}
/* Motion pass A: every unspecified transition inside the corporate view
   gets a named easing. Durations stay as they are; this only replaces the
   browser default curve. */
.corp-view .pill,.corp-view .checkin-save,.corp-view .checkin-row,.corp-view .mdc-deactivate-link,
.corp-view .corp-wk-btn,.corp-view .corp-pager-arrow,.corp-view .corp-quiet-head,.corp-view a,
.corp-view .mdc-activate-btn,.corp-view .session-material-link{transition-timing-function:var(--e-out)}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition-duration:.01ms !important;transition-delay:0ms !important;animation-duration:.01ms !important;animation-delay:0ms !important;animation-iteration-count:1 !important}
  html{scroll-behavior:auto}
  /* The edit toast's entire visible life is a forwards animation whose final
     keyframe is opacity 0 — flattened, it would complete instantly and never
     appear (a failed save would look like a success). Static under reduced
     motion; the JS timer still hides it. */
  #edit-toast.is-visible,#edit-toast.is-error{animation:none !important;opacity:1}
}
/* Pass 5: quiet sections */
.corp-view .corp-quiet{border-top:1px solid rgba(244,239,230,.06);margin-top:.5rem}
.corp-view .corp-quiet-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;background:none;border:0;cursor:pointer;padding:.85rem .1rem;font-family:var(--fb);font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,239,230,.42);text-align:left;min-height:44px}
.corp-view .corp-quiet-head:hover{color:rgba(244,239,230,.7)}
.corp-view .corp-quiet-tog{font-size:1.15rem;font-weight:400;color:rgba(244,239,230,.35);flex:none;
  transition:transform var(--t-state) var(--e-out)}
.corp-view .corp-quiet.open .corp-quiet-tog{transform:rotate(45deg)}
.corp-view .corp-quiet-body{display:grid;grid-template-rows:0fr;overflow:hidden;opacity:0;visibility:hidden;
  transition:grid-template-rows var(--t-size) var(--e-inout),opacity var(--t-size) var(--e-inout),visibility 0s var(--e-inout) var(--t-size)}
.corp-view .corp-quiet.open .corp-quiet-body{grid-template-rows:1fr;opacity:1;visibility:visible;
  transition:grid-template-rows var(--t-size) var(--e-inout),opacity var(--t-size) var(--e-inout),visibility 0s}
.corp-view .corp-quiet-inner{min-height:0}
.corp-view .corp-quiet-body .section-header{display:none}
.corp-view .corp-quiet-body .mdc-section{margin-top:.2rem}
.corp-view .corp-quiet.attn{border:1px solid rgba(193,122,62,.45);border-radius:12px;padding:0 .85rem .5rem;margin-top:1.1rem}
/* ===== Motion pass C: the four moments ===================================
   data-motion-from paints the OLD state for one frame; removing it lets
   these transitions carry the change. data-motion-run persists until the
   next render and gates one-shot keyframes (the drawn checkmark). */
/* 01 spine handover */
.corp-view .corp-spine-dot{transition:background var(--t-state) var(--e-out),border-color var(--t-state) var(--e-out),box-shadow var(--t-state) var(--e-out)}
.corp-view a.corp-spine-title,.corp-view .corp-spine-eyebrow,.corp-view .corp-spine-meta{transition:color var(--t-state) var(--e-out)}
.corp-view .corp-spine-openwrap{display:block;overflow:hidden;max-height:60px;opacity:1;margin-top:.75rem;
  transition:max-height var(--t-size) var(--e-inout),opacity var(--t-state) var(--e-out),margin-top var(--t-size) var(--e-inout)}
.corp-view .corp-spine-item.done .corp-spine-openwrap,.corp-view .corp-spine-item.todo .corp-spine-openwrap{max-height:0;opacity:0;margin-top:0;pointer-events:none}
.corp-view .corp-spine-openwrap a.corp-spine-open{margin-top:0}
/* faithful old-appearance mirrors for every reachable from-state (cur, todo,
   AND done — un-marking a completion on a content page ships today) */
.corp-view .corp-spine-item[data-motion-from="cur"] .corp-spine-dot{background:var(--accent);border-color:transparent;box-shadow:0 0 0 4px rgba(193,122,62,.16)}
.corp-view .corp-spine-item[data-motion-from="cur"] .corp-spine-openwrap{max-height:60px;opacity:1;margin-top:.75rem}
.corp-view .corp-spine-item[data-motion-from="cur"] a.corp-spine-title{color:var(--cream)}
.corp-view .corp-spine-item[data-motion-from="todo"] .corp-spine-dot{background:var(--card-bg);border:1px solid rgba(244,239,230,.2);box-shadow:none}
.corp-view .corp-spine-item[data-motion-from="todo"] .corp-spine-openwrap{max-height:0;opacity:0;margin-top:0}
.corp-view .corp-spine-item[data-motion-from="todo"] a.corp-spine-title{color:rgba(244,239,230,.85)}
.corp-view .corp-spine-item[data-motion-from="done"] .corp-spine-dot{background:rgba(244,239,230,.32);border-color:transparent;box-shadow:none}
.corp-view .corp-spine-item[data-motion-from="done"] .corp-spine-openwrap{max-height:0;opacity:0;margin-top:0}
.corp-view .corp-spine-item[data-motion-from="done"] a.corp-spine-title{color:rgba(244,239,230,.42)}
/* 03 day cell: tint first, then the two bars 60ms apart */
.corp-view .corp-r7-cell{transition:background var(--t-state) var(--e-out),border-color var(--t-state) var(--e-out)}
.corp-view .corp-r7-bar{transform-origin:left center;transition:background var(--t-state) var(--e-out),transform var(--t-state) var(--e-out)}
.corp-view .corp-r7-cell .corp-r7-bar:nth-of-type(1){transition-delay:0ms,calc(var(--t-micro) / 2)}
.corp-view .corp-r7-cell .corp-r7-bar:nth-of-type(2){transition-delay:0ms,var(--t-micro)}
.corp-view .corp-r7-cell[data-motion-from="empty"]{background:rgba(244,239,230,.03);border-color:rgba(244,239,230,.08)}
/* only bars that END lit grow in; a bar that stays dim was full-width
   before and after, so it must not move */
.corp-view .corp-r7-cell[data-motion-from="empty"] .corp-r7-bar.on{transform:scaleX(0)}
/* 04 week paging: viewed bar rises in cream (today keeps the only accent);
   the title enters with a 4px rise */
.corp-view .corp-arc-bar{transition:height var(--t-state) var(--e-out),background var(--t-state) var(--e-out)}
.corp-view .corp-arc-n{transition:color var(--t-state) var(--e-out)}
.corp-view .corp-arc-wk.view .corp-arc-bar{height:12px;background:rgba(244,239,230,.42)}
.corp-view .corp-arc-wk[data-motion-from$="-view"] .corp-arc-bar{height:12px;background:rgba(244,239,230,.42)}
.corp-view .corp-arc-wk[data-motion-from="cur"] .corp-arc-bar{height:12px;background:var(--accent)}
.corp-view .corp-arc-wk[data-motion-from="done"] .corp-arc-bar{height:6px;background:rgba(244,239,230,.28)}
.corp-view .corp-arc-wk[data-motion-from="future"] .corp-arc-bar{height:6px;background:rgba(244,239,230,.09)}
.corp-view .corp-week-pos{transition:opacity var(--t-state) var(--e-out),transform var(--t-state) var(--e-out)}
.corp-view .corp-week-pos[data-motion-from]{opacity:0;transform:translateY(4px)}
/* 06 the moment after Save: border releases, card settles, checkmark draws */
.corp-view .corp-card-quiet{transition:border-color var(--t-state) var(--e-out),box-shadow var(--t-state) var(--e-out),opacity var(--t-state) var(--e-out)}
.corp-view [data-form-section="corp-daily"][data-motion-from="open"] .corp-card-quiet{border-color:rgba(193,122,62,.5);box-shadow:0 0 0 3px rgba(193,122,62,.07);opacity:0}
.corp-view #corp-daily-form{transition:opacity var(--t-state) var(--e-out)}
.corp-view [data-form-section="corp-daily"][data-motion-from="logged"] #corp-daily-form{opacity:0}
.corp-view .corp-tick{width:18px;height:18px;vertical-align:-3px;margin-right:.15rem}
.corp-view .corp-tick path{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:26;stroke-dashoffset:0}
/* The tick's draw (the corpTickDraw keyframes and the data-motion-run rule, 340ms
   var(--e-out) 160ms backwards) is declared once, in clients/dashboard.css, shared
   with the tennis/program .save-tick; only the corporate tick's size and stroke
   live here. */
/* Progress line on the baseline: quiet, factual, always visible. */
.corp-progress{font-family:var(--fb);font-size:.8rem;color:var(--text-secondary);
  letter-spacing:.02em;margin:.35rem 0 .9rem}
.corp-progress strong{color:var(--accent,#C17A3E)}
/* Daily log + pace card: questions read as sentences too, not micro-labels,
   and the rhythm question -> answers -> next question stays consistent:
   .45rem label-to-pills, 1.15rem between questions, .55rem before a
   conditional follow-up. */
[data-form-section="corp-daily"] .checkin-label,
[data-form-section="corp-reflection"] .checkin-label,
[data-form-section="corp-pace"] .checkin-label{
  text-transform:none;letter-spacing:0;font-size:1.05rem;font-weight:450;
  line-height:1.5;color:var(--text-primary,#F4EFE6);margin-bottom:.45rem}
[data-form-section^="corp"] .corp-item .checkin-label{margin-bottom:.45rem}
[data-form-section="corp-daily"] .checkin-field{margin-bottom:1.15rem}
[data-form-section="corp-daily"] .checkin-block{margin-bottom:.35rem}
.corp-sec{margin-top:2.6rem}
[data-form-section^="corp"]{--text-secondary:#C6BEB1}
.corp-card-attn{border:1px solid rgba(193,122,62,.5);box-shadow:0 0 0 3px rgba(193,122,62,.07)}
.corp-card-quiet{opacity:.82}
.corp-week-pager{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin:.1rem 0 1rem;padding:.5rem .55rem;border:1px solid rgba(193,122,62,.4);border-radius:14px;background:rgba(193,122,62,.06)}
.corp-week-pager .corp-week-pos{font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;text-align:center}
.corp-wk-btn{min-height:44px;padding:.5rem .95rem;border-radius:999px;border:1px solid #C17A3E;background:transparent;color:#C17A3E;font-family:inherit;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
#corp-extconsent-yes,#corp-extconsent-no{white-space:normal;max-width:100%;line-height:1.6;text-align:left}
.corp-wk-btn:not([disabled]):hover{background:rgba(193,122,62,.14)}
.corp-week-pager button[disabled]{opacity:.3;pointer-events:none}
.section-header .demo-badge{margin-left:.55rem;vertical-align:middle}
.corp-changes{border:1px solid rgba(193,122,62,.55);background:rgba(193,122,62,.08);padding:.8rem 1rem .9rem;border-radius:12px;margin:0 0 1.1rem}
.corp-state-chip{float:right;font-family:var(--fb);font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.35rem .7rem;border-radius:999px;position:relative;top:.15rem}
.corp-state-open{color:#C17A3E;border:1px solid rgba(193,122,62,.55);background:rgba(193,122,62,.08)}
.corp-state-done{color:var(--text-secondary,#B7AE9F);border:1px solid rgba(244,239,230,.16)}
[data-form-section="corp-recent"] .mdc-recent-eyebrow{display:none}
.corp-note-history{margin-top:.9rem}
.corp-log-preview{pointer-events:none;opacity:.72;border:1px solid rgba(244,239,230,.1);border-radius:12px;padding:.9rem 1rem .4rem;margin-top:.5rem}
.corp-note-history summary{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary,#B7AE9F);cursor:pointer}
.ccp-h{font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#C17A3E;margin:1.4rem 0 .5rem}
.ccp-h:first-child{margin-top:0}
.ccp-row{display:flex;align-items:center;gap:.7rem;margin:.4rem 0}
.ccp-lab{flex:0 0 36%;font-size:.76rem;color:var(--text-secondary,#B7AE9F);line-height:1.3}
.ccp-track{flex:1;height:9px;border-radius:999px;background:rgba(244,239,230,.09);overflow:hidden}
/* Motion pass I: the coach panel's judgment states move on the vocabulary; no keys,
   the coach reads it as a report (colors stay coach-only). */
.ccp-fill{height:100%;border-radius:999px;background:#C17A3E;transition:width var(--t-state) var(--e-inout),background var(--t-state) var(--e-out)}
.ccp-fill.ok{background:#5E8C61}
.ccp-fill.bad{background:#B94834}
.ccp-val{flex:0 0 3.6rem;text-align:right;font-size:.8rem;font-weight:600}
.ccp-days{display:flex;gap:.28rem;flex-wrap:wrap;margin:.45rem 0 .3rem}
.ccp-day{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.58rem;font-weight:600;color:rgba(244,239,230,.75);background:rgba(244,239,230,.05);border:1px solid rgba(244,239,230,.09);transition:color var(--t-micro) var(--e-out),background var(--t-micro) var(--e-out),border-color var(--t-micro) var(--e-out),opacity var(--t-micro) var(--e-out)}
.ccp-day.ok{background:rgba(94,140,97,.28);border-color:rgba(94,140,97,.8);color:#CFE3D0}
.ccp-day.okf{background:#5E8C61;border-color:#5E8C61;color:#F4EFE6}
.ccp-day.miss{background:rgba(185,72,52,.2);border-color:rgba(185,72,52,.65);color:#E5A797}
.ccp-day.off{opacity:.3}
.ccp-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:600;padding:.28rem .6rem;border-radius:999px;border:1px solid rgba(244,239,230,.16);color:var(--text-secondary,#B7AE9F);margin:.15rem .3rem .15rem 0;transition:color var(--t-micro) var(--e-out),border-color var(--t-micro) var(--e-out)}
.ccp-chip.ok{color:#8FBF92;border-color:rgba(94,140,97,.6)}
.ccp-chip.bad{color:#D98A78;border-color:rgba(185,72,52,.55)}
.ccp-spark{width:100%;height:60px;display:block}
.ccp-sparkwrap{margin:.3rem 0 .9rem}
[data-form-section="corp-recent"] .mdc-recent{margin-top:0}
.corp-week-pager .corp-wk-btn{min-width:48px;font-size:1.05rem;padding:.4rem 0}
.corp-week-hint{display:block;font-size:.55rem;letter-spacing:.14em;opacity:.7;margin-top:.15rem}
[data-form-section^="corp"] .mdc-conditional{margin-top:.55rem}
[data-form-section^="corp"] .checkin-block-eyebrow{margin-bottom:.7rem}
[data-form-section^="corp"] .checkin-char-counter{margin-top:.35rem}
