/* Candidate Web layout, adapted from the registered ARK UI 0.3.0 semantic
   tokens and the existing ArkActionButton/MessageComposer Web adapter.
   This file changes layout and hierarchy; the host still owns saved answers,
   reading state, personal-code access and timing. Admin selectors are excluded. */

.is-candidate .entry-label{margin:0 0 14px;font-size:var(--font-caption);color:var(--muted);font-weight:500}
.is-candidate .candidate-entry{max-width:1040px;grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);column-gap:84px;margin-top:clamp(48px,9vh,96px)}
.is-candidate .entry-intro h1{font-size:36px;line-height:1.35;margin-bottom:20px;font-weight:600;letter-spacing:0}
.is-candidate .entry-intro .entry-description{max-width:360px;font-size:17px;line-height:1.85;margin-bottom:32px}
.is-candidate .entry-sequence{display:grid;gap:18px;list-style:none;margin:0;padding:0;color:var(--muted);font-size:14px;line-height:1.65}
.is-candidate .entry-sequence li{display:flex;align-items:baseline;gap:16px}
.is-candidate .entry-sequence li>span{font:12px/1.65 ui-monospace,SFMono-Regular,monospace;color:var(--action)}
.is-candidate .entry-access{padding:12px 0 0 44px}
.is-candidate .entry-access h2{font-size:21px;line-height:1.5;margin-bottom:24px;font-weight:600}
.is-candidate .entry-access #login-form{gap:18px}
.is-candidate .entry-code-label{display:block;margin-bottom:8px;font-size:14px;color:var(--text);font-weight:500}
.is-candidate .entry-access input{min-height:54px;font-size:16px;line-height:1.6}
.is-candidate .entry-access .entry-submit{min-height:52px;font-size:16px;font-weight:600}
.is-candidate .entry-attempt-notice{border-left:2px solid var(--line);padding:0 0 0 14px;margin-top:24px;font-size:13px;line-height:1.8}
.is-candidate .entry-attempt-notice strong{font-size:14px;line-height:1.6;margin-bottom:6px}
.is-candidate .entry-support{margin-top:26px;padding-top:18px}
.is-candidate .entry-footer{margin-top:64px;font-size:12px}

.is-candidate .prepare-page.resume-first{display:block;max-width:760px;margin:8px auto 48px}
.is-candidate .prepare-heading{position:static;display:block;min-width:0;margin:0 0 20px}
.is-candidate .prepare-heading .eyebrow{color:var(--muted);font-size:14px;font-weight:500;letter-spacing:0;margin:0 0 4px}
.is-candidate .prepare-heading h1{min-width:0;width:100%;font-size:20px;line-height:1.5;font-weight:600;letter-spacing:0;margin:0}
.is-candidate .prepare-metrics{margin:24px 0;padding:20px 0;gap:32px}
.is-candidate .prepare-metrics strong{font-size:26px;font-weight:550}
.is-candidate .preparation-outline{gap:20px}
.is-candidate .preparation-outline strong{font-size:13px;color:var(--muted);font-weight:400}
.is-candidate .prepare-body{box-shadow:none;border-radius:var(--control);font-size:var(--font-body)}
.is-candidate .prepare-body>.panel{padding:24px 28px}
.is-candidate .prepare-page h2{font-size:18px;font-weight:600;line-height:1.6;gap:0}
.is-candidate .section-index{font-size:11px;color:var(--muted)}
.is-candidate .preparation-background{margin-top:16px;font-size:var(--font-body);line-height:1.85;max-width:none}
.is-candidate .resume-intake__heading h2{margin-bottom:6px}
.is-candidate .resume-intake__heading p{font-size:var(--font-caption);line-height:1.8;margin-bottom:12px}
.is-candidate .resume-intake .prepare-collection-notice{margin:0 0 16px;font-size:var(--font-caption);line-height:1.8;color:var(--muted)}
.is-candidate .resume-intake__actions{gap:10px}
.is-candidate .resume-intake__actions>button{min-height:44px;font-size:14px}
.is-candidate .resume-overview .facts{padding:14px 16px;margin:18px 0 12px;background:var(--ark-ghost);border-radius:var(--control);font-size:var(--font-body);grid-template-columns:100px minmax(0,1fr);gap:6px 16px}
.is-candidate .resume-original>summary,.is-candidate .resume-fields>summary{color:var(--action);font-weight:500}
.is-candidate .resume-original>div{font-size:var(--font-body);line-height:1.85;max-height:360px;overflow:auto;overscroll-behavior:contain}
.is-candidate .resume-start-summary{margin-bottom:10px}
.is-candidate .resume-start-summary>strong{font-size:18px;font-weight:600;line-height:1.6}
.is-candidate .resume-session-facts{font-size:14px;color:var(--muted)}
.is-candidate .resume-confirm .prepare-rules{margin:14px 0 0;padding:0}
.is-candidate .resume-confirm .prepare-rules p{margin:0 0 8px;font-size:14px;line-height:1.8;color:var(--text)}
.is-candidate .resume-confirm .prepare-collection-notice{margin:16px 0 0;font-size:var(--font-caption);line-height:1.8;color:var(--muted)}
.is-candidate .resume-confirm .attempt-notice{margin:16px 0;padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--action);border-radius:var(--control);background:var(--ark-ghost)}
.is-candidate .resume-confirm .attempt-notice strong{font-size:var(--font-body);line-height:1.65;color:var(--ink);font-weight:600}
.is-candidate .resume-confirm .attempt-notice p{font-size:var(--font-caption);line-height:1.8;margin:8px 0 0;color:var(--muted)}
.is-candidate .resume-confirm .check{font-size:var(--font-body);line-height:1.8;margin:20px 0}
.is-candidate .resume-confirm .prepare-actions>button{min-height:52px;min-width:200px;font-size:16px;font-weight:600}
.is-candidate .resume-timing{margin-bottom:0;line-height:1.8}

.is-candidate.is-room .room-frame{box-shadow:none}
.is-candidate.is-room .room-meta .room-identity strong{font-weight:600}
.is-candidate.is-room .room-reference .reference-toolbar h2{font-size:14px}
.is-candidate.is-room .room-reference .question-material>summary{font-weight:500}
.is-candidate.is-room .ark-message-composer__send{font-weight:600;min-height:52px}
.is-candidate.is-room .ark-message.is-current .ark-message__author{margin-bottom:14px}
.is-candidate.is-room .ark-message.is-current .ark-message__text{font-size:20px;line-height:1.9;font-weight:500}

/* Reading time belongs beside the answer clock. The host confirms all pauses. */
.is-candidate.is-room .room-time{gap:14px}
.is-candidate.is-room .room-clock{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
.is-candidate.is-room .room-clock #timer-label{font-size:var(--font-caption);color:var(--muted)}
.is-candidate.is-room .room-reading{display:flex;align-items:center;gap:8px;min-width:0}
.is-candidate.is-room .room-reading>button{min-height:44px;padding:8px 10px;white-space:nowrap;font-size:var(--font-caption)}
.is-candidate.is-room .room-reading__status{font-size:var(--font-caption);font-variant-numeric:tabular-nums;color:var(--success);white-space:nowrap}
.is-candidate.is-room .room-reading__status:empty{display:none}

@media(max-width:700px){
 .is-candidate.is-room .room-meta{display:flex;flex-direction:column;align-items:stretch;gap:6px}
 .is-candidate.is-room .room-meta .room-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px}
 .is-candidate.is-room .room-meta .room-progress>span{grid-column:1;grid-row:1;min-width:0}
 .is-candidate.is-room .room-meta .room-time{display:contents}
 .is-candidate.is-room .room-clock{grid-column:2;grid-row:1;justify-content:flex-end}
 .is-candidate.is-room .room-clock #timer-label{display:none}
 .is-candidate.is-room .room-reading{grid-column:2;grid-row:2;justify-content:flex-end;gap:6px}
 .is-candidate.is-room .room-time>button[data-action="refresh-candidate"]{grid-column:1;grid-row:2;justify-self:start;padding:8px 10px;white-space:nowrap}
 .is-candidate.is-room .room-reading>button{padding:8px;font-size:12px}
}

.is-candidate .receipt-page{max-width:840px;margin:48px auto}
.is-candidate .receipt-summary{padding:36px 40px;box-shadow:none}
.is-candidate .receipt-state{background:var(--ark-ai-surface);color:var(--success);font-size:13px;font-weight:500}
.is-candidate .receipt-page h1{font-size:28px;line-height:1.5;font-weight:600;letter-spacing:0;margin:20px 0 12px}
.is-candidate .receipt-next{max-width:52ch;color:var(--muted);font-size:15px;line-height:1.9;margin:0}
.is-candidate .receipt-overview{display:flex;flex-wrap:wrap;gap:20px 48px;margin:26px 0;padding:20px 0;border-block:1px solid var(--line)}
.is-candidate .receipt-overview>div{display:flex;flex-direction:column;gap:4px}
.is-candidate .receipt-overview strong{font-size:26px;line-height:1.5;font-weight:550;color:var(--ink);font-variant-numeric:tabular-nums}
.is-candidate .receipt-overview small{font-size:14px;font-weight:400;color:var(--muted)}
.is-candidate .receipt-overview span{font-size:13px;color:var(--muted)}
.is-candidate .receipt-actions{gap:12px}
.is-candidate .receipt-actions>button{min-height:48px;font-size:15px}
.is-candidate .receipt-actions>button.primary{background:var(--ark-purple);border-color:var(--ark-purple);color:var(--surface);font-weight:600}
.is-candidate .receipt-details{margin-top:20px}
.is-candidate .receipt-details>summary{color:var(--action);font-weight:500}
.is-candidate .receipt-transcript{box-shadow:none;padding:20px 28px}
.is-candidate .receipt-transcript>summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;color:var(--ink);font-size:16px;font-weight:600;list-style:none}
.is-candidate .receipt-transcript>summary::-webkit-details-marker{display:none}
.is-candidate .receipt-transcript>summary:before{content:'+';display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:4px;font-size:16px;color:var(--action);font-weight:400}
.is-candidate .receipt-transcript[open]>summary:before{content:'−'}
.is-candidate .receipt-transcript>summary span{margin-left:auto;color:var(--muted);font-size:12px;font-weight:400}
.is-candidate .receipt-transcript .receipt-messages{padding-top:24px}

@media(max-width:960px){
 .is-candidate .candidate-entry{column-gap:40px;grid-template-columns:minmax(0,1fr) minmax(300px,1fr)}
 .is-candidate .entry-access{padding-left:32px}
}

@media(max-width:700px){
 .is-candidate.site-shell.is-entry{padding:0 22px 24px}
 .is-candidate .candidate-entry{display:block;max-width:480px;margin-top:28px}
 .is-candidate .entry-label{font-size:12px;margin-bottom:8px}
 .is-candidate .entry-intro h1{font-size:28px;margin-bottom:12px}
 .is-candidate .entry-intro .entry-description{max-width:none;font-size:16px;line-height:1.8;margin-bottom:20px}
 .is-candidate .entry-sequence{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px}
 .is-candidate .entry-sequence li{gap:6px}
 .is-candidate .entry-sequence li>span{font-size:10px}
 .is-candidate .entry-access{margin-top:26px;padding:24px 0 0;border-left:0;border-top:1px solid var(--line)}
 .is-candidate .entry-access h2{font-size:18px;margin-bottom:18px}
 .is-candidate .entry-code-label{font-size:13px}
 .is-candidate .entry-access #login-form{gap:16px}
 .is-candidate .entry-attempt-notice{margin-top:22px;font-size:13px;line-height:1.8}
 .is-candidate .entry-support{margin-top:22px;padding-top:16px}
 .is-candidate .entry-footer{flex-direction:row;flex-wrap:wrap;gap:8px 20px;margin-top:28px;font-size:11px;padding-top:16px}
 .is-candidate .prepare-page.resume-first{margin-top:0;margin-bottom:32px}
 .is-candidate .prepare-heading{margin-bottom:16px}
 .is-candidate .prepare-metrics{border:0;gap:28px;padding:0;margin:16px 0 0}
 .is-candidate .prepare-metrics strong{font-size:21px}
 .is-candidate .prepare-body>.panel{padding:20px 18px}
 .is-candidate .resume-intake__actions{gap:8px}
 .is-candidate .resume-intake__actions>button{padding:9px 12px;font-size:14px}
 .is-candidate .resume-overview .facts{grid-template-columns:1fr;gap:2px;padding:12px 14px}
 .is-candidate .resume-overview .facts dd{margin-bottom:8px}
 .is-candidate .resume-overview .facts dd:last-child{margin-bottom:0}
 .is-candidate .resume-confirm .attempt-notice{padding:12px;margin:16px 0}
 .is-candidate .resume-confirm .prepare-actions>button{width:100%;min-height:52px}
 .is-candidate.is-room .ark-message.is-current .ark-message__text{font-size:18px;line-height:1.9}
 .is-candidate.is-room .ark-message-composer__send{min-width:100px;min-height:48px}
 .is-candidate .receipt-page{margin:26px auto}
 .is-candidate .receipt-summary{padding:26px 22px}
 .is-candidate .receipt-page h1{font-size:24px;line-height:1.5}
 .is-candidate .receipt-next{font-size:14px;line-height:1.9}
 .is-candidate .receipt-overview{margin:22px 0;gap:38px;padding:18px 0}
 .is-candidate .receipt-overview strong{font-size:24px}
 .is-candidate .receipt-actions{align-items:stretch;gap:10px}
 .is-candidate .receipt-actions>button{flex:1 1 150px;font-size:14px}
 .is-candidate .receipt-transcript{padding:18px 22px}
 .is-candidate .receipt-transcript>summary{gap:8px;font-size:15px}
 .is-candidate .receipt-transcript>summary span{flex-basis:100%;margin-left:32px;font-size:12px}
}

/* Keep whole-interview actions outside the current-answer form. */
.is-candidate.is-room .interview-session-end{display:flex;justify-content:flex-end;padding:8px 24px 12px;border-top:1px solid var(--line);background:var(--surface)}
.is-candidate.is-room .interview-session-end>button{font-size:var(--font-caption);min-height:44px}
@media(max-width:700px){.is-candidate.is-room .interview-session-end{padding-inline:18px}}

/* The preparation sections already provide the sequence; avoid a second index
   and duplicate time counters. Full timing rules sit immediately before consent. */
.is-candidate .prepare-orientation{font-size:var(--font-caption);line-height:1.8;color:var(--muted);margin:8px 0 0}
.is-candidate .resume-confirm .resume-timing{font-size:14px;line-height:1.8;color:var(--text);margin-top:18px}
.is-candidate .entry-footer{justify-content:flex-start}
.is-candidate .receipt-summary{border:0;border-radius:0;background:transparent;padding-inline:0}
.is-candidate .receipt-state{background:transparent;padding:0;color:var(--muted)}
.is-candidate .receipt-page h1{margin-top:12px}

/* Phone orientation has two useful rows: identity/current clock, then progress
   and 44px reading/query actions. Do not spend a separate row on each label. */
@media(max-width:700px){
 .is-candidate.is-room>.topbar{padding-block:4px}
 .is-candidate.is-room .flow-room .room-meta{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 8px;padding:8px 16px}
 .is-candidate.is-room .flow-room .room-meta>.room-identity{grid-column:1;grid-row:1;min-width:0;width:auto;align-items:center}
 .is-candidate.is-room .flow-room .room-meta .room-progress,.is-candidate.is-room .flow-room .room-meta .room-time{display:contents}
 .is-candidate.is-room .flow-room .room-meta .room-progress>span{grid-column:1;grid-row:2;white-space:normal;font-size:12px}
 .is-candidate.is-room .flow-room .room-meta .room-clock{grid-column:2/4;grid-row:1;display:flex;flex-direction:row;align-items:baseline;justify-content:flex-end;gap:6px;min-width:0}
 .is-candidate.is-room .flow-room .room-meta .room-clock #timer-label{display:inline;font-size:12px}
 .is-candidate.is-room .flow-room .room-meta .room-clock #timer{font-size:var(--font-heading);min-width:0}
 .is-candidate.is-room .flow-room .room-reading{grid-column:2;grid-row:2;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:128px}
 .is-candidate.is-room .flow-room .room-time>button[data-action="refresh-candidate"]{grid-column:3;grid-row:2;align-self:end;justify-self:end;min-height:44px;padding:8px}
}

/* Necessary expectations live before the interview, not above every answer. */
.is-candidate .prepare-expectation{margin:0;font-size:var(--font-body);line-height:1.8;color:var(--text)}
.is-candidate .prepare-expectation>*{min-width:0;margin:0}
.is-candidate .prepare-expectation>h2{margin-bottom:16px}
.is-candidate .prepare-expectation>.prepare-expectation-intro{margin:0 0 16px}
.is-candidate .prepare-expectation-parts{display:flex;flex-direction:column;gap:16px;list-style:none;margin:0;padding:0}
.is-candidate .prepare-expectation-parts>li{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:12px;min-width:0}
.is-candidate .prepare-step-index{padding-top:4px;font-size:12px;font-weight:500;line-height:1.8;color:var(--ark-material-color-brand);font-variant-numeric:tabular-nums}
.is-candidate .prepare-step-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 12px;margin-bottom:4px}
.is-candidate .prepare-expectation-parts h3{font-size:var(--font-body);line-height:1.75;font-weight:600;margin:0;color:var(--ink)}
.is-candidate .prepare-step-duration{font-size:var(--font-caption);line-height:1.8;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.is-candidate .prepare-expectation p{margin:0}
.is-candidate .prepare-expectation .prepare-expectation-record{margin-top:16px;font-size:var(--font-caption);line-height:1.8;color:var(--muted)}
.is-candidate .prepare-page .prepare-details{margin:16px 0 0;padding-top:8px;border-top:1px solid var(--line);font-size:var(--font-caption);line-height:1.8}
.is-candidate .prepare-details>summary{min-height:44px;padding:10px 0;color:var(--action);font-size:var(--font-label);font-weight:500;cursor:pointer}
.is-candidate .prepare-details[open]>summary{margin-bottom:8px}
.is-candidate .prepare-details>:not(summary){margin-top:12px}

/* Whole-interview exit remains a complete control, spatially separate from
   submitting one answer or leaving one topic. It is never the default action. */
.is-candidate.is-room .interview-session-end{padding:12px 24px;border-top:1px solid var(--line)}
.is-candidate .interview-session-end>button.danger{min-height:44px;padding:8px 14px;background:var(--surface);border:1px solid var(--error);color:var(--error);font-size:var(--font-label);font-weight:500}

/* Phase review is one reading surface with its own scroll, not a chat bubble
   or a set of individually clipped answer panes. The host keeps all records. */
.is-candidate .interview-review-page{flex:1;min-height:0;min-width:0;width:100%;max-width:960px;margin:0 auto;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:stretch;padding:28px 32px 24px;background:var(--surface)}
.is-candidate .interview-review-heading{min-width:0;margin-bottom:20px}
.is-candidate .interview-review-heading h1{font-size:var(--font-heading);line-height:1.5;margin:0 0 8px;font-weight:600;letter-spacing:0}
.is-candidate .interview-review-heading p{max-width:60ch;margin:0;font-size:var(--font-caption);line-height:1.8;color:var(--muted)}
.is-candidate .interview-review-heading .eyebrow{margin-bottom:6px;color:var(--ark-material-color-brand);font-size:12px;font-weight:500}
.is-candidate .interview-review-timing{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;margin:0 0 24px;padding:16px 20px;border:1px solid var(--line);border-radius:var(--control);background:var(--canvas);font-size:var(--font-caption);color:var(--muted);font-variant-numeric:tabular-nums}
.is-candidate .interview-review-clock-copy{min-width:0}
.is-candidate .interview-review-timing .room-clock{display:flex;align-items:baseline;justify-content:flex-start;flex-wrap:wrap;gap:4px 12px}
.is-candidate .interview-review-page .interview-review-timing #timer-label{display:inline;font-size:var(--font-caption);color:var(--muted);white-space:normal}
.is-candidate .interview-review-timing #timer{font-size:24px;font-weight:600;line-height:1.4;color:var(--ink)}
.is-candidate .interview-review-timing p{font-size:var(--font-caption);line-height:1.8;white-space:normal;margin:0}
.is-candidate .interview-review-timing button{min-height:44px;padding:8px 12px;border-color:var(--ark-control-line);background:var(--surface);font-size:var(--font-label);color:var(--action)}
.is-candidate .interview-review-list,.is-candidate .interview-review-actions,.is-candidate .interview-review-session-end,.is-candidate .interview-review-feedback,.is-candidate .interview-review-unsubmitted,.is-candidate .interview-review-page>.end-confirm,.is-candidate .interview-review-page>.ark-state-notice{grid-column:1/-1;min-width:0}
.is-candidate .interview-review-feedback:empty{display:none}
.is-candidate .interview-review-inline-status{font-size:var(--font-caption);font-weight:400;line-height:1.7;color:var(--muted);margin:-8px 0 20px;padding:0 2px;overflow-wrap:anywhere}
.is-candidate .interview-review-feedback>.ark-state-notice{margin:0 0 20px}
.is-candidate .interview-review-list{display:flex;flex-direction:column;gap:20px}
.is-candidate .interview-review-list-heading{padding:4px 0 0}
.is-candidate .interview-review-list-heading h2{font-size:18px;line-height:1.5;margin:0 0 6px;color:var(--ink);font-weight:600}
.is-candidate .interview-review-list-heading h2 span{font-size:var(--font-caption);font-weight:400;color:var(--muted);margin-left:6px}
.is-candidate .interview-review-list-heading p{font-size:var(--font-caption);line-height:1.7;color:var(--muted);margin:0}
.is-candidate .interview-review-empty{padding:24px;border:1px dashed var(--line);border-radius:var(--control)}
.is-candidate .interview-review-empty h2,.is-candidate .interview-review-return h2{font-size:var(--font-body);line-height:1.8;font-weight:600;margin:0;color:var(--ink)}
.is-candidate .interview-review-empty p,.is-candidate .interview-review-return p{font-size:var(--font-caption);line-height:1.8;color:var(--muted);margin:4px 0 0}
.is-candidate .interview-review-return{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 24px;padding:22px 24px;border:1px solid var(--accent-line,var(--line));border-radius:var(--control);background:var(--accent-soft,var(--canvas))}
.is-candidate .interview-review-return>div{min-width:0}
.is-candidate .interview-review-return-button{min-height:48px;padding:10px 16px;font-size:var(--font-body);font-weight:500;white-space:normal;flex-shrink:0}
.is-candidate .interview-review-item{min-width:0;padding:22px 24px;border:1px solid var(--line);border-radius:var(--control);background:var(--surface);overflow-wrap:anywhere}
.is-candidate .interview-review-item h2{font-size:var(--font-body);line-height:1.8;font-weight:600;margin:0 0 16px;color:var(--ink)}
.is-candidate .interview-review-item-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.is-candidate .interview-review-item-heading>div{min-width:0}
.is-candidate .interview-review-item-heading span{font-size:var(--font-caption);line-height:1.6;color:var(--muted)}
.is-candidate .interview-review-item-heading h2{margin:4px 0 0}
.is-candidate .interview-review-edit{flex-shrink:0;min-height:44px;font-size:15px;font-weight:500;padding:8px 14px}
.is-candidate .interview-review-item h3{font-size:var(--font-caption);line-height:1.7;font-weight:500;margin:20px 0 6px;color:var(--muted)}
.is-candidate .interview-review-item p,.is-candidate .interview-review-item pre{font-family:inherit;font-size:var(--font-body);line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px;color:var(--text)}
.is-candidate .interview-review-item p:last-child{margin-bottom:0}
.is-candidate .interview-review-item details{margin-top:16px}
.is-candidate .interview-review-item summary{min-height:44px;padding:9px 12px;border:1px solid var(--ark-control-line);border-radius:var(--control);background:var(--surface);color:var(--action);font-size:var(--font-label);font-weight:500;cursor:pointer}
.is-candidate .interview-review-item form[data-review-form]{margin-top:14px}
.is-candidate .interview-review-item textarea[data-review-draft]{min-height:96px;max-height:240px;margin-top:8px;padding:12px 14px;font-size:var(--font-body);line-height:1.8;resize:vertical;background:var(--surface)}
.is-candidate .interview-review-item .interview-review-question{padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line);font-weight:500}
.is-candidate .interview-review-answer>strong,.is-candidate .interview-review-version>strong{font-size:var(--font-caption);line-height:1.8;font-weight:500;color:var(--ink)}
.is-candidate .interview-review-answer>p{margin-top:6px}
.is-candidate .interview-review-version{margin-top:16px;padding-left:12px;border-left:2px solid var(--line)}
.is-candidate .interview-review-version>span{display:block;font-size:12px;color:var(--muted);margin:2px 0 6px}
.is-candidate .interview-review-item .interview-review-save-state{font-size:var(--font-caption);line-height:1.8;color:var(--muted);margin:12px 0}
.is-candidate .interview-review-editor>label{font-size:var(--font-body);font-weight:500;color:var(--ink)}
.is-candidate .interview-review-editor>label .help{display:block;font-size:var(--font-caption);line-height:1.8;font-weight:400;margin-top:4px}
.is-candidate .interview-review-editor-actions{gap:8px;margin-top:12px}
.is-candidate .interview-review-conflict{margin-top:12px;padding:12px;border:1px solid var(--error);border-radius:var(--control)}
.is-candidate .interview-review-item form[data-review-form] button{min-height:44px;font-size:var(--font-label)}
.is-candidate .interview-review-item .review-save.primary{font-size:var(--font-label);font-weight:600}
.is-candidate .interview-review-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;margin-top:28px;padding:24px;border:1px solid var(--line);border-radius:var(--control);background:var(--canvas)}
.is-candidate .interview-review-actions>div{flex:1;min-width:min(260px,100%)}
.is-candidate .interview-review-actions>div>strong{font-size:var(--font-body);line-height:1.8;font-weight:600;color:var(--ink)}
.is-candidate .interview-review-actions>div>p{font-size:var(--font-caption);line-height:1.8;color:var(--muted);margin:4px 0 0}
.is-candidate .interview-review-actions>div>.interview-review-time-rule{font-size:var(--font-caption);margin-top:0}
.is-candidate .interview-review-next{min-height:48px;font-size:16px;font-weight:600}
.is-candidate .interview-review-actions>button.primary{min-height:48px;font-size:var(--font-body);font-weight:600}
.is-candidate .interview-review-session-end{display:flex;justify-content:flex-end;margin-top:20px;padding-top:0}
.is-candidate .interview-review-session-end>button.danger{min-height:44px;padding:8px 14px;background:var(--surface);border:1px solid var(--error);color:var(--error);font-size:var(--font-label);font-weight:500}
.is-candidate .interview-review-session-end .interview-session-end{padding:16px 0 0;border-top:1px solid var(--line);justify-content:flex-end}
.is-candidate .interview-review-confirm{margin-top:16px;padding:18px 20px;border:1px solid var(--accent-line);border-radius:var(--control);background:var(--accent-soft)}
.is-candidate .interview-review-confirm p{font-size:var(--font-caption);line-height:1.8}
.is-candidate .interview-review-unsubmitted{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:var(--control);font-size:var(--font-body);line-height:1.8;overflow-wrap:anywhere}
.is-candidate .interview-review-unsubmitted>summary{min-height:44px;padding-block:8px;font-size:var(--font-label);color:var(--action);font-weight:500;cursor:pointer}
.is-candidate .interview-review-draft-original{white-space:pre-wrap;overflow-wrap:anywhere}

@media(max-width:700px){
 .is-candidate .prepare-expectation-parts{gap:14px}
 .is-candidate.is-room .interview-session-end{padding:10px 18px}
 .is-candidate .interview-review-page{display:block;padding:20px 18px 24px}
 .is-candidate .interview-review-heading{margin-bottom:18px}
 .is-candidate .interview-review-timing{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:12px;margin:0 0 20px;padding:14px 16px}
 .is-candidate .interview-review-timing .room-clock{justify-content:flex-start}
 .is-candidate .interview-review-timing p{font-size:13px;line-height:1.6;margin-top:4px}
 .is-candidate .interview-review-timing button{font-size:14px;padding:8px 12px;flex-shrink:0}
 .is-candidate .interview-review-list{gap:16px}
 .is-candidate .interview-review-return{align-items:stretch;flex-direction:column;gap:16px;padding:20px;margin:0 0 24px}
 .is-candidate .interview-review-return-button{width:100%}
 .is-candidate .interview-review-item{padding:18px 16px}
 .is-candidate .interview-review-item textarea[data-review-draft]{min-height:76px}
 .is-candidate .interview-review-actions{margin-top:24px;padding:20px;gap:16px}
 .is-candidate .interview-review-actions>button{width:100%}
 .is-candidate .interview-review-confirm{padding:16px}
}

/* Candidate typography refinement, 2026-11-02. The existing ARK material
   palette/brand and control contracts stay in the native HTML adapter.
   Body, current question, controls and metadata have separate roles. */
.is-candidate {
 --interview-font-reading:var(--font-body);
 --interview-font-question:18px;
 --interview-font-control:15px;
 --interview-font-meta:13px;
 --interview-line-reading:1.8;
}
.is-candidate .ark-message__text,
.is-candidate .ark-message__excerpt {
 font-size:var(--interview-font-reading);
 line-height:var(--interview-line-reading);
 font-weight:400;
}
.is-candidate.is-room .ark-message.is-current .ark-message__text {
 font-size:var(--interview-font-question);
 line-height:var(--interview-line-reading);
 font-weight:500;
}
.is-candidate.is-room .ark-message.is-current .ark-message__author { margin-bottom:10px; }
.is-candidate .entry-intro h1 { font-size:32px; }
.is-candidate .entry-intro .entry-description,
.is-candidate .receipt-next { font-size:var(--interview-font-reading);line-height:var(--interview-line-reading); }
@media(max-width:700px) {
 .is-candidate .entry-intro h1 { font-size:28px; }
 .is-candidate { --interview-font-question:18px; }
}
/* Internal experience dialog, available only after an explicit demo opt-in. */
.sample-kit{box-sizing:border-box;width:min(620px,calc(100% - 32px));max-height:86dvh;padding:24px;border:1px solid var(--line,#e1e4ef);border-radius:20px;background:var(--surface,#fff);color:var(--ink,#0f0f50);box-shadow:0 20px 80px #0f0f5026;font-family:inherit;font-size:16px;line-height:1.7;overflow-y:auto;overscroll-behavior:contain}
.sample-kit::backdrop{background:#0f0f5038}
.sample-kit__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.sample-kit__header h2{font-size:20px;margin:0}
.sample-kit__notice{margin:0 0 18px;color:var(--muted,#646780);font-size:14px}
.sample-kit .field{display:flex;flex-direction:column;gap:8px;font-size:14px;margin:0 0 12px}
.sample-kit .field textarea{height:180px;min-height:120px;max-height:36dvh;resize:vertical}
.sample-kit select,.sample-kit textarea{box-sizing:border-box;width:100%;font-family:inherit}
.sample-kit .field textarea{font-size:16px;font-weight:400;line-height:1.75}
.sample-kit__actions{display:flex;gap:10px;flex-wrap:wrap;position:sticky;bottom:0;padding-top:8px;background:var(--surface,#fff)}
.sample-kit__actions button{min-height:44px;font-size:15px}
.sample-kit [role=status]{font-size:14px;color:var(--muted,#646780)}
@media(max-width:700px){.sample-kit{padding:18px;border-radius:16px}.sample-kit__header h2{font-size:18px}.sample-kit__actions button{flex:1 1 100%}.sample-kit .field textarea{height:24dvh;min-height:108px;max-height:28dvh}}
