:root {
  --navy: #0b2847;
  --navy-soft: #173d63;
  --gold: #b89a4a;
  --gold-soft: #e9dfc2;
  --paper: #f5f2eb;
  --white: #ffffff;
  --ink: #1f2933;
  --muted: #65717d;
  --line: #d9dee3;
  --founder: #2d6a4f;
  --catalyst: #9c4221;
  --expert: #31577d;
  --danger: #a13a3a;
  --shadow: 0 18px 48px rgba(11, 40, 71, 0.12);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: linear-gradient(180deg, rgba(11, 40, 71, 0.98) 0 245px, transparent 245px), var(--paper); }
button, textarea, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.page-shell { width: min(1080px, calc(100% - 32px)); margin: 0 auto; padding: 42px 0 30px; }
.hero { color: var(--white); max-width: 780px; margin-bottom: 28px; }
.eyebrow, .section-label { display: inline-block; color: var(--gold-soft); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.hero h1 { margin: 7px 0 6px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 6vw, 4.8rem); line-height: 0.98; font-weight: 500; }
.hero p { margin: 0; max-width: 700px; color: #dbe4ec; font-size: 1.05rem; line-height: 1.55; }

.panel { background: var(--white); border: 1px solid rgba(11, 40, 71, 0.09); border-radius: 18px; box-shadow: var(--shadow); }
.intro-panel { padding: clamp(24px, 5vw, 48px); }
.intro-copy { max-width: 760px; }
.lead { margin: 0 0 8px; color: var(--navy); font: 500 clamp(1.35rem, 3vw, 2rem)/1.25 Georgia, "Times New Roman", serif; }
.muted { color: var(--muted); line-height: 1.6; }
.cv-requirement { margin: 18px 0 0; padding: 14px 16px; color: var(--navy); background: #f8f5ec; border-left: 4px solid var(--gold); border-radius: 6px; line-height: 1.5; }

.path-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 30px 0; }
.path-card { min-height: 210px; padding: 22px; border: 1px solid var(--line); border-top: 5px solid currentColor; border-radius: 12px; background: #fbfcfd; }
.path-card.founder { color: var(--founder); }
.path-card.catalyst { color: var(--catalyst); }
.path-card.expert { color: var(--expert); }
.path-letter { display: grid; place-items: center; width: 42px; height: 42px; color: var(--white); background: currentColor; border-radius: 50%; font-weight: 900; }
.path-card h2 { color: currentColor; margin: 16px 0 8px; font-size: 1.05rem; }
.path-card p { color: var(--ink); margin: 0; line-height: 1.5; font-size: 0.94rem; }

.intro-actions, .result-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.mode-label { margin: 0; color: var(--muted); font-size: 0.85rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 18px; border: 1px solid transparent; border-radius: 8px; cursor: pointer; font-weight: 750; text-decoration: none; transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease; }
.button:hover:not(:disabled) { transform: translateY(-1px); }
.button:focus-visible, textarea:focus-visible, input:focus-visible { outline: 3px solid rgba(184, 154, 74, 0.45); outline-offset: 2px; }
.button:disabled { cursor: not-allowed; opacity: 0.48; }
.primary { color: var(--white); background: var(--navy); box-shadow: 0 8px 18px rgba(11, 40, 71, 0.18); }
.secondary { color: var(--navy); background: var(--white); border-color: #aebaca; }
.finish { color: var(--white); background: var(--founder); }
.text-button { padding-inline: 8px; color: var(--navy-soft); background: transparent; }
.danger { color: var(--danger); }

.chat-panel { overflow: hidden; }
.chat-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; border-bottom: 1px solid var(--line); }
.chat-toolbar .section-label, .result-header .section-label { color: var(--gold); }
.chat-toolbar h2, .result-header h2 { margin: 4px 0 0; color: var(--navy); font: 500 1.45rem/1.2 Georgia, "Times New Roman", serif; }
.toolbar-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.cv-panel { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; padding: 18px 24px; background: #f8f5ec; border-bottom: 1px solid #e5dcc3; }
.cv-panel h3 { margin: 0 0 5px; color: var(--navy); font-size: 1rem; }
.cv-panel p { margin: 0; max-width: 700px; color: var(--muted); font-size: 0.9rem; line-height: 1.5; }
.upload-controls { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.file-picker { position: relative; display: inline-flex; align-items: center; min-height: 40px; padding: 9px 15px; color: var(--white); background: var(--navy-soft); border-radius: 8px; cursor: pointer; font-weight: 750; }
.file-picker input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.status-text { max-width: 260px; color: var(--muted); font-size: 0.85rem; }

.chat-log { height: min(54vh, 560px); min-height: 360px; overflow-y: auto; padding: 28px 24px; background: linear-gradient(180deg, #fbfcfd, #f6f8fa); }
.message { max-width: min(78%, 720px); margin-bottom: 16px; padding: 14px 16px; border-radius: 14px; line-height: 1.55; white-space: pre-wrap; }
.message.assistant { margin-right: auto; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-top-left-radius: 4px; }
.message.user { margin-left: auto; color: var(--white); background: var(--navy-soft); border-bottom-right-radius: 4px; }
.message-label { display: block; margin-bottom: 5px; color: var(--gold); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.message.user .message-label { color: #dce8f4; }
.message-email-link { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.message-email-link:hover { text-decoration-thickness: 2px; }
.message-email-link:focus-visible { border-radius: 2px; outline: 2px solid var(--gold); outline-offset: 3px; }
.typing { display: inline-flex; gap: 4px; }
.typing span { width: 7px; height: 7px; background: var(--gold); border-radius: 50%; animation: pulse 1s infinite alternate; }
.typing span:nth-child(2) { animation-delay: 180ms; }
.typing span:nth-child(3) { animation-delay: 360ms; }
@keyframes pulse { from { opacity: 0.3; transform: translateY(2px); } to { opacity: 1; transform: translateY(-2px); } }

.message-form { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: end; padding: 18px 24px 8px; border-top: 1px solid var(--line); }
.message-form textarea { width: 100%; min-height: 52px; max-height: 180px; resize: vertical; padding: 13px 14px; color: var(--ink); background: var(--white); border: 1px solid #aebaca; border-radius: 10px; line-height: 1.45; }
.message-form textarea:disabled { background: #eef1f4; cursor: not-allowed; }
.send-button { min-height: 52px; }
.conversation-hint { margin: 0; padding: 0 24px 18px; color: var(--muted); font-size: 0.82rem; }
.error-message { margin: 0 24px 18px; padding: 10px 12px; color: #752020; background: #fdecec; border: 1px solid #edc5c5; border-radius: 8px; }
.end-offer { margin: 0 24px 18px; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: var(--ink); background: #f5f1e4; border: 1px solid #d8c990; border-radius: 10px; }
.end-offer h3 { margin: 0 0 4px; color: var(--navy); font-size: 1rem; }
.end-offer p { margin: 0; color: var(--muted); font-size: 0.88rem; }
.end-offer-actions { display: flex; flex: 0 0 auto; gap: 8px; }

.result-panel { padding: clamp(24px, 5vw, 48px); }
.result-header { margin-bottom: 24px; }
.result-section { margin: 24px 0; }
.result-section + .result-section { padding-top: 22px; border-top: 1px solid var(--line); }
.result-section h3 { color: var(--navy); margin: 0 0 10px; font-size: 1.05rem; }
.result-section p, .result-section li { line-height: 1.6; }
.result-section ul { margin: 0; padding-left: 22px; }
.result-actions { margin-top: 30px; }

.footer-note { max-width: 780px; margin: 20px auto 0; color: #6f757c; text-align: center; font-size: 0.78rem; line-height: 1.5; }
.is-hidden { display: none !important; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 820px) {
  body { background: linear-gradient(180deg, rgba(11, 40, 71, 0.98) 0 225px, transparent 225px), var(--paper); }
  .path-grid { grid-template-columns: 1fr; }
  .path-card { min-height: 0; }
  .chat-toolbar, .cv-panel { grid-template-columns: 1fr; align-items: stretch; }
  .chat-toolbar { flex-direction: column; align-items: stretch; }
  .toolbar-actions, .upload-controls { justify-content: flex-start; }
  .message { max-width: 92%; }
}

@media (max-width: 560px) {
  .page-shell { width: min(100% - 18px, 1080px); padding-top: 26px; }
  .hero { padding-inline: 10px; }
  .intro-panel, .result-panel { border-radius: 12px; }
  .toolbar-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .toolbar-actions .text-button { grid-column: 1 / -1; }
  .message-form { grid-template-columns: 1fr; }
  .send-button { width: 100%; }
  .end-offer { align-items: stretch; flex-direction: column; }
  .end-offer-actions { flex-direction: column; }
  .chat-log { min-height: 330px; height: 50vh; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* V4: account, history and accessible actions */
.account-bar{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-bottom:16px;flex-wrap:wrap;color:#fff}
.account-bar .button{color:inherit}
.auth-panel{max-width:640px;margin:0 auto;padding:36px}
.auth-panel form{display:flex;flex-direction:column;gap:12px}
input[type=email],#title-input{font:inherit;width:100%;box-sizing:border-box;padding:14px;border:1px solid #919ba7;border-radius:8px;color:#102d50;background:#fff}
.dashboard-panel{margin-top:28px;padding:32px}
.dashboard-panel h2{margin:0;font-size:1.65rem}
.conversation-row{display:grid;grid-template-columns:minmax(0,1fr) 118px auto;gap:18px;align-items:center;background:#f6f3ec;border-radius:16px;padding:18px 22px;margin-top:14px;min-height:76px;box-sizing:border-box}
.conversation-title{font-size:1rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;min-width:0;max-width:520px;color:#123457}
.conversation-status{font-size:.8rem;white-space:nowrap;border-radius:20px;padding:7px 11px;text-align:center}
.conversation-status.active{background:#e3edf8;color:#204f7f}.conversation-status.completed{background:#deeee2;color:#285e3c}
.row-actions{display:flex;gap:7px}.icon-button{background:transparent;color:#163c60;border:0;border-radius:8px;display:inline-flex;justify-content:center;align-items:center;width:38px;height:38px;cursor:pointer;padding:8px}.icon-button svg{width:22px;height:22px}.icon-button:hover{background:#e3e9ef}.icon-button[aria-disabled=true],.icon-button:disabled{color:#a0a6ae;cursor:default}.icon-button[aria-disabled=true]:hover{background:transparent}
:focus-visible{outline:3px solid #4287c4;outline-offset:4px}
.action-tooltip{position:relative;display:inline-flex}.tooltip{display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:#163655;color:white;border-radius:6px;padding:8px 10px;font-size:.75rem;line-height:1.4;width:max-content;max-width:210px;z-index:10;box-shadow:0 4px 14px #0002}.action-tooltip:hover .tooltip,.action-tooltip:focus-within .tooltip{display:block}.action-tooltip.tooltip-dismissed .tooltip{display:none}.row-actions .action-tooltip:last-child .tooltip{left:auto;right:0;transform:none}
.pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:24px;color:#173a5a}.pagination .icon-button{font-size:30px}
.readonly-notice{border-left:3px solid #477b5b;padding:15px;background:#eaf3ed;border-radius:5px;color:#2b553c}
#global-error{background:#fff2ed;padding:16px;border-radius:8px}#summary-status{margin:20px 0}#retry-summary{margin-bottom:24px}
dialog{border:0;border-radius:18px;padding:30px;color:#163655;width:min(520px,calc(100% - 40px));box-sizing:border-box}dialog::backdrop{background:#0a2548a8}dialog label{display:block;margin-bottom:10px}#rename-error{color:#9a352b}
.is-hidden{display:none!important}
@media(max-width:680px){.dashboard-panel{padding:20px}.conversation-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px}.conversation-title{grid-column:1/-1}.row-actions{justify-content:flex-end;gap:3px}.conversation-status{justify-self:start}.auth-panel{padding:24px}.tooltip{max-width:160px}.row-actions .action-tooltip:first-child .tooltip{left:0;transform:none}.account-bar{font-size:.8rem}.chat-toolbar h2{overflow-wrap:anywhere}}

.account-bar{color:var(--navy);background:var(--paper);border-radius:10px;padding:8px 16px}
.chat-toolbar>div:first-child{min-width:0}.chat-toolbar h2{overflow-wrap:anywhere}
.readonly-notice{margin:18px 24px}.path-card.founder .path-letter{background:var(--founder)}.path-card.catalyst .path-letter{background:var(--catalyst)}.path-card.expert .path-letter{background:var(--expert)}
