/* A conversation with one familiar contact. Shared app tokens live in pal-foundation.css. */
.pal-view{color:var(--pal-ink);isolation:isolate}
.pal-header{position:relative;min-height:116px;padding:14px 24px 10px;border:0;justify-content:center;background:var(--pal-paper)}
.pal-contact{display:flex;align-items:center;flex-direction:column;gap:3px;text-align:center;max-width:calc(100% - 180px)}
.pal-identity{display:flex;flex-direction:column;gap:1px;font-size:15px;line-height:1.25;padding:0;border-radius:10px}
.pal-identity .pal-character{width:55px;height:50px}.pal-identity strong{font-weight:650}
.pal-status{font-size:11px;line-height:1.5;color:var(--pal-muted);max-width:none}
.pal-header-actions{position:absolute;top:22px;right:24px;margin:0}
.pal-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.pal-scroll{padding:12px max(30px,calc((100% - var(--pal-column,840px))/2)) 28px;scroll-padding:24px}
.pal-thread{max-width:var(--pal-column,840px);gap:26px;font-size:16px;line-height:1.6}
.pal-date-divider{text-align:center;font-size:11px;font-weight:500;color:var(--pal-muted);margin:6px 0 3px;letter-spacing:.01em}
.pal-message{max-width:100%}.pal-assistant{padding:0;max-width:95%}
.pal-assistant>.pal-words{width:fit-content;max-width:100%;padding:12px 18px;border-radius:21px 21px 21px 6px;background:var(--pal-soft)}
.pal-assistant+.pal-assistant{margin-top:-16px}
.pal-owner{max-width:82%;padding:11px 18px;border-radius:21px 21px 6px 21px;background:var(--pal-ink);color:var(--pal-paper)}
.pal-owner .pal-message-meta{color:inherit;opacity:.65}
.pal-message-meta{font-size:11px;margin-top:6px}.pal-message-meta[hidden]{display:none}.pal-message .pal-words:empty{display:none}
.pal-welcome{max-width:560px;margin:clamp(20px,8vh,94px) auto 36px;text-align:center}
.pal-welcome>.pal-character{width:144px;height:134px}.pal-welcome h1{font:650 29px/1.25 'Nunito Sans',sans-serif;letter-spacing:-.8px;overflow:visible;white-space:normal;text-overflow:clip;margin:20px 0 12px}
.pal-welcome p{font-size:15px;line-height:1.6;max-width:460px;color:var(--pal-muted);margin:0 auto}
.pal-suggestions{gap:8px;margin-top:24px}.pal-suggestions button{font-size:12px;line-height:1.4;padding:8px 12px;border-radius:20px;background:transparent;font-weight:500}
.pal-composer{margin:12px max(30px,calc((100% - var(--pal-column,840px))/2)) 24px;border:1px solid var(--pal-line);border-radius:19px;background:var(--pal-paper);box-shadow:0 2px 12px #00000003}
.pal-composer:focus-within{border-color:color-mix(in srgb,var(--pal-muted) 35%,var(--pal-line));box-shadow:0 2px 16px #00000004}
.pal-input{font:400 16px/1.5 'Nunito Sans',sans-serif;min-height:44px;max-height:160px;resize:none;padding:13px 17px 5px!important;overflow-y:auto}
.pal-input.has-dictation{padding-right:17px!important}.pal-compose-tools{display:flex;align-items:center;padding:3px 9px 9px;gap:7px;min-height:43px}
.pal-attach-button,.pal-send{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:50%;padding:0;cursor:pointer}
.pal-attach-button{color:var(--pal-muted);background:transparent}.pal-attach-button:hover,.pal-attach-button[aria-expanded=true]{background:var(--pal-soft);color:var(--pal-ink)}
.pal-send{color:var(--pal-paper);background:var(--pal-ink);margin-left:auto}.pal-send:disabled{opacity:.45;cursor:default;background:var(--pal-soft);color:var(--pal-muted)}.pal-send .pal-icon{width:19px;height:19px;stroke-width:2}
.pal-composer>.dictation-trigger{top:auto!important;bottom:9px!important;left:auto!important;right:48px!important;width:32px!important;height:32px!important;color:var(--pal-muted);border-radius:50%;background:transparent}
.pal-composer>.dictation-trigger:hover{color:var(--pal-ink);background:var(--pal-soft)}.pal-composer>.dictation-trigger[data-state=listening]{color:var(--ink-danger,#c34a45);background:var(--tint-red,#fbefed)}
.pal-composer>.dictation-row{top:auto!important;bottom:9px;left:9px!important;width:auto!important;right:88px;height:32px!important;background:var(--pal-paper)}
.pal-composer[data-dictation-state] .pal-attach-button,.pal-composer[data-dictation-state] .pal-where{visibility:hidden}
.pal-composer[data-dictation-state] .pal-attachment-menu,.pal-composer[data-dictation-state] .pal-where-menu{display:none}
.pal-composer>.dictation-trigger:is([data-state=listening],[data-state=processing]){background:var(--pal-soft);color:var(--pal-ink)}
.pal-composer>.dictation-trigger:is([data-state=listening],[data-state=processing]):hover{background:var(--pal-hover);color:var(--pal-ink)}
.pal-composer .dictation-cancel{background:var(--pal-soft);color:var(--pal-ink)}.pal-composer .dictation-cancel:hover{background:var(--pal-hover)}
.pal-attached{gap:6px;padding:10px 12px 0;flex-wrap:wrap}.pal-attached button{padding:5px 8px;border-radius:7px;font-size:11px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-attachment-menu{position:absolute;left:5px;bottom:48px;z-index:20;width:290px;max-width:calc(100vw - 90px);padding:7px;border-radius:13px;border:1px solid var(--pal-line);background:var(--pal-paper);box-shadow:0 10px 34px #00000012}
.pal-attachment-menu[hidden]{display:none}.pal-attachment-menu>p{margin:6px 8px 9px;font-size:11px;color:var(--pal-muted)}
.pal-attachment-option{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border:0;background:none;color:var(--pal-ink);border-radius:8px;text-align:left;cursor:pointer;font:inherit}
.pal-attachment-option:hover{background:var(--pal-soft)}.pal-attachment-option span{display:flex;flex-direction:column;gap:2px}.pal-attachment-option strong{font-size:13px;font-weight:600}.pal-attachment-option small{font-size:11px;color:var(--pal-muted)}
.pal-artifact{display:flex;align-items:center;gap:12px;width:max-content;max-width:100%;min-width:230px;border:1px solid var(--pal-line);background:var(--pal-paper);color:var(--pal-ink);border-radius:11px;padding:12px 13px;margin-top:13px;text-align:left;cursor:pointer;font:inherit}
.pal-artifact:hover{background:var(--pal-soft)}.pal-artifact>.pal-icon:first-child{color:var(--pal-muted)}.pal-artifact>.pal-icon:last-child{width:14px;height:14px;margin-left:auto;color:var(--pal-muted)}
.pal-artifact-copy{display:flex;flex-direction:column;gap:2px;padding-right:15px}.pal-artifact-copy strong{font-size:13px;line-height:1.35;font-weight:650}.pal-artifact-copy small{font-size:11px;line-height:1.4;color:var(--pal-muted)}
.pal-artifact[data-kind=agent]{gap:9px;min-width:0;padding:9px 12px;border-radius:16px}
.pal-artifact[data-kind=agent]>.pal-icon:first-child{width:16px;height:16px}
.pal-owner .pal-artifact{background:transparent;color:inherit;border-color:color-mix(in srgb,currentColor 22%,transparent)}
.pal-owner .pal-artifact .pal-icon,.pal-owner .pal-artifact small{color:inherit;opacity:.72}
.pal-owner .pal-artifact:hover{background:color-mix(in srgb,currentColor 8%,transparent)}
.pal-context-link{border:0;padding:0;margin-top:10px;font-size:12px;font-weight:550;color:var(--pal-muted);line-height:1.5}.pal-context-link:hover{color:var(--pal-ink);text-decoration:underline;text-underline-offset:3px}
.pal-receipt-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:1.4;margin-top:8px;padding:6px 10px;border:1px solid var(--pal-line);border-radius:16px;background:var(--pal-paper)}
.pal-receipt-link .pal-icon{width:13px;height:13px}.pal-receipt-link:hover{background:var(--pal-soft);text-decoration:none}
.pal-typing{max-width:var(--pal-column,840px);font-size:12px;margin:23px auto 0}
.pal-need{background:var(--pal-soft);border:1px solid var(--pal-line);padding:18px;border-radius:14px;margin-top:12px;max-width:580px;font-size:14px;line-height:1.6}
.pal-eyebrow{display:block;color:var(--pal-muted);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;line-height:1.5}
.pal-need h3{font-size:15px;font-weight:650;line-height:1.4;margin:5px 0 8px}.pal-need-answer{display:block;width:100%;min-height:44px;resize:vertical;font-size:14px;line-height:1.5;background:var(--pal-paper);padding:10px 12px;margin:14px 0 10px;border-radius:9px}
.pal-need .pal-button{display:inline-flex;gap:6px;align-items:center;font-size:12px;padding:8px 12px;background:var(--pal-paper);border-radius:8px}.pal-need .pal-button .pal-icon{width:14px;height:14px}.pal-need-help{display:block;font-size:11px;color:var(--pal-muted);margin-top:9px;line-height:1.4}
.pal-detail{width:min(43%,460px);padding:0;gap:0;background:var(--pal-paper);border-left:1px solid var(--pal-line);overflow:hidden}
.pal-detail-head{min-height:49px;padding:10px 22px;border-bottom:1px solid var(--pal-line);gap:10px;flex-shrink:0;display:flex;align-items:center}
.pal-detail-kind{font-size:11px;color:var(--pal-muted);font-weight:600}.pal-detail-close{display:flex;align-items:center;gap:6px;margin-left:auto;border:0;background:none;color:var(--pal-muted);font-family:inherit;font-size:12px;font-weight:500;padding:5px;border-radius:6px;cursor:pointer}.pal-detail-close:hover{background:var(--pal-soft);color:var(--pal-ink)}.pal-detail-close span{display:none}.pal-detail-close .pal-icon{width:17px;height:17px}
.pal-detail-content{flex:1;padding:26px 25px;overflow:auto;min-height:0;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.pal-detail-title{font:650 23px/1.3 'Nunito Sans',sans-serif;letter-spacing:-.55px;margin:0 0 12px;white-space:normal;text-overflow:clip;overflow:visible;text-transform:none}
.pal-detail-period{font-size:11px;color:var(--pal-muted);line-height:1.5;margin:6px 0 22px}.pal-detail-loading{font-size:13px;color:var(--pal-muted)}
.pal-detail-footer{padding:12px 22px 18px;border-top:1px solid var(--pal-line);background:var(--pal-paper);flex-shrink:0}.pal-context-compose{position:static;display:block;width:100%;font-size:13px;padding:10px 14px;background:var(--pal-soft);border-radius:9px}
.pal-section-title{font-size:12px;font-weight:650;line-height:1.5;margin:24px 0 10px}.pal-state-pill{display:inline-flex;align-items:center;border-radius:20px;padding:3px 9px;background:var(--pal-soft);color:var(--pal-muted);font-size:11px;font-weight:600;margin-bottom:14px}.pal-state-pill.is-complete{background:var(--pal-soft);color:var(--pal-ink)}
.pal-detail-controls{margin-top:22px}.pal-detail-controls .pal-button{font-size:12px;padding:9px 13px;border-radius:8px}
.pal-report-outcomes{margin:10px 0 24px}.pal-evidence{margin:0;padding:0;border-bottom:1px solid var(--pal-line)}
.pal-evidence summary{display:flex;align-items:center;gap:10px;list-style:none;padding:16px 0;font-size:13px;font-weight:500;cursor:pointer}.pal-evidence summary::-webkit-details-marker{display:none}.pal-evidence summary .pal-icon{width:13px;height:13px;margin-left:auto;color:var(--pal-muted);transition:transform .15s}.pal-evidence[open] summary>.pal-icon{transform:rotate(90deg)}
.pal-result-number{min-width:38px;font-size:25px;font-weight:650;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.pal-evidence.is-secondary summary{font-size:11px;padding:12px 0}.pal-evidence.is-secondary .pal-result-number{font-size:16px;letter-spacing:0}
.pal-evidence-row{padding:12px 0 15px;border-top:1px solid var(--pal-line);font-size:12px}.pal-evidence-row .pal-context-link{font-size:12px;font-weight:650;color:var(--pal-ink);margin:0}.pal-evidence-row small{display:block;margin:2px 0 7px;font-size:11px;color:var(--pal-muted)}.pal-evidence-empty{font-size:12px;color:var(--pal-muted);margin:0 0 15px}.pal-evidence .pal-button{font-size:11px;margin:9px 0;padding:7px 10px}
.pal-strategy-note{padding:18px;background:var(--pal-soft);border-radius:12px;font-size:13px;margin-bottom:22px}.pal-strategy-note h3{font-size:15px;line-height:1.5;font-weight:600;margin:7px 0 17px}.pal-field-label{font-size:11px;color:var(--pal-muted);font-weight:600;margin:0 0 5px}.pal-evidence-strength{font-size:11px;color:var(--pal-muted);line-height:1.5;margin:13px 0 0}.pal-report-scope{font-size:11px;color:var(--pal-muted);line-height:1.6}.pal-report-scope summary{cursor:pointer;font-weight:550;margin-bottom:8px}
.pal-person-info{font-size:13px;color:var(--pal-muted);margin-top:-3px}.pal-person-info p{margin:2px 0}.pal-person-event{padding:17px 0;border-top:1px solid var(--pal-line);font-size:13px}.pal-person-event>strong{display:block;font-size:12px;font-weight:650}.pal-person-event>time{display:block;color:var(--pal-muted);font-size:11px;margin:3px 0 10px}.pal-person-proof{font-size:11px;color:var(--pal-muted);margin-top:12px}.pal-person-proof summary{font-size:12px;cursor:pointer;margin-bottom:6px}
.pal-goal-state{padding:3px 8px;background:var(--pal-soft);border-radius:15px;align-self:start;font-size:11px}.pal-goal-company{font-size:11px;color:var(--pal-muted);margin-bottom:3px}.pal-goal-row .pal-goal-title{font-size:17px;line-height:1.4}.pal-goal-row .pal-words{grid-column:1/-1;max-width:750px;font-size:13px}.pal-goal-row .pal-button{justify-self:start;grid-column:1/-1;font-size:12px;padding:6px 10px}
@media(max-width:1100px){.pal-header{padding:13px 20px 10px}.pal-scroll{padding:16px 26px 26px}.pal-composer{margin:12px 25px 22px}.pal-detail{width:44%}.pal-header-actions{right:18px}.pal-detail-content{padding:23px 20px}}
@media(max-width:900px){.pal-header{min-height:112px}.pal-status{display:block;max-width:220px;font-size:11px}.pal-contact{max-width:calc(100% - 130px)}.pal-header-actions{top:18px;right:16px}.pal-detail{width:100%;border-left:0}.pal-detail-head{padding:10px 22px}.pal-detail-close{order:-1;margin-left:0}.pal-detail-close span{display:inline}.pal-detail-close .pal-icon{display:none}.pal-detail-kind{margin-left:auto}.pal-detail-content{padding:25px;max-width:740px;width:100%;align-self:center}.pal-welcome{margin-top:5vh}.pal-welcome h1{font-size:27px}.pal-owner{max-width:88%}}
@media(max-width:600px){.pal-header{min-height:105px;padding:10px 12px}.pal-contact{max-width:calc(100% - 70px)}.pal-identity{font-size:13px}.pal-identity .pal-character{width:46px;height:44px}.pal-status{font-size:11px;max-width:175px}.pal-header-actions{right:10px;top:17px}.pal-scroll{padding:13px 18px 24px}.pal-thread{font-size:15px;gap:24px}.pal-date-divider{font-size:11px}.pal-composer{margin:8px 12px 16px}.pal-input{font-size:15px}.pal-welcome{margin:3vh auto 20px}.pal-welcome>.pal-character{width:116px;height:109px}.pal-welcome h1{font-size:24px;margin-top:15px}.pal-welcome p{font-size:14px}.pal-suggestions{gap:7px;margin-top:20px}.pal-suggestions button{padding:7px 10px;font-size:11px}.pal-artifact{min-width:0;width:100%;padding:11px}.pal-need{padding:14px}.pal-need h3{font-size:14px}.pal-detail-content{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){.pal-view *{scroll-behavior:auto!important;transition:none!important}}

/* A small contact in the work header; the welcome character keeps its own scale. */
.pal-header{min-height:82px;padding-top:12px;padding-bottom:12px}
.pal-contact{gap:2px}.pal-identity{flex-direction:row;align-items:center;gap:7px;font-size:14px}
.pal-identity .pal-character{width:34px;height:32px}.pal-status{font-size:11px}
@media(max-width:900px){.pal-header{min-height:78px}.pal-header-actions{top:19px}}
@media(max-width:600px){.pal-header{min-height:74px}.pal-identity{font-size:13px}.pal-identity .pal-character{width:30px;height:29px}.pal-header-actions{top:20px}}

.pal-columns:is(.has-team,.has-batch,.has-detail) .pal-welcome>.pal-character{width:58px;height:54px}
.pal-columns:is(.has-team,.has-batch,.has-detail) .pal-welcome h1{font-size:23px;margin-top:12px}
.pal-goal-where{display:flex;width:fit-content;align-items:center;gap:4px;margin-top:5px;padding:2px 7px 2px 6px;border:1px solid var(--pal-line);border-radius:10px;font-size:11px;color:var(--pal-muted)}.pal-goal-where .pal-icon{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}

/* A running goal's live breadcrumb: one muted line under its badge, truncated,
   with a soft pulsing dot while steps arrive and a still one once it is quiet. */
.pal-goal-live{display:grid;gap:8px;min-width:0}
.pal-goal-live[hidden]{display:none}
.pal-goal-row>.pal-goal-live{grid-column:1/-1}
.pal-pulse{display:flex;align-items:center;gap:7px;min-width:0;margin:0;font-size:12px;line-height:1.4;color:var(--pal-muted)}
.pal-pulse[hidden]{display:none}
.pal-pulse-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-pulse-dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--pal-safe,#2f8a57);animation:pal-pulse-beat 2s ease-in-out infinite}
.pal-pulse[data-quiet=true] .pal-pulse-dot{background:transparent;border:1.5px solid var(--pal-muted);animation:none;width:6px;height:6px;flex-basis:6px}
@keyframes pal-pulse-beat{0%,100%{opacity:1}50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.pal-pulse-dot{animation:none}}
.pal-pulse-watch{flex:none;padding:0;border:0;background:none;color:var(--pal-ink);font:inherit;font-weight:650;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.pal-pulse-watch:focus-visible,.pal-goal-control:focus-visible{outline:2px solid var(--pal-focus,var(--pal-ink));outline-offset:2px}
/* Inline Pause / Resume and Stop on the goal's own card. */
.pal-goal-inline{display:flex;flex-wrap:wrap;gap:6px}
.pal-goal-inline[hidden]{display:none}
.pal-goal-control{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--pal-line);border-radius:8px;background:var(--pal-paper);color:var(--pal-ink);font:600 12px/1.2 var(--font-ui,inherit);cursor:pointer}
.pal-goal-control:hover:not(:disabled){background:var(--pal-soft)}
.pal-goal-control:disabled{opacity:.55;cursor:default}
.pal-goal-control .pal-icon{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pal-goal-control.is-resume .pal-icon{fill:currentColor;stroke-width:1.5}
.pal-goal-control.is-stop{color:var(--pal-brake-ink,#b3261e)}
.pal-goal-control.is-stop .pal-icon{fill:currentColor;stroke-width:0}
.pal-rich-card .pal-goal-live{margin:6px 0 12px}
.pal-detail-content .pal-goal-live{margin:8px 0 0}
.pal-team-row-copy .pal-team-row-pulse{font-size:11.5px}
/* An ask, once over, is one quiet line; while open, one headline and the press that fixes it. */
.pal-need.pal-need-closed{display:flex;align-items:center;gap:8px;padding:9px 13px;font-size:13px;color:var(--pal-muted);background:transparent;max-width:max-content}
.pal-need.pal-need-closed .pal-icon{width:14px;height:14px;flex:0 0 14px}.pal-need.pal-need-closed .pal-hand-logo{transform:scale(.8)}
.pal-need-closed-answer{flex-basis:100%}
.pal-need-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pal-need .pal-need-primary{background:var(--pal-ink);color:var(--pal-paper);border-color:transparent}
.pal-need .pal-button[aria-busy=true]{opacity:.7;cursor:progress}
/* What an open ask holds up: the goals folded into it, the agents parked on it. */
.pal-need-waiting{margin:2px 0 12px;padding:9px 11px;border-radius:9px;border:1px solid var(--pal-line);background:transparent;font-size:13px;line-height:1.45}
.pal-need-waiting-lead{margin:0;color:var(--pal-ink)}
.pal-need-waiting-goals{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pal-need-waiting-goals>li{min-width:0;max-width:100%}
.pal-need-waiting-goal{display:block;font:inherit;font-size:12px;font-weight:600;color:var(--pal-ink);background:var(--pal-paper);border:1px solid var(--pal-line);border-radius:7px;padding:4px 9px;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-need-waiting-goal:hover{border-color:var(--pal-muted)}
.pal-need-why{margin-top:12px;font-size:12px;color:var(--pal-muted)}.pal-need-why summary{cursor:pointer;width:max-content}.pal-need-why[open] summary{margin-bottom:6px}
/* A message that just arrived settles in; the owner's from their side, the pal's from its. Ends fully visible, so 0s under reduced motion is the plain row. */
.pal-message.pal-arrive{animation:pal-arrive .34s cubic-bezier(.2,.75,.25,1) both}
.pal-owner.pal-arrive{transform-origin:100% 100%}.pal-assistant.pal-arrive{transform-origin:0 100%}
@keyframes pal-arrive{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.pal-message.pal-arrive{animation:none}}
/* Local / Cloud in the composer, beside the + button. */
.pal-where{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 9px 0 8px;border-radius:16px;border:1px solid var(--pal-line);background:transparent;color:var(--pal-muted);font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.pal-where:hover,.pal-where[aria-expanded=true]{background:var(--pal-soft);color:var(--pal-ink)}
.pal-where .pal-icon{width:14px;height:14px}.pal-where .pal-icon:last-child{width:11px;height:11px;transform:rotate(90deg);opacity:.7}
.pal-where[data-where=cloud]{color:var(--pal-ink)}
.pal-where[aria-busy]{cursor:progress}
.pal-where-menu{position:absolute;left:48px;bottom:48px;z-index:5;min-width:250px;padding:6px;border-radius:12px;background:var(--pal-paper);border:1px solid var(--pal-line);box-shadow:0 12px 32px rgba(0,0,0,.18)}
.pal-where-option{display:flex;gap:10px;align-items:flex-start;width:100%;padding:9px 10px;border-radius:8px;border:0;background:transparent;color:var(--pal-ink);text-align:left;font:inherit;cursor:pointer}
.pal-where-option:hover,.pal-where-option:focus-visible{background:var(--pal-soft)}
.pal-where-option[aria-checked=true] strong::after{content:" ✓";color:var(--pal-muted)}
.pal-where-option .pal-icon{width:16px;height:16px;margin-top:2px;flex:0 0 16px}
.pal-where-option span{display:flex;flex-direction:column;gap:2px}.pal-where-option strong{font-size:13px;font-weight:600}.pal-where-option small{font-size:11px;color:var(--pal-muted);line-height:1.35}
/* What needs the owner, above the message box. */
/* One column for the whole chat: thread, ribbon, notices, chips, composer. */
#view-pal{--pal-column:840px}
.pal-conversation{container-type:inline-size;container-name:pal-conversation}
/* What needs the owner: one hairline row above the thread, in the flow (it
   never covers a message). The ask's mark, its line, its presses, and ×. */
.pal-ribbon{display:flex;align-items:center;gap:8px;flex-shrink:0;margin:12px max(30px,calc((100% - var(--pal-column,840px))/2)) 6px;padding:10px 8px 10px 12px;background:var(--pal-paper);border:1px solid var(--pal-line);border-radius:var(--radius-card,12px);color:var(--pal-ink);max-height:40vh;overflow:auto}
.pal-ribbon[hidden]{display:none}
.pal-ribbon>.pal-need{flex:1;min-width:0;margin:0;padding:0;border:0;background:none;box-shadow:none;max-width:none;border-radius:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center;font-size:13px;line-height:1.45}
.pal-ribbon>.pal-need>*{grid-column:2}
.pal-ribbon .pal-hand-logo{grid-column:1;grid-row:1/span 2;align-self:center}
.pal-ribbon .pal-hand-logo .pal-character{width:20px;height:19px}
.pal-ribbon>.pal-need>h3,.pal-ribbon .pal-hand>h3{grid-column:2;grid-row:1;margin:0;font-size:14px;font-weight:600;line-height:1.4;color:var(--pal-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-ribbon>.pal-need>.pal-need-actions,.pal-ribbon .pal-hand-actions{grid-column:3;grid-row:1/span 2;margin:0;flex-wrap:nowrap;justify-content:flex-end}
.pal-ribbon .pal-need-waiting{grid-column:2;grid-row:2;display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;margin:0;padding:0;border:0;font-size:12px;font-weight:500;color:var(--pal-muted)}
.pal-ribbon .pal-need-waiting-lead{color:var(--pal-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-ribbon .pal-need-waiting-goals{margin:0;min-width:0}
.pal-ribbon .pal-need-waiting-goal{padding:1px 7px;font-size:12px}
/* A question: its answer on the row under it, like the message box. */
.pal-ribbon .pal-need-answer{grid-column:2;grid-row:3;min-height:34px;margin:8px 0 0;padding:6px 10px;font-size:13px;resize:none}
.pal-ribbon .pal-need-send{grid-column:3;grid-row:3;align-self:end;justify-self:end}
/* A checkpoint keeps its own card; here it is the same one row. */
.pal-ribbon .pal-hand{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;border:0;padding:0;background:none;box-shadow:none;max-width:none}
.pal-ribbon .pal-hand-head{display:contents}
.pal-ribbon .pal-hand .pal-eyebrow{grid-column:2;grid-row:2;font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--pal-muted)}
.pal-ribbon .pal-hand .pal-need-waiting{grid-row:3}
.pal-ribbon :is(.pal-hand-shot,.pal-hand-detail,.pal-hand-help,.pal-need-why,.pal-need-help){display:none}
.pal-ribbon .pal-hand-actions button{min-height:32px;padding:7px 12px;font-size:13px}
.pal-ribbon-more{font-size:12px;color:var(--pal-muted);white-space:nowrap}
.pal-experience .pal-ribbon-close{display:inline-flex;align-items:center;justify-content:center;width:32px;padding:0;color:var(--pal-muted)}
.pal-ribbon-close .pal-icon{width:14px;height:14px}
/* Next things to say, above the message box: the welcome's chips, one row. */
.pal-suggestions.pal-chips{justify-content:flex-start;flex-wrap:wrap;flex-shrink:0;margin:8px max(30px,calc((100% - var(--pal-column,840px))/2)) -4px}
.pal-chips[hidden]{display:none}
.pal-chips button{flex-shrink:0;white-space:nowrap}
.pal-chips .pal-chip-ask{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;white-space:normal;text-align:left}
.pal-chip-label{min-width:0;overflow-wrap:anywhere}
.pal-chip-ask .pal-hand-logo{width:20px;height:20px;border-radius:5px}
.pal-chip-ask .pal-hand-logo img{width:14px;height:14px}
.pal-chip-ask .pal-hand-logo .pal-character{width:16px;height:15px}
/* A routine action, a settled ask: one quiet line, close to its neighbours. */
.pal-note{margin-top:-14px;align-self:stretch;max-width:100%}
.pal-note+.pal-note{margin-top:-20px}
.pal-note-line{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font:500 12px/1.5 var(--font-ui);color:var(--pal-muted)}
.pal-note-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:6px;background:var(--pal-soft)}
.pal-note-mark .pal-icon{width:10px;height:10px;stroke-width:2.4}
.pal-note-text{color:var(--pal-ink)}
.pal-note-goal{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--pal-ink);cursor:pointer;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-note-goal:hover{text-decoration:underline;text-underline-offset:3px}
.pal-note-goal:focus-visible{outline:2px solid var(--pal-focus);outline-offset:2px}
.pal-note-dot,.pal-note-time{color:var(--ink-faint)}
.pal-note .pal-need.pal-need-closed{margin:0;padding:0;border:0;background:none;font:500 12px/1.5 var(--font-ui)}
.pal-note .pal-need-closed-line{color:var(--pal-ink)}
/* The receipt behind an action: evidence, there when wanted. */
.pal-receipt-link{opacity:0;transition:opacity .12s ease;margin:0;padding:0;border:0;background:none;font-size:11px}
.pal-message>.pal-receipt-link{position:absolute;left:4px;top:100%;margin-top:3px}
.pal-note-line .pal-receipt-link{margin-left:4px}
.pal-message:hover .pal-receipt-link,.pal-receipt-link:focus-visible{opacity:1}
.pal-receipt-link:hover{background:none;text-decoration:underline}
@media(hover:none){.pal-receipt-link{opacity:1}}
/* A stopped or finished goal's next move, on its last mention. */
.pal-goal-next{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pal-goal-next[hidden]{display:none}
.pal-goal-control.is-adjust .pal-icon{width:13px;height:13px}
@media(max-width:1100px){.pal-ribbon{margin:10px 25px 4px}.pal-suggestions.pal-chips{margin:8px 25px -4px}}
@media(max-width:600px){.pal-ribbon{margin:8px 12px 4px}.pal-suggestions.pal-chips{margin:8px 12px -4px}}
.pal-ribbon>.pal-need:not(:has(>.pal-need-waiting))>h3{grid-row:1/span 2}
/* Under the row, the thread fades out instead of being cut at a hard edge. */
.pal-ribbon:not([hidden])+.pal-scroll{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 28px);mask-image:linear-gradient(to bottom,transparent 0,#000 28px)}

/* Work has one home in the timeline. Finished work leaves a small receipt. */
.pal-task-row{width:100%}
.pal-task-card{position:relative;border-radius:14px;max-width:580px}
.pal-task-card>.pal-rich-head{margin-bottom:8px}
.pal-task-card .pal-task-status{margin:0 0 8px;font-size:12px;color:var(--pal-muted)}
.pal-task-card>.pal-goal-live{margin-top:0}
.pal-task-card>[hidden]{display:none!important}
.pal-task-card.is-complete{padding:0;border:0;background:transparent;width:100%;margin:0}
.pal-task-receipt{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--pal-muted);font:500 13px/1.5 var(--font-ui);text-align:left;padding:7px 0;cursor:pointer;max-width:100%;overflow-wrap:anywhere}
.pal-task-receipt:before{content:'✓';color:var(--pal-ink);font-size:14px}
.pal-task-receipt:hover{color:var(--pal-ink)}
.pal-deliverable-note{font-size:14px;color:var(--pal-muted);margin:0 0 8px}
.pal-answer-choices{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 0}
.pal-answer-choices:empty{display:none}
.pal-answer-choices button{border:1px solid var(--pal-line);border-radius:18px;padding:7px 12px;background:var(--pal-paper);color:var(--pal-ink);font:500 12px/1.4 var(--font-ui);text-align:left;cursor:pointer}
.pal-answer-choices button:hover{background:var(--pal-soft);border-color:var(--pal-muted)}
.pal-answer-choices button:focus-visible,.pal-task-receipt:focus-visible{outline:2px solid var(--pal-ink);outline-offset:3px}
.pal-ribbon>.pal-need>.pal-answer-choices{grid-column:2/-1;grid-row:3}
.pal-ribbon>.pal-need:has(>.pal-answer-choices:not(:empty))>.pal-need-answer{grid-row:4}
.pal-ribbon>.pal-need:has(>.pal-answer-choices:not(:empty))>.pal-need-send{grid-row:4}
.pal-detail-content>.pal-words{white-space:pre-wrap;overflow-wrap:anywhere}
.pal-detail-content>.pal-rich-card{max-width:none;background:var(--pal-paper)}

/* Side panels reduce the conversation even in a wide window. Reflow the
   actions using its available space, keeping goal links and buttons apart. */
@container pal-conversation (max-width:680px){
  .pal-ribbon>.pal-need,.pal-ribbon .pal-hand{grid-template-columns:auto minmax(0,1fr)}
  .pal-ribbon>.pal-need>.pal-need-actions,.pal-ribbon .pal-hand-actions{grid-column:2;grid-row:auto;margin-top:8px;justify-content:flex-start;flex-wrap:wrap;min-width:0}
  .pal-ribbon :is(.pal-need-actions,.pal-hand-actions)>button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .pal-ribbon>.pal-need>.pal-need-send,.pal-ribbon>.pal-need:has(>.pal-answer-choices:not(:empty))>.pal-need-send{grid-column:2;grid-row:5;justify-self:start;margin-top:6px}
  .pal-ribbon>.pal-need>h3,.pal-ribbon .pal-hand>h3{white-space:normal;overflow-wrap:anywhere}
}
