/* Rogue conversation pattern. Shared homepage tokens: Sora / Inter Tight,
   silver surfaces, glass, border radii and easing from /v2/rogue-v2.css.
   Distinct bot, user, selected, disabled, typing and error states.
   The composer stays outside the chat scroll area at every breakpoint. */
.briefing-page{--briefing-metal:linear-gradient(105deg,#b8bec7 0%,#eef1f5 34%,#d0d5dd 58%,#fff 82%,#b6bec9 100%);height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:34px;padding:24px var(--gutter) 32px;overflow:hidden;background:radial-gradient(ellipse at 85% 25%,var(--glow-soft),transparent 55%),var(--bg);color:var(--muted)}
.briefing-page svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.briefing-masthead{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;max-width:var(--container);margin-inline:auto;padding:10px 22px;min-height:64px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(120deg,rgba(235,238,244,.09),rgba(31,33,38,.42) 40%,rgba(172,179,191,.05));box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 12px 40px rgba(0,0,0,.12);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%)}
.briefing-masthead__brand{display:flex;align-items:center;flex:none}
.briefing-masthead__brand img{width:104px;height:auto}
.briefing-masthead__back{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--muted);font-size:12px;transition:color var(--duration-base)}
.briefing-masthead__back svg{width:17px;height:17px;transition:transform var(--duration-base) var(--ease)}
.briefing-masthead__back:hover{color:var(--text)}.briefing-masthead__back:hover svg{transform:translateX(-3px)}
.briefing-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,100px);width:100%;max-width:var(--container);min-height:0;margin-inline:auto}
.briefing-intro{align-self:center;overflow:visible;padding:8px 0 12px;animation:briefing-enter 850ms var(--ease) both}
.briefing-intro__eyebrow{display:flex;align-items:center;gap:10px;color:var(--silver-light);font-size:10px;margin-bottom:28px}
.briefing-intro h1{font-size:clamp(34px,3.6vw,52px);line-height:1.18;max-width:490px}
.briefing-intro h1 .text-fade{display:block}
.briefing-intro__lead{max-width:425px;margin:26px 0 34px;font-size:16px;line-height:1.7}
.briefing-journey{display:grid;gap:22px;max-width:400px}
.briefing-journey li{position:relative;display:flex;align-items:center;gap:17px}
.briefing-journey li:not(:last-child)::after{content:'';position:absolute;left:20px;top:42px;width:1px;height:22px;background:var(--line)}
.briefing-journey__node{display:grid;place-items:center;width:41px;height:41px;flex:none;border:1px solid var(--line);border-radius:13px;background:var(--panel-gradient);color:var(--silver-light);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.briefing-journey__node svg{width:21px;height:21px}
.briefing-journey__label{display:block;color:var(--subtle);font-size:8px;letter-spacing:.1em;margin-bottom:4px}
.briefing-journey p{color:var(--text);font-size:14px;margin:0;line-height:1.5}
.briefing-intro__assurance{display:flex;align-items:center;gap:9px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line);max-width:400px;font-size:12px;color:var(--muted)}
.briefing-intro__assurance svg{width:17px;height:17px;flex:none;color:var(--silver)}
.briefing{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(211,216,225,.28);border-radius:var(--radius);background:linear-gradient(155deg,rgba(31,33,38,.72),var(--bg-deep) 65%);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 24px 80px rgba(0,0,0,.3),0 0 45px var(--glow-soft);animation:briefing-enter 900ms 100ms var(--ease) both}
.briefing::before{content:'';position:absolute;z-index:3;left:-40%;top:0;width:40%;height:1px;background:linear-gradient(90deg,transparent,var(--silver-light),transparent);box-shadow:0 0 10px var(--glow);animation:briefing-rim 10s var(--ease) infinite;pointer-events:none}
.briefing__bar{display:flex;align-items:center;gap:12px;padding:20px 26px;border-bottom:1px solid var(--line);background:linear-gradient(130deg,rgba(255,255,255,.025),transparent);z-index:1}
.briefing__avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(140deg,rgba(224,229,239,.12),rgba(224,229,239,.02));box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.briefing__avatar img{width:26px;height:31px;object-fit:contain}
.briefing__identity{min-width:0;display:grid;gap:4px}
.briefing__name{display:flex;align-items:center;gap:8px;font-family:var(--font-heading);font-size:14px;color:var(--text);line-height:1.4}
.briefing__assistant-label{font-family:var(--font-body);font-size:9px;color:var(--subtle);font-weight:400;padding:2px 6px;border:1px solid var(--line);border-radius:var(--radius-pill)}
.briefing__status{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px;line-height:1.5}
.briefing__status i{width:4px;height:4px;background:var(--silver-light);border-radius:50%;box-shadow:0 0 7px var(--glow)}
.briefing__session{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:10px;color:var(--subtle);white-space:nowrap}
.briefing__session svg{width:13px;height:13px}
.briefing__chat{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 26px 16px;background:radial-gradient(ellipse at 50% 0%,rgba(211,220,233,.025),transparent 70%);scrollbar-width:thin;scrollbar-color:var(--line-hover) transparent}
.briefing__notice{display:flex;align-items:center;justify-content:center;gap:7px;max-width:100%;width:fit-content;margin:0 auto 28px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--subtle);font-size:10px;line-height:1.5;text-align:center}
.briefing__notice svg{width:13px;height:13px;flex:none;color:var(--silver)}
.briefing__messages{display:grid;gap:12px;min-width:0;padding-bottom:12px}
.briefing__message{position:relative;width:fit-content;max-width:min(90%,460px);padding:13px 16px;border:1px solid var(--line);border-radius:16px;font-size:14px;line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);animation:briefing-in 400ms var(--ease) both}
.briefing__message--bot{justify-self:start;color:var(--text);background:linear-gradient(140deg,rgba(39,41,47,.9),rgba(24,26,31,.9));border-bottom-left-radius:5px}
.briefing__message--user{justify-self:end;color:var(--bg-deep);background:var(--briefing-metal);border-color:rgba(235,239,246,.5);border-bottom-right-radius:5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 4px 20px var(--glow-soft)}
.briefing__message-receipt{display:inline-block!important;width:15px;height:15px;margin:0 0 -2px 8px;opacity:.6;vertical-align:baseline}
.briefing__choices{display:grid;gap:8px;justify-self:start;width:100%;max-width:430px;margin:2px 0 10px;transition:opacity var(--duration-fast),transform var(--duration-fast)}
.briefing__choice{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:rgba(255,255,255,.025);font:inherit;font-size:13px;line-height:1.4;text-align:left;cursor:pointer;transition:background var(--duration-base),border-color var(--duration-base),color var(--duration-base),transform var(--duration-base) var(--ease)}
.briefing__choice::before{content:'';width:14px;height:14px;flex:none;border:1px solid var(--subtle);border-radius:50%;background:transparent;transition:background var(--duration-base),border-color var(--duration-base),box-shadow var(--duration-base)}
.briefing__choice:hover:not(:disabled),.briefing__choice:focus-visible{color:var(--text);background:rgba(229,232,239,.07);border-color:var(--line-hover)}
.briefing__choice:hover:not(:disabled){transform:translateX(2px)}
.briefing__choice.is-selected{color:var(--text);border-color:var(--silver);background:rgba(229,232,239,.09)}
.briefing__choice.is-selected::before{border-color:var(--silver-light);background:var(--silver-light);box-shadow:inset 0 0 0 3px var(--surface-raised)}
.briefing__choice:disabled{cursor:default}
.briefing__choices-continue{justify-self:end;min-height:44px;margin-top:4px;padding:10px 22px;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-pill);color:var(--bg-deep);background:var(--briefing-metal);font-family:var(--font-heading);font-size:12px;font-weight:500;box-shadow:0 0 20px var(--glow-soft);transition:transform var(--duration-base) var(--ease),box-shadow var(--duration-base)}
.briefing__choices-continue:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 0 24px var(--glow)}
.briefing__choices-continue:disabled{border-color:var(--line);color:var(--subtle);background:var(--surface-raised);box-shadow:none;cursor:not-allowed}
.briefing__choices.is-answered{opacity:0;transform:translateY(-4px);pointer-events:none}
.briefing__typing{display:flex;align-items:center;gap:5px;width:fit-content;height:44px;padding:0 17px;border:1px solid var(--line);border-radius:16px 16px 16px 5px;background:var(--surface-raised)}
.briefing__typing span{width:4px;height:4px;border-radius:50%;background:var(--silver);animation:briefing-dot 1.5s infinite ease-in-out}
.briefing__typing span:nth-child(2){animation-delay:120ms}.briefing__typing span:nth-child(3){animation-delay:240ms}
.briefing__composer{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:10px;padding:18px 24px 16px;border-top:1px solid var(--line);background:rgba(18,19,23,.94)}
.briefing__composer input{width:100%;min-width:0;height:46px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius-pill);outline:none;color:var(--text);background:rgba(255,255,255,.035);font-family:var(--font-body);font-size:14px;transition:border-color var(--duration-base),box-shadow var(--duration-base)}
.briefing__composer input::placeholder{color:var(--subtle)}
.briefing__composer input:focus{border-color:var(--silver);box-shadow:0 0 0 3px var(--glow-soft)}
.briefing__composer input:disabled{color:var(--subtle);background:rgba(255,255,255,.015);cursor:not-allowed}
.briefing__composer button{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.45);border-radius:50%;color:var(--bg-deep);background:var(--briefing-metal);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 0 18px var(--glow-soft);transition:transform var(--duration-base) var(--ease),box-shadow var(--duration-base),opacity var(--duration-base)}
.briefing__composer button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 0 24px var(--glow)}
.briefing__composer button:active:not(:disabled){transform:translateY(0)}
.briefing__composer button:disabled{color:var(--subtle);background:var(--surface-raised);border-color:var(--line);box-shadow:none;cursor:not-allowed}
.briefing__composer svg{width:21px;height:21px;stroke-width:1.6}
.briefing__composer-note{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0;padding-inline:5px;color:var(--subtle);font-size:9px;line-height:1.4}
.briefing__keyboard-hint{display:inline-flex;align-items:center;gap:5px}.briefing__keyboard-hint kbd{padding:1px 4px;border:1px solid var(--line);border-radius:4px;font:inherit}
.briefing__calendar{justify-self:stretch;margin:8px 0;min-height:410px;overflow:hidden;border:1px solid var(--line-hover);border-radius:16px;background:var(--surface);box-shadow:0 12px 32px rgba(0,0,0,.2)}
.briefing__calendar iframe{display:block;width:100%;min-height:410px;border:0;background:#fff;color-scheme:light}
.briefing__error{color:#ffc9c5;border-color:rgba(255,160,150,.3);background:rgba(114,43,43,.2)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes briefing-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes briefing-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes briefing-dot{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-3px);opacity:1}}
@keyframes briefing-rim{0%,10%{transform:translateX(0);opacity:0}20%{opacity:.8}80%{opacity:.8}90%,100%{transform:translateX(350%);opacity:0}}
@media(max-width:1024px){.briefing-page{gap:26px;padding:20px var(--gutter) 24px}.briefing-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:30px}.briefing-intro h1{font-size:36px}.briefing-intro__lead{font-size:15px}.briefing__bar{padding:18px}.briefing__chat{padding:20px 18px 14px}.briefing__composer{padding:16px 18px}.briefing__session{display:none}}
@media(max-width:767px){.briefing-page{gap:18px;padding:max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom))}.briefing-masthead{min-height:52px;padding:4px 14px;border-radius:18px;gap:12px}.briefing-masthead__brand img{width:88px}.briefing-masthead__back{font-size:11px;gap:7px}.briefing-masthead__back svg{width:15px;height:15px}.briefing-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:20px}.briefing-intro{align-self:start;overflow:visible;padding:0 4px}.briefing-intro__eyebrow{font-size:9px;margin-bottom:12px;letter-spacing:.1em}.briefing-intro h1{max-width:440px;font-size:26px;line-height:1.2;letter-spacing:-.04em}.briefing-intro__lead,.briefing-journey,.briefing-intro__assurance{display:none}.briefing{border-radius:20px}.briefing__bar{padding:14px 16px;gap:10px}.briefing__avatar{width:36px;height:36px;border-radius:12px}.briefing__avatar img{width:23px;height:27px}.briefing__name{font-size:13px}.briefing__status{font-size:10px}.briefing__chat{padding:18px 16px 14px}.briefing__notice{font-size:9px;padding:6px 8px;margin-bottom:22px;gap:5px}.briefing__message{max-width:94%;font-size:14px;padding:11px 13px}.briefing__choices{max-width:100%;gap:7px}.briefing__choice{font-size:13px;padding:11px 12px}.briefing__composer{grid-template-columns:minmax(0,1fr) 44px;padding:14px 14px 12px;gap:9px}.briefing__composer input{height:44px;font-size:16px;padding-inline:14px}.briefing__composer button{width:44px;height:44px}.briefing__keyboard-hint{display:none}.briefing__calendar,.briefing__calendar iframe{min-height:510px}}
@media(max-width:767px) and (max-height:620px){.briefing-page{gap:12px}.briefing-layout{grid-template-rows:minmax(0,1fr)}.briefing-intro{display:none}.briefing__bar{padding-block:10px}.briefing__composer-note{display:none}}
@media(min-width:768px) and (max-height:720px){.briefing-page{gap:24px;padding-block:16px}.briefing-intro h1{font-size:36px}.briefing-intro__eyebrow{margin-bottom:20px}.briefing-intro__lead{margin:20px 0 26px;font-size:14px}.briefing-journey{gap:18px}.briefing-intro__assurance{margin-top:22px;padding-top:18px}}
/* Fit the complete introduction to the available desktop height, including
   browser chrome and the system dock. The chat keeps its own scroll area. */
@media(min-width:768px){
  .briefing-page{gap:clamp(18px,3dvh,34px);padding-top:clamp(12px,2.5dvh,24px);padding-bottom:clamp(16px,3dvh,32px)}
  .briefing-layout{align-items:center;grid-template-rows:minmax(0,1fr)}
  .briefing{align-self:stretch;min-height:0;contain:size}
  .briefing-intro{padding-block:4px;--briefing-node-size:clamp(34px,5dvh,41px);--briefing-journey-gap:clamp(12px,2.3dvh,22px)}
  .briefing-intro__eyebrow{margin-bottom:clamp(14px,2.5dvh,28px)}
  .briefing-intro h1{font-size:clamp(30px,min(3.6vw,5.5dvh),52px);line-height:1.14}
  .briefing-intro__lead{margin:clamp(16px,2.6dvh,26px) 0 clamp(20px,3dvh,34px);font-size:clamp(14px,1.9dvh,16px);line-height:1.6}
  .briefing-journey{gap:var(--briefing-journey-gap)}
  .briefing-journey__node{width:var(--briefing-node-size);height:var(--briefing-node-size)}
  .briefing-journey li:not(:last-child)::after{left:calc(var(--briefing-node-size)/2);top:calc(50% + var(--briefing-node-size)/2);height:var(--briefing-journey-gap)}
  .briefing-intro__assurance{margin-top:clamp(16px,2.8dvh,32px);padding-top:clamp(12px,2.2dvh,24px)}
}
/* At extreme zoom or very short heights, keep every element reachable through
   normal document scrolling rather than clipping or shrinking the text further. */
@media(min-width:768px) and (max-height:559px){
  .briefing-page{height:auto;min-height:100dvh;overflow:visible;grid-template-rows:auto 1fr}
  .briefing-layout{grid-template-rows:minmax(min-content,1fr)}
  .briefing{min-height:340px}
}
@media(prefers-reduced-motion:reduce){.briefing,.briefing-intro,.briefing::before,.briefing__message,.briefing__typing span{animation:none}.briefing__choice,.briefing__choice::before,.briefing__choices-continue,.briefing__choices,.briefing__composer input,.briefing__composer button,.briefing-masthead__back,.briefing-masthead__back svg{transition:none}}
