/* Campaign workspace. Opt-in on the home/answer page; shared tokens own color. */
[data-workspace="campaign"] { scroll-behavior: smooth; }
.cal-workspace { background: var(--paper); }
.cal-workspace .n-wrap { max-width: 1440px; padding-inline: 32px; }
.cal-workspace .n-main { padding-bottom: 24px; }
.cal-workspace .n-top { min-height: 76px; border-bottom: 1px solid var(--hairline); margin-bottom: 12px; }
.cal-workspace .n-brand { font-family: var(--sans); font-weight: 600; }
.cal-workspace .n-rail { background: var(--paper); border-right-color: var(--hairline); }
.cal-workspace .n-rail-grp { font-size: 12px; letter-spacing: .04em; margin-top: 18px; }
.cal-workspace .n-rail-item { min-height: 40px; font-size: 14px; border-radius: var(--r-sm); }
.cal-workspace .n-rail-item[aria-current="page"] { background: var(--paper-raised); box-shadow: inset 2px 0 var(--signal); }
.cal-workspace .n-pill { border: 1px solid var(--hairline); background: var(--paper-inset); }
.cal-workspace .n-cta { border-radius: var(--r-md); background: var(--signal); color: var(--on-signal); transition: transform var(--campaign-fast), background-color var(--campaign-fast); }
.cal-workspace .n-cta:hover { transform: translateY(-2px); background: var(--green-hover); }
.cal-workspace .n-cta:active { transform: translateY(0); }
.cal-workspace .home { padding-top: 0; }
.cal-workspace .n-up { animation: none; }
.cal-workspace .ws-intro { position: relative; display: grid; grid-template-columns: 1.2fr 1fr; gap: 24px; align-items: center; min-height: 210px; padding-block: 8px 22px; }
.cal-workspace .ws-intro-copy { position: relative; z-index: 1; }
.cal-workspace .ws-eyebrow { display: block; margin: 0; font: 600 12px/1.5 var(--sans); letter-spacing: .12em; color: var(--ink-muted); }
.cal-workspace .hello { font-size: 14px; margin-top: 8px; }
.cal-workspace .hero { font-size: clamp(38px,3.6vw,52px); line-height: 1.02; font-weight: 500; letter-spacing: -.045em; margin: 10px 0 12px; }
.cal-workspace .hero em, .cal-workspace .tools h2 em { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--ink); }
.cal-workspace .ws-lead { font-size: 15px; line-height: 1.7; margin: 0; }
.cal-workspace .ws-ecosystem { position: relative; height: 230px; overflow: hidden; border-radius: var(--r-lg); background: var(--paper); }
.cal-workspace .ws-ecosystem img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; mask-image: linear-gradient(to right,transparent, var(--ink) 15%,var(--ink) 85%,transparent); }
.cal-workspace .ws-image-label { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; width: max-content; max-width: calc(100% - 24px); padding: 8px 14px; border: 1px solid var(--hairline-strong); border-radius: var(--r-full); font-size: 12px; background: var(--paper); }
.cal-workspace .ws-node { width: 6px; height: 6px; background: var(--signal); flex: none; }
.cal-workspace .ws-journey { border: 1px solid var(--hairline); border-radius: var(--r-lg); background: var(--paper-inset); overflow: hidden; margin-bottom: 24px; box-shadow: var(--campaign-shadow); }
.cal-workspace .ws-journey-head { display: flex; justify-content: space-between; gap: 16px; padding: 16px 20px; font-size: 12px; color: var(--ink-muted); border-bottom: 1px solid var(--hairline); }
.cal-workspace .ws-stages { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--hairline); }
.cal-workspace .ws-stages button { position: relative; display: flex; align-items: center; gap: 12px; min-height: 88px; padding: 18px 16px; text-align: left; border: 0; background: var(--paper-inset); color: var(--ink); font: 500 15px/1.3 var(--sans); cursor: pointer; transition: background-color var(--campaign-fast); }
.cal-workspace .ws-stages button:hover { background: var(--paper-raised); }
.cal-workspace .ws-stages button[aria-pressed="true"] { background: var(--paper-raised); box-shadow: inset 0 -3px var(--signal); }
.cal-workspace .ws-step { font-size: 12px; color: var(--ink-muted); align-self: flex-start; margin-top: 2px; }
.cal-workspace .ws-stages small { display: block; font-size: 12px; line-height: 1.5; margin-top: 6px; color: var(--ink-muted); font-weight: 400; }
.cal-workspace .ws-stage-arrow { font-size: 18px; color: var(--signal); margin-left: auto; }
.cal-workspace .ws-stage-panel { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 14px 20px; min-height: 72px; }
.cal-workspace .ws-stage-panel p { font-size: 13px; line-height: 1.5; margin: 0; max-width: 320px; }
.cal-workspace #wsStageTools { display: flex; gap: 8px; flex-wrap: wrap; }
.cal-workspace #wsStageTools :is(a,button) { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 12px; border: 1px solid var(--hairline-strong); border-radius: var(--r-sm); color: var(--ink); background: var(--paper); text-decoration: none; cursor: pointer; font: 500 13px/1.4 var(--sans); }
.cal-workspace #wsStageTools :is(a,button):hover { background: var(--paper-raised); }
.cal-workspace .ws-workbench { display: grid; grid-template-columns: minmax(0,1.85fr) minmax(270px,1fr); gap: 24px; align-items: start; }
.cal-workspace .ws-compose, .cal-workspace .ws-side { min-width: 0; padding: 24px; border: 1px solid var(--hairline); border-radius: var(--r-lg); background: var(--paper-inset); box-shadow: var(--campaign-shadow); }
.cal-workspace .ws-compose { background: linear-gradient(150deg,var(--campaign-glow),transparent 55%),var(--paper-inset); }
.cal-workspace .ws-card-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.cal-workspace .ws-card-head h2 { font: 500 28px/1.15 var(--display); margin: 8px 0 0; letter-spacing: -.025em; }
.cal-workspace .ws-cited { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--ink-muted); white-space: nowrap; padding-top: 4px; }
.cal-workspace .ask { margin: 0; padding: 20px; border-radius: var(--r-md); background: var(--paper); }
.cal-workspace .ask textarea { min-height: 120px; max-height: 260px; font: 400 18px/1.55 var(--sans); letter-spacing: 0; }
.cal-workspace .ask .n-chips { gap: 6px; margin-top: 14px; }
.cal-workspace .ask .n-chips li { font-size: 12px; }
.cal-workspace .ask-bar { align-items: end; gap: 12px; }
.cal-workspace .ask-tools { flex: 1 1 130px; }
.cal-workspace .ask-hint { flex-basis: 100%; font-size: 12px; margin: 6px 0 0 12px; line-height: 1.5; }
.cal-workspace .ask .n-cta { min-height: 44px; padding: 8px 12px 8px 16px; font-size: 14px; flex-shrink: 0; white-space: nowrap; }
.cal-workspace .ask .n-cta-dot { width: 26px; height: 26px; font-size: 18px; }
.cal-workspace .starts { margin: 18px 0 0; display: flex; flex-direction: column; align-items: stretch; gap: 10px; font-size: 12px; }
.cal-workspace #starters { display: flex; flex-wrap: wrap; gap: 6px; }
.cal-workspace #starters button { min-height: 32px; padding: 6px 10px; border: 1px solid var(--hairline); border-radius: var(--r-sm); font-size: 12px; background: var(--paper); }
.cal-workspace #starters button:hover { background: var(--paper-raised); text-decoration: none; }
.cal-workspace .ws-input-note { font-size: 12px; margin: 12px 0 0; line-height: 1.6; }
.cal-workspace .ws-side-heading h2 { font: 500 24px/1.2 var(--display); margin: 8px 0 16px; letter-spacing: -.025em; }
.cal-workspace #recent { display: flex; flex-direction: column; }
.cal-workspace #recent button { padding: 14px 0; min-height: 56px; border-top: 1px solid var(--hairline); font-size: 13px; line-height: 1.5; }
.cal-workspace #recent button span { white-space: normal; max-width: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.cal-workspace .ws-empty { font-size: 14px; line-height: 1.6; }
.cal-workspace #recentGrp:not([hidden]) + .ws-empty { display: none; }
.cal-workspace .quest { padding: 18px 0 0; margin-top: 16px; border-top: 1px solid var(--hairline); border-radius: 0; background: transparent; }
.cal-workspace .quest .q-eyebrow { font-size: 16px; }
.cal-workspace .quest .q-label { font-size: 13px; min-width: 12ch; }
.cal-workspace .quest .q-count, .cal-workspace .quest .q-when, .cal-workspace .q-act :is(a,button), .cal-workspace .quest .q-line { font-size: 12px; }
.cal-workspace .q-form { padding-left: 0; }
.cal-workspace .nums { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; margin: 24px 0; padding: 22px 24px; border-block: 1px solid var(--hairline); }
.cal-workspace .num b { font-size: 30px; font-weight: 500; line-height: 1.2; }
.cal-workspace .num span { font-size: 12px; }
.cal-workspace .home a.signal { margin: 0; padding: 22px 24px; border: 1px solid var(--hairline); border-radius: var(--r-lg); gap: 20px; }
.cal-workspace .signal-hd { flex-basis: 130px; }
.cal-workspace .signal-t { font-size: 24px; font-weight: 500; }
.cal-workspace .signal-s, .cal-workspace .special .ends { font-size: 12px; }
.cal-workspace .signal-rows { gap: 18px; }
.cal-workspace .special { flex-basis: 150px; font-size: 13px; }
.cal-workspace .special .who b { font-size: 15px; }
.cal-workspace .signal-go { width: 34px; height: 34px; }
.cal-workspace .tools { margin-top: 42px; }
.cal-workspace .ws-suite-head { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: 22px; }
.cal-workspace .tools h2 { font-size: 30px; font-weight: 500; line-height: 1.25; margin: 10px 0 0; }
.cal-workspace .ws-suite-head p { font-size: 12px; line-height: 1.7; margin: 0; }
.cal-workspace .tool-cols { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin: 0; }
.cal-workspace .tool-col { min-width: 0; border: 1px solid var(--hairline); border-radius: var(--r-md); background: var(--paper-inset); padding: 16px 8px 8px; }
.cal-workspace .tool-col .grp { font-size: 12px; padding: 0 8px 12px; }
.cal-workspace .tool-col :is(a,button) { padding: 12px 8px; }
.cal-workspace .tool-col :is(a,button) b { font-size: 17px; font-weight: 500; }
.cal-workspace .tool-col :is(a,button) b .n-stage { vertical-align: 1px; margin-left: 3px; padding-inline: 4px; }
.cal-workspace .tool-col :is(a,button) > span { font-size: 12px; margin-top: 5px; line-height: 1.5; }
.cal-workspace .promise { margin: 28px 0 0; font-size: 12px; }
.cal-workspace .turns { padding-top: 20px; }
.cal-workspace .cc-turn { gap: 28px; grid-template-columns: minmax(0,1fr) minmax(260px,320px); }
.cal-workspace .file, .cal-workspace .evidence { border: 1px solid var(--hairline); box-shadow: var(--campaign-shadow); }
.cal-workspace .headline { font-size: 42px; }
.cal-workspace .followup .box { border-color: var(--hairline-strong); box-shadow: var(--campaign-shadow); }
.cal-workspace .ws-preview { display: flex; align-items: center; gap: 10px; background: var(--paper-inset); border-bottom: 1px solid var(--hairline); padding: 8px 32px; font-size: 12px; line-height: 1.5; color: var(--ink-muted); }
.cal-workspace .ws-preview b { color: var(--ink); }
.cal-workspace [data-ws-enter] { min-width: 0; }
@media (min-width:1200px) {
  .cal-workspace.n-has-rail { padding-left: 224px; }
  .cal-workspace .n-rail { width: 224px; padding-inline: 12px; }
}
@media (max-width:1350px) {
  .cal-workspace .ws-cited { display: none; }
  .cal-workspace .ws-stages button { gap: 8px; padding-inline: 12px; font-size: 14px; }
  .cal-workspace .ws-stage-arrow { display: none; }
  .cal-workspace .tool-cols { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .cal-workspace .ws-workbench { grid-template-columns: minmax(0,1fr); }
  .cal-workspace .ws-side { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
  .cal-workspace .ws-side-heading { grid-column: 1 / -1; }
  .cal-workspace .quest { margin-top: 0; padding-top: 0; border-top: 0; }
  .cal-workspace .ws-stage-panel { flex-direction: column; align-items: start; }
  .cal-workspace .ws-stage-panel p { max-width: none; }
  .cal-workspace .ws-stages { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cal-workspace .cc-turn { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:640px) {
  .cal-workspace .n-wrap { padding-inline: 20px; }
  .cal-workspace .n-top { min-height: 66px; margin-bottom: 0; }
  .cal-workspace .ws-intro { grid-template-columns: 1fr; padding-top: 26px; gap: 10px; }
  .cal-workspace .hero { font-size: 43px; }
  .cal-workspace .ws-lead { font-size: 14px; }
  .cal-workspace .ws-ecosystem { height: 200px; }
  .cal-workspace .ws-ecosystem img { object-position: center 52%; }
  .cal-workspace .ws-journey-head { padding: 14px; }
  .cal-workspace .ws-journey-head > span:last-child { display: none; }
  .cal-workspace .ws-stages button { min-height: 100px; padding: 14px 10px; }
  .cal-workspace .ws-stage-panel { padding: 16px 14px; }
  .cal-workspace .ws-compose, .cal-workspace .ws-side { padding: 20px 16px; }
  .cal-workspace .ws-side { display: block; }
  .cal-workspace .quest { padding-top: 20px; margin-top: 18px; border-top: 1px solid var(--hairline); }
  .cal-workspace .ws-card-head h2 { font-size: 26px; }
  .cal-workspace .ask { padding: 16px; }
  .cal-workspace .ask textarea { font-size: 16px; min-height: 132px; }
  .cal-workspace .ask .n-cta { margin-left: auto; }
  .cal-workspace .nums { grid-template-columns: 1fr 1fr; padding: 20px 0; }
  .cal-workspace .home a.signal { padding: 20px 16px; }
  .cal-workspace .ws-suite-head { display: block; }
  .cal-workspace .ws-suite-head p { margin-top: 12px; }
  .cal-workspace .tool-cols { grid-template-columns: 1fr; }
  .cal-workspace .headline { font-size: 32px; }
  .cal-workspace .ws-preview { padding-inline: 20px; }
}
/* The workspace has its own shell, so it shares the suite's layer choreography
   here. Status dots stay still; actual request progress keeps its own state. */
[data-workspace="campaign"] .n-dot--live { animation:none; }
[data-workspace="campaign"] dialog[open] { animation:ws-layer-in 180ms var(--campaign-ease); }
[data-workspace="campaign"] dialog.n-drawer[open] { animation-name:ws-drawer-in; }
[data-workspace="campaign"] dialog[open]::backdrop { animation:ws-backdrop-in 180ms linear; }
@keyframes ws-layer-in { from {opacity:.5;translate:0 6px} to {opacity:1;translate:0 0} }
@keyframes ws-drawer-in { from {opacity:.6;translate:-12px 0} to {opacity:1;translate:0 0} }
@keyframes ws-backdrop-in { from {opacity:0} to {opacity:1} }

@media (prefers-reduced-motion:reduce) {
  [data-workspace="campaign"] { scroll-behavior: auto; }
  .cal-workspace *, .cal-workspace *::before, .cal-workspace *::after { animation: none !important; transition: none !important; }
  .cal-workspace .n-cta:hover { transform: none; }
}
[data-workspace="campaign"][data-motion="reduced"] { scroll-behavior: auto; }
[data-motion="reduced"] .cal-workspace *, [data-motion="reduced"] .cal-workspace *::before, [data-motion="reduced"] .cal-workspace *::after { animation: none !important; transition: none !important; }
@media print {
  .cal-workspace .ws-ecosystem, .cal-workspace .ws-preview, .cal-workspace .ws-journey { display: none; }
}

/* One working document and an evidence margin; the shared green palette remains. */
.cal-workspace .hero { font-family:var(--sans);font-weight:550;letter-spacing:-.055em; }
.cal-workspace .hero em { font-style:normal; }
.cal-workspace .ws-journey,.cal-workspace .ws-compose,.cal-workspace .ws-side,.cal-workspace .file,.cal-workspace .evidence { box-shadow:none; }
.cal-workspace .ws-journey { border-inline:0;border-radius:0; }
.cal-workspace .ws-workbench { gap:0;border-block:1px solid var(--hairline); }
.cal-workspace .ws-compose { border:0;border-radius:0;background:var(--paper-inset);padding:32px; }
.cal-workspace .ws-side { border:0;border-left:1px solid var(--hairline);border-radius:0;background:transparent;padding:32px; }
.cal-workspace .ws-stages button { min-height:78px; }
.cal-workspace .tool-cols { grid-template-columns:1fr;gap:0; }
.cal-workspace .tool-col { display:grid;grid-template-columns:160px repeat(3,minmax(0,1fr));border:0;border-top:1px solid var(--hairline);border-radius:0;background:transparent;gap:8px;padding-block:20px; }
.cal-workspace .tool-col .grp { padding-top:16px;grid-row:1 / 4; }
.cal-workspace .tool-col :is(a,button) { min-width:0; }
.cal-workspace .ws-followups { margin-top:28px;border-top:1px solid var(--hairline);padding-top:20px; }
.cal-workspace .ws-followups h3 { font:500 22px var(--display);margin:0 0 8px; }
.cal-workspace .ws-followups p { font-size:12px;line-height:1.6; }
.cal-workspace .ws-task-form { display:flex;flex-direction:column;gap:8px; }
.cal-workspace .ws-task-form label { font-size:12px; }
.cal-workspace .ws-task-form input { min-width:0;width:100%;box-sizing:border-box;font:14px var(--sans);padding:12px;border:1px solid var(--hairline-strong);border-radius:var(--r-sm);background:var(--paper);color:var(--ink); }
.cal-workspace .ws-task-form button,.cal-workspace .ws-task-retry { padding:10px 14px;min-height:40px;font:13px var(--sans);background:var(--signal);color:var(--on-signal);border:0;border-radius:var(--r-sm);cursor:pointer; }
.cal-workspace .ws-task-list { list-style:none;padding:0;margin:12px 0; }
.cal-workspace .ws-task-list li { padding:12px 0;border-bottom:1px solid var(--hairline);display:flex;gap:12px;align-items:start; }
.cal-workspace .ws-task-list input { width:24px;height:24px;flex:none;accent-color:var(--signal); }
.cal-workspace .ws-task-list label { flex:1;font-size:13px;line-height:1.6;overflow-wrap:anywhere; }
.cal-workspace .ws-task-list li[data-done="true"] label { text-decoration:line-through;color:var(--ink-muted); }
.cal-workspace .ws-task-list button { background:transparent;border:0;color:var(--ink-muted);min-width:28px;min-height:28px;cursor:pointer;font-size:18px; }
@media(max-width:900px) {
 .cal-workspace .ws-side { border-left:0;border-top:1px solid var(--hairline); }
 .cal-workspace .ws-followups { grid-column:1 / -1; }
 .cal-workspace .tool-col { grid-template-columns:130px repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .cal-workspace .ws-compose,.cal-workspace .ws-side { padding:22px 16px; }
 .cal-workspace .tool-col { grid-template-columns:1fr; }
 .cal-workspace .tool-col .grp { grid-row:auto; }
}
.cal-workspace .ws-step-dialog { width:min(520px,calc(100% - 40px));box-sizing:border-box;padding:28px;border:1px solid var(--hairline-strong);border-radius:var(--r-md);background:var(--paper-inset);color:var(--ink); }
.cal-workspace .ws-step-dialog::backdrop { background:var(--campaign-shade);backdrop-filter:blur(4px); }
.cal-workspace .ws-step-dialog h2 { font:500 32px/1.1 var(--display);letter-spacing:-.04em;margin-block:24px 16px; }
.cal-workspace .ws-step-dialog p { font-size:14px;line-height:1.6; }
.cal-workspace .ws-task-list li { flex-wrap:wrap; }
.cal-workspace .ws-task-list .ws-context-link { font-size:12px;text-align:left;text-decoration:underline;text-underline-offset:4px;flex-basis:100%;padding-left:36px; }
.cal-workspace .ws-plan-link { display:inline-flex;align-items:center;min-height:32px;color:var(--ink);font-size:13px; }
.cal-workspace .ws-plan-link[hidden] { display:none; }

/* The roadmap stays separate from today's work and uses the same tool registry. */
.cal-workspace .ws-upcoming { margin-block:32px; padding-block:28px; border-block:1px solid var(--hairline); }
.cal-workspace .ws-upcoming-head { max-width:720px; margin-bottom:22px; }
.cal-workspace .ws-upcoming-head h2 { margin:10px 0; font:500 clamp(26px,3vw,38px)/1.1 var(--display); letter-spacing:-.035em; color:var(--ink); }
.cal-workspace .ws-upcoming-head > p:last-child { margin:0; font:14px/1.6 var(--sans); color:var(--ink-muted); }
.cal-workspace .ws-upcoming-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cal-workspace .ws-upcoming-card { display:flex; flex-direction:column; align-items:stretch; gap:16px; padding:24px; min-width:0; text-align:left; border:1px solid var(--hairline-strong); border-radius:var(--r-lg); background:var(--paper-inset); color:var(--ink); cursor:pointer; }
.cal-workspace .ws-upcoming-card:hover { background:var(--paper-raised); border-color:var(--ink-muted); }
.cal-workspace .ws-upcoming-card:focus-visible { outline:2px solid var(--signal); outline-offset:4px; }
.cal-workspace .ws-upcoming-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cal-workspace .ws-upcoming-arrow { font-size:20px; color:var(--ink-muted); }
.cal-workspace .ws-upcoming-card strong { font:500 23px/1.2 var(--display); letter-spacing:-.02em; }
.cal-workspace .ws-upcoming-value { font:14px/1.6 var(--sans); color:var(--ink-muted); }
@media(max-width:760px) {
  .cal-workspace .ws-upcoming-grid { grid-template-columns:1fr; }
  .cal-workspace .ws-upcoming-card { padding:20px; gap:12px; }
}
