/* Loaded only when the project assistant opens. */
.nav-wrap > .assistant-launch { order: 3; }

.assistant-launch { position: static; z-index: auto; min-height: 42px; padding: 0 14px 0 7px; display: flex; align-items: center; gap: 8px; flex: 0 0 auto; color: var(--white); background: var(--ink); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; box-shadow: 0 10px 24px rgba(21,22,79,.18); font-size: 12px; font-weight: 850; white-space: nowrap; }
.assistant-launch__icon { width: 28px; height: 28px; display: grid; place-items: center; color: var(--ink); background: var(--white); border-radius: 50%; font-family: var(--font-display); font-size: 16px; }
.assistant-launch__label { display: inline; }
.assistant-panel { position: fixed; z-index: 79; top: var(--assistant-top, 134px); right: var(--assistant-right, 24px); bottom: auto; width: min(440px, calc(100vw - 32px)); max-height: min(700px, calc(100vh - var(--assistant-top, 134px) - 18px)); overflow: hidden; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 25px 80px rgba(21,22,79,.28); display: flex; flex-direction: column; }
.assistant-panel[hidden] { display: none; }
.assistant-panel__header { min-height: 76px; padding: 15px 16px 15px 20px; display: flex; align-items: center; justify-content: space-between; color: var(--white); background: var(--ink); }
.assistant-panel__header strong, .assistant-panel__header span { display: block; }
.assistant-panel__header span { color: rgba(255,255,255,.58); font-size: 11px; }
.assistant-close { width: 38px; height: 38px; color: var(--white); background: transparent; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; font-size: 20px; line-height: 1; }
.assistant-controls { padding: 10px 16px 7px; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; background: var(--white); border-bottom: 1px solid var(--line); }
.assistant-language, .assistant-mode { display: flex; gap: 5px; }
.assistant-language button, .assistant-mode button { min-height: 30px; padding: 0 10px; color: var(--muted); background: var(--white); border: 1px solid var(--line); border-radius: 999px; font-size: 10px; font-weight: 850; }
.assistant-language button.is-active, .assistant-mode button.is-active { color: var(--white); background: var(--ink); border-color: var(--ink); }
.assistant-panel__scroll { min-height: 0; display: flex; flex: 1 1 auto; flex-direction: column; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.assistant-composer { position: relative; z-index: 2; padding: 8px 0 7px; flex: 0 0 auto; background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(21,22,79,.08); }
.assistant-workflows { padding: 9px 16px 4px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; background: var(--white); }
.assistant-workflows button { min-height: 35px; padding: 6px 9px; color: var(--ink); background: #f2f5fb; border: 1px solid #dbe2ef; border-radius: 9px; font-size: 10px; font-weight: 850; line-height: 1.2; }
.assistant-workflows button:hover, .assistant-workflows button:focus-visible { color: var(--white); background: var(--ink); border-color: var(--ink); }
.assistant-messages { min-height: 145px; padding: 14px 18px; display: flex; flex-direction: column; gap: 10px; flex: 0 0 auto; }
.assistant-message { max-width: 88%; padding: 11px 13px; border-radius: 13px; font-size: 13px; line-height: 1.45; }
.assistant-message[dir="rtl"] { text-align: right; }
.assistant-message--typing { color: var(--muted); font-style: italic; }
.assistant-message--bot { align-self: flex-start; color: var(--ink); background: var(--cream); border-bottom-left-radius: 3px; }
.assistant-message--user { align-self: flex-end; color: var(--white); background: var(--red); border-bottom-right-radius: 3px; }
.assistant-message > span { display: block; white-space: pre-wrap; }
.assistant-message a { display: block; margin-top: 7px; color: inherit; font-weight: 850; text-underline-offset: 3px; }
.assistant-message__meta { display: block; margin-top: 8px; padding-top: 7px; color: inherit; border-top: 1px solid currentColor; opacity: .66; font-size: 9px; }
.assistant-estimator { margin: 0 16px 10px; background: var(--white); border: 1px solid var(--line); border-radius: 12px; }
.assistant-estimator summary { padding: 10px 12px; display: flex; justify-content: space-between; cursor: pointer; font-size: 12px; font-weight: 850; list-style: none; }
.assistant-estimator summary::-webkit-details-marker { display: none; }
.assistant-estimator[open] summary span { transform: rotate(45deg); }
.assistant-estimator__grid { padding: 0 10px 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.assistant-estimator label { color: var(--muted); font-size: 9px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }
.assistant-estimator select { width: 100%; min-height: 34px; margin-top: 4px; padding: 0 7px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 7px; font: inherit; font-size: 10px; text-transform: none; letter-spacing: 0; }
.assistant-estimate-button { min-height: 36px; margin: 0 10px 5px; padding: 0 12px; color: var(--white); background: var(--red); border: 0; border-radius: 8px; font-size: 11px; font-weight: 850; }
.assistant-estimator > small { display: block; margin: 0 10px 9px; color: var(--muted); font-size: 9px; }
.assistant-suggestions { padding: 0 16px 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.assistant-suggestions button { min-height: 34px; padding: 0 11px; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 999px; font-size: 12px; font-weight: 800; }
.assistant-suggestions button:hover { color: var(--white); background: var(--ink); border-color: var(--ink); }
.assistant-photo { margin: 0 16px 8px; padding: 6px; display: grid; grid-template-columns: 52px 1fr 30px; gap: 9px; align-items: center; background: #eef2f8; border-radius: 10px; }
.assistant-photo[hidden] { display: none; }
.assistant-photo img { width: 52px; height: 52px; object-fit: cover; border-radius: 7px; }
.assistant-photo span, .assistant-photo small { display: block; }
.assistant-photo strong { font-size: 11px; }
.assistant-photo small { color: var(--muted); font-size: 9px; }
.assistant-photo button { width: 28px; height: 28px; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 50%; }
.assistant-form { margin: 0 16px; display: grid; grid-template-columns: 1fr 40px 42px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.assistant-form > input { min-width: 0; min-height: 44px; padding: 0 12px; background: var(--white); border: 0; outline: 0; font-size: 14px; }
.assistant-form button { color: var(--white); background: var(--red); border: 0; font-size: 18px; }
.assistant-photo-button { position: relative; display: grid; place-items: center; color: var(--ink); background: #eef2f8; border-left: 1px solid var(--line); cursor: pointer; font-size: 22px; font-weight: 700; }
.assistant-photo-button input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.assistant-status { min-height: 17px; margin: 6px 16px 0; color: var(--ink); font-size: 11px; font-weight: 750; text-align: center; }
.assistant-status:empty { display: none; }
.assistant-actions { margin: 0 16px 7px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.assistant-actions button, .assistant-actions a { min-height: 34px; padding: 5px 8px; display: flex; align-items: center; justify-content: center; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 8px; font-size: 10px; font-weight: 850; line-height: 1.25; text-align: center; text-decoration: none; }
.assistant-actions > :last-child { color: var(--white); background: var(--ink); border-color: var(--ink); }
.assistant-privacy { margin: 3px 16px 13px; color: var(--muted); font-size: 10px; text-align: center; }
.assistant-handoff-note { margin: 0 0 20px; padding: 14px 16px; color: var(--ink); background: #edf4ff; border: 1px solid #c9d8f2; border-left: 4px solid var(--red); border-radius: 10px; font-weight: 750; }

.assistant-launch { background: linear-gradient(135deg, #24296f, #0d103d); border-color: rgba(255,255,255,.22); box-shadow: 0 18px 48px rgba(9,11,53,.28); }
.assistant-launch__icon { color: var(--white); background: linear-gradient(135deg, #ef3544, var(--red-dark)); }
.assistant-panel { border-color: rgba(166,176,204,.42); border-radius: 24px; box-shadow: 0 32px 90px rgba(9,11,53,.3); }
.assistant-panel__header { background: radial-gradient(circle at 88% 0, rgba(91,127,209,.35), transparent 38%), linear-gradient(135deg, #202468, #0b0d38); }

@media (max-width: 600px) {
  .nav-wrap > .assistant-launch { width: 44px; height: 44px; min-height: 44px; padding: 0; justify-content: center; }
  .assistant-launch__icon { width: 32px; height: 32px; font-size: 18px; }
  .assistant-launch__label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  body.assistant-open { overflow: hidden; }
  body.assistant-open::before { content: ""; position: fixed; z-index: 78; inset: 0; background: rgba(7,8,35,.56); backdrop-filter: blur(3px); }
  body.assistant-open .assistant-launch, body.assistant-open .mobile-cta { display: none; }
  .assistant-panel {
    top: calc(var(--assistant-vtop, 0px) + max(12px, env(safe-area-inset-top)));
    right: 10px;
    bottom: auto;
    left: 10px;
    width: auto;
    height: min(720px, calc(var(--assistant-vh, 100dvh) - max(24px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom))));
    max-height: none;
    display: flex;
    flex-direction: column;
    border-radius: 16px;
  }
  .assistant-panel[hidden] { display: none; }
  .assistant-panel__header { min-height: 64px; padding: 11px 12px 11px 16px; flex: 0 0 auto; }
  .assistant-panel__header strong { font-size: 15px; }
  .assistant-close { width: 40px; height: 40px; }
  .assistant-panel__scroll { flex: 1 1 auto; }
  .assistant-composer { padding: 7px 0 max(7px, env(safe-area-inset-bottom)); }
  .assistant-messages { min-height: 92px; padding: 14px; flex: 0 0 auto; }
  .assistant-controls { padding: 8px 12px; flex: 0 0 auto; }
  .assistant-workflows { padding: 7px 12px 4px; flex: 0 0 auto; }
  .assistant-language button, .assistant-mode button { min-height: 32px; padding: 0 8px; }
  .assistant-message { max-width: 94%; padding: 9px 11px; font-size: 12px; }
  .assistant-estimator { margin: 0 12px 9px; flex: 0 0 auto; }
  .assistant-suggestions { padding: 0 12px 10px; display: grid; grid-template-columns: 1fr 1fr; flex: 0 0 auto; }
  .assistant-suggestions button { min-width: 0; min-height: 38px; padding: 6px 8px; border-radius: 10px; font-size: 11px; line-height: 1.2; }
  .assistant-photo { margin: 0 12px 7px; }
  .assistant-form { margin: 0 12px; grid-template-columns: minmax(0, 1fr) 42px 46px; flex: 0 0 auto; }
  .assistant-form > input { min-height: 48px; font-size: 16px; }
  .assistant-actions { margin: 0 12px 8px; flex: 0 0 auto; }
  .assistant-status { margin: 5px 12px 0; font-size: 10px; flex: 0 0 auto; }
  .assistant-privacy { margin: 2px 12px 9px; font-size: 9px; flex: 0 0 auto; }
  body.assistant-keyboard-open .assistant-panel {
    top: calc(var(--assistant-vtop, 0px) + 6px);
    height: calc(var(--assistant-vh, 100dvh) - 12px);
  }
  body.assistant-keyboard-open .assistant-panel__header { min-height: 56px; }
  body.assistant-keyboard-open .assistant-messages { min-height: 66px; padding: 10px 12px; }
  body.assistant-keyboard-open .assistant-controls, body.assistant-keyboard-open .assistant-workflows, body.assistant-keyboard-open .assistant-estimator, body.assistant-keyboard-open .assistant-suggestions, body.assistant-keyboard-open .assistant-actions, body.assistant-keyboard-open .assistant-privacy { display: none; }
  body.assistant-keyboard-open .assistant-photo { grid-template-columns: 40px 1fr 30px; }
  body.assistant-keyboard-open .assistant-photo img { width: 40px; height: 40px; }
  body.assistant-keyboard-open .assistant-form { margin-bottom: 10px; }}

@media (max-width: 600px) {
  .assistant-panel { border-radius: 18px; }}

.assistant-launch { background: linear-gradient(135deg, #2a323d, #15476d); }

/* Protect the full desktop brand lockup from crowded navigation. */
@media (min-width: 1241px) and (max-width: 1400px) {
  .assistant-launch {
    padding-right: 11px;
    gap: 6px;
    font-size: 11px;
  }}
.assistant-panel { border-color: #52677a; box-shadow: 0 32px 90px rgba(9,14,20,.38); }
.assistant-panel__header { background: radial-gradient(circle at 88% 0, rgba(67,136,191,.36), transparent 38%), linear-gradient(135deg, #29313b, #123c5e); }
.assistant-controls,
.assistant-workflows,
.assistant-estimator { background: #f5f6f7; }
.assistant-workflows button,
.assistant-photo,
.assistant-photo-button,
.assistant-estimator select { background: #e4e9ee; border-color: #c0c9d2; }

/* Preserve the bold desktop proportions on large and high-resolution displays.
   The hero split remains capped, so the copy stays large without collapsing. */
@media (min-width: 1341px) {
  .assistant-launch { min-height: 46px; padding-right: 16px; font-size: 12.5px; }
  .assistant-launch__icon { width: 31px; height: 31px; }}
.topbar,
.topbar a,
.site-nav > a,
.language-switch,
.language-switch a,
.button--small,
.assistant-launch { font-size: var(--text-small); }

@media (min-width: 1341px) {
  .assistant-launch { font-size: 14px; }}

.site-nav > a,
.sub-nav a,
.nav-languages a,
.language-switch,
.language-switch a,
.assistant-launch,
.mobile-cta a,
.footer a,
.page-footer a,
.legal-links a { font-size: var(--read-menu) !important; }

/* The project assistant is a working menu, so its controls must be readable too. */
.assistant-panel__header span { font-size: var(--read-label) !important; }
.assistant-language button,
.assistant-mode button,
.assistant-workflows button,
.assistant-suggestions button,
.assistant-actions button,
.assistant-actions a,
.assistant-estimate-button { font-size: var(--read-secondary) !important; }
.assistant-estimator label,
.assistant-message__meta,
.assistant-photo small,
.assistant-estimator > small,
.assistant-status,
.assistant-privacy { font-size: 14px !important; line-height: 1.5; }
.assistant-estimator select,
.assistant-form > input,
.assistant-photo strong { font-size: var(--read-secondary) !important; }
.assistant-message { font-size: var(--read-body) !important; line-height: 1.58; }
.assistant-estimator summary { font-size: var(--read-secondary) !important; }

@media (max-width: 900px) {
  .assistant-message { font-size: 16px !important; }
  .menu-toggle,
  .assistant-launch { min-width: 46px; min-height: 46px; flex-shrink: 0; }}

@media (max-width: 360px) {
  .menu-toggle,
  .assistant-launch { width: 44px; min-width: 44px; height: 44px; min-height: 44px; flex-basis: 44px; }}
