@echomem/mcp 1.4.18 → 1.4.20

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