@echomem/mcp 1.4.18 → 1.4.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,7 +56,10 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
56
56
  min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
57
57
  border-radius: 8px; border: 1px solid var(--echo-ink-primary); padding: 0 16px;
58
58
  font: inherit; font-weight: 800; text-decoration: none; cursor: pointer;
59
+ transition: transform 150ms ease, border-color 150ms ease, background 150ms ease, box-shadow 150ms ease, color 150ms ease;
59
60
  }
61
+ button:not(:disabled):hover, .button:hover { transform: translateY(-1px); }
62
+ button:focus-visible, .button:focus-visible { outline: 3px solid rgba(26,58,143,0.18); outline-offset: 3px; }
60
63
  .primary { background: var(--echo-ink-primary); color: #fff; }
61
64
  .secondary { background: #fff; color: var(--echo-ink-primary); }
62
65
  .textButton {
@@ -126,6 +129,16 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
126
129
  color: var(--echo-ink-faint);
127
130
  }
128
131
  .consentFine:empty { display: none; }
132
+ .consentFine.is-required {
133
+ border: 1px solid rgba(139,44,38,0.22);
134
+ border-radius: 10px;
135
+ background: #fff4ee;
136
+ padding: 9px 11px;
137
+ color: #8b2c26;
138
+ font-family: var(--echo-font-body);
139
+ font-size: 12px;
140
+ font-weight: 650;
141
+ }
129
142
  .track { height: 12px; overflow: hidden; border-radius: 999px; background: #e8e8e1; margin: 16px 0 10px; }
130
143
  .fill { height: 100%; width: 0%; background: var(--echo-ink-primary); transition: width 180ms ease; }
131
144
  /* indeterminate "we're working on it" bar for the prep phase (before job counts move) */
@@ -171,34 +184,37 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
171
184
  /* Centered composition: mascot on top, then everything stacked and centered on one axis. */
172
185
  .readyDecision {
173
186
  width: 100%;
174
- max-width: min(720px, calc(100vw - clamp(32px, 8vw, 120px)));
187
+ max-width: min(960px, calc(100vw - clamp(24px, 7vw, 104px)));
175
188
  display: grid;
176
189
  justify-items: center;
177
190
  text-align: center;
178
- gap: 20px;
191
+ gap: 16px;
179
192
  margin: 0 auto;
180
193
  }
181
194
  .readyHero {
182
195
  display: grid;
183
196
  justify-items: center;
184
- gap: 16px;
197
+ gap: 13px;
185
198
  margin: 0 auto;
186
199
  }
187
200
  .readyMascot {
188
- width: 84px;
189
- height: 84px;
201
+ width: 76px;
202
+ height: 76px;
190
203
  object-fit: contain;
191
204
  filter: drop-shadow(0 12px 18px rgba(26,58,143,0.18));
192
205
  }
193
206
  .readyHero .exCopy h2 {
194
207
  margin: 0;
195
- font-size: clamp(32px, 4.6vw, 60px);
196
- line-height: 0.98;
208
+ max-width: 790px;
209
+ font-size: clamp(36px, 4.5vw, 58px);
210
+ line-height: 0.96;
211
+ letter-spacing: -0.018em;
197
212
  }
198
213
  .readyHero .exCopy .exSub {
199
214
  max-width: 560px;
200
- margin: 12px auto 0;
201
- font-size: clamp(16px, 1.45vw, 18px);
215
+ margin: 14px auto 0;
216
+ font-size: clamp(15px, 1.4vw, 17px);
217
+ line-height: 1.55;
202
218
  }
203
219
  .readyAction {
204
220
  display: grid;
@@ -218,7 +234,7 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
218
234
  }
219
235
  .exHeroReady {
220
236
  width: 100%;
221
- max-width: min(860px, calc(100vw - clamp(36px, 9vw, 140px)));
237
+ max-width: min(980px, calc(100vw - clamp(36px, 9vw, 140px)));
222
238
  grid-template-columns: minmax(0, 1fr);
223
239
  justify-content: center;
224
240
  justify-items: stretch;
@@ -248,12 +264,15 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
248
264
  margin-top: 0;
249
265
  }
250
266
  .readyDecision .actions .primary {
251
- min-width: 240px;
252
- min-height: 60px;
267
+ min-width: 250px;
268
+ min-height: 58px;
253
269
  padding: 0 30px;
254
270
  font-size: 16px;
255
- box-shadow: 0 16px 28px -20px rgba(26,58,143,0.55);
271
+ border-radius: 14px;
272
+ box-shadow: 0 18px 34px -20px rgba(26,58,143,0.62);
256
273
  }
274
+ .readyDecision .actions .primary:not(:disabled):hover { box-shadow: 0 22px 38px -18px rgba(26,58,143,0.66); }
275
+ .readyDecision .actions .primary .setupGlyph { width: 19px; height: 19px; }
257
276
  /* Proof strip: one quiet line of evidence (source split), not stat cards. Centered. */
258
277
  .proofStrip {
259
278
  display: flex;
@@ -261,21 +280,27 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
261
280
  justify-content: center;
262
281
  align-items: center;
263
282
  gap: 8px 12px;
264
- min-height: 26px;
265
- margin-top: 2px;
283
+ min-height: 40px;
284
+ margin-top: 1px;
285
+ border: 1px solid rgba(26,58,143,0.1);
286
+ border-radius: 999px;
287
+ background: rgba(255,255,255,0.72);
288
+ padding: 7px 13px;
289
+ box-shadow: 0 10px 26px -24px rgba(20,36,84,0.5);
290
+ backdrop-filter: blur(8px);
266
291
  font-family: var(--echo-font-mono);
267
292
  font-size: 13px;
268
293
  color: var(--echo-ink-mute);
269
294
  }
270
295
  .proofStrip .pf { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
271
296
  .proofStrip .pf strong { color: var(--echo-ink-primary); font-weight: 800; font-variant-numeric: tabular-nums; }
272
- .proofStrip .pfIcon { position: relative; width: 22px; height: 22px; border-radius: 6px; overflow: hidden; background: var(--echo-ink-primary); display: grid; place-items: center; flex: 0 0 auto; }
273
- .proofStrip .pfIcon img { width: 22px; height: 22px; object-fit: cover; display: block; }
297
+ .proofStrip .pfIcon { position: relative; width: 22px; height: 22px; border-radius: 7px; overflow: hidden; background: #fff; display: grid; place-items: center; flex: 0 0 auto; box-shadow: inset 0 0 0 1px rgba(26,58,143,0.08); }
298
+ .proofStrip .pfIcon img { width: 22px; height: 22px; object-fit: contain; padding: 3px; display: block; }
274
299
  .proofStrip .pfFallback { display: none; place-items: center; width: 22px; height: 22px; color: #fff; font-size: 8px; font-weight: 900; }
275
300
  .proofStrip .pfDot { color: var(--echo-ink-faint); }
276
301
  .proofStrip .pfNote { color: var(--echo-ink-faint); font-size: 12px; }
277
302
  /* The action block: button first, reassurances attached right under it. Centered. */
278
- .readyGo { display: grid; gap: 11px; margin-top: 6px; justify-items: center; }
303
+ .readyGo { display: grid; gap: 11px; margin-top: 10px; justify-items: center; }
279
304
  .ctaMeta { margin: 0; max-width: 480px; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 4px 9px; font-family: var(--echo-font-mono); font-size: 12px; line-height: 1.5; color: var(--echo-ink-mute); }
280
305
  .ctaMeta .cm { white-space: nowrap; }
281
306
  .ctaMeta .cmDot { color: var(--echo-ink-faint); }
@@ -284,8 +309,8 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
284
309
  display: grid;
285
310
  justify-items: center;
286
311
  gap: 14px;
287
- margin-top: clamp(24px, 5vh, 52px);
288
- opacity: 0.82;
312
+ margin-top: clamp(18px, 4vh, 38px);
313
+ opacity: 0.88;
289
314
  }
290
315
  .readyTime {
291
316
  width: 100%;
@@ -683,148 +708,77 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
683
708
  .exOverdue { margin: 0; max-width: 620px; border: 1px solid rgba(196, 148, 42, 0.45); background: rgba(233, 185, 73, 0.12); border-radius: 8px; padding: 12px 14px; font-size: 13px; line-height: 1.5; color: var(--echo-ink-text); }
684
709
  .exOverdue strong { display: block; margin-bottom: 4px; color: var(--echo-ink-primary); }
685
710
  .is-hidden { display: none !important; }
686
- .recallGateBlock { width: min(680px, 100%); margin: 2px auto 0; }
687
- .recallGate {
688
- width: 100%;
689
- position: relative;
690
- overflow: hidden;
691
- border: 1px solid rgba(33,64,154,0.42);
692
- border-radius: 12px;
693
- background:
694
- linear-gradient(180deg, rgba(239,244,255,0.98) 0%, rgba(255,255,255,0.99) 46%),
695
- var(--echo-paper-white);
696
- padding: clamp(24px, 4vw, 36px);
697
- box-shadow: 0 28px 60px -42px rgba(33,64,154,0.48);
711
+ .setupPlanSlot { width: 100%; margin-top: 4px; }
712
+ .setupPlanChoice {
713
+ border-top: 1px solid var(--echo-line-soft);
714
+ padding-top: 20px;
698
715
  text-align: left;
699
716
  }
700
- .recallGate::before {
701
- content: "";
702
- position: absolute;
703
- inset: 0 0 auto 0;
704
- height: 8px;
705
- background: linear-gradient(90deg, #18317d, #4b6bd4, var(--echo-ink-primary));
706
- }
707
- .recallEyebrow {
708
- display: inline-flex;
709
- align-items: center;
710
- gap: 8px;
711
- margin: 0 0 14px;
712
- border: 1px solid rgba(33,64,154,0.18);
713
- border-radius: 999px;
714
- background: #eef3ff;
715
- padding: 7px 11px;
716
- font-family: var(--echo-font-mono);
717
- font-size: 11px;
718
- font-weight: 900;
719
- letter-spacing: 0.06em;
720
- text-transform: uppercase;
721
- color: #18317d;
722
- }
723
- .recallEyebrow i {
724
- width: 8px;
725
- height: 8px;
726
- border-radius: 999px;
727
- background: var(--echo-ink-primary);
728
- box-shadow: 0 0 0 4px rgba(33,64,154,0.1);
729
- }
730
- .recallGate h3 {
717
+ .setupPlanIntro h3 {
731
718
  margin: 0;
732
- max-width: 520px;
733
719
  font-family: var(--echo-font-brand);
734
- font-size: clamp(34px, 4.6vw, 48px);
735
- line-height: 1.02;
736
- font-weight: 900;
720
+ font-size: clamp(20px, 2.5vw, 27px);
721
+ line-height: 1.08;
737
722
  color: var(--echo-ink-text);
738
- letter-spacing: 0;
739
723
  }
740
- .recallGate p {
741
- max-width: 560px;
742
- margin: 14px 0 0;
743
- font-size: 16px;
744
- line-height: 1.55;
724
+ .setupPlanIntro p {
725
+ margin: 6px 0 0;
726
+ font-size: 14px;
727
+ line-height: 1.45;
745
728
  color: var(--echo-ink-mute);
746
729
  }
747
- .recallTrial {
748
- margin-top: 18px;
749
- display: inline-grid;
750
- grid-template-columns: auto 1fr;
751
- gap: 10px;
752
- align-items: center;
753
- border: 1px solid rgba(33,64,154,0.18);
754
- border-radius: 10px;
755
- background: #f3f6ff;
756
- padding: 10px 12px;
757
- color: #18317d;
758
- }
759
- .recallTrial strong {
760
- font-size: 28px;
761
- line-height: 1;
762
- color: #18317d;
763
- }
764
- .recallTrial span {
765
- font-size: 13px;
766
- line-height: 1.25;
767
- font-weight: 800;
768
- }
769
- .recallUsedNote {
770
- margin-top: 18px;
771
- border-left: 4px solid var(--echo-ink-primary);
772
- background: #f3f6ff;
773
- padding: 11px 13px;
774
- color: #18317d;
775
- font-size: 13px;
776
- line-height: 1.45;
777
- font-weight: 700;
730
+ .setupPlanGrid {
731
+ display: grid;
732
+ grid-template-columns: repeat(3, minmax(0, 1fr));
733
+ gap: 12px;
734
+ margin-top: 16px;
778
735
  }
779
- .recallGateActions {
736
+ .setupPlanCard {
780
737
  display: flex;
781
- flex-wrap: wrap;
782
- gap: 14px;
783
- align-items: center;
784
- margin-top: 24px;
785
- }
786
- .recallGateActions button {
787
- min-height: 50px;
788
- }
789
- .recallGateActions .primary {
738
+ flex-direction: column;
790
739
  min-width: 0;
791
- border-color: #18317d;
792
- background: var(--echo-ink-primary);
793
- color: #fff;
794
- box-shadow: 0 18px 34px -26px rgba(33,64,154,0.85);
795
- }
796
- .recallGateActions .primary:hover {
797
- background: #18317d;
798
- }
799
- .recallGate .recallFine {
800
- margin-top: 10px;
801
- font-family: var(--echo-font-mono);
802
- font-size: 11px;
803
- color: var(--echo-ink-faint);
804
- }
805
- @media (max-width: 720px) {
806
- .recallGateActions .primary { width: 100%; }
807
- }
808
- .recallGate code,
809
- .recallSkipNote code {
810
- font-family: var(--echo-font-mono);
811
- font-size: 0.92em;
812
- background: var(--echo-paper-soft);
813
- border: 1px solid var(--echo-line-soft);
814
- border-radius: 5px;
815
- padding: 1px 5px;
816
- color: var(--echo-ink-primary);
817
- }
818
- .recallTryWrap { width: 100%; }
819
- .recallSkipNote {
820
- margin: 0 0 12px;
821
740
  border: 1px solid var(--echo-line-soft);
822
- border-radius: 8px;
823
- background: rgba(246,244,238,0.86);
824
- padding: 10px 12px;
741
+ border-radius: 10px;
742
+ background: var(--echo-paper-white);
743
+ padding: 16px;
744
+ }
745
+ .setupPlanCard.is-pro { border-color: rgba(33,64,154,0.42); background: #f7f9ff; }
746
+ .setupPlanHead { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
747
+ .setupPlanHead strong { font-family: var(--echo-font-brand); font-size: 20px; color: var(--echo-ink-primary); }
748
+ .setupPlanHead span { font-family: var(--echo-font-mono); font-size: 11px; font-weight: 800; color: var(--echo-ink-mute); }
749
+ .setupPlanCard > p { margin: 7px 0 0; font-size: 13px; line-height: 1.4; color: var(--echo-ink-mute); }
750
+ .setupPlanCard ul { display: grid; gap: 8px; margin: 15px 0 20px; padding: 0; list-style: none; }
751
+ .setupPlanCard li { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 7px; align-items: start; font-size: 12px; line-height: 1.4; color: var(--echo-ink-text); }
752
+ .setupPlanCard li .setupGlyph { width: 16px; height: 16px; color: var(--echo-ink-accent-deep); }
753
+ .setupPlanCard button { width: 100%; min-height: 42px; margin-top: auto; }
754
+ .setupPlanCard small { margin-top: 7px; text-align: center; font-family: var(--echo-font-mono); font-size: 9px; color: var(--echo-ink-faint); }
755
+ .setupPlanFoot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; }
756
+ .setupPlanFoot a,
757
+ .setupPlanConfirmed .textButton { border: 0; background: transparent; padding: 0; font-size: 12px; font-weight: 800; color: var(--echo-ink-primary); text-decoration: underline; cursor: pointer; }
758
+ .setupPlanFoot span { font-size: 12px; color: var(--echo-ink-mute); }
759
+ .setupPlanConfirmed {
760
+ display: grid;
761
+ grid-template-columns: auto minmax(0, 1fr) auto;
762
+ align-items: center;
763
+ gap: 12px;
764
+ border: 1px solid rgba(44,143,104,0.28);
765
+ border-radius: 14px;
766
+ background: rgba(226,246,237,0.58);
767
+ padding: 14px 15px;
825
768
  font-size: 13px;
826
- line-height: 1.45;
827
769
  color: var(--echo-ink-mute);
770
+ text-align: left;
771
+ }
772
+ .setupPlanConfirmedIcon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(44,143,104,0.13); color: #257b59; }
773
+ .setupPlanConfirmedIcon .setupGlyph { width: 18px; height: 18px; }
774
+ .setupPlanConfirmedCopy { min-width: 0; }
775
+ .setupPlanConfirmedCopy strong,
776
+ .setupPlanConfirmedCopy > span { display: block; }
777
+ .setupPlanConfirmedCopy strong { color: var(--echo-ink-text); }
778
+ .setupPlanConfirmedCopy > span { margin-top: 2px; line-height: 1.45; }
779
+ .setupPlanConfirmed .textButton { margin-left: 0; }
780
+ @media (max-width: 720px) {
781
+ .setupPlanGrid { grid-template-columns: 1fr; }
828
782
  }
829
783
  .tryCard { margin-top: 2px; max-width: 760px; border: 2px solid var(--echo-ink-primary); border-radius: 8px; background: var(--echo-paper-white); padding: clamp(18px, 3vw, 26px); box-shadow: 0 18px 38px -28px rgba(26,58,143,0.45); }
830
784
  .tryCard .tryK { margin: 0 0 10px; font-family: var(--echo-font-mono); font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--echo-ink-primary); }
@@ -837,6 +791,100 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
837
791
  color: var(--echo-ink-primary);
838
792
  }
839
793
  .tryCard > .tryTitle { font-size: clamp(30px, 3.8vw, 48px); line-height: 0.98; }
794
+ .tryLead { margin: -2px 0 0; color: var(--echo-ink-mute); line-height: 1.55; }
795
+ .recallPromptList {
796
+ display: grid;
797
+ gap: 14px;
798
+ margin-top: 24px;
799
+ }
800
+ .recallPrompt {
801
+ border: 1px solid var(--echo-line-soft);
802
+ border-radius: 17px;
803
+ background: var(--echo-paper-white);
804
+ padding: 17px;
805
+ box-shadow: 0 9px 22px -22px rgba(27,51,111,0.75);
806
+ }
807
+ .recallPromptHead {
808
+ display: flex;
809
+ align-items: center;
810
+ justify-content: space-between;
811
+ gap: 14px;
812
+ color: var(--echo-ink-mute);
813
+ }
814
+ .recallPromptHead > span {
815
+ font-family: var(--echo-font-mono);
816
+ font-size: 9px;
817
+ font-weight: 800;
818
+ letter-spacing: 0.08em;
819
+ text-transform: uppercase;
820
+ }
821
+ .recallCopy {
822
+ min-height: 32px;
823
+ gap: 7px;
824
+ border: 1px solid var(--echo-line-soft);
825
+ border-radius: 999px;
826
+ background: var(--echo-paper-soft);
827
+ color: var(--echo-ink-primary);
828
+ padding: 0 11px;
829
+ font-family: var(--echo-font-mono);
830
+ font-size: 10px;
831
+ font-weight: 800;
832
+ letter-spacing: 0.04em;
833
+ }
834
+ .recallCopy:hover { border-color: rgba(26,58,143,0.35); background: var(--echo-note-blue); }
835
+ .recallCopy .setupGlyph { width: 15px; height: 15px; }
836
+ .recallPromptText {
837
+ position: relative;
838
+ margin: 14px 0 0;
839
+ border: 1px solid var(--echo-line-soft);
840
+ border-radius: 12px;
841
+ background: color-mix(in srgb, var(--echo-paper-white) 48%, var(--echo-note-cream) 52%);
842
+ color: var(--echo-ink-text);
843
+ padding: 15px 16px 15px 42px;
844
+ font-family: var(--echo-font-mono);
845
+ font-size: clamp(13px, 1.7vw, 15px);
846
+ font-weight: 450;
847
+ line-height: 1.55;
848
+ }
849
+ .recallPromptText::before {
850
+ content: ">";
851
+ position: absolute;
852
+ top: 15px;
853
+ left: 17px;
854
+ color: var(--echo-ink-accent);
855
+ font-weight: 800;
856
+ }
857
+ .recallPromptActions {
858
+ display: flex;
859
+ flex-wrap: wrap;
860
+ gap: 9px;
861
+ margin-top: 13px;
862
+ }
863
+ .recallAgent {
864
+ min-height: 40px;
865
+ justify-content: center;
866
+ gap: 8px;
867
+ border: 1px solid rgba(26,58,143,0.18);
868
+ border-radius: 999px;
869
+ background: var(--echo-note-blue);
870
+ color: var(--echo-ink-primary);
871
+ padding: 0 15px 0 10px;
872
+ font-size: 12px;
873
+ font-weight: 700;
874
+ }
875
+ .recallAgent.is-claude { border-color: rgba(100,91,69,0.20); background: var(--echo-note-cream); }
876
+ .recallAgent:hover { border-color: rgba(26,58,143,0.42); transform: translateY(-1px); }
877
+ .recallAgentIcon {
878
+ width: 24px;
879
+ height: 24px;
880
+ display: grid;
881
+ place-items: center;
882
+ flex: 0 0 auto;
883
+ overflow: hidden;
884
+ border-radius: 7px;
885
+ background: var(--echo-ink-primary);
886
+ }
887
+ .recallAgentIcon img { width: 100%; height: 100%; display: block; object-fit: cover; }
840
888
  .promptShell { position: relative; margin-top: 14px; }
841
889
  .tryCard pre { margin: 0; white-space: pre-wrap; word-break: break-word; font-family: var(--echo-font-mono); font-size: 12px; line-height: 1.5; color: var(--echo-ink-mute); background: var(--echo-paper-soft); border: 1px solid var(--echo-line-soft); border-radius: 8px; padding: 11px 118px 11px 13px; }
842
890
  .promptControls {
@@ -1018,6 +1066,917 @@ export const SETUP_PAGE_STYLES_EXTRACTION = String.raw ` /* ---- dashboard (p
1018
1066
  .resultNumber span { text-align: left; }
1019
1067
  }
1020
1068
 
1069
+ /* ===== Setup hierarchy: permission, destination, plan, and session choice ===== */
1070
+ .consentStage {
1071
+ padding: clamp(18px, 4vw, 48px) 0;
1072
+ }
1073
+ .localConsent {
1074
+ position: relative;
1075
+ overflow: hidden;
1076
+ width: min(940px, 100%);
1077
+ border: 1px solid #c9cbc6;
1078
+ border-left: 5px solid var(--echo-ink-primary);
1079
+ border-radius: 3px;
1080
+ background: #fbfbf8;
1081
+ padding: 0;
1082
+ box-shadow: none;
1083
+ }
1084
+ .localConsent::before { display: none; }
1085
+ .localConsentAccess {
1086
+ display: grid;
1087
+ grid-template-columns: minmax(0, 0.88fr) minmax(390px, 1.12fr);
1088
+ min-height: 520px;
1089
+ }
1090
+ .consentLead {
1091
+ display: flex;
1092
+ flex-direction: column;
1093
+ min-width: 0;
1094
+ border-right: 1px solid #d7d8d3;
1095
+ padding: clamp(30px, 4vw, 46px);
1096
+ }
1097
+ .consentLead .consentEyebrow,
1098
+ .skippedCopy .consentEyebrow { margin-bottom: 18px; }
1099
+ .consentLead h2 {
1100
+ margin: 0;
1101
+ max-width: 440px;
1102
+ color: var(--echo-ink-primary);
1103
+ font-size: clamp(34px, 4vw, 48px);
1104
+ line-height: 0.98;
1105
+ letter-spacing: -0.016em;
1106
+ }
1107
+ .consentIntro {
1108
+ margin: 20px 0 0;
1109
+ max-width: 420px;
1110
+ color: var(--echo-ink-mute);
1111
+ font-size: 15px;
1112
+ line-height: 1.6;
1113
+ }
1114
+ .consentLocalMark {
1115
+ display: grid;
1116
+ grid-template-columns: 68px 1fr;
1117
+ gap: 14px;
1118
+ align-items: center;
1119
+ margin-top: auto;
1120
+ border-top: 1px solid #d7d8d3;
1121
+ padding-top: 24px;
1122
+ }
1123
+ .consentLocalMark img { width: 68px; height: 68px; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(26,58,143,0.13)); }
1124
+ .consentLocalMark strong,
1125
+ .consentLocalMark small { display: block; }
1126
+ .consentLocalMark strong { color: var(--echo-ink-text); font-size: 13px; }
1127
+ .consentLocalMark small { margin-top: 3px; color: var(--echo-ink-mute); font-size: 11px; line-height: 1.45; }
1128
+ .consentDecision {
1129
+ min-width: 0;
1130
+ padding: clamp(28px, 4vw, 42px);
1131
+ }
1132
+ .consentScopeHead {
1133
+ display: flex;
1134
+ justify-content: space-between;
1135
+ gap: 16px;
1136
+ align-items: baseline;
1137
+ padding-bottom: 13px;
1138
+ }
1139
+ .consentScopeHead strong { color: var(--echo-ink-text); font-size: 16px; }
1140
+ .consentScopeHead span {
1141
+ font-family: var(--echo-font-mono);
1142
+ color: var(--echo-ink-mute);
1143
+ font-size: 10px;
1144
+ font-weight: 800;
1145
+ letter-spacing: 0.07em;
1146
+ text-transform: uppercase;
1147
+ }
1148
+ .setupGlyph {
1149
+ width: 20px;
1150
+ height: 20px;
1151
+ display: block;
1152
+ flex: 0 0 auto;
1153
+ overflow: visible;
1154
+ }
1155
+ .consentScope {
1156
+ display: grid;
1157
+ gap: 0;
1158
+ margin: 0;
1159
+ border-top: 1px solid #afb2ac;
1160
+ border-bottom: 1px solid #afb2ac;
1161
+ border-radius: 0;
1162
+ background: transparent;
1163
+ }
1164
+ .consentScope > div {
1165
+ display: grid;
1166
+ grid-template-columns: 30px 1fr;
1167
+ gap: 14px;
1168
+ align-items: start;
1169
+ padding: 15px 0;
1170
+ }
1171
+ .consentScope > div + div { border-top: 1px solid var(--echo-line-soft); }
1172
+ .consentScopeNumber {
1173
+ padding-top: 2px;
1174
+ font-family: var(--echo-font-mono);
1175
+ color: var(--echo-ink-primary);
1176
+ font-size: 10px;
1177
+ font-weight: 800;
1178
+ letter-spacing: 0.04em;
1179
+ }
1180
+ .consentScope p { margin: 0; }
1181
+ .consentScope strong,
1182
+ .consentScope small { display: block; }
1183
+ .consentScope strong { color: var(--echo-ink-text); font-size: 13px; }
1184
+ .consentScope small { margin-top: 3px; color: var(--echo-ink-mute); font-size: 11px; line-height: 1.45; }
1185
+ .consentCheck {
1186
+ display: grid;
1187
+ grid-template-columns: 20px 1fr;
1188
+ gap: 12px;
1189
+ align-items: start;
1190
+ margin-top: 20px;
1191
+ border: 1px solid #aeb5c5;
1192
+ border-radius: 3px;
1193
+ background: #fff;
1194
+ padding: 13px 14px;
1195
+ cursor: pointer;
1196
+ }
1197
+ .consentCheck:focus-within { outline: 3px solid rgba(26,58,143,0.14); outline-offset: 2px; }
1198
+ .consentCheck input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--echo-ink-primary); }
1199
+ .consentCheck strong,
1200
+ .consentCheck small { display: block; }
1201
+ .consentCheck strong { color: var(--echo-ink-text); font-size: 13px; }
1202
+ .consentCheck small { margin-top: 3px; color: var(--echo-ink-mute); font-size: 11px; line-height: 1.4; }
1203
+ .consentDecision .consentActions { margin-top: 17px; }
1204
+ .consentActions button { border-radius: 4px; }
1205
+ .consentActions .textButton { min-height: 44px; }
1206
+
1207
+ .localConsentSkipped {
1208
+ display: grid;
1209
+ grid-template-columns: 240px minmax(0, 1fr);
1210
+ width: min(820px, 100%);
1211
+ min-height: 360px;
1212
+ border-left-width: 1px;
1213
+ }
1214
+ .skippedEcho {
1215
+ position: relative;
1216
+ overflow: hidden;
1217
+ display: flex;
1218
+ flex-direction: column;
1219
+ justify-content: flex-end;
1220
+ background: var(--echo-ink-primary);
1221
+ padding: 28px;
1222
+ color: #fff;
1223
+ }
1224
+ .skippedEcho::before { content: ""; position: absolute; width: 190px; height: 190px; left: -70px; top: -80px; border: 1px solid rgba(255,255,255,0.18); border-radius: 50%; }
1225
+ .skippedEcho img { position: relative; width: 116px; height: 116px; margin: 0 auto auto; object-fit: contain; filter: drop-shadow(0 12px 16px rgba(0,0,0,0.2)); }
1226
+ .skippedEcho span,
1227
+ .skippedEcho strong { position: relative; display: block; }
1228
+ .skippedEcho span { font-family: var(--echo-font-mono); font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.7; }
1229
+ .skippedEcho strong { margin-top: 4px; font-family: var(--echo-font-brand); font-size: 28px; line-height: 1; }
1230
+ .skippedCopy { padding: clamp(30px, 5vw, 50px); }
1231
+ .skippedCopy h2 { max-width: 520px; margin: 0; color: var(--echo-ink-text); font-size: clamp(34px, 4vw, 48px); line-height: 0.98; }
1232
+ .skippedCopy > p:not(.consentEyebrow):not(.consentFine) { max-width: 520px; margin: 18px 0 0; color: var(--echo-ink-mute); font-size: 15px; line-height: 1.6; }
1233
+ .skippedNext { display: grid; grid-template-columns: 46px 1fr; gap: 12px; margin-top: 24px; border-top: 1px solid #c9cbc6; border-bottom: 1px solid #c9cbc6; padding: 13px 0; }
1234
+ .skippedNext span { font-family: var(--echo-font-mono); color: var(--echo-ink-mute); font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
1235
+ .skippedNext strong { color: var(--echo-ink-text); font-size: 13px; }
1236
+ .skippedCopy .consentActions { margin-top: 20px; }
1237
+
1238
+ .setupAccountSlot,
1239
+ .sessionSelectionSlot { width: 100%; }
1240
+ .setupAccountCard {
1241
+ display: grid;
1242
+ grid-template-columns: auto minmax(0, 1fr) auto;
1243
+ gap: 13px;
1244
+ align-items: center;
1245
+ margin: 12px 0 0;
1246
+ border: 1px solid rgba(26,58,143,0.11);
1247
+ border-radius: 16px;
1248
+ background: rgba(255,255,255,0.86);
1249
+ padding: 15px 17px;
1250
+ box-shadow: 0 14px 34px -28px rgba(20,36,84,0.48);
1251
+ text-align: left;
1252
+ backdrop-filter: blur(10px);
1253
+ }
1254
+ .setupAccountAvatar {
1255
+ position: relative;
1256
+ overflow: hidden;
1257
+ width: 44px;
1258
+ height: 44px;
1259
+ display: grid;
1260
+ place-items: center;
1261
+ border-radius: 50%;
1262
+ background: linear-gradient(145deg, #2854bc, var(--echo-ink-primary));
1263
+ color: #fff;
1264
+ font-family: var(--echo-font-brand);
1265
+ font-size: 14px;
1266
+ font-weight: 900;
1267
+ }
1268
+ .setupAccountAvatar > span,
1269
+ .setupAccountAvatar > img { grid-area: 1 / 1; }
1270
+ .setupAccountAvatar > img {
1271
+ width: 100%;
1272
+ height: 100%;
1273
+ display: block;
1274
+ object-fit: cover;
1275
+ }
1276
+ .setupAccountCopy { min-width: 0; }
1277
+ .setupAccountCopy small,
1278
+ .setupAccountCopy strong,
1279
+ .setupAccountCopy > span { display: block; }
1280
+ .setupAccountCopy small {
1281
+ font-family: var(--echo-font-mono);
1282
+ color: var(--echo-ink-mute);
1283
+ font-size: 9px;
1284
+ font-weight: 800;
1285
+ letter-spacing: 0.08em;
1286
+ text-transform: uppercase;
1287
+ }
1288
+ .setupAccountCopy strong { margin-top: 3px; overflow: hidden; color: var(--echo-ink-text); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
1289
+ .setupAccountCopy > span { margin-top: 1px; overflow: hidden; color: var(--echo-ink-mute); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
1290
+ .setupAccountChange { color: var(--echo-ink-primary); }
1291
+
1292
+ .setupPlanSlot { margin-top: 16px; }
1293
+ .setupPlanChoice {
1294
+ position: relative;
1295
+ overflow: hidden;
1296
+ border: 1px solid rgba(26,58,143,0.11);
1297
+ border-radius: 20px;
1298
+ background: rgba(255,255,255,0.78);
1299
+ padding: clamp(20px, 3vw, 28px);
1300
+ box-shadow: 0 22px 55px -42px rgba(20,36,84,0.5);
1301
+ backdrop-filter: blur(10px);
1302
+ }
1303
+ .setupPlanChoice::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--echo-ink-primary), var(--echo-ink-accent)); opacity: 0.9; }
1304
+ .setupPlanIntro { padding-right: min(8vw, 90px); }
1305
+ .setupPlanIntro h3 { font-size: clamp(24px, 3vw, 31px); letter-spacing: -0.012em; }
1306
+ .setupPlanIntro p { max-width: 760px; margin-top: 8px; }
1307
+ .setupPlanGrid { gap: 14px; margin-top: 21px; }
1308
+ .setupPlanCard {
1309
+ position: relative;
1310
+ border-color: rgba(26,58,143,0.12);
1311
+ border-radius: 16px;
1312
+ padding: 19px 18px 17px;
1313
+ box-shadow: 0 12px 30px -28px rgba(20,36,84,0.45);
1314
+ transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
1315
+ }
1316
+ .setupPlanCard:hover { border-color: rgba(26,58,143,0.32); box-shadow: 0 20px 38px -28px rgba(20,36,84,0.55); transform: translateY(-2px); }
1317
+ .setupPlanCard.is-pro { border-color: rgba(33,64,154,0.42); background: linear-gradient(180deg, #f6f8ff 0%, #eef3ff 100%); box-shadow: 0 18px 38px -30px rgba(33,64,154,0.6); }
1318
+ .setupPlanCard.is-pro::before {
1319
+ content: "Popular";
1320
+ position: absolute;
1321
+ top: 12px;
1322
+ right: 13px;
1323
+ border-radius: 999px;
1324
+ background: var(--echo-ink-primary);
1325
+ padding: 5px 8px;
1326
+ color: #fff;
1327
+ font-family: var(--echo-font-mono);
1328
+ font-size: 8px;
1329
+ font-weight: 900;
1330
+ letter-spacing: 0.07em;
1331
+ text-transform: uppercase;
1332
+ }
1333
+ .setupPlanHead { align-items: center; }
1334
+ .setupPlanHead strong { font-size: 22px; }
1335
+ .setupPlanCard.is-pro .setupPlanHead { padding-right: 54px; }
1336
+ .setupPlanCard button { border-radius: 11px; min-height: 46px; }
1337
+ .setupPlanFoot { margin-top: 16px; }
1338
+ .setupPlanConfirmed { margin-top: 2px; box-shadow: 0 12px 30px -28px rgba(44,143,104,0.5); }
1339
+
1340
+ .sessionSelectionCard {
1341
+ display: grid;
1342
+ grid-template-columns: auto minmax(0, 1fr) auto;
1343
+ gap: 13px;
1344
+ align-items: center;
1345
+ margin-top: 13px;
1346
+ border: 1px solid rgba(26,58,143,0.16);
1347
+ border-radius: 16px;
1348
+ background: linear-gradient(135deg, rgba(248,250,255,0.96), rgba(241,245,255,0.9));
1349
+ padding: 17px;
1350
+ text-align: left;
1351
+ box-shadow: 0 14px 32px -28px rgba(20,36,84,0.5);
1352
+ }
1353
+ .sessionSelectionCard.is-loading { grid-template-columns: auto 1fr; }
1354
+ .sessionSelectionIcon {
1355
+ width: 40px;
1356
+ height: 40px;
1357
+ display: grid;
1358
+ place-items: center;
1359
+ border-radius: 12px;
1360
+ background: rgba(41,83,186,0.09);
1361
+ color: var(--echo-ink-primary);
1362
+ font-size: 20px;
1363
+ font-weight: 900;
1364
+ }
1365
+ .sessionSelectionIcon .setupGlyph { width: 21px; height: 21px; }
1366
+ .sessionSelectionCopy { min-width: 0; }
1367
+ .sessionSelectionEyebrow,
1368
+ .sessionSelectionCopy > strong,
1369
+ .sessionSelectionCopy p { display: block; }
1370
+ .sessionSelectionEyebrow {
1371
+ font-family: var(--echo-font-mono);
1372
+ color: var(--echo-ink-mute);
1373
+ font-size: 9px;
1374
+ font-weight: 800;
1375
+ letter-spacing: 0.08em;
1376
+ text-transform: uppercase;
1377
+ }
1378
+ .sessionSelectionCopy > strong { margin-top: 3px; color: var(--echo-ink-text); font-size: 17px; }
1379
+ .sessionSelectionCopy p,
1380
+ .sessionSelectionCard.is-loading p { margin: 3px 0 0; color: var(--echo-ink-mute); font-size: 12px; line-height: 1.45; }
1381
+ .sessionSelectionCard.is-loading strong { color: var(--echo-ink-text); }
1382
+ .sessionEditButton { min-height: 40px; border-radius: 10px; white-space: nowrap; }
1383
+
1384
+ .sessionPicker {
1385
+ width: min(860px, calc(100vw - 32px));
1386
+ max-height: min(780px, calc(100vh - 32px));
1387
+ margin: auto;
1388
+ border: 0;
1389
+ border-radius: 18px;
1390
+ background: transparent;
1391
+ padding: 0;
1392
+ color: var(--echo-ink-text);
1393
+ box-shadow: 0 34px 90px -30px rgba(10,18,46,0.68);
1394
+ }
1395
+ .sessionPicker::backdrop { background: rgba(13,21,43,0.62); backdrop-filter: blur(4px); }
1396
+ .sessionPickerShell { display: grid; grid-template-rows: auto auto auto minmax(180px, 1fr) auto; max-height: min(780px, calc(100vh - 32px)); background: var(--echo-paper-white); }
1397
+ .sessionPickerHead {
1398
+ display: flex;
1399
+ align-items: flex-start;
1400
+ justify-content: space-between;
1401
+ flex-wrap: nowrap;
1402
+ gap: 20px;
1403
+ margin: 0;
1404
+ border-bottom: 1px solid var(--echo-line-soft);
1405
+ padding: 22px 24px 18px;
1406
+ }
1407
+ .sessionPickerHead > div > span {
1408
+ font-family: var(--echo-font-mono);
1409
+ color: var(--echo-ink-primary);
1410
+ font-size: 10px;
1411
+ font-weight: 900;
1412
+ letter-spacing: 0.08em;
1413
+ text-transform: uppercase;
1414
+ }
1415
+ .sessionPickerHead h2 { margin: 5px 0 0; color: var(--echo-ink-text); font-size: clamp(26px, 4vw, 36px); line-height: 1; }
1416
+ .sessionPickerHead p { margin: 8px 0 0; color: var(--echo-ink-mute); font-size: 13px; }
1417
+ .sessionPickerClose {
1418
+ width: 38px;
1419
+ min-height: 38px;
1420
+ flex: 0 0 auto;
1421
+ border-color: var(--echo-line-soft);
1422
+ border-radius: 50%;
1423
+ background: var(--echo-paper-soft);
1424
+ color: var(--echo-ink-text);
1425
+ padding: 0;
1426
+ font-size: 23px;
1427
+ font-weight: 500;
1428
+ }
1429
+ .sessionPickerToolbar {
1430
+ display: grid;
1431
+ grid-template-columns: minmax(0, 1fr) 180px;
1432
+ gap: 12px;
1433
+ border-bottom: 1px solid var(--echo-line-soft);
1434
+ background: var(--echo-paper-soft);
1435
+ padding: 14px 24px;
1436
+ }
1437
+ .sessionPickerToolbar label { display: grid; gap: 5px; }
1438
+ .sessionPickerToolbar label > span {
1439
+ font-family: var(--echo-font-mono);
1440
+ color: var(--echo-ink-mute);
1441
+ font-size: 9px;
1442
+ font-weight: 800;
1443
+ letter-spacing: 0.07em;
1444
+ text-transform: uppercase;
1445
+ }
1446
+ .sessionPickerToolbar input,
1447
+ .sessionPickerToolbar select {
1448
+ width: 100%;
1449
+ height: 42px;
1450
+ border: 1px solid var(--echo-line-soft);
1451
+ border-radius: 9px;
1452
+ background: var(--echo-paper-white);
1453
+ padding: 0 12px;
1454
+ color: var(--echo-ink-text);
1455
+ font: inherit;
1456
+ font-size: 13px;
1457
+ }
1458
+ .sessionPickerToolbar input:focus,
1459
+ .sessionPickerToolbar select:focus { border-color: var(--echo-ink-primary); outline: 3px solid rgba(26,58,143,0.12); }
1460
+ .sessionPickerActions {
1461
+ display: flex;
1462
+ align-items: center;
1463
+ gap: 8px;
1464
+ border-bottom: 1px solid var(--echo-line-soft);
1465
+ padding: 9px 24px;
1466
+ }
1467
+ .sessionPickerActions > strong { margin-right: auto; color: var(--echo-ink-primary); font-size: 13px; font-variant-numeric: tabular-nums; }
1468
+ .sessionPickerActions [role="status"] { color: #9b6612; font-size: 11px; font-weight: 700; }
1469
+ .sessionPickerActions .textButton { min-height: 32px; color: var(--echo-ink-primary); }
1470
+ .sessionPickerList { min-height: 0; overflow-y: auto; background: var(--echo-paper-white); padding: 6px 0; }
1471
+ .sessionPickerRow {
1472
+ display: grid;
1473
+ grid-template-columns: auto auto minmax(0, 1fr) auto;
1474
+ gap: 12px;
1475
+ align-items: center;
1476
+ margin: 0 8px;
1477
+ border: 1px solid transparent;
1478
+ border-radius: 10px;
1479
+ padding: 10px 14px;
1480
+ cursor: pointer;
1481
+ }
1482
+ .sessionPickerRow:hover { background: var(--echo-paper-soft); }
1483
+ .sessionPickerRow.is-selected { border-color: rgba(26,58,143,0.15); background: #f4f7ff; }
1484
+ .sessionPickerRow > input { width: 17px; height: 17px; margin: 0; accent-color: var(--echo-ink-primary); }
1485
+ .sessionPickerSource {
1486
+ width: 32px;
1487
+ height: 32px;
1488
+ display: grid;
1489
+ place-items: center;
1490
+ border-radius: 8px;
1491
+ background: #fff;
1492
+ color: var(--echo-ink-primary);
1493
+ font-family: var(--echo-font-mono);
1494
+ font-size: 9px;
1495
+ font-weight: 900;
1496
+ }
1497
+ .sessionPickerSource.is-claude { background: #fff; }
1498
+ .sessionPickerSource img,
1499
+ .sessionPickerSourceFallback {
1500
+ width: 100%;
1501
+ height: 100%;
1502
+ border-radius: inherit;
1503
+ }
1504
+ .sessionPickerSource img { display: block; object-fit: contain; padding: 4px; }
1505
+ .sessionPickerSourceFallback { display: none; place-items: center; }
1506
+ .sessionPickerMain { min-width: 0; }
1507
+ .sessionPickerMain strong,
1508
+ .sessionPickerMain small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1509
+ .sessionPickerMain strong { color: var(--echo-ink-text); font-size: 13px; }
1510
+ .sessionPickerMain small { margin-top: 3px; color: var(--echo-ink-mute); font-size: 11px; }
1511
+ .sessionPickerMeta { font-family: var(--echo-font-mono); color: var(--echo-ink-mute); font-size: 10px; white-space: nowrap; }
1512
+ .sessionPickerOverflow,
1513
+ .sessionPickerEmpty { margin: 0; padding: 18px 24px; color: var(--echo-ink-mute); font-size: 12px; text-align: center; }
1514
+ .sessionPickerFoot {
1515
+ display: flex;
1516
+ align-items: center;
1517
+ justify-content: space-between;
1518
+ gap: 18px;
1519
+ border-top: 1px solid var(--echo-line-soft);
1520
+ background: var(--echo-paper-soft);
1521
+ padding: 14px 24px;
1522
+ }
1523
+ .sessionPickerFoot p { margin: 0; color: var(--echo-ink-mute); font-size: 12px; }
1524
+ .sessionPickerFoot button { min-width: 170px; }
1525
+
1526
+ .pauseStatus {
1527
+ display: grid;
1528
+ justify-items: center;
1529
+ gap: 7px;
1530
+ color: var(--echo-ink-mute);
1531
+ }
1532
+ .pauseStatus > span {
1533
+ width: 50px;
1534
+ height: 50px;
1535
+ display: grid;
1536
+ place-items: center;
1537
+ border: 1px solid var(--echo-line-soft);
1538
+ border-radius: 50%;
1539
+ background: var(--echo-paper-soft);
1540
+ color: var(--echo-ink-primary);
1541
+ font-family: var(--echo-font-brand);
1542
+ font-size: 18px;
1543
+ font-weight: 900;
1544
+ }
1545
+ .pauseStatus > span .setupGlyph { width: 24px; height: 24px; }
1546
+ .pauseStatus small {
1547
+ font-family: var(--echo-font-mono);
1548
+ font-size: 10px;
1549
+ font-weight: 800;
1550
+ letter-spacing: 0.08em;
1551
+ text-transform: uppercase;
1552
+ }
1553
+
1554
+ /* ===== Echo editorial utility system =====
1555
+ Setup is one working document, not a stack of floating SaaS cards. */
1556
+ .utilityEyebrow {
1557
+ margin: 0;
1558
+ font-family: var(--echo-font-mono);
1559
+ color: var(--echo-ink-primary);
1560
+ font-size: 10px;
1561
+ font-weight: 900;
1562
+ letter-spacing: 0.1em;
1563
+ line-height: 1.35;
1564
+ text-transform: uppercase;
1565
+ }
1566
+
1567
+ .readyDecision {
1568
+ max-width: min(980px, calc(100vw - clamp(24px, 7vw, 104px)));
1569
+ justify-items: stretch;
1570
+ gap: 0;
1571
+ border-top: 1px solid #c9cbc6;
1572
+ border-right: 1px solid #c9cbc6;
1573
+ border-bottom: 1px solid #c9cbc6;
1574
+ border-left: 5px solid var(--echo-ink-primary);
1575
+ border-radius: 2px;
1576
+ background: var(--echo-paper-white);
1577
+ text-align: left;
1578
+ }
1579
+ .readyEyebrow {
1580
+ width: 100%;
1581
+ border-bottom: 1px solid #d7d8d3;
1582
+ background: var(--echo-paper-soft);
1583
+ padding: 13px clamp(22px, 4vw, 34px);
1584
+ }
1585
+ .readyHero {
1586
+ width: 100%;
1587
+ grid-template-columns: 94px minmax(0, 1fr);
1588
+ justify-items: start;
1589
+ align-items: center;
1590
+ gap: clamp(20px, 3vw, 34px);
1591
+ margin: 0;
1592
+ border-bottom: 1px solid #d7d8d3;
1593
+ padding: clamp(26px, 4vw, 42px) clamp(22px, 4vw, 34px);
1594
+ }
1595
+ .readyMascot {
1596
+ width: 84px;
1597
+ height: 84px;
1598
+ filter: none;
1599
+ }
1600
+ .readyHero .exCopy h2 {
1601
+ max-width: 760px;
1602
+ font-size: clamp(38px, 5vw, 60px);
1603
+ line-height: 0.96;
1604
+ }
1605
+ .readyHero .exCopy .exSub {
1606
+ max-width: 650px;
1607
+ margin: 14px 0 0;
1608
+ }
1609
+ .proofStrip {
1610
+ width: 100%;
1611
+ justify-content: flex-start;
1612
+ min-height: 44px;
1613
+ margin: 0;
1614
+ border: 0;
1615
+ border-bottom: 1px solid #d7d8d3;
1616
+ border-radius: 0;
1617
+ background: #f7f6f2;
1618
+ padding: 9px clamp(22px, 4vw, 34px);
1619
+ box-shadow: none;
1620
+ backdrop-filter: none;
1621
+ }
1622
+ .proofStrip .pfIcon {
1623
+ border-radius: 2px;
1624
+ box-shadow: inset 0 0 0 1px #d7d8d3;
1625
+ }
1626
+ .setupAccountSlot,
1627
+ .setupPlanSlot,
1628
+ .sessionSelectionSlot { margin: 0; }
1629
+ .setupAccountCard {
1630
+ margin: 0;
1631
+ border: 0;
1632
+ border-bottom: 1px solid #d7d8d3;
1633
+ border-radius: 0;
1634
+ background: var(--echo-paper-white);
1635
+ padding: 15px clamp(22px, 4vw, 34px);
1636
+ box-shadow: none;
1637
+ backdrop-filter: none;
1638
+ }
1639
+ .setupAccountAvatar {
1640
+ width: 42px;
1641
+ height: 42px;
1642
+ border-radius: 2px;
1643
+ background: var(--echo-ink-primary);
1644
+ }
1645
+ .setupAccountChange { border-radius: 2px; }
1646
+
1647
+ .setupPlanChoice {
1648
+ overflow: visible;
1649
+ margin: 0;
1650
+ border: 0;
1651
+ border-bottom: 1px solid #d7d8d3;
1652
+ border-radius: 0;
1653
+ background: var(--echo-paper-white);
1654
+ padding: clamp(24px, 4vw, 34px);
1655
+ box-shadow: none;
1656
+ backdrop-filter: none;
1657
+ }
1658
+ .setupPlanChoice::before { display: none; }
1659
+ .setupPlanIntro { padding-right: 0; }
1660
+ .setupPlanIntro h3 { font-size: clamp(25px, 3vw, 32px); }
1661
+ .setupPlanGrid {
1662
+ gap: 0;
1663
+ margin-top: 22px;
1664
+ border-top: 1px solid #bfc1bb;
1665
+ border-bottom: 1px solid #bfc1bb;
1666
+ }
1667
+ .setupPlanCard {
1668
+ position: relative;
1669
+ border: 0;
1670
+ border-radius: 0;
1671
+ background: transparent;
1672
+ padding: 20px 18px 18px;
1673
+ box-shadow: none;
1674
+ transition: background 150ms ease;
1675
+ }
1676
+ .setupPlanCard + .setupPlanCard { border-left: 1px solid #d7d8d3; }
1677
+ .setupPlanCard:hover {
1678
+ border-color: transparent;
1679
+ background: #f7f6f2;
1680
+ box-shadow: none;
1681
+ transform: none;
1682
+ }
1683
+ .setupPlanCard.is-pro {
1684
+ border-color: transparent;
1685
+ background: #f2f5fc;
1686
+ box-shadow: inset 0 3px 0 var(--echo-ink-primary);
1687
+ }
1688
+ .setupPlanCard.is-pro::before {
1689
+ top: 16px;
1690
+ right: 16px;
1691
+ border: 0;
1692
+ border-radius: 0;
1693
+ background: transparent;
1694
+ padding: 0;
1695
+ color: var(--echo-ink-primary);
1696
+ font-size: 8px;
1697
+ }
1698
+ .setupPlanCard.is-pro .setupPlanHead { padding-right: 50px; }
1699
+ .setupPlanCard button,
1700
+ .sessionEditButton { border-radius: 4px; box-shadow: none; }
1701
+ .setupPlanConfirmed {
1702
+ margin: 0;
1703
+ border: 0;
1704
+ border-bottom: 1px solid #d7d8d3;
1705
+ border-radius: 0;
1706
+ background: #f3f8f5;
1707
+ padding: 15px clamp(22px, 4vw, 34px);
1708
+ box-shadow: inset 4px 0 0 #2c8f68;
1709
+ }
1710
+ .setupPlanConfirmedIcon {
1711
+ border-radius: 2px;
1712
+ background: transparent;
1713
+ }
1714
+
1715
+ .sessionSelectionCard {
1716
+ margin: 0;
1717
+ border: 0;
1718
+ border-bottom: 1px solid #d7d8d3;
1719
+ border-radius: 0;
1720
+ background: #f7f6f2;
1721
+ padding: 16px clamp(22px, 4vw, 34px);
1722
+ box-shadow: none;
1723
+ }
1724
+ .sessionSelectionIcon {
1725
+ width: 38px;
1726
+ height: 38px;
1727
+ border: 1px solid #c8cbc5;
1728
+ border-radius: 2px;
1729
+ background: var(--echo-paper-white);
1730
+ }
1731
+ .readyGo {
1732
+ width: 100%;
1733
+ justify-items: start;
1734
+ margin: 0;
1735
+ padding: 24px clamp(22px, 4vw, 34px) 26px;
1736
+ }
1737
+ .readyDecision .actions { justify-content: flex-start; }
1738
+ .readyDecision .actions .primary {
1739
+ min-height: 52px;
1740
+ border-radius: 4px;
1741
+ box-shadow: none;
1742
+ }
1743
+ .readyDecision .actions .primary:not(:disabled):hover { box-shadow: none; }
1744
+ .ctaMeta { justify-content: flex-start; }
1745
+ .readyFoot {
1746
+ width: 100%;
1747
+ justify-items: stretch;
1748
+ gap: 0;
1749
+ margin: 0;
1750
+ border-top: 1px solid #d7d8d3;
1751
+ padding: 15px clamp(22px, 4vw, 34px) 18px;
1752
+ opacity: 1;
1753
+ }
1754
+ .readyExplain { max-width: none; border: 0; padding: 0; }
1755
+ .readySteps { gap: 0; border-top: 1px solid #d7d8d3; border-bottom: 1px solid #d7d8d3; }
1756
+ .readyStep { border: 0; border-radius: 0; padding: 12px; }
1757
+ .readyStep + .readyStep { border-left: 1px solid #d7d8d3; }
1758
+
1759
+ .loading-panel {
1760
+ border-top: 1px solid #c9cbc6;
1761
+ border-right: 1px solid #c9cbc6;
1762
+ border-bottom: 1px solid #c9cbc6;
1763
+ border-left: 5px solid var(--echo-ink-primary);
1764
+ border-radius: 2px;
1765
+ background: var(--echo-paper-white);
1766
+ box-shadow: none;
1767
+ }
1768
+ .loading-panel .warning,
1769
+ .loading-panel .error { border-radius: 2px; }
1770
+
1771
+ .exHeroActive,
1772
+ .exHeroResult {
1773
+ border-top: 1px solid #c9cbc6;
1774
+ border-right: 1px solid #c9cbc6;
1775
+ border-bottom: 1px solid #c9cbc6;
1776
+ border-left: 5px solid var(--echo-ink-primary);
1777
+ border-radius: 2px;
1778
+ background: var(--echo-paper-white);
1779
+ padding: clamp(28px, 5vw, 48px);
1780
+ }
1781
+ .workbench { max-width: none; gap: 15px; }
1782
+ .workbench h2 { margin-top: 4px; }
1783
+ .workbench .track {
1784
+ height: 6px;
1785
+ margin: 7px 0 10px;
1786
+ border-radius: 0;
1787
+ }
1788
+ .workbench .track .fill { border-radius: 0; }
1789
+ .exCurrent i {
1790
+ width: 10px;
1791
+ height: 10px;
1792
+ border-radius: 2px;
1793
+ box-shadow: none;
1794
+ }
1795
+ .exOverdue { border-radius: 2px; }
1796
+
1797
+ .resultStage { max-width: none; padding: 0; }
1798
+ .resultTop { border-top: 1px solid #d7d8d3; padding-top: 18px; }
1799
+ .resultNumber { border-radius: 2px; }
1800
+ .tryCard {
1801
+ max-width: none;
1802
+ border: 1px solid #aeb5c5;
1803
+ border-left: 5px solid var(--echo-ink-primary);
1804
+ border-radius: 2px;
1805
+ padding: clamp(20px, 3vw, 28px);
1806
+ box-shadow: none;
1807
+ }
1808
+ .tryCard pre,
1809
+ .promptPeek pre { border-radius: 2px; }
1810
+ .promptCopyLabel { border-radius: 2px; }
1811
+ .agentLaunch { gap: 0; border-top: 1px solid #d7d8d3; border-bottom: 1px solid #d7d8d3; }
1812
+ .agentLaunch button {
1813
+ border: 0;
1814
+ border-radius: 0;
1815
+ box-shadow: none;
1816
+ }
1817
+ .agentLaunch button + button { border-left: 1px solid #d7d8d3; }
1818
+ .agentIcon { border-radius: 2px; box-shadow: none; }
1819
+ .hudTip {
1820
+ max-width: none;
1821
+ border-top: 1px solid #d7d8d3;
1822
+ border-bottom: 1px solid #d7d8d3;
1823
+ padding: 14px 0;
1824
+ }
1825
+ .hudTip img { filter: none; }
1826
+ .doneCloseNote { margin-top: 18px; }
1827
+
1828
+ .miniLoad {
1829
+ width: min(680px, calc(100vw - 40px));
1830
+ max-width: 680px;
1831
+ gap: 14px;
1832
+ margin: 0 auto;
1833
+ border-top: 1px solid #c9cbc6;
1834
+ border-right: 1px solid #c9cbc6;
1835
+ border-bottom: 1px solid #c9cbc6;
1836
+ border-left: 5px solid var(--echo-ink-primary);
1837
+ border-radius: 2px;
1838
+ background: var(--echo-paper-white);
1839
+ padding: clamp(30px, 6vw, 56px);
1840
+ text-align: left;
1841
+ place-items: start;
1842
+ }
1843
+ .miniLoad h2 { font-size: clamp(32px, 5vw, 48px); }
1844
+ .miniLoad p { max-width: 560px; }
1845
+ .miniBar {
1846
+ width: min(420px, 100%);
1847
+ height: 6px;
1848
+ margin-top: 12px;
1849
+ border-radius: 0;
1850
+ }
1851
+ .miniBar i { border-radius: 0; }
1852
+
1853
+ .skipStage {
1854
+ width: min(820px, calc(100vw - 40px));
1855
+ max-width: 820px;
1856
+ justify-items: start;
1857
+ gap: 16px;
1858
+ border-top: 1px solid #c9cbc6;
1859
+ border-right: 1px solid #c9cbc6;
1860
+ border-bottom: 1px solid #c9cbc6;
1861
+ border-left: 5px solid var(--echo-ink-primary);
1862
+ border-radius: 2px;
1863
+ background: var(--echo-paper-white);
1864
+ padding: clamp(28px, 5vw, 46px);
1865
+ text-align: left;
1866
+ }
1867
+ .skipStage h2 { max-width: 680px; }
1868
+ .skipStage p { max-width: 660px; }
1869
+ .skipStage .tryCard,
1870
+ .skipStage .hudTip { width: 100%; }
1871
+ .pauseStatus {
1872
+ grid-template-columns: 32px auto;
1873
+ justify-items: start;
1874
+ align-items: center;
1875
+ gap: 10px;
1876
+ }
1877
+ .pauseStatus > span {
1878
+ width: 32px;
1879
+ height: 32px;
1880
+ border-radius: 2px;
1881
+ background: var(--echo-paper-white);
1882
+ }
1883
+
1884
+ .sessionPicker {
1885
+ border-top: 1px solid #c9cbc6;
1886
+ border-right: 1px solid #c9cbc6;
1887
+ border-bottom: 1px solid #c9cbc6;
1888
+ border-left: 5px solid var(--echo-ink-primary);
1889
+ border-radius: 2px;
1890
+ background: var(--echo-paper-white);
1891
+ box-shadow: 0 28px 70px -44px rgba(10,18,46,0.72);
1892
+ }
1893
+ .sessionPicker::backdrop { background: rgba(28,31,38,0.58); backdrop-filter: none; }
1894
+ .sessionPickerShell { background: var(--echo-paper-white); }
1895
+ .sessionPickerHead { background: var(--echo-paper-white); }
1896
+ .sessionPickerClose,
1897
+ .sessionPickerToolbar input,
1898
+ .sessionPickerToolbar select { border-radius: 2px; }
1899
+ .sessionPickerToolbar { background: #f7f6f2; }
1900
+ .sessionPickerList { padding: 0; }
1901
+ .sessionPickerRow {
1902
+ margin: 0;
1903
+ border: 0;
1904
+ border-bottom: 1px solid var(--echo-line-soft);
1905
+ border-radius: 0;
1906
+ padding: 11px 22px;
1907
+ }
1908
+ .sessionPickerRow.is-selected {
1909
+ border-color: var(--echo-line-soft);
1910
+ background: #f2f5fc;
1911
+ box-shadow: inset 3px 0 0 var(--echo-ink-primary);
1912
+ }
1913
+ .sessionPickerSource { border: 1px solid #d7d8d3; border-radius: 2px; }
1914
+ .sessionPickerFoot { background: #f7f6f2; }
1915
+ .sessionPickerFoot button { border-radius: 4px; }
1916
+
1917
+ @media (max-width: 720px) {
1918
+ .localConsent { border-radius: 2px; }
1919
+ .localConsentAccess,
1920
+ .localConsentSkipped { grid-template-columns: 1fr; min-height: 0; }
1921
+ .consentLead { border-right: 0; border-bottom: 1px solid #d7d8d3; padding: 28px 24px; }
1922
+ .consentLead h2 { font-size: clamp(34px, 10.5vw, 44px); }
1923
+ .consentLocalMark { margin-top: 28px; }
1924
+ .consentDecision { padding: 26px 24px 28px; }
1925
+ .consentDecision .consentActions { align-items: stretch; }
1926
+ .consentDecision .consentActions .primary { width: 100%; }
1927
+ .skippedEcho { min-height: 190px; padding: 22px 24px; }
1928
+ .skippedEcho img { position: absolute; width: 124px; height: 124px; right: 18px; top: 10px; margin: 0; }
1929
+ .skippedEcho span,
1930
+ .skippedEcho strong { width: fit-content; }
1931
+ .skippedCopy { padding: 28px 24px 30px; }
1932
+ .skippedCopy h2 { font-size: clamp(34px, 10vw, 44px); }
1933
+ .readyDecision { max-width: 100%; gap: 0; border-left-width: 4px; }
1934
+ .readyEyebrow { padding: 12px 18px; }
1935
+ .readyHero { grid-template-columns: 1fr; gap: 14px; padding: 24px 18px; }
1936
+ .readyMascot { width: 68px; height: 68px; }
1937
+ .readyHero .exCopy h2 { font-size: clamp(34px, 11vw, 48px); }
1938
+ .readyHero .exCopy .exSub { font-size: 15px; }
1939
+ .proofStrip { max-width: 100%; border-radius: 0; padding: 9px 18px; }
1940
+ .setupAccountCard,
1941
+ .sessionSelectionCard { grid-template-columns: auto minmax(0, 1fr); }
1942
+ .setupAccountChange,
1943
+ .sessionEditButton { grid-column: 2; width: fit-content; padding-left: 0; }
1944
+ .setupPlanChoice { border-radius: 0; padding: 22px 18px; }
1945
+ .setupPlanIntro { padding-right: 0; }
1946
+ .setupPlanCard { padding: 18px 16px 16px; }
1947
+ .setupPlanCard + .setupPlanCard { border-left: 0; border-top: 1px solid #d7d8d3; }
1948
+ .setupPlanConfirmed { grid-template-columns: auto minmax(0, 1fr); }
1949
+ .setupPlanConfirmed .textButton { grid-column: 2; width: fit-content; }
1950
+ .readyDecision .actions,
1951
+ .readyDecision .actions .primary { width: 100%; }
1952
+ .readyDecision .actions .primary { min-width: 0; }
1953
+ .readyGo,
1954
+ .readyFoot,
1955
+ .setupAccountCard,
1956
+ .sessionSelectionCard,
1957
+ .setupPlanConfirmed { padding-left: 18px; padding-right: 18px; }
1958
+ .readySteps { grid-template-columns: 1fr; }
1959
+ .readyStep + .readyStep { border-left: 0; border-top: 1px solid #d7d8d3; }
1960
+ .exHeroActive,
1961
+ .exHeroResult { padding: 26px 20px; }
1962
+ .agentLaunch { grid-template-columns: 1fr; }
1963
+ .agentLaunch button + button { border-left: 0; border-top: 1px solid #d7d8d3; }
1964
+ .tryCard pre { padding: 52px 12px 12px; }
1965
+ .recallPromptActions { display: grid; grid-template-columns: 1fr; }
1966
+ .recallAgent { width: 100%; }
1967
+ .skipStage { width: calc(100vw - 28px); padding: 26px 20px; }
1968
+ .sessionPicker { width: 100vw; max-height: 100vh; border-radius: 0; border-left-width: 4px; }
1969
+ .sessionPickerShell { max-height: 100vh; min-height: 100vh; }
1970
+ .sessionPickerHead { padding: 18px 16px 15px; }
1971
+ .sessionPickerToolbar { grid-template-columns: 1fr; padding: 12px 16px; }
1972
+ .sessionPickerActions { flex-wrap: wrap; padding: 8px 16px; }
1973
+ .sessionPickerActions > strong { width: 100%; }
1974
+ .sessionPickerRow { grid-template-columns: auto auto minmax(0, 1fr); margin: 0 4px; padding: 10px 8px; }
1975
+ .sessionPickerMeta { display: none; }
1976
+ .sessionPickerFoot { align-items: stretch; flex-direction: column; padding: 12px 16px; }
1977
+ .sessionPickerFoot button { width: 100%; }
1978
+ }
1979
+
1021
1980
  /* ===== workspace readout dashboard (Part 2 — replaces explainPage) ===== */
1022
1981
  @keyframes rdoRise { from { opacity: 0; translate: 0 14px; } to { opacity: 1; translate: 0 0; } }
1023
1982
  @keyframes rdoGrow { from { transform: scaleY(0); } to { transform: scaleY(1); } }