create-pmos 0.123.0 → 0.125.0
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.
- package/package.json +1 -1
- package/payload/KIT-VERSION +2 -2
- package/payload/planning/evals/eval-calibration.md +1 -1
- package/payload/planning/okrs/health-budgets.md +1 -1
- package/payload/scripts/nine-stages.js +81 -0
- package/payload/scripts/workflow-state.js +2 -0
- package/payload/state/discoveries.md +1 -1
- package/payload/state/log.md +1 -1
- package/workspace/c3-one-home-test.js +131 -0
- package/workspace/fixtures/initiatives-api/list.json +171 -3
- package/workspace/fixtures/initiatives-api/roadmap.json +228 -4
- package/workspace/fixtures/initiatives-api/sheet.json +57 -1
- package/workspace/fixtures/one-home-baseline.json +83 -0
- package/workspace/guide/layout.md +2 -0
- package/workspace/guide/notes.md +1 -0
- package/workspace/lib/engine/nine-stages.js +81 -0
- package/workspace/lib/engine/workflow-state.js +2 -0
- package/workspace/lib/facts-async.js +51 -0
- package/workspace/lib/item-steps.js +52 -0
- package/workspace/lib/jira-status.js +8 -3
- package/workspace/lib/jobs-to-be-done.js +52 -0
- package/workspace/lib/outbox-store.js +87 -0
- package/workspace/lib/pm-items.js +115 -0
- package/workspace/lib/route-modules.js +21 -0
- package/workspace/lib/routes-briefing.js +100 -0
- package/workspace/lib/routes-c3-init.js +53 -0
- package/workspace/lib/routes-c3-life.js +119 -0
- package/workspace/lib/routes-c3-strategy.js +169 -0
- package/workspace/lib/routes-c3-timeline.js +191 -0
- package/workspace/lib/routes-calendar-import.js +60 -0
- package/workspace/lib/routes-calendar-views.js +61 -0
- package/workspace/lib/routes-doc-health.js +79 -0
- package/workspace/lib/routes-doc-sheet.js +169 -0
- package/workspace/lib/routes-forecast.js +85 -0
- package/workspace/lib/routes-hooks.js +121 -0
- package/workspace/lib/routes-initiatives.js +3 -0
- package/workspace/lib/routes-intake.js +24 -0
- package/workspace/lib/routes-outbox.js +97 -0
- package/workspace/lib/routes-pm-items.js +216 -0
- package/workspace/lib/routes-records.js +61 -0
- package/workspace/lib/routes-releases.js +129 -0
- package/workspace/lib/routes-report-facts.js +84 -0
- package/workspace/lib/routes-report-families.js +32 -0
- package/workspace/lib/routes-roadmap-ops.js +141 -0
- package/workspace/lib/routes-runs.js +119 -0
- package/workspace/lib/routes-signals.js +50 -0
- package/workspace/lib/run-answers.js +69 -0
- package/workspace/package-lock.json +2 -2
- package/workspace/package.json +1 -1
- package/workspace/public/c3.html +26 -0
- package/workspace/public/pm/briefing-deck.js +415 -0
- package/workspace/public/pm/briefing-model.js +176 -0
- package/workspace/public/pm/c3-breakdown.js +240 -0
- package/workspace/public/pm/c3-brief.js +278 -0
- package/workspace/public/pm/c3-cal-strategy.js +528 -0
- package/workspace/public/pm/c3-case.js +173 -0
- package/workspace/public/pm/c3-demo-brief-ix.js +350 -0
- package/workspace/public/pm/c3-demo-cal-ix.js +74 -0
- package/workspace/public/pm/c3-demo-cal2.js +66 -0
- package/workspace/public/pm/c3-demo-cal3.js +173 -0
- package/workspace/public/pm/c3-demo-data.js +560 -0
- package/workspace/public/pm/c3-demo-init.js +373 -0
- package/workspace/public/pm/c3-demo-life.js +77 -0
- package/workspace/public/pm/c3-demo-misc2.js +46 -0
- package/workspace/public/pm/c3-demo-plan2.js +30 -0
- package/workspace/public/pm/c3-demo-rep-ix.js +126 -0
- package/workspace/public/pm/c3-demo-rep2.js +92 -0
- package/workspace/public/pm/c3-demo-term.js +153 -0
- package/workspace/public/pm/c3-demo-time.js +49 -0
- package/workspace/public/pm/c3-demo-work-ix.js +80 -0
- package/workspace/public/pm/c3-demo-work2.js +13 -0
- package/workspace/public/pm/c3-demo.js +113 -0
- package/workspace/public/pm/c3-doc-sheet.js +314 -0
- package/workspace/public/pm/c3-dock.js +180 -0
- package/workspace/public/pm/c3-docs.js +290 -0
- package/workspace/public/pm/c3-expand.js +96 -0
- package/workspace/public/pm/c3-init-extras.js +170 -0
- package/workspace/public/pm/c3-lifecycle-panels.js +476 -0
- package/workspace/public/pm/c3-misc-panels.js +89 -0
- package/workspace/public/pm/c3-plan-panels.js +163 -0
- package/workspace/public/pm/c3-plan.js +192 -0
- package/workspace/public/pm/c3-roadmap.js +249 -0
- package/workspace/public/pm/c3-sheet.js +107 -0
- package/workspace/public/pm/c3-shell.js +637 -0
- package/workspace/public/pm/c3-signals.js +196 -0
- package/workspace/public/pm/c3-strategy-panels.js +45 -0
- package/workspace/public/pm/c3-swipe.js +138 -0
- package/workspace/public/pm/c3-terminal-data.js +26 -0
- package/workspace/public/pm/c3-terminal-edge.js +91 -0
- package/workspace/public/pm/c3-terminal-icons.js +41 -0
- package/workspace/public/pm/c3-terminal-results.js +141 -0
- package/workspace/public/pm/c3-terminal.js +52 -0
- package/workspace/public/pm/c3-tickets.js +163 -0
- package/workspace/public/pm/c3-timeline.js +201 -0
- package/workspace/public/pm/c3-toast.js +16 -0
- package/workspace/public/pm/calendar-views.js +1015 -0
- package/workspace/public/pm/console3-lift.md +220 -0
- package/workspace/public/pm/console3.css +1480 -0
- package/workspace/public/pm/dest-initiatives.js +16 -3
- package/workspace/public/pm/dest-mywork.js +8 -1
- package/workspace/public/pm/dest-notes.js +25 -3
- package/workspace/public/pm/dest-reports.js +47 -1
- package/workspace/public/pm/dest-today.js +55 -1
- package/workspace/public/pm/doc-health-panel.js +110 -0
- package/workspace/public/pm/doc-rail.js +9 -3
- package/workspace/public/pm/lifecycle-lens-model.js +228 -0
- package/workspace/public/pm/lifecycle-lens.js +261 -0
- package/workspace/public/pm/new-initiative-sheet.js +116 -21
- package/workspace/public/pm/outbox-panel.js +125 -0
- package/workspace/public/pm/pm-work-view.js +919 -0
- package/workspace/public/pm/releases-view.js +248 -0
- package/workspace/public/pm/report-families-view.js +503 -0
- package/workspace/public/pm/run-card.js +244 -0
- package/workspace/public/pm/sessions-panel.js +149 -0
- package/workspace/public/pm/shell-bell.js +162 -0
- package/workspace/public/pm/shell-model.js +83 -0
- package/workspace/public/pm/shell-phone.js +124 -0
- package/workspace/public/pm/shell-readaloud.js +53 -0
- package/workspace/public/pm/shell-recording.js +110 -0
- package/workspace/public/pm/shell-ticker.js +90 -0
- package/workspace/public/pm/slide-confirm.js +163 -0
- package/workspace/public/pm/timeline-forecast-view.js +164 -0
- package/workspace/public/pm/today-day.js +8 -2
- package/workspace/public/pm/tokens.css +1 -0
- package/workspace/server.js +5 -2
- package/workspace/test-files.json +8 -0
- package/workspace/test-lists/browser-suites-green.json +5 -0
|
@@ -0,0 +1,1480 @@
|
|
|
1
|
+
/* pm/console3.css — the console3 mockup's CSS for the Work, Briefing and Calendar views, lifted from
|
|
2
|
+
* prototype/pmos-console-handoff/mockups/console3.html (the <style> block, lines 5 to 966) by a generator that
|
|
3
|
+
* 1. prefixes every selector with `.c3` (a view's root carries class `c3`, so nothing here reaches another page),
|
|
4
|
+
* 2. turns the mockup's `.ph` phone class into `.c3.ph` (the view toggles it under 640px),
|
|
5
|
+
* 3. maps the mockup's colour variables to the D38 tokens: --bg background, --fg foreground, --mfg muted-foreground,
|
|
6
|
+
* --ok success, --warn warning, --bad destructive, --opp purple, --acc accent; --card, --muted, --border, --ring,
|
|
7
|
+
* --mono and --sans are the same names in tokens.css,
|
|
8
|
+
* 4. renames every @keyframes to c3-NAME (the sheet cannot collide with components.css),
|
|
9
|
+
* 5. leaves out what the three views do not draw: the shell, dock, sheets, palette, toast, banner, phone tray, and the
|
|
10
|
+
* Initiatives, Reports and Release classes.
|
|
11
|
+
* Rules the mockup does not have are marked "console3.css addition" at the end of the file.
|
|
12
|
+
* White text on the blue accent and the alpha-mask colour read --on-accent and --mask from tokens.css; the scrim and shadow
|
|
13
|
+
* alphas stay as written. */
|
|
14
|
+
.c3{
|
|
15
|
+
--fs-1:11px;--fs-2:12px;--fs-3:14px;--fs-4:16px;--fs-5:20px;--fs-6:28px;
|
|
16
|
+
--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;
|
|
17
|
+
--acc:oklch(0.623 0.214 259.815);--accw:oklch(0.623 0.214 259.815 / 18%);
|
|
18
|
+
--sh1:0 1px 2px oklch(0 0 0 / 40%);
|
|
19
|
+
--sh2:0 2px 6px oklch(0 0 0 / 35%),0 14px 32px oklch(0 0 0 / 45%);
|
|
20
|
+
--sh3:0 8px 20px oklch(0 0 0 / 45%),0 32px 70px oklch(0 0 0 / 55%);
|
|
21
|
+
--hi:inset 0 1px 0 oklch(1 0 0 / 7%);
|
|
22
|
+
color:var(--foreground);font:var(--fs-3)/1.5 var(--sans);container-type:inline-size;min-width:0;
|
|
23
|
+
}
|
|
24
|
+
[data-pm-theme="light"] .c3,html[data-pm-page-theme="light"] .c3{
|
|
25
|
+
--acc:oklch(0.488 0.243 264.376);--accw:oklch(0.488 0.243 264.376 / 12%);
|
|
26
|
+
--sh1:0 1px 2px oklch(0.2 0.02 250 / 7%),0 1px 1px oklch(0.2 0.02 250 / 4%);
|
|
27
|
+
--sh2:0 2px 4px oklch(0.2 0.02 250 / 6%),0 10px 24px oklch(0.2 0.02 250 / 9%);
|
|
28
|
+
--sh3:0 6px 16px oklch(0.2 0.02 250 / 12%),0 28px 64px oklch(0.2 0.02 250 / 18%);
|
|
29
|
+
--hi:inset 0 1px 0 oklch(1 0 0 / 70%);
|
|
30
|
+
}
|
|
31
|
+
.c3 b,.c3 strong{font-weight:600}
|
|
32
|
+
.c3 h1,.c3 h2,.c3 h3{line-height:1.3;text-wrap:balance}
|
|
33
|
+
.c3 [hidden]{display:none!important}
|
|
34
|
+
.c3 button{font:inherit;color:inherit;cursor:pointer}
|
|
35
|
+
.c3 button:focus-visible,.c3 input:focus-visible,.c3 select:focus-visible,.c3 textarea:focus-visible,.c3 summary:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
|
|
36
|
+
.c3 .ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
|
|
37
|
+
.c3 .ic.sm{width:14px;height:14px}
|
|
38
|
+
.c3 .ic.lg{width:22px;height:22px}
|
|
39
|
+
.c3 .dim{color:var(--muted-foreground)}
|
|
40
|
+
.c3 .mono{font-family:var(--mono)}
|
|
41
|
+
.c3 .ib{border:1px solid var(--border);background:var(--background);width:34px;height:34px;display:inline-grid;place-items:center;border-radius:8px;position:relative;color:var(--foreground);flex:none}
|
|
42
|
+
.c3 .ib[aria-pressed="true"],.c3 .ib.on{background:var(--foreground);color:var(--background);border-color:var(--foreground)}
|
|
43
|
+
.c3 .ib.pri{background:var(--foreground);color:var(--background);border-color:var(--foreground)}
|
|
44
|
+
.c3 .ib.sm{width:30px;height:30px}
|
|
45
|
+
.c3 .ib:disabled{opacity:.35;cursor:not-allowed}
|
|
46
|
+
@media (hover:hover){
|
|
47
|
+
.c3 .ib:hover{border-color:var(--ring)}
|
|
48
|
+
.c3 .chip2.lk:hover,.c3 .tt:hover{color:var(--acc)}
|
|
49
|
+
}
|
|
50
|
+
.c3 .bdg{font:500 var(--fs-1) var(--mono);background:var(--acc);color:var(--on-accent);min-width:16px;height:16px;border-radius:8px;display:inline-grid;place-items:center;padding:0 4px}
|
|
51
|
+
.c3 .bdg.g{background:var(--muted);color:var(--muted-foreground)}
|
|
52
|
+
.c3 .seg{display:inline-flex;border:1px solid var(--border);padding:2px;gap:2px;background:var(--muted);border-radius:8px}
|
|
53
|
+
.c3 .seg button{border:0;background:transparent;padding:4px 10px;display:flex;gap:6px;align-items:center;font:500 var(--fs-2) var(--mono);color:var(--muted-foreground);border-radius:6px}
|
|
54
|
+
.c3 .seg button[aria-pressed="true"]{background:var(--background);color:var(--foreground);box-shadow:0 0 0 1px var(--border)}
|
|
55
|
+
.c3 .card{border:1px solid var(--border);background:var(--card);padding:14px;display:grid;gap:10px;align-content:start;border-radius:8px}
|
|
56
|
+
.c3 .card h3,.c3 .sh h2{margin:0;font:500 var(--fs-2) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;display:flex;gap:8px;align-items:center}
|
|
57
|
+
.c3 .sh{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--foreground)}
|
|
58
|
+
.c3 .sh .r{display:flex;gap:6px;align-items:center;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
59
|
+
.c3 .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
|
|
60
|
+
.c3 .sec{display:grid;gap:10px}
|
|
61
|
+
.c3{display:grid;gap:16px;align-content:start}
|
|
62
|
+
.c3 .g21{grid-template-columns:minmax(0,2fr) minmax(220px,1fr)}
|
|
63
|
+
.c3.ph .g21{grid-template-columns:minmax(0,1fr)}
|
|
64
|
+
.c3 .list{list-style:none;margin:0;padding:0;display:grid}
|
|
65
|
+
.c3 .nrow,.c3 .drow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:10px 2px;border-bottom:1px solid var(--border);align-items:start;transition:opacity .18s,transform .18s,max-height .18s}
|
|
66
|
+
.c3 .nrow.leave,.c3 .drow.leave,.c3 .row.leave{opacity:0;transform:translateX(24px)}
|
|
67
|
+
.c3 .ki{width:30px;height:30px;border-radius:8px;background:var(--muted);display:grid;place-items:center;color:var(--muted-foreground)}
|
|
68
|
+
.c3 .ki.hot{background:var(--accw);color:var(--acc)}
|
|
69
|
+
.c3 .nb{min-width:0}
|
|
70
|
+
.c3 .tt{border:0;background:transparent;padding:0;text-align:left;font-weight:500;color:var(--foreground);overflow-wrap:anywhere}
|
|
71
|
+
.c3 .chips{display:flex;flex-wrap:wrap;gap:4px 6px;margin-top:4px;align-items:center}
|
|
72
|
+
.c3 .chip2{display:inline-flex;gap:4px;align-items:center;font:var(--fs-2) var(--mono);color:var(--muted-foreground);border:0;background:transparent;padding:0}
|
|
73
|
+
.c3 .chip2.lk{cursor:pointer}
|
|
74
|
+
.c3 .tag{font:500 var(--fs-1) var(--mono);padding:1px 6px;background:var(--muted);color:var(--muted-foreground);border-radius:4px;white-space:nowrap}
|
|
75
|
+
.c3 .fl{font:500 var(--fs-1) var(--mono);padding:1px 6px;border:1px solid var(--border);color:var(--muted-foreground);border-radius:4px}
|
|
76
|
+
.c3 .fl.p1{color:var(--destructive);border-color:var(--destructive)}
|
|
77
|
+
.c3 .fl.p2{color:var(--warning);border-color:var(--warning)}
|
|
78
|
+
.c3 .fl.p3{color:var(--acc);border-color:var(--acc)}
|
|
79
|
+
.c3 .why{font-size:var(--fs-3);color:var(--muted-foreground);margin-top:6px;animation:c3-fadein .2s}
|
|
80
|
+
.c3 .acts{display:flex;gap:6px;align-items:center}
|
|
81
|
+
.c3 .av{width:22px;height:22px;border-radius:50%;background:var(--muted);color:var(--foreground);border:1px solid var(--border);font:500 var(--fs-1) var(--mono);display:inline-grid;place-items:center;padding:0}
|
|
82
|
+
@media (hover:hover){
|
|
83
|
+
.c3 .av:hover{border-color:var(--acc);color:var(--acc)}
|
|
84
|
+
}
|
|
85
|
+
.c3 .av.lg{width:40px;height:40px;font-size:var(--fs-4)}
|
|
86
|
+
.c3 .st{display:inline-flex;gap:4px;align-items:center;font:500 var(--fs-2) var(--mono)}
|
|
87
|
+
.c3 .st.ok{color:var(--success)}
|
|
88
|
+
.c3 .st.warn{color:var(--warning)}
|
|
89
|
+
.c3 .st.bad{color:var(--destructive)}
|
|
90
|
+
.c3 .st.acc{color:var(--acc)}
|
|
91
|
+
.c3 .dotc{width:8px;height:8px;border-radius:50%;background:var(--ring);display:inline-block}
|
|
92
|
+
.c3 .dotc.ok{background:var(--success)}
|
|
93
|
+
.c3 .dotc.warn{background:var(--warning)}
|
|
94
|
+
.c3 .dotc.bad{background:var(--destructive)}
|
|
95
|
+
.c3 .dotc.acc{background:var(--acc)}
|
|
96
|
+
.c3 .dotc.pulse{animation:c3-pulse 1.6s infinite}
|
|
97
|
+
.c3 .fold{border:1px dashed var(--ring);padding:8px 12px;font:var(--fs-2) var(--mono);color:var(--muted-foreground);border-radius:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
|
|
98
|
+
.c3 .fold.w{border-color:var(--warning);color:var(--warning)}
|
|
99
|
+
.c3 .fold.a{border-color:var(--acc);color:var(--acc)}
|
|
100
|
+
.c3 .incident{border:1px solid var(--destructive);color:var(--destructive);padding:10px 14px;border-radius:8px;display:flex;gap:10px;align-items:center}
|
|
101
|
+
.c3 .hero{display:flex;gap:10px 18px;flex-wrap:wrap;align-items:center}
|
|
102
|
+
.c3 .hero b{font-size:var(--fs-5);font-weight:600;line-height:1.3}
|
|
103
|
+
.c3 .hs{display:inline-flex;gap:6px;align-items:center;font:500 var(--fs-2) var(--mono)}
|
|
104
|
+
.c3 .chips2{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
|
|
105
|
+
.c3 .pill{border:1px solid var(--border);background:var(--background);padding:3px 10px;font:var(--fs-3) var(--sans);color:var(--muted-foreground);display:inline-flex;gap:6px;align-items:center;border-radius:16px}
|
|
106
|
+
.c3 .pill[aria-pressed="true"]{background:var(--foreground);color:var(--background);border-color:var(--foreground)}
|
|
107
|
+
.c3 .pill .c{font:var(--fs-1) var(--mono)}
|
|
108
|
+
.c3 .tbl{width:100%;border-collapse:collapse;font-size:var(--fs-3)}
|
|
109
|
+
.c3 .tbl th{font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:6px 8px 6px 0}
|
|
110
|
+
.c3 .tbl td{padding:8px 8px 8px 0;border-top:1px solid var(--border);vertical-align:middle}
|
|
111
|
+
.c3 .chart{width:100%;height:auto;display:block}
|
|
112
|
+
.c3 .chart text{font:var(--fs-1) var(--mono);fill:var(--muted-foreground)}
|
|
113
|
+
.c3 .chart .t{fill:var(--foreground)}
|
|
114
|
+
.c3 .chart.sm{max-width:300px}
|
|
115
|
+
.c3 .chart.md{max-width:920px}
|
|
116
|
+
.c3.ph .chart.day text{font-size:var(--fs-5)}
|
|
117
|
+
.c3.ph .chart.day .bl,.c3.ph .chart.day .fr{display:none}
|
|
118
|
+
.c3 .chart .hit{fill:transparent;cursor:pointer}
|
|
119
|
+
.c3 .grow{transform-origin:left center;transform-box:fill-box;animation:c3-grow .6s ease-out backwards}
|
|
120
|
+
.c3 .pop{transform-origin:center;transform-box:fill-box;animation:c3-popin .4s .3s ease-out backwards}
|
|
121
|
+
.c3 .growy{transform-origin:center bottom;transform-box:fill-box;animation:c3-growy .5s ease-out backwards}
|
|
122
|
+
.c3 .ping{transform-origin:center;transform-box:fill-box;animation:c3-ping 1.8s ease-out infinite}
|
|
123
|
+
.c3 .wave{display:flex;gap:3px;align-items:center;height:32px}
|
|
124
|
+
.c3 .wave i{width:3px;background:var(--acc);border-radius:2px;height:8px;animation:c3-wave 1s ease-in-out infinite}
|
|
125
|
+
.c3 .wave i:nth-child(2n){animation-delay:.2s}
|
|
126
|
+
.c3 .wave i:nth-child(3n){animation-delay:.4s}
|
|
127
|
+
.c3 .wave i:nth-child(5n){animation-delay:.6s}
|
|
128
|
+
.c3 .term{font:var(--fs-2)/1.5 var(--mono);background:var(--muted);padding:8px 10px;min-height:96px;max-height:200px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px}
|
|
129
|
+
.c3 .form{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
|
|
130
|
+
.c3 input[type=text],.c3 select,.c3 textarea{font:inherit;font-size:var(--fs-3);padding:6px 8px;border:1px solid var(--border);background:var(--background);color:var(--foreground);min-width:0;border-radius:6px}
|
|
131
|
+
.c3 .form input[type=text]{flex:1 1 140px}
|
|
132
|
+
.c3 .q{border:1px solid var(--border);border-radius:8px;padding:10px;display:grid;gap:6px;align-content:start}
|
|
133
|
+
.c3 .q h4{margin:0;font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;display:flex;gap:6px;align-items:center}
|
|
134
|
+
.c3 .q .li{font-size:var(--fs-3);display:flex;gap:6px;align-items:center;justify-content:space-between}
|
|
135
|
+
.c3 .view{animation:c3-fadein .25s}
|
|
136
|
+
.c3.ph .tabs,.c3.ph .dock,.c3.ph .hide-ph{display:none!important}
|
|
137
|
+
.c3.ph .bottombar{display:flex}
|
|
138
|
+
.c3.ph .shell{grid-template-columns:minmax(0,1fr)}
|
|
139
|
+
.c3.ph .grid{grid-template-columns:minmax(0,1fr)}
|
|
140
|
+
.c3.ph .nrow,.c3.ph .drow{grid-template-columns:auto minmax(0,1fr)}
|
|
141
|
+
.c3.ph .nrow .acts,.c3.ph .drow .acts{grid-column:2}
|
|
142
|
+
.c3.ph .quad{grid-template-columns:minmax(0,1fr)}
|
|
143
|
+
.c3.ph .top h1 .hide-ph{display:none}
|
|
144
|
+
.c3 .show-ph{display:none}
|
|
145
|
+
.c3.ph .show-ph{display:block}
|
|
146
|
+
.c3 .cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
|
|
147
|
+
.c3 .cal .dh{font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-align:center;padding:2px}
|
|
148
|
+
.c3 .cd{border:1px solid var(--border);border-radius:8px;background:var(--background);min-height:78px;padding:6px;display:grid;align-content:space-between;gap:4px;text-align:left;position:relative;overflow:hidden}
|
|
149
|
+
.c3 .cd .n{font:500 var(--fs-2) var(--mono)}
|
|
150
|
+
.c3 .cd.out{opacity:.4}
|
|
151
|
+
.c3 .cd.we{background:var(--muted)}
|
|
152
|
+
.c3 .cd.today{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
|
|
153
|
+
.c3 .cd .m{font-size:var(--fs-2);display:flex;gap:2px;flex-wrap:wrap;line-height:1}
|
|
154
|
+
.c3 .cd .heat{position:absolute;left:0;right:0;bottom:0;background:var(--acc);opacity:.22;transition:height .4s}
|
|
155
|
+
.c3.ph .cd{min-height:56px;padding:4px}
|
|
156
|
+
.c3 .job{display:grid;gap:6px}
|
|
157
|
+
.c3 .job .jl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;font-size:var(--fs-3);align-items:baseline}
|
|
158
|
+
.c3 .job .jl b{font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em}
|
|
159
|
+
.c3 .bul{font:500 var(--fs-4)/1 var(--mono);width:26px;height:26px;border:0;background:transparent;color:var(--foreground);display:grid;place-items:center;border-radius:6px;padding:0}
|
|
160
|
+
@media (hover:hover){
|
|
161
|
+
.c3 .bul:hover{background:var(--muted)}
|
|
162
|
+
}
|
|
163
|
+
.c3 .bul.dn{color:var(--muted-foreground)}
|
|
164
|
+
.c3 .legend{display:flex;gap:6px 14px;flex-wrap:wrap;font:var(--fs-2) var(--mono);color:var(--muted-foreground);align-items:center}
|
|
165
|
+
.c3.ph .cmp{grid-template-columns:minmax(0,1fr)}
|
|
166
|
+
.c3 .rise{animation:c3-rise .5s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0)*38ms)}
|
|
167
|
+
@keyframes c3-rise{from{opacity:0;transform:translateY(12px)}}
|
|
168
|
+
.c3 .draw{stroke-dasharray:1;animation:c3-draw 1.1s cubic-bezier(.3,.6,.2,1) backwards}
|
|
169
|
+
@keyframes c3-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
|
|
170
|
+
.c3 .rg{animation:c3-ringin 1s cubic-bezier(.3,.6,.2,1) backwards}
|
|
171
|
+
@keyframes c3-ringin{from{stroke-dasharray:0 999}}
|
|
172
|
+
.c3 .st.ok .ic path{stroke-dasharray:30;animation:c3-tick .5s .15s ease-out backwards}
|
|
173
|
+
@keyframes c3-tick{from{stroke-dashoffset:30}}
|
|
174
|
+
.c3 .cd .heat{transform-origin:bottom;animation:c3-sy .7s ease-out backwards}
|
|
175
|
+
@keyframes c3-sy{from{transform:scaleY(0)}}
|
|
176
|
+
.c3 .pbar{height:8px;background:var(--muted);border-radius:4px;overflow:hidden;min-width:80px}
|
|
177
|
+
.c3 .pbar i{display:block;height:100%;background:var(--acc);border-radius:4px;transform-origin:left;animation:c3-grow .8s cubic-bezier(.3,.6,.2,1) backwards}
|
|
178
|
+
.c3.noanim .grow,.c3.noanim .growy,.c3.noanim .pop,.c3.noanim .rise,.c3.noanim .draw,.c3.noanim .rg,.c3.noanim .cd .heat,.c3.noanim .pbar i,.c3.noanim .st.ok .ic path{animation:none}
|
|
179
|
+
.c3 .bump{animation:c3-bump .5s cubic-bezier(.3,1.6,.5,1)}
|
|
180
|
+
@keyframes c3-bump{40%{transform:scale(1.5)}}
|
|
181
|
+
@keyframes c3-toastin{from{opacity:0;transform:translate(-50%,18px) scale(.94)}}
|
|
182
|
+
.c3 .dots{display:inline-flex;gap:3px;align-items:center}
|
|
183
|
+
.c3 .dots i{width:5px;height:5px;border-radius:50%;background:var(--acc);animation:c3-dot 1.2s ease-in-out infinite}
|
|
184
|
+
.c3 .dots i:nth-child(2){animation-delay:.15s}
|
|
185
|
+
.c3 .dots i:nth-child(3){animation-delay:.3s}
|
|
186
|
+
@keyframes c3-dot{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}
|
|
187
|
+
.c3 #tabbtns{display:flex;gap:4px}
|
|
188
|
+
.c3 .seg button{transition:background .2s,color .2s,box-shadow .2s}
|
|
189
|
+
.c3 button.card,.c3 .ki,.c3 .ib,.c3 .pill{transition:transform .18s cubic-bezier(.3,.7,.2,1),box-shadow .2s,background .15s,border-color .15s,color .15s}
|
|
190
|
+
@media (hover:hover){
|
|
191
|
+
.c3 button.card:hover{transform:translateY(-2px);box-shadow:0 8px 22px oklch(0 0 0 / 8%)}
|
|
192
|
+
.c3 .nrow:hover .ki{transform:scale(1.08)}
|
|
193
|
+
.c3 .pill:hover{border-color:var(--ring)}
|
|
194
|
+
}
|
|
195
|
+
.c3 .ib:active,.c3 .pill:active,.c3 .chip2.lk:active{transform:scale(.93)}
|
|
196
|
+
.c3 .nrow.leave,.c3 .drow.leave,.c3 .row.leave{opacity:0;transform:translateX(26px);max-height:0!important;padding-block:0!important;border-width:0}
|
|
197
|
+
.c3 .lens .lbl{display:inline}
|
|
198
|
+
.c3.ph .lens .lbl{display:none}
|
|
199
|
+
.c3 .lvl{font:500 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);padding:6px 2px 0}
|
|
200
|
+
.c3 .vz{padding:4px 0 0}
|
|
201
|
+
.c3 .vz .chart{max-width:540px}
|
|
202
|
+
.c3{container-type:inline-size}
|
|
203
|
+
.c3 .brief{position:relative;isolation:isolate;display:grid;gap:16px}
|
|
204
|
+
.c3 .brief::before{content:"";position:absolute;left:-24px;right:-24px;top:-28px;height:380px;background:radial-gradient(60% 100% at 12% 0%,var(--accw),transparent 70%);z-index:-1;pointer-events:none}
|
|
205
|
+
.c3 .bcols{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:20px;align-items:start}
|
|
206
|
+
.c3 .bcol{display:grid;gap:16px;min-width:0}
|
|
207
|
+
.c3 .bcol.r{position:sticky;top:12px}
|
|
208
|
+
@container (max-width:859px){
|
|
209
|
+
.c3 .bcols{grid-template-columns:minmax(0,1fr)}
|
|
210
|
+
.c3 .bcol{display:contents}
|
|
211
|
+
.c3 .bcol.r{position:static}
|
|
212
|
+
.c3 .o1{order:1}
|
|
213
|
+
.c3 .o2{order:2}
|
|
214
|
+
.c3 .o3{order:3}
|
|
215
|
+
.c3 .o4{order:4}
|
|
216
|
+
.c3 .o5{order:5}
|
|
217
|
+
.c3 .o6{order:6}
|
|
218
|
+
.c3 .o7{order:7}
|
|
219
|
+
}
|
|
220
|
+
.c3 .brief .card{box-shadow:var(--sh1),var(--hi);border-radius:12px}
|
|
221
|
+
.c3 .brief .sect{padding:6px 16px 10px}
|
|
222
|
+
.c3 .brief .sect .sh2{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0 8px;border-bottom:1px solid var(--border)}
|
|
223
|
+
.c3 .brief .sect .sh2 h2{margin:0;font:500 var(--fs-2) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;display:flex;gap:8px;align-items:center}
|
|
224
|
+
.c3 .brief .nrow,.c3 .brief .drow{border-radius:8px;transition:background .15s,opacity .2s,transform .2s,max-height .2s}
|
|
225
|
+
@media (hover:hover){
|
|
226
|
+
.c3 .brief .nrow:hover,.c3 .brief .drow:hover{background:color-mix(in oklab,var(--muted) 60%,transparent)}
|
|
227
|
+
}
|
|
228
|
+
.c3 .brief .card.glass{box-shadow:var(--sh2),var(--hi)}
|
|
229
|
+
.c3 .glass{background:color-mix(in oklab,var(--card) 78%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);box-shadow:var(--sh2),var(--hi)}
|
|
230
|
+
.c3 .gate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 22px;padding:18px 20px;border-radius:16px;border:1px solid color-mix(in oklab,var(--acc) 30%,var(--border));background:linear-gradient(125deg,var(--accw),transparent 58%),var(--card);box-shadow:var(--sh2),var(--hi);position:relative}
|
|
231
|
+
.c3 .gate.done{background:linear-gradient(125deg,color-mix(in oklab,var(--success) 14%,transparent),transparent 58%),var(--card);border-color:color-mix(in oklab,var(--success) 32%,var(--border))}
|
|
232
|
+
.c3 .gate h2{margin:0;font-size:var(--fs-5);line-height:1.3;font-weight:600;text-wrap:balance}
|
|
233
|
+
.c3 .eyebrow{display:flex;gap:6px;align-items:center;font:500 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--acc)}
|
|
234
|
+
.c3 .gate.done .eyebrow{color:var(--success)}
|
|
235
|
+
.c3 .gate .side{display:grid;justify-items:center;align-content:start;gap:2px;grid-row:1/span 3;grid-column:2}
|
|
236
|
+
@container (max-width:520px){
|
|
237
|
+
.c3 .gate{grid-template-columns:minmax(0,1fr)}
|
|
238
|
+
.c3 .gate .side{grid-row:auto;grid-column:1;justify-items:start}
|
|
239
|
+
}
|
|
240
|
+
.c3 .flow{stroke-dasharray:4 5;animation:c3-flow 1.4s linear infinite}
|
|
241
|
+
@keyframes c3-flow{to{stroke-dashoffset:-9}}
|
|
242
|
+
.c3 .fuse{height:4px;border-radius:2px;background:var(--muted);overflow:hidden;width:150px;max-width:40%}
|
|
243
|
+
.c3 .fuse i{display:block;height:100%;border-radius:2px;transform-origin:left;animation:c3-grow .9s cubic-bezier(.3,.6,.2,1) backwards}
|
|
244
|
+
.c3.noanim .fuse i{animation:none}
|
|
245
|
+
.c3 .xp{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s cubic-bezier(.2,.7,.2,1),opacity .25s}
|
|
246
|
+
.c3 .xp.open{grid-template-rows:1fr;opacity:1}
|
|
247
|
+
.c3 .xp>.xi{overflow:hidden;min-height:0}
|
|
248
|
+
.c3 .chev{transition:transform .25s cubic-bezier(.3,.7,.2,1)}
|
|
249
|
+
.c3 [aria-expanded="true"] .chev{transform:rotate(90deg)}
|
|
250
|
+
.c3 .pbs{display:flex;gap:3px;height:12px;align-items:center}
|
|
251
|
+
.c3 .pbs button{border:0;padding:0;height:10px;border-radius:5px;transition:flex .4s,transform .15s,opacity .2s}
|
|
252
|
+
@media (hover:hover){
|
|
253
|
+
.c3 .pbs button:hover{transform:scaleY(1.5)}
|
|
254
|
+
}
|
|
255
|
+
.c3 .prow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:8px 6px;border-radius:8px;transition:background .15s}
|
|
256
|
+
@media (hover:hover){
|
|
257
|
+
.c3 .prow:hover{background:color-mix(in oklab,var(--muted) 70%,transparent)}
|
|
258
|
+
}
|
|
259
|
+
.c3 .cmpill{border:1px solid var(--border);border-radius:16px;padding:2px 10px;font:var(--fs-2) var(--mono);white-space:nowrap}
|
|
260
|
+
.c3 .cmpill.win{border-color:var(--acc);background:var(--accw)}
|
|
261
|
+
.c3 .swap{animation:c3-swap .38s cubic-bezier(.2,.7,.2,1)}
|
|
262
|
+
@keyframes c3-swap{from{opacity:0;transform:translateY(6px) scale(.99)}}
|
|
263
|
+
@keyframes c3-wy{50%{outline-color:color-mix(in oklab,var(--acc) 30%,transparent)}}
|
|
264
|
+
.c3.ph .whyp{display:none}
|
|
265
|
+
.c3 .bcol.r{max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:4px;margin:-4px}
|
|
266
|
+
.c3 .ribbon .chart{max-width:520px;margin-inline:auto}
|
|
267
|
+
.c3 .vday{position:relative;height:361px;margin-top:2px;user-select:none}
|
|
268
|
+
.c3 .vday .hr{position:absolute;left:0;right:0;border-top:1px solid var(--border);font:var(--fs-1) var(--mono);color:var(--muted-foreground)}
|
|
269
|
+
.c3 .vday .hr span{position:absolute;top:-7px;left:0;padding-right:5px;background:color-mix(in oklab,var(--card) 70%,transparent)}
|
|
270
|
+
.c3 .vday .vb{position:absolute;left:44px;right:0;border:0;border-radius:8px;background:var(--acc);color:var(--on-accent);text-align:left;padding:4px 10px;font-size:var(--fs-2);line-height:1.3;overflow:hidden;box-shadow:var(--sh1);transition:transform .18s cubic-bezier(.3,.7,.2,1),box-shadow .18s;animation:c3-swap .5s cubic-bezier(.2,.7,.2,1) backwards}
|
|
271
|
+
.c3 .vday .vb small{display:block;font:var(--fs-1) var(--mono);opacity:.88}
|
|
272
|
+
.c3 .vday .vb.hot{background:var(--destructive)}
|
|
273
|
+
@media (hover:hover){
|
|
274
|
+
.c3 .vday .vb:hover{transform:translateX(3px);box-shadow:var(--sh2)}
|
|
275
|
+
}
|
|
276
|
+
.c3 .vday .vf{position:absolute;left:44px;right:0;border-radius:8px;background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in oklab,var(--muted) 90%,transparent) 6px 8px);display:grid;place-items:center;font:var(--fs-1) var(--mono);color:var(--muted-foreground)}
|
|
277
|
+
.c3 .vday .vnow{position:absolute;left:36px;right:0;height:0;border-top:2px solid var(--foreground);z-index:3}
|
|
278
|
+
.c3 .vday .vnow::before,.c3 .vday .vnow::after{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--foreground)}
|
|
279
|
+
.c3 .vday .vnow::after{animation:c3-ping 1.8s ease-out infinite}
|
|
280
|
+
.c3 .vday .vdl{position:absolute;left:44px;right:0;height:0;border-top:2px solid var(--destructive);z-index:2}
|
|
281
|
+
.c3 .vday .vdl span{position:absolute;right:0;top:-18px;font:500 var(--fs-1) var(--mono);color:var(--destructive)}
|
|
282
|
+
.c3 .vday .vsc{position:absolute;left:36px;right:0;height:0;border-top:1px solid color-mix(in oklab,var(--foreground) 45%,transparent);pointer-events:none;opacity:0;transition:opacity .15s;z-index:5}
|
|
283
|
+
.c3 .vday .vsc span{position:absolute;right:0;top:-19px;background:var(--foreground);color:var(--background);font:var(--fs-1) var(--mono);padding:1px 7px;border-radius:5px;white-space:nowrap}
|
|
284
|
+
.c3 .lbar{display:flex;gap:2px;height:10px;margin-top:6px}
|
|
285
|
+
.c3 .lbar i{display:block;height:100%;border-radius:5px;transform-origin:left;animation:c3-grow .9s cubic-bezier(.3,.6,.2,1) backwards}
|
|
286
|
+
.c3.noanim .vday .vb,.c3.noanim .lbar i{animation:none}
|
|
287
|
+
.c3 .deck{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 10px 6px;margin:-10px -10px -2px;scrollbar-width:none;overscroll-behavior-x:contain}
|
|
288
|
+
.c3 .deck::-webkit-scrollbar{display:none}
|
|
289
|
+
.c3 .fc{flex:0 0 min(94%,700px);scroll-snap-align:start;min-height:244px;border-radius:16px;padding:16px 20px 14px;border:1px solid var(--border);background:var(--card);box-shadow:var(--sh1),var(--hi);position:relative;display:grid;align-content:space-between;gap:8px;transform:scale(.965);opacity:.72;transition:transform .4s cubic-bezier(.2,.7,.2,1),opacity .4s,box-shadow .25s;cursor:pointer;outline:none}
|
|
290
|
+
.c3 .fc.on{transform:none;opacity:1;box-shadow:var(--sh2),var(--hi)}
|
|
291
|
+
.c3 .fc:focus-visible{box-shadow:0 0 0 2px var(--ring),var(--sh2)}
|
|
292
|
+
@media (hover:hover){
|
|
293
|
+
.c3 .fc.on:hover{transform:translateY(-2px);box-shadow:var(--sh3),var(--hi)}
|
|
294
|
+
}
|
|
295
|
+
.c3 .fc.k-decision{background:linear-gradient(125deg,var(--accw),transparent 58%),var(--card);border-color:color-mix(in oklab,var(--acc) 30%,var(--border))}
|
|
296
|
+
.c3 .fc.k-decision.ok{background:linear-gradient(125deg,color-mix(in oklab,var(--success) 14%,transparent),transparent 58%),var(--card);border-color:color-mix(in oklab,var(--success) 30%,var(--border))}
|
|
297
|
+
.c3 .fc h2{margin:6px 0 0;font-size:var(--fs-5);line-height:1.3;font-weight:600;text-wrap:balance}
|
|
298
|
+
.c3 .fc .go{position:absolute;right:16px;bottom:12px;font-size:var(--fs-1);color:var(--muted-foreground);display:flex;gap:2px;align-items:center;opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s}
|
|
299
|
+
@media (hover:hover){
|
|
300
|
+
.c3 .fc.on:hover .go{opacity:1;transform:none}
|
|
301
|
+
}
|
|
302
|
+
.c3 .dk{display:flex;gap:6px;justify-content:center;align-items:center}
|
|
303
|
+
.c3 .dkd{width:7px;height:7px;border-radius:4px;border:0;background:var(--ring);padding:0;opacity:.5;transition:width .35s cubic-bezier(.3,.7,.2,1),background .3s,opacity .3s}
|
|
304
|
+
.c3 .dkd[aria-current="true"]{width:26px;background:var(--acc);opacity:1}
|
|
305
|
+
.c3 .brief .nrow,.c3 .brief .drow{position:relative;touch-action:pan-y;grid-template-columns:auto minmax(0,1fr) auto;cursor:pointer}
|
|
306
|
+
.c3 .brief .nrow{grid-template-columns:auto minmax(0,1fr)}
|
|
307
|
+
.c3 .brief .qa{position:absolute;right:4px;top:6px;display:flex;gap:6px;padding:4px 4px 4px 26px;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--card) 96%,transparent) 26%);opacity:0;transform:translateX(8px);transition:opacity .18s,transform .18s;pointer-events:none;z-index:2}
|
|
308
|
+
.c3 .brief .nrow:hover .qa,.c3 .brief .nrow:focus-within .qa,.c3 .brief .nrow:focus .qa,.c3 .brief .drow:hover .qa,.c3 .brief .drow:focus .qa,.c3 .brief .hrow:hover .qa{opacity:1;transform:none;pointer-events:auto}
|
|
309
|
+
@media (hover:none){
|
|
310
|
+
.c3 .brief .qa{position:static;opacity:1;transform:none;pointer-events:auto;background:none;grid-column:2;padding:0}
|
|
311
|
+
}
|
|
312
|
+
.c3 .brief .nrow:focus-visible,.c3 .brief .drow:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
|
|
313
|
+
.c3 .brief .nrow.swr{background:color-mix(in oklab,var(--success) 16%,transparent)}
|
|
314
|
+
.c3 .brief .nrow.swl{background:color-mix(in oklab,var(--warning) 16%,transparent)}
|
|
315
|
+
.c3 .rowbtn{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:transparent;padding:12px 0;text-align:left}
|
|
316
|
+
.c3 .hrow.undone .nb{text-decoration:line-through;color:var(--muted-foreground)}
|
|
317
|
+
.c3 .dotb{border:0;background:transparent;padding:3px;display:inline-flex}
|
|
318
|
+
.c3 .dotb .dotc{width:10px;height:10px}
|
|
319
|
+
.c3 .dotp{width:10px;height:10px;border-radius:50%;border:1.5px dashed var(--ring);display:inline-block;margin:3px}
|
|
320
|
+
.c3 .yc{display:grid;place-items:center;height:26px;border-radius:6px;font:500 var(--fs-1) var(--mono)}
|
|
321
|
+
.c3 .yc.c1{background:var(--acc);color:var(--on-accent)}
|
|
322
|
+
.c3 .yc.c2{background:var(--accw);color:var(--acc)}
|
|
323
|
+
.c3 .yc.c3{border:1px solid var(--ring);color:var(--muted-foreground)}
|
|
324
|
+
.c3 .yc.c4{border:1px dashed var(--ring);color:var(--muted-foreground)}
|
|
325
|
+
.c3 .deck{align-items:flex-start}
|
|
326
|
+
.c3 .fc{--tc:var(--acc);will-change:transform}
|
|
327
|
+
.c3 .fc[data-tag]{background:linear-gradient(125deg,color-mix(in oklab,var(--tc) 11%,transparent),transparent 58%),var(--card);border-color:color-mix(in oklab,var(--tc) 26%,var(--border))}
|
|
328
|
+
.c3 .fc.on{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
|
|
329
|
+
@media (hover:hover){
|
|
330
|
+
.c3 .fc.on:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-2px);transition:transform .12s ease-out,opacity .4s,box-shadow .25s}
|
|
331
|
+
}
|
|
332
|
+
.c3 .fc::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(260px 170px at var(--mx,50%) var(--my,0%),color-mix(in oklab,var(--foreground) 7%,transparent),transparent 70%);opacity:0;transition:opacity .25s}
|
|
333
|
+
.c3 .fc.on:hover::after{opacity:1}
|
|
334
|
+
.c3 .fc .ff{display:grid;gap:8px;align-content:space-between;min-height:212px}
|
|
335
|
+
.c3 .fc .fb{display:none}
|
|
336
|
+
.c3 .fc.back .ff{display:none}
|
|
337
|
+
.c3 .fc.back .fb{display:grid;gap:12px}
|
|
338
|
+
.c3 .fc.back{min-height:0;cursor:default;align-content:start}
|
|
339
|
+
.c3 .fc.fl-out{animation:c3-flout .17s ease-in forwards}
|
|
340
|
+
.c3 .fc.fl-in{animation:c3-flin .3s cubic-bezier(.2,.8,.2,1)}
|
|
341
|
+
@keyframes c3-flout{to{transform:perspective(900px) rotateY(88deg);opacity:.6}}
|
|
342
|
+
@keyframes c3-flin{from{transform:perspective(900px) rotateY(-88deg);opacity:.6}}
|
|
343
|
+
.c3 .fc[data-tag=critical].on:not(.back):not(.ok)::before{content:"";position:absolute;inset:-1px;border-radius:inherit;border:1px solid var(--tc);pointer-events:none;animation:c3-cpulse 3s ease-out infinite}
|
|
344
|
+
@keyframes c3-cpulse{0%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(1.02)}}
|
|
345
|
+
.c3 .tg{display:inline-flex;gap:5px;align-items:center;font:500 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:2px 9px 2px 7px;border-radius:999px;color:var(--tc);background:color-mix(in oklab,var(--tc) 13%,transparent)}
|
|
346
|
+
.c3 .tg.f{background:var(--tc);color:var(--background)}
|
|
347
|
+
.c3 .tg .ic{width:14px;height:14px}
|
|
348
|
+
.c3 .fc .flipg{position:absolute;right:16px;top:14px;color:var(--muted-foreground);opacity:.35;transition:opacity .2s,transform .4s}
|
|
349
|
+
@media (hover:hover){
|
|
350
|
+
.c3 .fc.on:hover .flipg{opacity:.9;transform:rotate(-90deg)}
|
|
351
|
+
}
|
|
352
|
+
.c3 .fc.back .flipg{display:none}
|
|
353
|
+
.c3 .rsv{position:absolute;right:14px;top:12px;display:flex;gap:5px;align-items:center;font:500 var(--fs-1) var(--mono);color:var(--success)}
|
|
354
|
+
.c3 .fh{display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer}
|
|
355
|
+
.c3 .fh .why2{font-size:var(--fs-2);color:var(--muted-foreground);display:flex;gap:5px;align-items:center}
|
|
356
|
+
.c3 .case{display:grid;gap:10px;cursor:default}
|
|
357
|
+
.c3 .case .sit{margin:0;font-size:var(--fs-3);line-height:1.45;font-weight:500;text-wrap:pretty}
|
|
358
|
+
.c3 .chgl{list-style:none;margin:0;padding:0;display:grid;gap:6px}
|
|
359
|
+
.c3 .chgl li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;font-size:var(--fs-3)}
|
|
360
|
+
.c3 .chgl li>.ic{color:var(--muted-foreground)}
|
|
361
|
+
.c3 .chgl li.ok>.ic{color:var(--success)}
|
|
362
|
+
.c3 .chgl li.warn>.ic{color:var(--warning)}
|
|
363
|
+
.c3 .chgl li.bad>.ic{color:var(--destructive)}
|
|
364
|
+
.c3 .chgl .tag{justify-self:end}
|
|
365
|
+
.c3 .opts{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:stretch}
|
|
366
|
+
.c3 .opt{--tc:var(--acc);text-align:left;border:1px solid var(--border);background:var(--card);border-radius:12px;padding:10px 12px;display:grid;gap:7px;align-content:start;opacity:.74;transition:transform .2s,box-shadow .2s,opacity .2s,border-color .2s;position:relative}
|
|
367
|
+
.c3 .opt.rec{border-color:color-mix(in oklab,var(--tc) 55%,var(--border));box-shadow:var(--sh2),0 0 0 3px color-mix(in oklab,var(--tc) 10%,transparent);opacity:1;background:linear-gradient(160deg,color-mix(in oklab,var(--tc) 9%,transparent),transparent 60%),var(--card)}
|
|
368
|
+
.c3 .opt[aria-pressed=true]{opacity:1;border-color:var(--tc);outline:2px solid color-mix(in oklab,var(--tc) 38%,transparent);outline-offset:1px}
|
|
369
|
+
.c3 .opt:not(.rec)[aria-pressed=false]{filter:saturate(.7)}
|
|
370
|
+
@media (hover:hover){
|
|
371
|
+
.c3 .opt:hover{transform:translateY(-2px);opacity:1}
|
|
372
|
+
}
|
|
373
|
+
.c3 .opt .rk{display:inline-flex;gap:4px;align-items:center;font:500 var(--fs-1) var(--mono);color:var(--tc)}
|
|
374
|
+
.c3 .opt .rk:empty{display:none}
|
|
375
|
+
.c3 .opt .rk,.c3 .opt b{padding-right:24px}
|
|
376
|
+
.c3 .opt b{font-size:var(--fs-3);font-weight:600;line-height:1.3}
|
|
377
|
+
.c3 .opt .fx{display:grid;gap:3px;font-size:var(--fs-2);color:var(--muted-foreground)}
|
|
378
|
+
.c3 .opt .fx span{display:flex;gap:6px;align-items:center}
|
|
379
|
+
.c3 .opt .fx .ok{color:var(--success)}
|
|
380
|
+
.c3 .opt .fx .warn{color:var(--warning)}
|
|
381
|
+
.c3 .opt .fx .bad{color:var(--destructive)}
|
|
382
|
+
.c3 .opt .pk{position:absolute;right:10px;top:10px;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--ring);display:grid;place-items:center;color:var(--background)}
|
|
383
|
+
.c3 .opt[aria-pressed=true] .pk{background:var(--tc);border-color:var(--tc)}
|
|
384
|
+
.c3 .opt .pk .ic{width:11px;height:11px;stroke-width:3;opacity:0}
|
|
385
|
+
.c3 .opt[aria-pressed=true] .pk .ic{opacity:1}
|
|
386
|
+
.c3 .conf{height:3px;border-radius:2px;background:var(--muted);overflow:hidden}
|
|
387
|
+
.c3 .conf i{display:block;height:100%;background:var(--tc);transform-origin:left;animation:c3-grow .8s backwards}
|
|
388
|
+
.c3 .slt{--p:0;position:relative;height:44px;border-radius:22px;background:var(--muted);border:1px solid var(--border);overflow:hidden;display:flex;align-items:center;justify-content:center;user-select:none;touch-action:none}
|
|
389
|
+
.c3 .slt::before{content:"";position:absolute;left:0;top:0;bottom:0;width:calc(var(--p)*100%);background:color-mix(in oklab,var(--tc) 30%,transparent)}
|
|
390
|
+
.c3 .slt .lb{position:relative;font:500 var(--fs-2) var(--mono);letter-spacing:.04em;opacity:calc(1 - var(--p)*1.5);background:linear-gradient(90deg,var(--muted-foreground) 38%,var(--foreground) 50%,var(--muted-foreground) 62%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:c3-shim 2.6s linear infinite}
|
|
391
|
+
@keyframes c3-shim{from{background-position:120% 0}to{background-position:-120% 0}}
|
|
392
|
+
.c3 .slt .th{position:absolute;left:3px;top:3px;width:36px;height:36px;border-radius:50%;border:0;background:var(--tc);color:var(--background);display:grid;place-items:center;box-shadow:var(--sh2);cursor:grab;transition:transform .3s cubic-bezier(.3,1.4,.5,1);animation:c3-thint 4.5s ease-in-out 1.2s infinite;touch-action:none}
|
|
393
|
+
.c3 .slt .th:active{cursor:grabbing;animation:none}
|
|
394
|
+
.c3 .slt .th.nd{animation:c3-nudge .8s}
|
|
395
|
+
@keyframes c3-thint{0%,84%,100%{transform:none}92%{transform:translateX(12px)}}
|
|
396
|
+
@keyframes c3-nudge{30%{transform:translateX(18px)}60%{transform:translateX(4px)}}
|
|
397
|
+
.c3 .slt.alt{--tc:var(--muted-foreground)}
|
|
398
|
+
.c3 .cft{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:var(--fs-2);color:var(--muted-foreground)}
|
|
399
|
+
.c3 .cft span{display:inline-flex;gap:5px;align-items:center}
|
|
400
|
+
.c3 .cft .cm{display:inline-flex;gap:6px;align-items:center}
|
|
401
|
+
.c3 .cft .cm .conf{width:56px}
|
|
402
|
+
.c3 .qd{border-left:2px solid var(--ring);padding:2px 0 2px 10px;font-size:var(--fs-3);white-space:pre-wrap;margin:0}
|
|
403
|
+
.c3 .fun{display:grid;gap:4px}
|
|
404
|
+
.c3 .fun div{display:grid;grid-template-columns:62px 1fr 34px;gap:8px;align-items:center;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
405
|
+
.c3 .fun i{display:block;height:8px;border-radius:4px;background:var(--ring);transform-origin:left;animation:c3-grow .7s backwards}
|
|
406
|
+
.c3 .fun .hot i{background:var(--destructive)}
|
|
407
|
+
.c3 .fun .hot{color:var(--destructive)}
|
|
408
|
+
.c3 .brief .nrow .nb,.c3 .brief .drow .nb{padding-right:52px}
|
|
409
|
+
.c3 .sg{position:absolute;right:30px;top:12px;display:flex;gap:7px;align-items:center;pointer-events:none}
|
|
410
|
+
.c3 .nrow .sg{right:8px}
|
|
411
|
+
.c3 .sg .g{display:inline-flex;opacity:.2;transition:opacity .2s}
|
|
412
|
+
.c3 .sg .g .ic{width:15px;height:15px}
|
|
413
|
+
.c3 .sg .g.y{opacity:.95;color:var(--acc)}
|
|
414
|
+
.c3 .sg .g.y.l{animation:c3-sgl 3.2s ease-in-out infinite}
|
|
415
|
+
.c3 .sg .g.y.r{animation:c3-sgr 3.2s ease-in-out infinite}
|
|
416
|
+
@keyframes c3-sgl{0%,70%,100%{transform:none}82%{transform:translateX(-3px)}}
|
|
417
|
+
@keyframes c3-sgr{0%,70%,100%{transform:none}82%{transform:translateX(3px)}}
|
|
418
|
+
@media (hover:hover){
|
|
419
|
+
.c3 .nrow:hover .sg .g,.c3 .drow:hover .sg .g{opacity:.55}
|
|
420
|
+
.c3 .nrow:hover .sg .g.y,.c3 .drow:hover .sg .g.y{opacity:1}
|
|
421
|
+
}
|
|
422
|
+
.c3 .brief .nrow>*:not(.rv):not(.xp):not(.sg),.c3 .brief .drow>*:not(.rv):not(.xp):not(.sg){transform:translateX(calc(var(--dx,0px)*.55))}
|
|
423
|
+
.c3 .brief .nrow.dr,.c3 .brief .drow.dr{transition:none;cursor:grabbing}
|
|
424
|
+
.c3 .rv{position:absolute;top:50%;translate:0 -50%;opacity:var(--d,0);pointer-events:none}
|
|
425
|
+
.c3 .rv.l{left:10px;color:var(--warning)}
|
|
426
|
+
.c3 .rv.r{right:10px;color:var(--success)}
|
|
427
|
+
.c3 .brief .nrow.swr,.c3 .brief .drow.swr{background:color-mix(in oklab,var(--success) 15%,transparent)}
|
|
428
|
+
.c3 .brief .nrow.swl,.c3 .brief .drow.swl{background:color-mix(in oklab,var(--warning) 15%,transparent)}
|
|
429
|
+
.c3 .stance{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:0 2px 8px}
|
|
430
|
+
.c3 .stance>div:nth-child(2){flex:1;min-width:0;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
|
|
431
|
+
.c3 .stance b{font-size:var(--fs-3)}
|
|
432
|
+
.c3 .stance .dim{font-size:var(--fs-3)}
|
|
433
|
+
.c3 .dp button{padding:4px 8px}
|
|
434
|
+
.c3 .lens{display:flex;align-items:center;gap:6px;max-width:100%}
|
|
435
|
+
.c3 .lens .seg{overflow-x:auto;min-width:0}
|
|
436
|
+
.c3 .lh{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:2px 0 6px}
|
|
437
|
+
.c3 .lh b{font-size:var(--fs-3);line-height:1.3;display:block;text-wrap:balance}
|
|
438
|
+
.c3 .lh .dim{font-size:var(--fs-2);line-height:1.35}
|
|
439
|
+
.c3 .rpane.zi{animation:c3-zin .38s cubic-bezier(.2,.8,.2,1)}
|
|
440
|
+
.c3 .rpane.zo{animation:c3-zout .38s cubic-bezier(.2,.8,.2,1)}
|
|
441
|
+
@keyframes c3-zin{from{opacity:0;transform:scale(1.07)}}
|
|
442
|
+
@keyframes c3-zout{from{opacity:0;transform:scale(.93)}}
|
|
443
|
+
.c3 .rdet{display:grid;gap:6px;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--card);box-shadow:var(--sh1);margin-top:8px;animation:c3-fadein .25s}
|
|
444
|
+
.c3 .rdet .rr{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-3)}
|
|
445
|
+
.c3 .rdet .rr .ic{margin-top:2px;color:var(--muted-foreground)}
|
|
446
|
+
.c3 .vday .vb.rt{background:var(--muted);color:var(--muted-foreground);box-shadow:none}
|
|
447
|
+
.c3 .vday .vb.sel{outline:2px solid var(--foreground);outline-offset:1px}
|
|
448
|
+
.c3 .brief .nrow>*:not(.rv):not(.xp):not(.sg),.c3 .brief .drow>*:not(.rv):not(.xp):not(.sg){transition:transform .28s cubic-bezier(.3,1.3,.5,1)}
|
|
449
|
+
.c3 .brief .nrow.dr>*,.c3 .brief .drow.dr>*{transition:none}
|
|
450
|
+
.c3 .brief .dr{user-select:none}
|
|
451
|
+
.c3 .deck{scroll-padding-inline:10px;-webkit-mask-image:linear-gradient(90deg,var(--mask) calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,var(--mask) calc(100% - 22px),transparent)}
|
|
452
|
+
.c3 .brief .list{margin-inline:-8px}
|
|
453
|
+
.c3 .brief .nrow,.c3 .brief .drow{padding-inline:8px}
|
|
454
|
+
.c3 .brief .sect{padding-bottom:10px}
|
|
455
|
+
.c3 .stance{padding:0 2px 10px}
|
|
456
|
+
.c3 .ib{position:relative}
|
|
457
|
+
@keyframes c3-bdn{from{transform:translateY(-70px);opacity:0}}
|
|
458
|
+
.c3.ph .grab{display:block}
|
|
459
|
+
@keyframes c3-slideup{from{transform:translateY(60px);opacity:0}}
|
|
460
|
+
@keyframes c3-eqb{0%,100%{height:4px}50%{height:15px}}
|
|
461
|
+
.c3 .sbb::before{display:none}
|
|
462
|
+
.c3.ph .drow>.acts:has(.chev){display:none}
|
|
463
|
+
.c3 .tick{overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--card);padding:7px 0;box-shadow:var(--sh1);cursor:pointer;-webkit-mask-image:linear-gradient(90deg,transparent,var(--mask) 14px,var(--mask) calc(100% - 14px),transparent);mask-image:linear-gradient(90deg,transparent,var(--mask) 14px,var(--mask) calc(100% - 14px),transparent)}
|
|
464
|
+
.c3 .tkt{display:inline-flex;white-space:nowrap;animation:c3-tk 38s linear infinite;will-change:transform}
|
|
465
|
+
.c3 .tick:active .tkt,.c3 .tick:hover .tkt{animation-play-state:paused}
|
|
466
|
+
@keyframes c3-tk{to{transform:translateX(-50%)}}
|
|
467
|
+
.c3 .tki{display:inline-flex;gap:6px;align-items:center;padding-right:30px;font-size:var(--fs-3)}
|
|
468
|
+
.c3 .tki b{font:500 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase}
|
|
469
|
+
.c3.ph .lens .seg button{padding:4px 7px}
|
|
470
|
+
.c3 .bs .sb .ribbon{width:100%}
|
|
471
|
+
.c3 .calbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
|
|
472
|
+
.c3 .calbody{display:grid;gap:12px;min-width:0}
|
|
473
|
+
.c3 .calbody.zi{animation:c3-zin .38s cubic-bezier(.2,.8,.2,1)}
|
|
474
|
+
.c3 .calbody.zo{animation:c3-zout .38s cubic-bezier(.2,.8,.2,1)}
|
|
475
|
+
.c3 .calbody.sn{animation:c3-slnext .3s cubic-bezier(.2,.8,.2,1)}
|
|
476
|
+
.c3 .calbody.sp{animation:c3-slprev .3s cubic-bezier(.2,.8,.2,1)}
|
|
477
|
+
@keyframes c3-slnext{from{opacity:0;transform:translateX(28px)}}
|
|
478
|
+
@keyframes c3-slprev{from{opacity:0;transform:translateX(-28px)}}
|
|
479
|
+
.c3 .fc.solo{flex:none;width:100%;scroll-snap-align:none;opacity:1}
|
|
480
|
+
.c3 .fc.solo .ff{min-height:0;gap:14px}
|
|
481
|
+
.c3 .fc.solo .fcm{align-items:flex-start}
|
|
482
|
+
.c3 .stg{display:flex;gap:6px}
|
|
483
|
+
.c3 .sgb{border:1px solid var(--border);background:var(--card);border-radius:10px;padding:4px 8px;display:flex;gap:6px;align-items:center;font:500 var(--fs-2) var(--mono);color:var(--muted-foreground);transition:background .2s,border-color .2s}
|
|
484
|
+
.c3 .sgb svg.ic{width:16px;height:16px}
|
|
485
|
+
.c3 .sgb[aria-pressed="true"]{background:var(--accw);border-color:var(--acc);color:var(--foreground)}
|
|
486
|
+
.c3 .vday .vb.past{opacity:.45}
|
|
487
|
+
.c3 .vday .vb.skip{background:repeating-linear-gradient(135deg,var(--muted) 0 6px,transparent 6px 12px);color:var(--muted-foreground);text-decoration:line-through;box-shadow:none;outline:1px dashed var(--ring)}
|
|
488
|
+
.c3 .cmain{display:flex;flex-direction:column;gap:8px;min-height:0}
|
|
489
|
+
.c3 .pdots{display:flex;gap:6px;flex-wrap:wrap}
|
|
490
|
+
.c3 .pdots i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px dashed var(--ring);color:var(--muted-foreground)}
|
|
491
|
+
.c3 .pdots i.d{border:0;background:color-mix(in oklab,var(--success) 16%,transparent);color:var(--success)}
|
|
492
|
+
.c3 .pdots .ic{width:14px;height:14px}
|
|
493
|
+
.c3 .dstrip{border:1px solid var(--border);border-radius:12px;background:var(--card);padding:6px 8px 2px;box-shadow:var(--sh1)}
|
|
494
|
+
.c3 .dstrip .hit{fill:transparent;cursor:pointer}
|
|
495
|
+
.c3 .card{padding:var(--sp-4);gap:var(--sp-3)}
|
|
496
|
+
.c3 .fc{padding:var(--sp-4)}
|
|
497
|
+
.c3 .brief .sect{padding:var(--sp-1) var(--sp-4) var(--sp-3)}
|
|
498
|
+
.c3 .brief .sect .sh2{padding:var(--sp-3) 0 var(--sp-2)}
|
|
499
|
+
.c3 .brief .list{margin-inline:calc(var(--sp-2)*-1)}
|
|
500
|
+
.c3 .brief .nrow,.c3 .brief .drow{padding:var(--sp-3) var(--sp-2)}
|
|
501
|
+
.c3 .brief .sect .list{margin-top:var(--sp-1)}
|
|
502
|
+
.c3 .bcol,.c3 .bcols{gap:var(--sp-4)}
|
|
503
|
+
.c3 .calwrap{display:grid;gap:var(--sp-4)}
|
|
504
|
+
.c3 .calbar{margin:0}
|
|
505
|
+
.c3 .calbody{gap:var(--sp-4)}
|
|
506
|
+
.c3 .lh,.c3 .stance{padding:0}
|
|
507
|
+
.c3 .case{gap:var(--sp-3)}
|
|
508
|
+
.c3 .chgl{gap:var(--sp-2)}
|
|
509
|
+
.c3 .opts{gap:var(--sp-3)}
|
|
510
|
+
.c3 .rdet{padding:var(--sp-3);margin-top:var(--sp-2)}
|
|
511
|
+
.c3.ph .brief .list{margin-inline:calc(var(--sp-2)*-1)}
|
|
512
|
+
.c3 .tdy{display:inline-flex;gap:6px;align-items:center;font:500 var(--fs-2) var(--mono);border:1px solid var(--border);background:var(--muted);color:var(--muted-foreground);border-radius:999px;padding:4px 12px;min-height:32px}
|
|
513
|
+
.c3 .tdy.on{background:var(--acc);border-color:var(--acc);color:var(--on-accent);cursor:pointer;animation:c3-tdyin .4s cubic-bezier(.3,1.4,.5,1);box-shadow:var(--sh2)}
|
|
514
|
+
.c3 .tdy:not(.on){opacity:.7;cursor:default}
|
|
515
|
+
.c3 .tdy .ic{width:14px;height:14px}
|
|
516
|
+
@keyframes c3-tdyin{from{transform:scale(.85);opacity:0}}
|
|
517
|
+
.c3 .sfc{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--sp-5);align-items:start}
|
|
518
|
+
.c3 .sfh{display:flex;gap:8px;align-items:center;font:500 var(--fs-2) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-3)}
|
|
519
|
+
.c3 .sfr{display:flex;gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-3)}
|
|
520
|
+
.c3 .stt{display:grid;justify-items:center;gap:0;padding:6px 2px;border-radius:10px;background:color-mix(in oklab,var(--c) 10%,transparent);color:var(--c)}
|
|
521
|
+
.c3 .stt b{font:600 var(--fs-4)/1.2 var(--mono)}
|
|
522
|
+
.c3 .stt i{font:500 var(--fs-1) var(--mono);font-style:normal;color:var(--muted-foreground);letter-spacing:.02em}
|
|
523
|
+
.c3 .fcl{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2);border:0;font:inherit;color:inherit}
|
|
524
|
+
.c3 .fli{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--border);border-radius:12px;background:var(--card);box-shadow:var(--sh1);cursor:pointer;transition:transform .15s,box-shadow .2s}
|
|
525
|
+
.c3 .fli>b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:600 var(--fs-1) var(--mono);background:color-mix(in oklab,var(--tc) 14%,transparent);color:var(--tc)}
|
|
526
|
+
.c3 .fli .ft{font-weight:600;line-height:1.3}
|
|
527
|
+
.c3 .fli .fw{font-size:var(--fs-2);color:var(--muted-foreground);margin-top:2px}
|
|
528
|
+
.c3 .fli .fm{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:6px;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
529
|
+
.c3 .fli .fm span{display:inline-flex;gap:4px;align-items:center}
|
|
530
|
+
.c3 .fli .fm .rc{color:var(--acc)}
|
|
531
|
+
@media (hover:hover){
|
|
532
|
+
.c3 .fli:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
|
|
533
|
+
}
|
|
534
|
+
.c3 .pg{width:100%;max-width:1100px;height:auto;display:block}
|
|
535
|
+
.c3 .chart.md{max-width:880px;margin-inline:auto}
|
|
536
|
+
.c3 .pg text{font:var(--fs-2) var(--mono);fill:var(--muted-foreground)}
|
|
537
|
+
.c3 .pg .t{fill:var(--foreground)}
|
|
538
|
+
.c3 .pgl{display:flex;gap:var(--sp-4);flex-wrap:wrap;font:var(--fs-1) var(--mono);color:var(--muted-foreground)}
|
|
539
|
+
.c3 .prow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-3);align-items:center;padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--border)}
|
|
540
|
+
.c3 .prow .ki{width:28px;height:28px}
|
|
541
|
+
.c3 .prow small{display:block;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
542
|
+
.c3 .chip-s{display:inline-flex;gap:4px;align-items:center;font:500 var(--fs-2) var(--mono);color:var(--c)}
|
|
543
|
+
.c3 .dir{--tc:var(--warning)}
|
|
544
|
+
.c3 .dial{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:2px 0}
|
|
545
|
+
.c3 .dial span{display:grid;justify-items:center;gap:4px;font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em}
|
|
546
|
+
.c3 .dial span i{display:block;width:100%;height:8px;border-radius:4px;background:var(--muted)}
|
|
547
|
+
.c3 .dial span.on{color:var(--foreground)}
|
|
548
|
+
.c3 .dial span.on i{background:var(--c);box-shadow:0 0 0 3px color-mix(in oklab,var(--c) 22%,transparent)}
|
|
549
|
+
.c3 .sevs{display:flex;gap:var(--sp-3);flex-wrap:wrap;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
550
|
+
.c3 .sevs span{display:inline-flex;gap:4px;align-items:center}
|
|
551
|
+
.c3 .krg{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto;gap:var(--sp-3);align-items:center;padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}
|
|
552
|
+
.c3 .krg:last-child{border-bottom:0}
|
|
553
|
+
.c3 .krg b{display:block;line-height:1.3}
|
|
554
|
+
.c3 .krg small{display:block;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
555
|
+
.c3 .krt{position:relative;height:10px;border-radius:5px;background:var(--muted);margin:8px 0 10px}
|
|
556
|
+
.c3 .krt i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--c)}
|
|
557
|
+
.c3 .krt u{position:absolute;top:-4px;width:2px;height:18px;background:var(--foreground);text-decoration:none}
|
|
558
|
+
.c3 .krt s{position:absolute;top:-3px;width:14px;height:14px;margin-left:-7px;border-radius:50%;border:2px dashed var(--c);background:var(--card);text-decoration:none}
|
|
559
|
+
.c3 .krt em{position:absolute;top:14px;font:var(--fs-1) var(--mono);font-style:normal;color:var(--muted-foreground);transform:translateX(-50%);white-space:nowrap}
|
|
560
|
+
.c3 .sgl{display:grid;gap:0}
|
|
561
|
+
.c3 .sgr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-3);align-items:start;padding:var(--sp-3) var(--sp-2);border-bottom:1px solid var(--border);cursor:pointer;border-radius:8px;position:relative}
|
|
562
|
+
.c3 .sgr:last-child{border-bottom:0}
|
|
563
|
+
@media (hover:hover){
|
|
564
|
+
.c3 .sgr:hover{background:color-mix(in oklab,var(--muted) 60%,transparent)}
|
|
565
|
+
}
|
|
566
|
+
.c3 .sgr .ki{width:30px;height:30px}
|
|
567
|
+
.c3 .sgr .st1{font-weight:600;line-height:1.3}
|
|
568
|
+
.c3 .sgr .st2{font-size:var(--fs-2);color:var(--muted-foreground);margin-top:2px}
|
|
569
|
+
.c3 .sgr .st3{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:6px;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
570
|
+
.c3 .sgr .st3 span{display:inline-flex;gap:4px;align-items:center}
|
|
571
|
+
.c3 .sgr .sv{font:500 var(--fs-1) var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--c)}
|
|
572
|
+
.c3 .sgr .xp{grid-column:1/-1}
|
|
573
|
+
.c3 .sgr .spk{width:64px;height:26px}
|
|
574
|
+
.c3 .calwrap .bcol.r{position:static;max-height:none;overflow:visible;padding:0;margin:0}
|
|
575
|
+
.c3 .cmain>section{flex:1;min-height:0;display:flex!important;flex-direction:column;gap:6px!important}
|
|
576
|
+
.c3 .cmain .fc{overflow-y:auto;scrollbar-width:none}
|
|
577
|
+
.c3 .fc .fcm{gap:var(--sp-3)}
|
|
578
|
+
.c3 .fc .chgl{margin:0}
|
|
579
|
+
.c3 .fc .fcl{margin:0}
|
|
580
|
+
.c3 .fc .stt-row{margin-top:2px}
|
|
581
|
+
.c3 .fc .pdots{margin-top:2px}
|
|
582
|
+
.c3 .fc .ff{grid-template-rows:auto minmax(0,1fr);align-content:stretch;gap:var(--sp-3)}
|
|
583
|
+
.c3 .cf{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-areas:"t h" "f f";gap:var(--sp-3) var(--sp-5);align-items:center;align-content:space-between;height:100%}
|
|
584
|
+
.c3 .fc:not(.back){grid-template-rows:minmax(0,1fr)}
|
|
585
|
+
.c3 .cf .cfa{grid-area:t;min-width:0}
|
|
586
|
+
.c3 .cf .cfh{grid-area:h;min-width:0;display:grid;align-content:center;justify-items:end}
|
|
587
|
+
.c3 .cf h2{font-size:var(--fs-5);line-height:1.25;margin:0;text-wrap:balance}
|
|
588
|
+
.c3 .cf .cfs{color:var(--muted-foreground);font-size:var(--fs-3);margin-top:var(--sp-1);text-wrap:pretty}
|
|
589
|
+
.c3 .cf .cff{grid-area:f;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-4);flex-wrap:wrap;border-top:1px solid color-mix(in oklab,var(--tc) 18%,var(--border));padding-top:var(--sp-3)}
|
|
590
|
+
.c3 .cf .cfx{display:flex;gap:6px var(--sp-4);flex-wrap:wrap;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
591
|
+
.c3 .cf .cfx span{display:inline-flex;gap:5px;align-items:center}
|
|
592
|
+
.c3 .cf .cfr{display:inline-flex;gap:6px;align-items:center;color:var(--tc);font:500 var(--fs-2) var(--mono)}
|
|
593
|
+
.c3 .cf .cfr.n{color:var(--muted-foreground)}
|
|
594
|
+
.c3 .hero{width:100%;max-width:360px}
|
|
595
|
+
.c3 .hero svg{width:100%;height:auto;display:block}
|
|
596
|
+
.c3 .hero .hr svg,.c3 .hero .hg svg{width:auto;height:auto;flex:none}
|
|
597
|
+
.c3 .hero svg.ic{width:16px;height:16px;flex:none}
|
|
598
|
+
.c3 .hero svg.ic.sm{width:14px;height:14px}
|
|
599
|
+
.c3 .hero text{font:var(--fs-1) var(--mono);fill:var(--muted-foreground)}
|
|
600
|
+
.c3 .hero .t{fill:var(--foreground)}
|
|
601
|
+
.c3 .hn{display:grid;gap:2px}
|
|
602
|
+
.c3 .hn .a{display:flex;align-items:baseline;gap:6px}
|
|
603
|
+
.c3 .hn .a b{font:600 44px/1 var(--mono);letter-spacing:-.02em}
|
|
604
|
+
.c3 .hn .a span{font:500 var(--fs-4) var(--mono);color:var(--muted-foreground)}
|
|
605
|
+
.c3 .hn .d{font:500 var(--fs-2) var(--mono)}
|
|
606
|
+
.c3 .hr{display:flex;gap:var(--sp-4);align-items:center;justify-content:flex-end}
|
|
607
|
+
.c3 .hr .c{display:grid;gap:2px;min-width:0}
|
|
608
|
+
.c3 .hr .c b{font-size:var(--fs-4);line-height:1.2}
|
|
609
|
+
.c3 .hr .c span{font-size:var(--fs-2);color:var(--muted-foreground)}
|
|
610
|
+
.c3 .hrw{display:grid;gap:var(--sp-2)}
|
|
611
|
+
.c3 .hrr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-2);align-items:center;font-size:var(--fs-3);line-height:1.3}
|
|
612
|
+
.c3 .hrr .ic{color:var(--muted-foreground)}
|
|
613
|
+
.c3 .hrr.ok .ic,.c3 .hrr.ok i{color:var(--success)}
|
|
614
|
+
.c3 .hrr.warn .ic,.c3 .hrr.warn i{color:var(--warning)}
|
|
615
|
+
.c3 .hrr.bad .ic,.c3 .hrr.bad i{color:var(--destructive)}
|
|
616
|
+
.c3 .hrr i{font:500 var(--fs-1) var(--mono);font-style:normal;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.04em}
|
|
617
|
+
.c3 .hbs{display:grid;gap:var(--sp-3)}
|
|
618
|
+
.c3 .hbr{display:grid;gap:4px}
|
|
619
|
+
.c3 .hbr .l{display:flex;justify-content:space-between;font-size:var(--fs-2);gap:8px}
|
|
620
|
+
.c3 .hbr .l i{font:var(--fs-2) var(--mono);font-style:normal;color:var(--muted-foreground)}
|
|
621
|
+
.c3 .hbr .tk{height:8px;border-radius:4px;background:var(--muted);overflow:hidden}
|
|
622
|
+
.c3 .hbr .tk u{display:block;height:100%;border-radius:4px;background:var(--c);text-decoration:none;transform-origin:left;animation:c3-grow .7s backwards}
|
|
623
|
+
.c3 .htl{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:var(--sp-2);width:100%}
|
|
624
|
+
.c3 .htl>div{display:grid;justify-items:center;gap:0;padding:10px 6px;border-radius:12px;background:color-mix(in oklab,var(--c) 10%,transparent);text-align:center}
|
|
625
|
+
.c3 .htl b{font:600 var(--fs-6)/1.1 var(--mono);color:var(--c)}
|
|
626
|
+
.c3 .htl span{font-size:var(--fs-2);color:var(--muted-foreground);line-height:1.3}
|
|
627
|
+
.c3 .hg{display:flex;gap:var(--sp-3);align-items:center;justify-content:flex-end;min-width:0}
|
|
628
|
+
.c3 .hg svg{width:64px;height:64px;flex:none}
|
|
629
|
+
.c3 .hg .ki{width:56px!important;height:56px!important;flex:none}
|
|
630
|
+
.c3 .hch{display:grid;gap:var(--sp-3);position:relative;padding-left:18px}
|
|
631
|
+
.c3 .hch::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:repeating-linear-gradient(var(--ring) 0 4px,transparent 4px 8px)}
|
|
632
|
+
.c3 .hch>div{position:relative;font-size:var(--fs-2);line-height:1.25}
|
|
633
|
+
.c3 .hch{gap:var(--sp-2)}
|
|
634
|
+
.c3 .hch>div::before{content:"";position:absolute;left:-18px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px var(--card)}
|
|
635
|
+
.c3 .hch>div{white-space:nowrap}
|
|
636
|
+
.c3 .hch b{font-size:var(--fs-2);margin-right:6px}
|
|
637
|
+
.c3 .hch span{font:var(--fs-2) var(--mono);color:var(--c)}
|
|
638
|
+
.c3 .cdeck{display:grid;gap:8px}
|
|
639
|
+
.c3 .fc{container-type:inline-size;container-name:card}
|
|
640
|
+
.c3 .cf{grid-template-areas:"t h" "f f"}
|
|
641
|
+
.c3 .cfk{display:none;gap:var(--sp-3);align-items:stretch}
|
|
642
|
+
.c3 .kp{display:grid;gap:0;padding:6px 12px;border-radius:12px;background:color-mix(in oklab,var(--c,var(--tc)) 10%,transparent);min-width:78px}
|
|
643
|
+
.c3 .kp b{font:600 var(--fs-5)/1.2 var(--mono);color:var(--c,var(--tc))}
|
|
644
|
+
.c3 .kp b span{text-transform:none;font:inherit;letter-spacing:0;color:inherit}
|
|
645
|
+
.c3 .kp span{font-size:var(--fs-1);color:var(--muted-foreground);letter-spacing:.03em;text-transform:uppercase;font-family:var(--mono)}
|
|
646
|
+
@container card (min-width:500px){
|
|
647
|
+
.c3 .fc .cf{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-template-areas:"t h" "k h" "f f";grid-template-rows:auto minmax(0,1fr) auto;align-items:start}
|
|
648
|
+
.c3 .fc .cf .cfh{align-self:stretch;align-content:center}
|
|
649
|
+
.c3 .fc .cf .cfk{display:flex;align-self:end}
|
|
650
|
+
.c3 .fc .hero{max-width:430px}
|
|
651
|
+
.c3 .fc .hero svg{max-height:176px}
|
|
652
|
+
}
|
|
653
|
+
@container card (min-width:400px) and (max-width:499px){
|
|
654
|
+
.c3 .fc .cf{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"t h" "f f"}
|
|
655
|
+
.c3 .fc .cf .cfk{display:none}
|
|
656
|
+
}
|
|
657
|
+
@container card (max-width:399px){
|
|
658
|
+
.c3 .fc .cf{grid-template-columns:minmax(0,1fr);grid-template-areas:"h" "k" "t" "f";grid-template-rows:minmax(0,1fr) auto auto auto;gap:var(--sp-2);align-content:stretch}
|
|
659
|
+
.c3 .fc .cf .cfh{justify-items:center;align-self:center;min-height:92px}
|
|
660
|
+
.c3 .fc .cf .cfk{display:flex}
|
|
661
|
+
.c3 .fc .cf .kp{flex:1;min-width:0;padding:4px 8px;text-align:center}
|
|
662
|
+
.c3 .fc .cf .kp b{font-size:var(--fs-4)}
|
|
663
|
+
.c3 .fc .hero{max-width:none}
|
|
664
|
+
.c3 .fc .hero svg{max-height:132px}
|
|
665
|
+
.c3 .fc .cf h2{font-size:var(--fs-4)}
|
|
666
|
+
.c3 .fc .cf .cfs{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--fs-2)}
|
|
667
|
+
.c3 .fc .cf .cff{padding-top:var(--sp-2);gap:var(--sp-1) var(--sp-3)}
|
|
668
|
+
.c3 .fc .cf .cfx span:nth-child(n+2){display:none}
|
|
669
|
+
.c3 .fc .hn .a b{font-size:40px}
|
|
670
|
+
.c3 .fc .hg .hch{display:none}
|
|
671
|
+
.c3 .fc .hg,.c3 .fc .hr{justify-content:center}
|
|
672
|
+
.c3 .fc .hbs{gap:var(--sp-2)}
|
|
673
|
+
.c3 .fc .htl b{font-size:var(--fs-5)}
|
|
674
|
+
.c3 .fc .htl>div{padding:6px 4px}
|
|
675
|
+
.c3 .fc .hrw .hrr:nth-child(n+4){display:none}
|
|
676
|
+
}
|
|
677
|
+
.c3 .fc .hero .draw{animation:none}
|
|
678
|
+
.c3 .fc.on .hero .draw{animation:c3-draw 1s ease-out backwards}
|
|
679
|
+
.c3 .fc.on .hero .rg{animation:c3-ringin 1s ease-out backwards}
|
|
680
|
+
.c3 .fc.on .hbr u{animation:c3-grow .8s backwards}
|
|
681
|
+
.c3 .fc.on .htl>div{animation:c3-popin .45s cubic-bezier(.3,1.4,.5,1) backwards}
|
|
682
|
+
.c3 .fc.on .htl>div:nth-child(2){animation-delay:.08s}
|
|
683
|
+
.c3 .fc.on .htl>div:nth-child(3){animation-delay:.16s}
|
|
684
|
+
.c3 .fc.on .htl>div:nth-child(4){animation-delay:.24s}
|
|
685
|
+
.c3 .fc.on .htl>div:nth-child(5){animation-delay:.32s}
|
|
686
|
+
.c3 .fc.on .hrr{animation:c3-fadein .4s backwards}
|
|
687
|
+
.c3 .fc.on .hrr:nth-child(2){animation-delay:.08s}
|
|
688
|
+
.c3 .fc.on .hrr:nth-child(3){animation-delay:.16s}
|
|
689
|
+
.c3 .fc.on .kp{animation:c3-fadein .5s backwards}
|
|
690
|
+
.c3 .fc.on .kp:nth-child(2){animation-delay:.1s}
|
|
691
|
+
.c3 .fc.on .kp:nth-child(3){animation-delay:.2s}
|
|
692
|
+
.c3 .hero rect[data-a],.c3 .hero g[data-a]{cursor:pointer;transition:filter .15s,opacity .15s}
|
|
693
|
+
.c3 .hero rect[data-a]:hover,.c3 .hero g[data-a]:hover{filter:brightness(1.12) saturate(1.2)}
|
|
694
|
+
.c3 .hrr[data-a]{cursor:pointer;border-radius:8px;transition:background .15s}
|
|
695
|
+
.c3 .hrr[data-a]:hover{background:color-mix(in oklab,var(--muted) 70%,transparent)}
|
|
696
|
+
.c3 .hbr{cursor:default;transition:transform .15s}
|
|
697
|
+
@media (hover:hover){
|
|
698
|
+
.c3 .hbr:hover{transform:translateX(2px)}
|
|
699
|
+
.c3 .hbr:hover u{filter:saturate(1.4)}
|
|
700
|
+
}
|
|
701
|
+
.c3 .hn svg{cursor:crosshair;touch-action:pan-y}
|
|
702
|
+
.c3 .hn .cur{opacity:0;transition:opacity .15s}
|
|
703
|
+
.c3 .hn svg:hover .cur{opacity:1}
|
|
704
|
+
.c3 .wrow .chips .jc{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
705
|
+
.c3 .fl2{display:flex;gap:var(--sp-4);flex-wrap:wrap;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
706
|
+
.c3 .flow{display:grid;gap:var(--sp-2)}
|
|
707
|
+
.c3 .flow>div{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:var(--sp-3);align-items:center;font-size:var(--fs-2)}
|
|
708
|
+
.c3 .flow .b{height:10px;border-radius:5px;background:var(--muted);overflow:hidden}
|
|
709
|
+
.c3 .flow .b i{display:block;height:100%;border-radius:5px;background:var(--c);transform-origin:left;animation:c3-grow .7s backwards}
|
|
710
|
+
.c3 .jobr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-3);align-items:center;padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}
|
|
711
|
+
.c3 .jobr:last-child{border-bottom:0}
|
|
712
|
+
.c3 .jobr b{display:block;line-height:1.3}
|
|
713
|
+
.c3 .jobr small{font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
714
|
+
@keyframes c3-fadein{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
|
|
715
|
+
@keyframes c3-slidein{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
|
|
716
|
+
@keyframes c3-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
|
|
717
|
+
@keyframes c3-popin{from{transform:scale(0)}to{transform:scale(1)}}
|
|
718
|
+
@keyframes c3-growy{from{transform:scaleY(0)}to{transform:scaleY(1)}}
|
|
719
|
+
@keyframes c3-pulse{0%,100%{opacity:1}50%{opacity:.35}}
|
|
720
|
+
@keyframes c3-ping{0%{transform:scale(.6);opacity:.7}100%{transform:scale(2.2);opacity:0}}
|
|
721
|
+
@keyframes c3-wave{0%,100%{height:6px}50%{height:28px}}
|
|
722
|
+
@media (prefers-reduced-motion: reduce){
|
|
723
|
+
.c3 *::before,.c3 *::after{animation:none!important;transition:none!important}
|
|
724
|
+
}
|
|
725
|
+
.c3 svg.pg .crit{font-weight:600}
|
|
726
|
+
@keyframes c3-recp{50%{opacity:.3}}
|
|
727
|
+
.c3.ph .recg .rt{display:none}
|
|
728
|
+
.c3 .c3add{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-2)}
|
|
729
|
+
.c3 .c3add .form input[type=text]{border-radius:20px;padding:8px 14px;font-size:var(--fs-4)}
|
|
730
|
+
.c3 .c3add .chips2{min-height:22px}
|
|
731
|
+
.c3 .c3spin{display:inline-flex;animation:c3-c3spin 1.1s linear infinite}
|
|
732
|
+
@keyframes c3-c3spin{to{transform:rotate(360deg)}}
|
|
733
|
+
@media (prefers-reduced-motion:reduce){
|
|
734
|
+
.c3 .c3spin{animation:none}
|
|
735
|
+
}
|
|
736
|
+
.c3 .c3steps{display:grid;gap:var(--sp-2)}
|
|
737
|
+
.c3 .c3sh{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2)}
|
|
738
|
+
.c3 .c3sh h4{margin:0;font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;display:flex;gap:6px;align-items:center}
|
|
739
|
+
.c3 .c3steps ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}
|
|
740
|
+
.c3 .c3steps li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-2);align-items:start;font-size:var(--fs-3)}
|
|
741
|
+
.c3 .c3steps li .c3sg{color:var(--muted-foreground);padding-top:2px}
|
|
742
|
+
.c3 .c3steps li.ok .c3sg{color:var(--success)}
|
|
743
|
+
.c3 .c3steps li.warn .c3sg{color:var(--warning)}
|
|
744
|
+
.c3 .c3stt.dn{text-decoration:line-through;color:var(--muted-foreground)}
|
|
745
|
+
.c3 .c3res{display:block;font-size:var(--fs-2);margin-top:2px}
|
|
746
|
+
.c3 .c3sd{grid-column:1/-1;border-left:2px solid var(--border);padding-left:var(--sp-3)}
|
|
747
|
+
.c3 .c3jf{display:grid;gap:var(--sp-2)}
|
|
748
|
+
.c3 .c3jf label{display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--sp-2);align-items:center}
|
|
749
|
+
.c3 .c3jf input{width:100%}
|
|
750
|
+
.c3.ph .c3add{width:100%;margin:0}
|
|
751
|
+
.c3.ph .c3add .chips2:empty{display:none}
|
|
752
|
+
.c3 input[type=date],.c3 input[type=time]{font:inherit;font-size:var(--fs-3);padding:6px 8px;border:1px solid var(--border);background:var(--background);color:var(--foreground);min-width:0;border-radius:6px}
|
|
753
|
+
.c3 .nrow[data-ag] .c3strip:empty{display:none}
|
|
754
|
+
/* console3.css addition: the slide placeholder on a case file that cannot send yet (the mockup's slider always works). */
|
|
755
|
+
.c3 .slt[aria-disabled="true"]{opacity:.55}
|
|
756
|
+
.c3 .slt[aria-disabled="true"] .th{animation:none;cursor:not-allowed}
|
|
757
|
+
/* console3.css addition: a row's case file is drawn only while it is open; the mockup draws every case file. */
|
|
758
|
+
.c3 .xp:not(.open)>.xi{visibility:hidden}
|
|
759
|
+
/* console3.css addition: a pill that is not built yet reads as off. */
|
|
760
|
+
.c3 .pill:disabled{opacity:.5;cursor:not-allowed}
|
|
761
|
+
/* console3.css addition: the slide thumb is a real button; the mockup's has no disabled look. */
|
|
762
|
+
.c3 .slt .th:disabled{cursor:not-allowed}
|
|
763
|
+
/* console3.css addition: a card takes a vertical swipe (open or close the case file) without the page scrolling under it. The mockup sets this on the phone only (.ph1 .fc). */
|
|
764
|
+
.c3 .fc{touch-action:pan-x}
|
|
765
|
+
|
|
766
|
+
/* ====== R4b: the Initiatives lifecycle lens, Releases, Timeline, Reports, outbox, slide, document panel, new-initiative sheet, sessions and agent card. ======
|
|
767
|
+
* The generator that produced the rules above (see the header) dropped the classes these views draw. The rules below are
|
|
768
|
+
* the same generator run again over the mockup (console3.html lines 5 to 966) with only the shell dropped (stage, dock,
|
|
769
|
+
* sheet, palette, toast, banner, scrim, phone tray); the ones the three first views already had are not repeated. The
|
|
770
|
+
* header lines "left out: the Initiatives, Reports and Release classes" are superseded by this block. One deliberate change:
|
|
771
|
+
* the mockup's `.sn` (a timeline snapshot button) is scoped as `.sntrack .sn`, because `.calbody.sn` above is the Calendar's
|
|
772
|
+
* slide animation class and a bare `.sn` rule would restyle it. */
|
|
773
|
+
.c3 .mk{font:var(--fs-2) var(--mono);width:14px;text-align:center}
|
|
774
|
+
.c3 .mk.w{color:var(--success)}
|
|
775
|
+
.c3 .mk.n{color:var(--acc)}
|
|
776
|
+
.c3 .mk.b{color:var(--warning)}
|
|
777
|
+
.c3 .mk.w{animation:c3-pulse 1.6s infinite}
|
|
778
|
+
.c3 .hx{display:grid;gap:6px;padding:4px 0 8px 36px;font-size:var(--fs-3)}
|
|
779
|
+
.c3 .hx div{display:flex;gap:8px;align-items:flex-start}
|
|
780
|
+
.c3 .hx .ic{margin-top:2px;color:var(--muted-foreground)}
|
|
781
|
+
.c3 .lc{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
|
|
782
|
+
.c3 .lc>div{display:grid;justify-items:center;gap:4px;font:var(--fs-1) var(--mono);color:var(--muted-foreground);text-align:center}
|
|
783
|
+
.c3 .lc i{display:block;width:100%;height:8px;border-radius:4px;background:var(--muted)}
|
|
784
|
+
.c3 .lc>div.d i{background:var(--success)}
|
|
785
|
+
.c3 .lc>div.n i{background:var(--acc);box-shadow:0 0 0 3px var(--accw)}
|
|
786
|
+
.c3 .lc>div.n{color:var(--foreground)}
|
|
787
|
+
.c3 .lkrow{display:flex;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-1) 0 var(--sp-2)}
|
|
788
|
+
.c3 .dfi ins{background:color-mix(in oklab,var(--success) 22%,transparent);text-decoration:none;border-radius:3px}
|
|
789
|
+
.c3 .dfi del{background:color-mix(in oklab,var(--destructive) 18%,transparent);text-decoration:line-through;border-radius:3px}
|
|
790
|
+
.c3 .dsec{border-left:3px solid var(--border);padding:var(--sp-2) var(--sp-3);display:grid;gap:4px}
|
|
791
|
+
.c3 .dsec.warn{border-color:var(--warning);background:color-mix(in oklab,var(--warning) 7%,transparent);border-radius:0 8px 8px 0}
|
|
792
|
+
.c3 .dsec h4{margin:0;font:600 var(--fs-3) var(--sans,inherit)}
|
|
793
|
+
.c3 .dsec p,.c3 .dsec .dt{margin:0;font-size:var(--fs-3);line-height:1.5}
|
|
794
|
+
.c3 .dsec .dt[contenteditable=true]{outline:2px solid var(--acc);border-radius:6px;padding:4px 6px;background:var(--card)}
|
|
795
|
+
.c3 .dsec .mt{display:flex;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-1);color:var(--muted-foreground);font-family:var(--mono)}
|
|
796
|
+
.c3 .dpn{display:grid;gap:var(--sp-3)}
|
|
797
|
+
.c3 .dpn textarea,.c3 .dpn input,.c3 .wform input,.c3 .wform select{width:100%;font:inherit;font-size:var(--fs-3);padding:8px 10px;border:1px solid var(--ring);border-radius:8px;background:var(--card);color:var(--foreground);box-sizing:border-box}
|
|
798
|
+
.c3 .dpn textarea{min-height:72px;resize:vertical}
|
|
799
|
+
.c3 .hx{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}
|
|
800
|
+
.c3 .hx li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-2);font-size:var(--fs-2);align-items:start}
|
|
801
|
+
.c3 .hx .w{color:var(--muted-foreground);font:var(--fs-1) var(--mono)}
|
|
802
|
+
.c3 .hx small{display:block;color:var(--muted-foreground)}
|
|
803
|
+
.c3 .sntrack{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative;margin-bottom:var(--sp-3)}
|
|
804
|
+
.c3 .sntrack::before{content:"";position:absolute;left:10%;right:10%;top:9px;height:2px;background:var(--border)}
|
|
805
|
+
.c3 .sntrack .sn{background:none;border:0;display:grid;justify-items:center;gap:2px;cursor:pointer;color:var(--foreground);padding:0}
|
|
806
|
+
.c3 .sntrack .sn i{width:14px;height:14px;border-radius:50%;background:var(--card);border:2px solid var(--ring);z-index:1;transition:transform .2s}
|
|
807
|
+
.c3 .sntrack .sn[data-past=true] i{border-color:var(--acc)}
|
|
808
|
+
.c3 .sntrack .sn[aria-pressed=true] i{background:var(--acc);transform:scale(1.35)}
|
|
809
|
+
.c3 .sntrack .sn b{font:500 var(--fs-1) var(--mono)}
|
|
810
|
+
.c3 .sntrack .sn span{font-size:var(--fs-1);color:var(--muted-foreground);text-align:center;line-height:1.2}
|
|
811
|
+
.c3 .snh{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}
|
|
812
|
+
.c3 .lc{grid-template-columns:repeat(9,minmax(0,1fr));gap:4px}
|
|
813
|
+
.c3 .c3rel{display:grid;gap:var(--sp-3)}
|
|
814
|
+
.c3 .c3dt{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}
|
|
815
|
+
.c3 .c3dt>span:first-child{width:56px}
|
|
816
|
+
.c3 .c3ag{display:grid;gap:var(--sp-2)}
|
|
817
|
+
.c3 .c3ag:empty{display:none}
|
|
818
|
+
.c3 .c3res2{display:grid;gap:var(--sp-2)}
|
|
819
|
+
.c3 .c3strip{align-items:center}
|
|
820
|
+
.c3 .c3mv{align-items:center}
|
|
821
|
+
.c3 .c3res2 .tg,.c3 .c3ag .tg{justify-self:start;width:auto}
|
|
822
|
+
/* console3.css addition: a view that mounts where there is no .c3 root (the document rail, the outbox, the sessions panel, the sheet)
|
|
823
|
+
carries `c3 c3e`. c3e keeps a nested or embedded root from taking the page-level grid and container of `.c3` above. */
|
|
824
|
+
.c3.c3e{display:block;container-type:normal}
|
|
825
|
+
.c3.c3e>*+*{margin-top:var(--sp-3)}
|
|
826
|
+
/* console3.css addition: the slide as a bare control (outbox) has no .case or .fc to set --tc; slide-confirm.js sets it on the control itself. */
|
|
827
|
+
.c3 .slt.done{opacity:.7}
|
|
828
|
+
.c3 .slt-hint{font:var(--fs-2) var(--mono);color:var(--muted-foreground);min-height:16px;margin-top:var(--sp-1)}
|
|
829
|
+
/* console3.css addition: a row of the lifecycle lens that opens an initiative; the mockup's `.tt` is a span, here it is a button. */
|
|
830
|
+
.c3 .tt.btn{border:0;background:transparent;padding:0;text-align:left;font:inherit;color:inherit}
|
|
831
|
+
.c3 .nrow .tt.btn:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
|
|
832
|
+
/* console3.css addition: a card in a deck that opens a real record (the mockup's cards flip; these open the initiative). */
|
|
833
|
+
.c3 .fc.lnk{cursor:pointer}
|
|
834
|
+
/* console3.css addition: the swipe-reveal strips of a run row are drawn by the swipe gesture; the agent card keeps them quiet at rest. */
|
|
835
|
+
.c3 .c3ag .fold.w{display:grid;gap:6px}
|
|
836
|
+
/* console3.css addition: a gantt row that is on the critical path reads in the mockup's bold label (svg.pg .crit above); here its bar is outlined. */
|
|
837
|
+
.c3 svg.pg .critbar{stroke:var(--destructive);stroke-width:1.5;fill:none}
|
|
838
|
+
/* console3.css addition: a text control inside a case file row that is not in a .form (summary lines, the reply tray). */
|
|
839
|
+
.c3 .form.row{display:flex;gap:var(--sp-2);align-items:center}
|
|
840
|
+
.c3 .form.row input[type=text]{flex:1 1 140px}
|
|
841
|
+
/* console3.css addition: a select next to pills, in .chips2. */
|
|
842
|
+
.c3 .chips2 select{flex:0 1 auto}
|
|
843
|
+
/* ===== console3 wave E2b: the shell strip (ticker, bell, recording group), the banner, the popups and the phone tiles =====
|
|
844
|
+
* Lifted from console3.html: .nbdg, .banner, .scrim, .sheet.bs, .grab, .nli, .eq (lines 489 to 513), .tickrow, .tray, .tl (539 to 552),
|
|
845
|
+
* .recg, .recdot (916 to 924). Same generator rules as above (.c3 prefix, mockup variables to D38 tokens). Two differences: the mockup's
|
|
846
|
+
* tile class `.tl` is also its timeline class, so the tile is scoped as `.tray .tl`; and the shell strip, the sheet base rules (the
|
|
847
|
+
* mockup's lines 143 to 145, 180, 496 to 498) are added here because the three views never drew a sheet. */
|
|
848
|
+
.c3.c3shell{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2);align-items:center;padding:6px var(--sp-3);border-bottom:1px solid var(--border);background:var(--background)}
|
|
849
|
+
.c3.c3shell[hidden]{display:none}
|
|
850
|
+
.c3 .shell-tick{min-width:0}
|
|
851
|
+
.c3 .shell-tools{display:inline-flex;gap:var(--sp-2);align-items:center}
|
|
852
|
+
.c3.c3shell.ph{grid-template-columns:minmax(0,1fr);padding:var(--sp-2) var(--sp-3)}
|
|
853
|
+
.c3 .tickrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}
|
|
854
|
+
.c3 .tki{display:inline-flex}
|
|
855
|
+
.c3 .tick.static{padding:7px 12px;-webkit-mask-image:none;mask-image:none}
|
|
856
|
+
.c3 .tick.static .tkt{animation:none;display:flex}
|
|
857
|
+
.c3 .nbdg{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:8px;background:var(--destructive);color:var(--on-accent);font:600 var(--fs-1) var(--mono);display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px var(--background)}
|
|
858
|
+
.c3 .nbdg[hidden]{display:none}
|
|
859
|
+
.c3 .banner{position:fixed;top:12px;left:50%;translate:-50% 0;z-index:30;display:flex;gap:8px;align-items:center;max-width:min(430px,calc(100vw - 24px));padding:9px 14px;border-radius:14px;background:var(--foreground);color:var(--background);font-size:var(--fs-3);box-shadow:var(--sh3);cursor:pointer;border:0;text-align:left;animation:c3-bdn .5s cubic-bezier(.3,1.4,.5,1)}
|
|
860
|
+
.c3 .banner b{font:500 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase;opacity:.75}
|
|
861
|
+
.c3 .banner .bx{margin-left:var(--sp-2);background:none;border:0;color:inherit;cursor:pointer;opacity:.75;padding:0 2px}
|
|
862
|
+
.c3.c3pop{position:fixed;inset:0;z-index:60;pointer-events:none;container-type:normal}
|
|
863
|
+
.c3.c3pop>*{pointer-events:auto}
|
|
864
|
+
.c3 .scrim{position:fixed;inset:0;background:oklch(0 0 0 / 32%);z-index:19;animation:c3-fadein .2s}
|
|
865
|
+
.c3 .sheet{position:fixed;top:12px;right:12px;bottom:12px;width:340px;background:var(--card);border:1px solid var(--ring);border-radius:12px;box-shadow:0 12px 40px oklch(0 0 0 / 18%);z-index:20;display:grid;grid-template-rows:auto 1fr;animation:c3-slidein .22s ease-out}
|
|
866
|
+
.c3 .sheet .sb{padding:var(--sp-4);overflow:auto;display:grid;gap:var(--sp-3);align-content:start}
|
|
867
|
+
.c3 .sheet .sh2{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}
|
|
868
|
+
.c3 .sheet.bs{z-index:20}
|
|
869
|
+
.c3 .grab{display:none;width:36px;height:4px;border-radius:2px;background:var(--ring);margin:8px auto 0;opacity:.6}
|
|
870
|
+
.c3.ph .grab{display:block}
|
|
871
|
+
.c3.ph .sheet{top:auto;left:0;right:0;bottom:0;width:auto;max-height:78%;border-radius:16px 16px 0 0}
|
|
872
|
+
.c3.ph .sheet.bs{animation:c3-slideup .3s cubic-bezier(.2,.8,.2,1);max-height:84%}
|
|
873
|
+
.c3 .nli{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:transparent;padding:10px 4px;border-bottom:1px solid var(--border);border-radius:8px;color:inherit;font:inherit;cursor:pointer}
|
|
874
|
+
.c3 .nli .ki{width:30px;height:30px}
|
|
875
|
+
.c3 .nli .t{font-size:var(--fs-3);line-height:1.35}
|
|
876
|
+
.c3 .nli .w{font:var(--fs-1) var(--mono);color:var(--muted-foreground);text-align:right}
|
|
877
|
+
@media (hover:hover){.c3 .nli:hover{background:var(--muted)}}
|
|
878
|
+
.c3 .eq{display:inline-flex;gap:2px;align-items:flex-end;height:16px;color:var(--acc)}
|
|
879
|
+
.c3 .eq i{width:3px;background:currentColor;border-radius:2px;animation:c3-eqb .9s ease-in-out infinite}
|
|
880
|
+
.c3 .eq i:nth-child(2){animation-delay:.2s}.c3 .eq i:nth-child(3){animation-delay:.4s}
|
|
881
|
+
.c3 .tray{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
|
|
882
|
+
.c3 .tray .tl{border:1px solid var(--border);background:var(--card);border-radius:14px;padding:8px 2px 6px;display:grid;justify-items:center;gap:0;box-shadow:var(--sh1),var(--hi);position:relative;transition:transform .15s;color:inherit;font:inherit;cursor:pointer;min-height:64px}
|
|
883
|
+
.c3 .tray .tl:active{transform:scale(.96)}
|
|
884
|
+
.c3 .tray .tl .ic{color:var(--muted-foreground)}
|
|
885
|
+
.c3 .tray .tl .n{font:600 var(--fs-4)/1.2 var(--mono)}
|
|
886
|
+
.c3 .tray .tl .l{font-size:var(--fs-1);color:var(--muted-foreground)}
|
|
887
|
+
.c3 .tray .tl.hot::after{content:"";position:absolute;top:8px;right:16px;width:7px;height:7px;border-radius:50%;background:var(--destructive)}
|
|
888
|
+
.c3 .recg{display:inline-flex;align-items:stretch;border:1px solid color-mix(in oklch,var(--destructive) 55%,transparent);border-radius:8px;overflow:hidden;color:var(--destructive);background:color-mix(in oklch,var(--destructive) 7%,var(--card))}
|
|
889
|
+
.c3 .recg>*{display:inline-flex;align-items:center;gap:6px;padding:0 10px;height:32px;font:500 var(--fs-2) var(--mono);color:inherit}
|
|
890
|
+
.c3 .recg>*+*{border-left:1px solid color-mix(in oklch,var(--destructive) 35%,transparent)}
|
|
891
|
+
.c3 .recg button{border:0;background:none;cursor:pointer;color:inherit}
|
|
892
|
+
.c3 .recg button:hover{background:color-mix(in oklch,var(--destructive) 14%,transparent)}
|
|
893
|
+
.c3 .recg[hidden]{display:none}
|
|
894
|
+
.c3 .recdot{width:8px;height:8px;border-radius:50%;background:var(--destructive);animation:c3-recp 1.2s ease-in-out infinite}
|
|
895
|
+
.c3 .recdot.static,.c3 .recg.paused .recdot{animation:none}
|
|
896
|
+
.c3 .recg.paused .recdot{background:var(--muted-foreground)}
|
|
897
|
+
.c3 .recg.paused{color:var(--muted-foreground);border-color:var(--border)}
|
|
898
|
+
.c3 .recg .pmc-icon{width:14px;height:14px}
|
|
899
|
+
.fr-link .shell-recdot{position:absolute;top:3px;right:3px;width:8px;height:8px;border-radius:50%;background:var(--destructive);box-shadow:0 0 0 2px var(--background)}
|
|
900
|
+
.fr-link .shell-recdot[hidden]{display:none}
|
|
901
|
+
.c3.c3shell.ph{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}
|
|
902
|
+
.c3.c3shell.ph .shell-tools{display:contents}
|
|
903
|
+
.c3.c3shell.ph [data-shell="bell"]{order:-2}
|
|
904
|
+
.c3.c3shell.ph .shell-tick{order:-1}
|
|
905
|
+
.c3.c3shell.ph .recg{order:1;grid-column:1/-1;justify-self:start}
|
|
906
|
+
.c3.c3shell.ph .tray{order:2;grid-column:1/-1}
|
|
907
|
+
.c3 .tray .tl .n[hidden]{display:none}
|
|
908
|
+
|
|
909
|
+
/* ── Phone tap targets ── every control is at least 44px on a phone (pm-r27, pm-frame-phone, pm-reports-phone). The mockup's
|
|
910
|
+
* 34px and 30px icon buttons and 23px to 26px segment and pill buttons grow here; the family row wraps rather than run off screen. */
|
|
911
|
+
@media (max-width: 760px) {
|
|
912
|
+
.c3 .ib, .c3 .ib.sm { width: 44px; height: 44px; }
|
|
913
|
+
.c3 .slt { height: 52px; border-radius: 26px; }
|
|
914
|
+
.c3 .slt .th { width: 44px; height: 44px; }
|
|
915
|
+
.c3 .seg { flex-wrap: wrap; }
|
|
916
|
+
.c3 .seg button, .c3 .pill { min-height: 44px; }
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
/* ===== console3 shell page (/c3.html, pm/c3-shell.js): the header, the tab bar, the three-column layout and the dock =====
|
|
920
|
+
* Lifted from console3.html (lines 39 to 60 .stage .shell .main .top .tools .tabs .ind, 156 to 172 .dock .dk-h .dk-p, 869 the
|
|
921
|
+
* narrow rule). Class names differ from the mockup's (`c3top`, `c3tabs`, `c3grid`, `c3main`, `c3dock`) because `.c3.ph .tabs` and
|
|
922
|
+
* `.c3.ph .dock` above hide the mockup's own names on a phone, and this page keeps its tabs there. Append-only. */
|
|
923
|
+
.c3.c3pg{overflow-x:clip;max-width:1412px;margin:0 auto;padding:16px 16px 24px;min-height:100vh}
|
|
924
|
+
.c3 .c3grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start}
|
|
925
|
+
.c3 .c3main{min-width:0;display:grid;gap:14px;container-type:inline-size;align-content:start}
|
|
926
|
+
.c3 .c3top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
|
|
927
|
+
.c3 .c3top h1{margin:0;font-size:var(--fs-5);font-weight:600;display:flex;gap:8px;align-items:center}
|
|
928
|
+
.c3 .c3top .sub{font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
929
|
+
.c3 .c3top .tools{display:flex;gap:6px;align-items:center}
|
|
930
|
+
.c3 .c3top a.ib{text-decoration:none}
|
|
931
|
+
.c3 .c3top .ib .bdg{position:absolute;top:-6px;right:-6px;box-shadow:0 0 0 2px var(--background)}
|
|
932
|
+
.c3 .c3pg-bell{display:inline-flex;gap:6px;align-items:center}
|
|
933
|
+
.c3 .c3pg-menuwrap{position:relative;display:inline-flex}
|
|
934
|
+
.c3 .c3pg-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:25;min-width:200px;display:grid;gap:2px;padding:6px;background:var(--card);border:1px solid var(--ring);border-radius:10px;box-shadow:var(--sh3)}
|
|
935
|
+
.c3 .c3pg-mi{display:flex;gap:8px;align-items:center;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:6px;color:var(--foreground);text-decoration:none;font:inherit;font-size:var(--fs-3);cursor:pointer}
|
|
936
|
+
.c3 .c3pg-mi:hover,.c3 .c3pg-mi:focus-visible{background:var(--muted)}
|
|
937
|
+
.c3 .c3pg-tick{display:contents}
|
|
938
|
+
.c3[data-tab="brief"] .c3pg-tick{display:none}
|
|
939
|
+
.c3 .c3tabs{position:relative;display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
|
|
940
|
+
.c3 .c3tabs::-webkit-scrollbar{display:none}
|
|
941
|
+
.c3 .c3tabs button{border:0;background:transparent;padding:8px 12px;color:var(--muted-foreground);border-bottom:2px solid transparent;white-space:nowrap;display:flex;gap:8px;align-items:center;font-size:var(--fs-3);cursor:pointer}
|
|
942
|
+
.c3 .c3tabs button[aria-selected="true"]{color:var(--foreground);font-weight:500}
|
|
943
|
+
.c3 .c3tabs .ind{position:absolute;bottom:-1px;left:0;height:2px;background:var(--foreground);transition:transform .35s cubic-bezier(.3,.7,.2,1),width .35s cubic-bezier(.3,.7,.2,1);pointer-events:none;border-radius:2px}
|
|
944
|
+
.c3 .c3tabs .bdg{font:500 var(--fs-1) var(--mono);background:var(--acc);color:var(--on-accent);min-width:16px;height:16px;border-radius:8px;display:inline-grid;place-items:center;padding:0 4px}
|
|
945
|
+
.c3 .c3pg-pane{min-width:0}
|
|
946
|
+
.c3 .c3pg-pane[hidden]{display:none}
|
|
947
|
+
.c3 .c3pg-pane>.brief{display:block}
|
|
948
|
+
/* the Briefing's middle column draws the day timeline and the pulse; the gantt is the pulse here (it is the Calendar tab's to draw in full) */
|
|
949
|
+
.c3 .c3pg-midcal [data-cv="gantt"]{display:none}
|
|
950
|
+
.c3 .c3pg-midcal .calwrap{gap:var(--sp-3)}
|
|
951
|
+
.c3 .c3pg-initbody>[hidden]{display:none}
|
|
952
|
+
.c3 .c3dock{position:sticky;top:12px;width:330px;border:1px solid var(--border);background:var(--card);display:flex;flex-direction:column;max-height:calc(100vh - 24px);border-radius:10px;overflow:hidden}
|
|
953
|
+
.c3 .c3dock[hidden]{display:none}
|
|
954
|
+
.c3 .c3dock.rail{width:46px;align-items:center;padding-block:8px;gap:8px;overflow:visible}
|
|
955
|
+
.c3 .c3dock .dk-h{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border)}
|
|
956
|
+
.c3 .c3dock .dk-h select{flex:1;min-width:0;font:500 var(--fs-2) var(--mono);border:0;background:transparent;padding:4px;color:var(--foreground)}
|
|
957
|
+
.c3 .c3dock .dk-h a.ib{text-decoration:none}
|
|
958
|
+
.c3 .c3dock .dk-p{padding:10px;display:grid;gap:8px;overflow:auto;flex:1;align-content:start}
|
|
959
|
+
.c3 .c3dock .dk-p .card{box-shadow:none}
|
|
960
|
+
.c3 .c3dock .dk-f{padding:8px 10px;border-top:1px solid var(--border);display:flex;gap:6px}
|
|
961
|
+
.c3 .c3dock .dk-f a.pill{text-decoration:none;display:inline-flex;gap:6px;align-items:center}
|
|
962
|
+
@media (max-width:980px){.c3 .c3grid{grid-template-columns:minmax(0,1fr)}.c3 .c3dock{position:static;width:auto;max-height:none}}
|
|
963
|
+
@media (max-width:760px){
|
|
964
|
+
.c3.c3pg{padding:12px 12px 20px}
|
|
965
|
+
.c3 .c3tabs button{min-height:44px}
|
|
966
|
+
.c3 .c3pg-mi{min-height:44px}
|
|
967
|
+
.c3 .c3dock .dk-h select{min-height:44px}
|
|
968
|
+
.c3 .c3dock .dk-f a.pill{min-height:44px}
|
|
969
|
+
.c3 .tt.btn{min-height:44px}
|
|
970
|
+
.c3pg .seg button,.c3pg .pill{min-width:44px}
|
|
971
|
+
.c3pg input,.c3pg select,.c3pg textarea{min-height:44px}
|
|
972
|
+
.c3pg .tick{min-height:44px;display:flex;align-items:center}
|
|
973
|
+
.c3pg .vday .vb{min-height:44px}
|
|
974
|
+
.c3pg .dkd,.c3pg .dkd[aria-current="true"]{width:44px;height:44px;background:transparent;opacity:1;position:relative;border-radius:0}
|
|
975
|
+
.c3pg .dkd::before{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;width:7px;height:7px;border-radius:4px;background:var(--ring);opacity:.5;transition:width .35s cubic-bezier(.3,.7,.2,1),background .3s}
|
|
976
|
+
.c3pg .dkd[aria-current="true"]::before{width:26px;background:var(--acc);opacity:1}
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
/* ===== console3 fidelity pass (/c3.html): the dock's tree, the Briefing's middle column, the Work flow card ===== */
|
|
980
|
+
/* the dock tree: lifted from console3.html lines 157 to 168 (.dk-tree .br .bn .ss .sr .nm .mk), the .c3 prefix added */
|
|
981
|
+
.c3 .dk-tree{overflow:auto;padding:6px 8px;max-height:280px;border-bottom:1px solid var(--border);display:grid;gap:2px}
|
|
982
|
+
.c3 .br{display:grid;gap:2px}
|
|
983
|
+
.c3 .br>.bn{display:flex;gap:6px;align-items:center;font:var(--fs-2) var(--mono);color:var(--muted-foreground);padding:4px 4px 0;overflow-wrap:anywhere}
|
|
984
|
+
.c3 .br>.ss{margin-left:12px;border-left:1px solid var(--border);padding-left:8px;display:grid;gap:2px}
|
|
985
|
+
.c3 .sr{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:6px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:5px 6px;border-radius:6px}
|
|
986
|
+
.c3 .sr[aria-current="true"]{background:var(--muted)}
|
|
987
|
+
.c3 .sr .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-3)}
|
|
988
|
+
.c3 .sr .ic{color:var(--muted-foreground)}
|
|
989
|
+
.c3 .mk.w{animation:c3-pulse 1.6s infinite}
|
|
990
|
+
.c3 .c3dock .dk-p .term{min-height:72px;max-height:168px}
|
|
991
|
+
.c3 .c3dock .dk-d{padding:6px 10px;border-top:1px solid var(--border);overflow:auto;max-height:240px}
|
|
992
|
+
.c3 .c3dock .dk-d summary{cursor:pointer;font-size:var(--fs-2);padding:4px 0}
|
|
993
|
+
.c3 .c3dock .dk-runs{display:grid;gap:8px;padding-top:6px}
|
|
994
|
+
.c3 .c3dock .dk-p .form{display:flex;gap:6px;align-items:center}
|
|
995
|
+
.c3 .c3dock .dk-p .form input[type=text]{flex:1;min-width:0}
|
|
996
|
+
.c3 .c3dock .dk-p .form input:disabled{opacity:.6;cursor:not-allowed}
|
|
997
|
+
.c3 .c3dock.rail .ib .mk{width:auto}
|
|
998
|
+
/* the Briefing's middle column is the mockup's ribbon: the zoom switch, no previous/next row */
|
|
999
|
+
.c3 .c3pg-midcal .calbar>.chips2{display:none}
|
|
1000
|
+
@media (prefers-reduced-motion:reduce){.c3 .mk.w{animation:none}}
|
|
1001
|
+
@media (max-width:760px){
|
|
1002
|
+
.c3 .sr{min-height:44px}
|
|
1003
|
+
.c3 .br .chip2.lk,.c3 .c3dock .dk-d summary{min-height:44px;display:inline-flex;align-items:center}
|
|
1004
|
+
.c3 .c3dock .dk-p .form .ib{width:44px;height:44px}
|
|
1005
|
+
.c3 .c3add .ib{width:44px;height:44px}
|
|
1006
|
+
.c3 .fl2{gap:var(--sp-2)}
|
|
1007
|
+
.c3 .lkrow .chip2.lk{min-height:44px}
|
|
1008
|
+
.c3 .pill{min-height:44px}
|
|
1009
|
+
}
|
|
1010
|
+
.c3 .c3pg-pane{display:grid;gap:12px;align-content:start}
|
|
1011
|
+
.c3 .c3pg-pane>.brief{display:block}
|
|
1012
|
+
.c3 .lkrow{margin-bottom:var(--sp-3)}
|
|
1013
|
+
@media (max-width:760px){
|
|
1014
|
+
.c3 .stance{flex-wrap:wrap}
|
|
1015
|
+
.c3 .stance>div:nth-child(2){flex:1 1 calc(100% - 56px)}
|
|
1016
|
+
}
|
|
1017
|
+
/* demo mode (?demo=1, c3-demo.js): the header pill, and the mockup's extra card and list furniture it feeds */
|
|
1018
|
+
.c3 .c3pg-demo{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border-radius:999px;font:500 var(--fs-1) var(--mono);letter-spacing:.04em;white-space:nowrap;color:var(--warning);background:color-mix(in oklab,var(--warning) 14%,transparent);border:1px solid color-mix(in oklab,var(--warning) 45%,transparent)}
|
|
1019
|
+
.c3 .fc .tag.pov{margin-left:6px;vertical-align:middle}
|
|
1020
|
+
.c3 svg.mat{width:100%;height:auto;display:block}
|
|
1021
|
+
.c3 svg.mat text{font:var(--fs-2) var(--mono);fill:var(--muted-foreground)}
|
|
1022
|
+
.c3 svg.mat .t{fill:var(--foreground)}
|
|
1023
|
+
.c3 .sgr .spk{align-self:center}
|
|
1024
|
+
@media (max-width:760px){
|
|
1025
|
+
.c3[data-c3-demo] .nrow .tt{min-height:44px;display:inline-flex;align-items:center}
|
|
1026
|
+
}
|
|
1027
|
+
@media (max-width:760px){
|
|
1028
|
+
.c3[data-c3-demo] .c3top .tools{flex-wrap:wrap;justify-content:flex-start}
|
|
1029
|
+
.c3[data-c3-demo] .c3pg-demo{flex:1 0 100%;justify-content:center}
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
/* ── the mockup's dock, closed up (console3.html .dock, line 156 on): the body wrapper, a disabled box that reads as the mockup's, no foot row ── */
|
|
1033
|
+
.c3 .c3dock .dk-body{display:flex;flex-direction:column;min-height:0;overflow:auto;flex:1}
|
|
1034
|
+
.c3 .c3dock .dk-body[hidden],.c3 .c3dock .dk-d[hidden]{display:none}
|
|
1035
|
+
.c3 .c3dock .dk-p .form input:disabled{opacity:1;cursor:text;background:var(--background);color:var(--foreground)}
|
|
1036
|
+
.c3 .c3dock .dk-p .form .ib.pri:disabled{opacity:1}
|
|
1037
|
+
.c3 .c3dock .dk-p .form .ib:disabled:not(.pri){opacity:1;cursor:default}
|
|
1038
|
+
.c3 .c3dock a.chip2.lk{text-decoration:none}
|
|
1039
|
+
.c3 .c3dock .dk-d{border-top:0}
|
|
1040
|
+
|
|
1041
|
+
/* c3 tickets/docs/signals: the mockup's RACI grid and document coverage matrix (console3.html lines 839 to 843 and 870 to 876), plus small additions */
|
|
1042
|
+
.c3 .rcg{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(5,minmax(0,.5fr));gap:6px;align-items:center;font-size:var(--fs-2)}
|
|
1043
|
+
.c3 .rcg .h{font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-align:center;text-transform:uppercase}
|
|
1044
|
+
.c3 .rcg .c{display:grid;place-items:center;min-height:26px;border-radius:8px;font:600 var(--fs-2) var(--mono)}
|
|
1045
|
+
.c3 .rcg .c.R{background:var(--accw);color:var(--acc)}.c3 .rcg .c.A{background:var(--acc);color:var(--on-accent)}.c3 .rcg .c.C,.c3 .rcg .c.I{color:var(--muted-foreground)}
|
|
1046
|
+
.c3 .dxm{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(5,minmax(0,.55fr));gap:var(--sp-2) var(--sp-3);align-items:center;font-size:var(--fs-2)}
|
|
1047
|
+
.c3 .dxm.c4{grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,.55fr))}
|
|
1048
|
+
.c3 .dxm .h{font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-transform:uppercase;text-align:center}
|
|
1049
|
+
.c3 .dxm .c{display:grid;place-items:center}
|
|
1050
|
+
.c3 .dxm .c i{width:14px;height:14px;border-radius:50%;background:var(--success)}
|
|
1051
|
+
.c3 .dxm .c i.w{background:transparent;border:3px solid var(--warning)}
|
|
1052
|
+
.c3 .dxm .c i.o{background:transparent;border:2px dashed var(--ring)}
|
|
1053
|
+
.c3 .dxm .c i.x{background:var(--destructive)}
|
|
1054
|
+
|
|
1055
|
+
/* the deck's stance row and its gap, as the mockup draws them (console3.html line 2336: gap 8px; .ib.sm is 30px) */
|
|
1056
|
+
.c3 [data-c3pg="deck-host"] .brief,.c3 [data-c3pg="plan"] .brief{gap:8px}
|
|
1057
|
+
@media (min-width:761px){.c3 .stance .ib{width:30px;height:30px}}
|
|
1058
|
+
|
|
1059
|
+
/* the review rows and the handled fold (console3.html lines 296 to 298, 474 to 475) */
|
|
1060
|
+
.c3 .src-dots{display:inline-flex;gap:3px;align-items:center}
|
|
1061
|
+
.c3 .src-dots i{width:6px;height:6px;border-radius:50%;background:var(--success)}
|
|
1062
|
+
.c3 .src-dots i.old{background:transparent;border:1.5px solid var(--warning)}
|
|
1063
|
+
.c3 .hx[hidden]{display:none}
|
|
1064
|
+
.c3 .chip2.lk[title^="Approving"]{cursor:default}
|
|
1065
|
+
.c3 [data-c3pg="trust"] .rowbtn{gap:10px}
|
|
1066
|
+
.c3 [data-c3pg="trust"] .rowbtn>.chips2:first-child{white-space:nowrap;flex:none}
|
|
1067
|
+
.c3 [data-c3pg="trust"] .rowbtn>.chips2:last-child{flex-wrap:wrap;justify-content:flex-end;min-width:0}
|
|
1068
|
+
.c3 [data-c3pg="trust"] [hidden]{display:none}
|
|
1069
|
+
/* the mockup draws the glow behind the Briefing's own deck only, not behind the plan row of the other tabs */
|
|
1070
|
+
.c3 [data-c3pg="plan"] .brief::before{display:none}
|
|
1071
|
+
|
|
1072
|
+
/* c3 roadmap/breakdown: the mockup's .wform, .wbs, .wbed (console3.html lines 890 to 910 and 926 to 928) and the controls of the two sub-views */
|
|
1073
|
+
.c3 .wform{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px dashed var(--ring);border-radius:10px;margin-bottom:var(--sp-2)}
|
|
1074
|
+
.c3 .wform input[type=number]{width:100%}
|
|
1075
|
+
.c3 .wbs .nrow{padding-block:8px}
|
|
1076
|
+
.c3 .wbs .chv{background:none;border:0;padding:0;width:20px;height:20px;display:grid;place-items:center;color:var(--muted-foreground);cursor:pointer;transition:transform .15s}
|
|
1077
|
+
.c3 .wbs .chv[aria-expanded=true]{transform:rotate(90deg)}
|
|
1078
|
+
.c3 .wbed{display:flex;flex-direction:column;gap:8px;padding:10px 0;border-top:1px solid var(--border);margin-top:8px}
|
|
1079
|
+
.c3 .wbed .lb{width:68px;font:500 var(--fs-1) var(--mono);letter-spacing:.06em;color:var(--muted-foreground);text-transform:uppercase;flex:none}
|
|
1080
|
+
.c3 .wbed input{flex:1;min-width:120px;font:inherit;font-size:var(--fs-3);border:1px solid var(--border);border-radius:8px;padding:6px 10px;background:var(--card);color:var(--foreground)}
|
|
1081
|
+
.c3 .wbed .chip2 .chv{width:16px;height:16px}
|
|
1082
|
+
.c3 [data-in-view="roadmap"] .case,.c3 [data-in-view="breakdown"] .xi .wbed{margin-top:8px}
|
|
1083
|
+
.c3 [data-in-view="roadmap"] .opt{font:inherit;color:inherit;cursor:pointer}
|
|
1084
|
+
.c3.ph [data-in-view="roadmap"] .pill,.c3.ph [data-in-view="breakdown"] .pill,.c3.ph [data-in-view="roadmap"] .opt,.c3.ph [data-in-view="roadmap"] .wform input,.c3.ph [data-in-view="roadmap"] .wform select,
|
|
1085
|
+
.c3.ph [data-in-view="breakdown"] .wform input,.c3.ph [data-in-view="breakdown"] .wform select,.c3.ph [data-in-view="breakdown"] .wbed input{min-height:44px}
|
|
1086
|
+
.c3.ph [data-in-view="roadmap"] .ib,.c3.ph [data-in-view="breakdown"] .ib,.c3.ph [data-in-view="breakdown"] .chv{min-width:44px;min-height:44px}
|
|
1087
|
+
@media (max-width:760px){.c3 [data-c3pg="below-line"],.c3 [data-c3pg="trust"] .rowbtn,.c3 [data-c3pg="handled"] .rowbtn{min-height:44px}}
|
|
1088
|
+
|
|
1089
|
+
/* ===== console3 shared primitives: c3-sheet.js, c3-case.js, c3-swipe.js, c3-expand.js =====
|
|
1090
|
+
* Lifted from console3.html: .sheet.wide (line 227), .sheet.dw (914), .ph .sheet.wide (182). Colours use --acc/--accent only. */
|
|
1091
|
+
.c3 .sheet.wide{width:600px}
|
|
1092
|
+
.c3.ph .sheet.wide{width:auto}
|
|
1093
|
+
@media (min-width:761px){.c3 .sheet.dw{width:min(780px,calc(100% - 24px))}}
|
|
1094
|
+
@media (max-width:760px){.c3 .sheet.dw{max-height:92%}}
|
|
1095
|
+
.c3 .sheet:focus{outline:none}
|
|
1096
|
+
.c3 .sheet.bs.dragging{transition:none}
|
|
1097
|
+
.c3 .sheet .sh2 .ib{flex:none}
|
|
1098
|
+
@media (prefers-reduced-motion:reduce){.c3 .sheet,.c3 .scrim,.c3.ph .sheet.bs{animation:none}}
|
|
1099
|
+
/* a slide that cannot be used: the action goes outside and no outbox is connected. The reason sits under it (c3-case.js). */
|
|
1100
|
+
.c3 .slt.off{opacity:.55;--tc:var(--muted-foreground)}
|
|
1101
|
+
.c3 .slt.off .th{cursor:not-allowed;animation:none}
|
|
1102
|
+
.c3 .slt.off .lb{animation:none}
|
|
1103
|
+
.c3 .slt-why{display:flex;gap:6px;align-items:center;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
1104
|
+
/* the thumb keeps its look and gets a 44px hit area on any width */
|
|
1105
|
+
.c3 .slt .th::after{content:"";position:absolute;inset:-4px}
|
|
1106
|
+
/* a swipe reveals the action's label beside its icon (c3-swipe.js) */
|
|
1107
|
+
.c3 .rv{display:inline-flex;gap:4px;align-items:center}
|
|
1108
|
+
.c3 .rv .rvl{font:500 var(--fs-1) var(--mono);letter-spacing:.04em;white-space:nowrap}
|
|
1109
|
+
.c3 .nrow[data-swipe],.c3 .drow[data-swipe]{touch-action:pan-y}
|
|
1110
|
+
.c3 .nrow[data-swipe]:focus-visible,.c3 .drow[data-swipe]:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
|
|
1111
|
+
.c3.ph .opt,.c3.ph .nrow[data-swipe],.c3.ph .drow[data-swipe]{min-height:44px}
|
|
1112
|
+
.c3 .case .conf-fig{font:600 var(--fs-1) var(--mono);color:var(--tc)}
|
|
1113
|
+
|
|
1114
|
+
/* ── Reports interactions (report-families-view.js): the undo toast, the demo's hidden outbox host, 44px controls on a phone ── */
|
|
1115
|
+
.c3.c3e.c3rp-toast{display:flex;font-family:var(--sans);position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;gap:var(--sp-3);align-items:center;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:12px;background:var(--foreground);color:var(--background);font-size:var(--fs-3);box-shadow:0 8px 28px rgba(0,0,0,.25);animation:c3-toastin .25s}
|
|
1116
|
+
.c3.c3e.c3rp-toast .chip2{color:var(--background);border-color:currentColor;min-height:32px;border:0;text-decoration:underline;font-family:var(--sans)}
|
|
1117
|
+
.c3 [data-c3pg="outbox-host"][data-rp-hide]{display:none}
|
|
1118
|
+
.c3 .nrow.cutr .tt{text-decoration:line-through}
|
|
1119
|
+
.c3.ph .pill,.c3.ph .nrow .chip2.lk,.c3.ph .nrow .chip2[disabled],.c3.ph .c3rp-toast .chip2{min-height:44px}
|
|
1120
|
+
.c3.ph .ib.sm[data-a="docopen"]{min-width:44px;min-height:44px}
|
|
1121
|
+
.c3 [data-report-families] .lkrow{margin:var(--sp-4) 0 4px}
|
|
1122
|
+
|
|
1123
|
+
/* ===== console3 wave C3: the meeting card, the stage, the case sheets, the pulse press and the dock (calendar-views.js, c3-dock.js) ===== */
|
|
1124
|
+
.c3 .vday .vb.hot{background:var(--destructive);background:oklch(from var(--destructive) l calc(c * .81) h)}
|
|
1125
|
+
.c3 .rdet .st.lk{font:inherit}
|
|
1126
|
+
.c3 .rdet .rr .st{display:inline}
|
|
1127
|
+
.c3 .krw{display:grid}
|
|
1128
|
+
.c3 .krw>.xp{padding:0 var(--sp-1)}
|
|
1129
|
+
.c3 .krw>.krg[aria-expanded="true"]{border-bottom-color:transparent}
|
|
1130
|
+
.c3 [data-cv="stage-head"]{gap:var(--sp-2)}
|
|
1131
|
+
.c3 [data-c3pg-prow]{cursor:pointer}
|
|
1132
|
+
.c3 [data-c3pg-prow][hidden]{display:none}
|
|
1133
|
+
.c3 .pbs>span[role="button"]{position:relative;cursor:pointer;transition:opacity .2s,transform .15s}
|
|
1134
|
+
.c3 .pbs>span[role="button"]:hover{transform:scaleY(1.5)}
|
|
1135
|
+
.c3 .pbs>span[role="button"]::after{content:"";position:absolute;inset:-17px 0}
|
|
1136
|
+
.c3 .chart .hit:focus-visible,.c3 svg.pg g[role="button"]:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
|
|
1137
|
+
.c3 [data-cv-cell][data-cv-ev]{min-height:24px}
|
|
1138
|
+
.c3 .dk-confirm{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:var(--fs-2)}
|
|
1139
|
+
@media (max-width:760px){
|
|
1140
|
+
.c3 .rdet .chip2,.c3 .rdet .st.lk,.c3 [data-cv="stage"] .sgb,.c3 [data-cv="stage"] .chip2,.c3 [data-cv="stage"] .ib,.c3 .dotb{min-height:44px;min-width:44px}
|
|
1141
|
+
.c3 .rdet .st.lk{display:inline-flex;align-items:center}
|
|
1142
|
+
.c3 [data-c3pg-prow]{min-height:44px}
|
|
1143
|
+
.c3 [data-cv-ev]{min-height:44px;display:inline-flex!important;align-items:center}
|
|
1144
|
+
.c3 .c3dock .dk-p .form .ib,.c3 .dk-confirm .chip2,.c3 .dk-confirm .ib{min-height:44px;min-width:44px}
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
/* ── Work tab: toast buttons and case-file extras (pm-work-view.js) ── */
|
|
1148
|
+
.c3.c3e.c3rp-toast.err{background:var(--destructive);color:var(--on-accent)}
|
|
1149
|
+
.c3 .case .cft .chip2.lk[aria-expanded]{margin-left:auto}
|
|
1150
|
+
.c3 .c3jf[hidden]{display:none}
|
|
1151
|
+
.c3 .case .c3slide .slt:not(.off):not(.alt){--tc:var(--acc) !important}
|
|
1152
|
+
.c3 .br>button.bn:hover{color:var(--foreground)}
|
|
1153
|
+
.c3 .br>button.bn[aria-current="true"]{color:var(--foreground)}
|
|
1154
|
+
@media (max-width:760px){.c3 .br>button.bn{min-height:44px}}
|
|
1155
|
+
.c3.ph .case .chip2.lk,.c3.ph .case .c3steps .pill{min-height:44px}
|
|
1156
|
+
|
|
1157
|
+
/* ===== console3 Briefing and global behaviour: the toast, the palette, why-each-element, the case file in a row, the bell's unread dot =====
|
|
1158
|
+
* Lifted from console3.html: .toast (152 to 153, 245), .pal (146 to 151), .why-on and .whyp (308 to 315), .incident (99), .nli .u (507). Mockup variables to D38 tokens
|
|
1159
|
+
* (--fg/--bg/--bad to --foreground/--background/--destructive); the brand colour is --acc. */
|
|
1160
|
+
.c3 .toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--foreground);color:var(--background);padding:8px 14px;display:flex;gap:14px;align-items:center;font-size:var(--fs-3);z-index:40;max-width:calc(100vw - 32px);border-radius:8px;box-shadow:var(--sh3);animation:c3-toastin .4s cubic-bezier(.34,1.56,.64,1)}
|
|
1161
|
+
.c3 .toast button{background:transparent;border:0;color:inherit;text-decoration:underline;padding:0 6px;min-height:44px;min-width:44px;font:inherit;cursor:pointer}
|
|
1162
|
+
@keyframes c3-toastin{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translateX(-50%)}}
|
|
1163
|
+
@media (prefers-reduced-motion:reduce){.c3 .toast{animation:none}}
|
|
1164
|
+
.c3 .pal{position:fixed;inset:0;background:oklch(0 0 0 / 30%);z-index:30;display:grid;place-items:start center;padding-top:12vh}
|
|
1165
|
+
.c3 .pal>div{width:min(480px,92vw);background:var(--card);border:1px solid var(--ring);border-radius:12px;overflow:hidden;animation:c3-fadein .15s;box-shadow:var(--sh3)}
|
|
1166
|
+
.c3 .pal input{width:100%;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:12px 14px;font-size:var(--fs-4);background:transparent;color:var(--foreground);min-height:44px}
|
|
1167
|
+
.c3 .pal input:focus{outline:none}
|
|
1168
|
+
.c3 .pal ul{max-height:50vh;overflow:auto;margin:0;padding:0;list-style:none}
|
|
1169
|
+
.c3 .pal li button{display:flex;gap:10px;align-items:center;width:100%;border:0;background:transparent;padding:8px 14px;min-height:44px;text-align:left;color:inherit;font:inherit;cursor:pointer}
|
|
1170
|
+
.c3 .pal li button[aria-selected=true],.c3 .pal li button:focus-visible{background:var(--muted);outline:none}
|
|
1171
|
+
@media (hover:hover){.c3 .pal li button:hover{background:var(--muted)}}
|
|
1172
|
+
.c3 .why-on [data-n]{position:relative;outline:1px dashed color-mix(in oklab,var(--acc) 60%,transparent);outline-offset:3px;border-radius:10px}
|
|
1173
|
+
.c3 .why-on [data-n]::before{content:attr(data-n);position:absolute;top:-9px;left:-9px;z-index:4;width:20px;height:20px;border-radius:6px;background:var(--acc);color:var(--on-accent);font:600 var(--fs-1) var(--mono);display:grid;place-items:center;box-shadow:var(--sh2)}
|
|
1174
|
+
.c3 .why-on [data-n].wy{outline:2px solid var(--acc);outline-offset:4px;animation:c3-wy 1.8s ease-in-out infinite}
|
|
1175
|
+
@keyframes c3-wy{50%{outline-color:color-mix(in oklab,var(--acc) 30%,transparent)}}
|
|
1176
|
+
@media (prefers-reduced-motion:reduce){.c3 .why-on [data-n].wy{animation:none}}
|
|
1177
|
+
.c3 .whyp{position:fixed;left:16px;bottom:16px;width:340px;max-width:calc(100vw - 32px);z-index:15;border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:grid;gap:8px;animation:c3-fadein .25s}
|
|
1178
|
+
.c3 .whyp b.n{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:6px;background:var(--acc);color:var(--on-accent);font:600 var(--fs-1) var(--mono);margin-right:6px}
|
|
1179
|
+
.c3 .incident{border:1px solid var(--destructive);color:var(--destructive);padding:10px 14px;border-radius:8px;display:flex;gap:10px;align-items:center;margin:0 var(--sp-3) var(--sp-2)}
|
|
1180
|
+
.c3 .incident .dim{color:var(--muted-foreground)}
|
|
1181
|
+
.c3 .nli .w{display:grid;gap:4px;justify-items:end}
|
|
1182
|
+
.c3 .nli .u{width:8px;height:8px;border-radius:50%;background:var(--acc)}
|
|
1183
|
+
.c3.noscrim:not(.ph) .scrim{display:none}
|
|
1184
|
+
/* a case file inside a row: the agent's block, and the options and the slide hidden while a run is on */
|
|
1185
|
+
.c3 .case.ag-busy .opts,.c3 .case.ag-busy .c3slide{display:none}
|
|
1186
|
+
.c3 .c3res2{display:grid;gap:var(--sp-2)}
|
|
1187
|
+
.c3 .c3res2 .tbl{width:100%;border-collapse:collapse;font-size:var(--fs-2)}
|
|
1188
|
+
.c3 .c3res2 .tbl th,.c3 .c3res2 .tbl td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border)}
|
|
1189
|
+
.c3 .nrow .xp .case{margin-top:var(--sp-2)}
|
|
1190
|
+
/* the row's swipe strips draw the label beside the icon; the key hint of the case sits under the row */
|
|
1191
|
+
.c3 .nrow .tt,.c3 .drow .tt{cursor:pointer}
|
|
1192
|
+
/* controls on the Briefing keep a 44px hit area on a phone, without changing how they look */
|
|
1193
|
+
.c3.ph .chip2.lk,.c3.ph .pill,.c3.ph .rowbtn,.c3.ph .nrow .av,.c3.ph .drow .av{min-height:44px}
|
|
1194
|
+
.c3 button.av{position:relative;border:0;cursor:pointer}
|
|
1195
|
+
.c3 button.av::after{content:"";position:absolute;inset:-11px}
|
|
1196
|
+
.c3 .pbs>button{position:relative}
|
|
1197
|
+
.c3 .pbs>button::after{content:"";position:absolute;inset:-17px 0}
|
|
1198
|
+
.c3 .pbs>button[aria-pressed=true]{transform:scaleY(1.5)}
|
|
1199
|
+
.c3 .pseg:focus-visible,.c3 .prow:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
|
|
1200
|
+
/* the phone preview: a 390px frame over the page, the page itself in an iframe so its own phone layout answers */
|
|
1201
|
+
.c3 .c3pg-prev{position:fixed;inset:0;z-index:25;display:grid;place-items:center;align-content:center;gap:var(--sp-2);pointer-events:none}
|
|
1202
|
+
.c3 .c3pg-prev>*{pointer-events:auto}
|
|
1203
|
+
.c3 .c3pg-prev>button{justify-self:center}
|
|
1204
|
+
.c3 .c3pg-mi[disabled]{opacity:.5;cursor:not-allowed}
|
|
1205
|
+
.c3 .c3pg-menu .c3pg-mi{min-height:44px}
|
|
1206
|
+
|
|
1207
|
+
/* Initiatives rows, cases and sheets (c3-roadmap, c3-breakdown, c3-tickets, c3-docs, c3-doc-sheet, c3-signals, lifecycle-lens, new-initiative-sheet) */
|
|
1208
|
+
/* the slide inside a case takes the page accent: slide-confirm.js sets --tc to --accent, which is a near-white grey on this page */
|
|
1209
|
+
.c3 .case .slt:not(.alt):not(.off){--tc:var(--acc) !important}
|
|
1210
|
+
.c3 [data-in-view="signals"] .sgr .spk{align-self:start}
|
|
1211
|
+
.c3pop .wbed{border-top:0;margin-top:0;padding-top:0}
|
|
1212
|
+
.c3pop .dsec .dt[contenteditable]{min-height:44px}
|
|
1213
|
+
.c3 .rv .rvl{font:var(--fs-1) var(--mono);margin-left:6px}
|
|
1214
|
+
.c3 [data-rm-off] input{width:100%;font:inherit;font-size:var(--fs-3);padding:8px 10px;border:1px solid var(--ring);border-radius:8px;background:var(--card);color:var(--foreground);min-height:44px}
|
|
1215
|
+
.c3 .xi .fold .c3slide{margin-top:var(--sp-2)}
|
|
1216
|
+
@media (max-width:640px){
|
|
1217
|
+
.c3.ph .nrow .chip2.lk,.c3.ph .sgr .chip2.lk,.c3.ph .xi .chip2.lk,.c3pop.ph .chip2.lk{min-height:44px}
|
|
1218
|
+
.c3.ph .nrow .pill,.c3.ph .xi .pill,.c3pop.ph .pill,.c3pop.ph .seg button,.c3pop.ph .ib,.c3pop.ph .wbed input,.c3pop.ph .dpn input,.c3pop.ph .dpn textarea{min-height:44px}
|
|
1219
|
+
.c3pop.ph .ib{min-width:44px}
|
|
1220
|
+
.c3.ph .xi .opt{min-height:44px}
|
|
1221
|
+
}
|
|
1222
|
+
@media (max-width:640px){
|
|
1223
|
+
.c3pop.ph .seg button{min-width:44px}
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
/* ── the shared toast (pm/c3-toast.js): the error tone ── */
|
|
1227
|
+
.c3 .toast.err{background:var(--destructive);color:var(--on-accent)}
|
|
1228
|
+
|
|
1229
|
+
/* ── the dock under the mockup's class names (`dock`, `dock rail`), so a selector written for the mockup finds it; the phone rule that hides `.dock` must not hide this one ── */
|
|
1230
|
+
.c3.ph .c3dock.dock:not([hidden]){display:flex!important}
|
|
1231
|
+
.c3 .c3dock .dk-p .form input[data-off]{opacity:1;cursor:not-allowed;background:var(--background);color:var(--foreground)}
|
|
1232
|
+
.c3 .ib[data-off]{opacity:.5;cursor:not-allowed}
|
|
1233
|
+
|
|
1234
|
+
/* ── Work: the jobs card's "All N items" block and the + New job line, as the mockup draws them (console3.html lines 949-954) ── */
|
|
1235
|
+
.c3 .c3all{display:grid;gap:var(--sp-2);font-size:var(--fs-2)}
|
|
1236
|
+
.c3 .c3all>div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--sp-2);align-items:baseline}
|
|
1237
|
+
.c3 .c3all>div>span:last-child{display:grid;gap:2px}
|
|
1238
|
+
.c3 .c3all .dn{text-decoration:line-through;color:var(--muted-foreground)}
|
|
1239
|
+
.c3 .c3all>div.hd{grid-template-columns:1fr;font-size:var(--fs-2)}
|
|
1240
|
+
.c3 .c3jnew{list-style:none;padding:var(--sp-2) 0}
|
|
1241
|
+
/* the More menu hangs off the page root, fixed under its button: no ancestor can clip it or stack over it */
|
|
1242
|
+
.c3 .c3pg-menu{position:fixed;right:auto;z-index:90;overflow:auto}
|
|
1243
|
+
.c3 .c3pg-kbd{margin-left:auto;font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);border:1px solid var(--border);border-radius:4px;padding:1px 5px}
|
|
1244
|
+
|
|
1245
|
+
/* ── Calendar: the recording dot on the Calendar tab, the After notes, the Week time grid (calendar-views.js, shell-recording.js) ── */
|
|
1246
|
+
.c3 [role="tab"][data-c3-tab]{position:relative}
|
|
1247
|
+
.c3 [data-c3-tab] .shell-recdot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--destructive);box-shadow:0 0 0 2px var(--background)}
|
|
1248
|
+
.c3 [data-c3-tab] .shell-recdot[hidden]{display:none}
|
|
1249
|
+
.c3 .recg .rt{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1250
|
+
.c3 [data-cv="notes"] .tbl select{min-height:32px;max-width:100%;font:var(--fs-2) var(--mono)}
|
|
1251
|
+
.c3 [data-cv="week-grid"] .wb{cursor:pointer}
|
|
1252
|
+
.c3 [data-cv="week-grid"] .wb:focus-visible rect:first-of-type,.c3 svg.pg .pgrow:focus-visible rect{outline:2px solid var(--ring)}
|
|
1253
|
+
@media (max-width:760px){.c3 [data-cv="notes"] .tbl select{min-height:44px}.c3 [data-cv="notes"] .tbl{display:block;overflow-x:auto}}
|
|
1254
|
+
|
|
1255
|
+
/* ── Lifecycle panels (console3 wave L1). Lifted from console3.html lines 835 to 858 (.evm, .gt, .gtr, .sc, .scr, .sct), with the same token map as above.
|
|
1256
|
+
* Additions the mockup does not have: a gate that is not applicable or that the engine does not claim (.gt i.na, .gt i.u), the add forms of the empty states (.lfm), and the
|
|
1257
|
+
* untraced flag. ── */
|
|
1258
|
+
.c3 .evm{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,.5fr));gap:var(--sp-2) var(--sp-3);align-items:center;font-size:var(--fs-2)}
|
|
1259
|
+
.c3 .evm .h{font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-transform:uppercase;text-align:center}
|
|
1260
|
+
.c3 .evm .c{display:grid;place-items:center}
|
|
1261
|
+
.c3 .evm .c i{width:14px;height:14px;border-radius:50%;background:var(--success)}
|
|
1262
|
+
.c3 .evm .c i.o{background:transparent;border:2px dashed var(--ring)}
|
|
1263
|
+
.c3 .evm .c i.x{background:var(--destructive)}
|
|
1264
|
+
.c3 .gt{display:flex;gap:6px;align-items:center}
|
|
1265
|
+
.c3 .gt i{flex:1;height:8px;border-radius:4px;background:var(--muted)}
|
|
1266
|
+
.c3 .gt i.d{background:var(--success)}
|
|
1267
|
+
.c3 .gt i.h{background:linear-gradient(90deg,var(--success) 50%,var(--muted) 50%)}
|
|
1268
|
+
.c3 .gt i.na{background:transparent;border:1px dashed var(--ring);opacity:.6}
|
|
1269
|
+
.c3 .gt i.u{background:repeating-linear-gradient(135deg,var(--muted) 0 4px,transparent 4px 8px);border:1px solid var(--border)}
|
|
1270
|
+
.c3 .gtr{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:var(--sp-3);align-items:center;font-size:var(--fs-2);padding:6px 0;border-bottom:1px solid var(--border)}
|
|
1271
|
+
.c3 .gtr:last-child{border-bottom:0}
|
|
1272
|
+
.c3 .sc{display:grid;gap:var(--sp-3)}
|
|
1273
|
+
.c3 .scr{display:grid;gap:4px}
|
|
1274
|
+
.c3 .scr .l{display:flex;justify-content:space-between;font-size:var(--fs-2)}
|
|
1275
|
+
.c3 .scr .tk{position:relative;height:10px;border-radius:5px;background:var(--muted)}
|
|
1276
|
+
.c3 .scr .tk u{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--c);text-decoration:none}
|
|
1277
|
+
.c3 .scr .tk s{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--foreground);text-decoration:none}
|
|
1278
|
+
.c3 .sct{width:100%;height:auto;display:block}
|
|
1279
|
+
.c3 .sct text{font:var(--fs-1) var(--mono);fill:var(--muted-foreground)}
|
|
1280
|
+
.c3 .sct .t{fill:var(--foreground)}
|
|
1281
|
+
.c3 .sct circle{cursor:pointer;transition:r .15s}
|
|
1282
|
+
.c3 .sct circle:hover{stroke:var(--foreground);stroke-width:2}
|
|
1283
|
+
.c3 .gtl{display:grid;grid-template-columns:repeat(6,1fr);font:var(--fs-1) var(--mono);color:var(--muted-foreground);text-align:center}
|
|
1284
|
+
.c3 .lfm{display:grid;gap:var(--sp-2);margin-top:var(--sp-2)}
|
|
1285
|
+
.c3 .lfm label{display:grid;gap:2px;font:var(--fs-2) var(--mono);color:var(--muted-foreground)}
|
|
1286
|
+
.c3 .lfm input,.c3 .lfm select{min-height:44px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--foreground);font:var(--fs-3) var(--sans)}
|
|
1287
|
+
.c3 .lfm .row2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2)}
|
|
1288
|
+
.c3 .lfm button{min-height:44px}
|
|
1289
|
+
.c3 .lfm .err{color:var(--destructive);font-size:var(--fs-2)}
|
|
1290
|
+
.c3 .st.unt{color:var(--warning)}
|
|
1291
|
+
@container (max-width:520px){.c3 .gtr{grid-template-columns:minmax(0,1fr) auto}.c3 .gtr>.hbs{grid-column:1/-1;order:3}.c3 .lfm .row2{grid-template-columns:1fr}}
|
|
1292
|
+
.c3.ph .gtr{grid-template-columns:minmax(0,1fr) auto}.c3.ph .gtr>.hbs{grid-column:1/-1;order:3}.c3.ph .lfm .row2{grid-template-columns:1fr}
|
|
1293
|
+
.c3 .c3top .recg{position:relative;z-index:31} /* the recording controls stay above the centred banner, which a long tools row can run under */
|
|
1294
|
+
|
|
1295
|
+
/* console3.css addition (Calendar Quarter and Year, c3-cal-strategy.js): the mockup's .syn grid (lines 679 to 685) and .nsm (690, 694), the .c3 prefix and
|
|
1296
|
+
* the D38 tokens in place of the mockup's names. The grid's column count is set inline, because a repository has as many key results as it has. */
|
|
1297
|
+
.c3 .syn{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,1fr));gap:6px;align-items:center}
|
|
1298
|
+
.c3 .syn .h{font:500 var(--fs-1) var(--mono);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em;text-align:center;display:grid;justify-items:center;gap:2px;min-width:0;overflow-wrap:anywhere}
|
|
1299
|
+
.c3 .syn .l{font-size:var(--fs-2);line-height:1.3;min-width:0;overflow-wrap:anywhere}
|
|
1300
|
+
.c3 .syn .c{display:flex;justify-content:center;gap:3px;min-height:20px;align-items:center}
|
|
1301
|
+
.c3 .syn .c i{width:10px;height:10px;border-radius:50%;background:var(--acc)}
|
|
1302
|
+
.c3 .syn .c i.o{background:transparent;border:1.5px dashed var(--ring)}
|
|
1303
|
+
.c3 .syn .c.gap{color:var(--destructive);font:var(--fs-1) var(--mono)}
|
|
1304
|
+
.c3 .nsm{width:100%;height:auto}
|
|
1305
|
+
.c3 .nsm text{font:var(--fs-1) var(--mono);fill:var(--muted-foreground)}
|
|
1306
|
+
.c3 [data-cs] .sgr{min-height:44px}
|
|
1307
|
+
.c3 [data-cs="deck"] .dkd{position:relative}
|
|
1308
|
+
.c3 .cs-empty{display:grid;gap:6px}
|
|
1309
|
+
.c3 .cs-empty .fold{align-items:flex-start}
|
|
1310
|
+
|
|
1311
|
+
/* Timeline (c3-timeline.js): the track follows the number of checks (the mockup has exactly five), a check is a 44px target, and the forecast matrix is a table. */
|
|
1312
|
+
.c3 .sntrack[data-n]::before{left:calc(50% / var(--n));right:calc(50% / var(--n))}
|
|
1313
|
+
.c3 .sntrack .sn{min-height:44px;align-content:start;padding-top:2px}
|
|
1314
|
+
.c3 .fcm{width:100%;border-collapse:collapse;display:table}
|
|
1315
|
+
.c3 .fcm td,.c3 .fcm th{padding:6px 8px;font-size:var(--fs-2);text-align:center}
|
|
1316
|
+
.c3 .fcm td button{width:100%;min-height:44px;border:0;border-radius:6px;padding:4px 2px;background:transparent;font:var(--fs-2) var(--mono);cursor:pointer}
|
|
1317
|
+
.c3.ph .recg>*{min-height:44px;min-width:44px;height:44px}
|
|
1318
|
+
.c3.ph [data-cv="notes"] .link,.c3.ph [data-cv="notes"] .ib.pri{min-height:44px;min-width:44px}
|
|
1319
|
+
.c3.ph [data-cv="notes"] a{display:inline-flex;align-items:center;min-height:44px}
|
|
1320
|
+
|
|
1321
|
+
/* ===== The Terminal page and the run cards (c3-terminal.js, sessions-panel.js, run-card.js, c3-terminal-results.js, c3-terminal-edge.js) =====
|
|
1322
|
+
* From agent-surfaces.html: .card (here .c3t-card), .tag/.lab, .claims, .tl, .q, .ci, .ask, .fail, .raw, .draft, .run, .prog, .filebox, .dk (deck), .tbl, .dg,
|
|
1323
|
+
* .tlr (the Past timeline), .edge. Colours are the console's own tokens: the mockup's ok, warn, bad, opp are --success, --warning, --destructive, --purple. */
|
|
1324
|
+
.c3 .c3t-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:var(--sp-4);display:grid;gap:var(--sp-3);touch-action:pan-y;min-width:0;transition:transform .18s,border-color .2s}
|
|
1325
|
+
.c3 .c3t-card.busy{border-color:var(--acc)}
|
|
1326
|
+
.c3 .c3t-card.flash{animation:c3-c3tfl 1.2s}
|
|
1327
|
+
@keyframes c3-c3tfl{0%,60%{box-shadow:0 0 0 3px color-mix(in oklab,var(--acc) 14%,transparent)}100%{box-shadow:none}}
|
|
1328
|
+
.c3 .c3t-card[data-swipe]>*:not(.rv){transform:translateX(calc(var(--dx,0px)*.55));transition:transform .28s cubic-bezier(.3,1.3,.5,1)}
|
|
1329
|
+
.c3 .c3t-card[data-swipe].dr>*{transition:none}
|
|
1330
|
+
.c3 .c3t-card[data-swipe].dr{cursor:grabbing;user-select:none}
|
|
1331
|
+
.c3 .c3t-card[data-swipe]:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
|
|
1332
|
+
.c3 .c3t-card .top{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
|
|
1333
|
+
.c3 .c3t-card .top>.dim:last-child{margin-left:auto}
|
|
1334
|
+
.c3 .c3t-card h3{font-size:var(--fs-5);line-height:1.3;font-weight:600;margin:0;text-wrap:balance;overflow-wrap:anywhere}
|
|
1335
|
+
.c3 .c3t-card .dim{color:var(--muted-foreground)}
|
|
1336
|
+
.c3 .c3t-run{display:grid;gap:var(--sp-2)}
|
|
1337
|
+
.c3 .c3t-run .line{display:flex;align-items:center;gap:var(--sp-2)}
|
|
1338
|
+
.c3 .c3t-run .line .t{flex:1;min-width:0;font:var(--fs-2) var(--mono);color:var(--acc);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1339
|
+
.c3 .c3t-obs{display:flex;gap:6px;flex-wrap:wrap}
|
|
1340
|
+
.c3 .c3t-obs .chip2{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
|
|
1341
|
+
.c3 .prog{display:flex;gap:3px}
|
|
1342
|
+
.c3 .prog i{flex:1;height:3px;border-radius:2px;background:var(--border);transition:background .3s}
|
|
1343
|
+
.c3 .prog i.d{background:var(--acc)}
|
|
1344
|
+
.c3 .c3t-card .ask,.c3 .c3t-node .ask,.c3 .c3t-card .fail{display:grid;gap:var(--sp-2);border:1px solid var(--warning);background:color-mix(in oklab,var(--warning) 9%,transparent);border-radius:10px;padding:var(--sp-3)}
|
|
1345
|
+
.c3 .c3t-card .fail{border-color:var(--destructive);background:color-mix(in oklab,var(--destructive) 8%,transparent)}
|
|
1346
|
+
.c3 .c3t-card .fail.w{border-color:var(--warning);background:color-mix(in oklab,var(--warning) 9%,transparent)}
|
|
1347
|
+
.c3 .raw{background:var(--muted);border-radius:8px;padding:var(--sp-2) var(--sp-3);font:var(--fs-1)/1.6 var(--mono);color:var(--muted-foreground);overflow-wrap:anywhere;white-space:pre-wrap}
|
|
1348
|
+
.c3 .c3t-card .draft{background:var(--muted);border-radius:10px;padding:var(--sp-3);font-size:var(--fs-3);white-space:pre-wrap;overflow-wrap:anywhere}
|
|
1349
|
+
.c3 .c3t-tray{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}
|
|
1350
|
+
.c3 .c3t-tray input,.c3 .c3t-panel input{flex:1;min-width:120px;border:1px solid var(--border);border-radius:99px;padding:6px 12px;background:var(--card);color:var(--foreground);font:inherit;font-size:var(--fs-2)}
|
|
1351
|
+
.c3 .c3t-tray input[readonly],.c3 .c3t-panel input[readonly]{opacity:.6;cursor:not-allowed}
|
|
1352
|
+
.c3 .c3t-card .pill.rec{background:var(--acc);color:var(--on-accent);border-color:var(--acc)}
|
|
1353
|
+
.c3 .c3t-card .pill.on,.c3 .c3t .pill.on{background:color-mix(in oklab,var(--acc) 12%,transparent);color:var(--acc);border-color:var(--acc)}
|
|
1354
|
+
.c3 .c3t-card .pill:disabled{opacity:.5;cursor:not-allowed}
|
|
1355
|
+
.c3 .dotp{width:8px;height:8px;border-radius:50%;background:var(--acc);flex:none;display:inline-block;animation:c3-c3tbl 1s infinite alternate}
|
|
1356
|
+
@keyframes c3-c3tbl{to{opacity:.35}}
|
|
1357
|
+
/* claims and their labels */
|
|
1358
|
+
.c3 .lab{font:500 var(--fs-1)/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:4px;flex:none;width:92px;text-align:center;display:inline-block}
|
|
1359
|
+
.c3 .l-fact{background:color-mix(in oklab,var(--success) 16%,transparent);color:var(--success)}
|
|
1360
|
+
.c3 .l-est{background:color-mix(in oklab,var(--warning) 18%,transparent);color:var(--warning)}
|
|
1361
|
+
.c3 .l-ass{background:var(--muted);color:var(--muted-foreground)}
|
|
1362
|
+
.c3 .l-rep{background:color-mix(in oklab,var(--purple) 16%,transparent);color:var(--purple)}
|
|
1363
|
+
.c3 .l-unl{background:transparent;color:var(--destructive);border:1px dashed var(--destructive)}
|
|
1364
|
+
.c3 .l-obs{background:var(--muted);color:var(--muted-foreground)}
|
|
1365
|
+
.c3 .l-you{background:color-mix(in oklab,var(--acc) 12%,transparent);color:var(--acc)}
|
|
1366
|
+
.c3 .c3t-claims{display:grid;gap:var(--sp-2);margin:0;padding:0;list-style:none}
|
|
1367
|
+
.c3 .c3t-claims li,.c3 .c3t-bul{display:flex;gap:var(--sp-2);align-items:baseline;min-width:0}
|
|
1368
|
+
.c3 .c3t-claims li>span:last-child,.c3 .c3t-bul>span:last-child{min-width:0;overflow-wrap:anywhere}
|
|
1369
|
+
.c3 .c3t-src{font-size:var(--fs-1)}
|
|
1370
|
+
/* heroes */
|
|
1371
|
+
.c3 .c3t-tl{position:relative;height:46px}
|
|
1372
|
+
.c3 .c3t-tl .axis{position:absolute;left:0;right:0;top:22px;height:2px;background:var(--border)}
|
|
1373
|
+
.c3 .c3t-tl .gap{position:absolute;top:20px;height:6px;border-radius:3px;background:color-mix(in oklab,var(--destructive) 55%,transparent)}
|
|
1374
|
+
.c3 .c3t-tl .mk{position:absolute;top:14px;width:2px;height:18px;background:var(--foreground)}
|
|
1375
|
+
.c3 .c3t-tl .mk span{position:absolute;white-space:nowrap;font:var(--fs-1) var(--mono);color:var(--muted-foreground);transform:translateX(-50%);left:1px}
|
|
1376
|
+
.c3 .c3t-tl .pr span{top:-14px}
|
|
1377
|
+
.c3 .c3t-tl .fc{background:var(--acc)}
|
|
1378
|
+
.c3 .c3t-tl .fc span{top:20px;color:var(--acc)}
|
|
1379
|
+
.c3 .c3t-q{margin:0;padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--purple);background:var(--muted);border-radius:0 8px 8px 0;font-size:var(--fs-3)}
|
|
1380
|
+
.c3 .c3t-q cite{display:block;font:var(--fs-1) var(--mono);color:var(--muted-foreground);font-style:normal;margin-top:4px}
|
|
1381
|
+
.c3 .c3t-ci{display:flex;align-items:center;gap:var(--sp-1)}
|
|
1382
|
+
.c3 .c3t-ci i{width:28px;height:10px;border-radius:3px;background:var(--border)}
|
|
1383
|
+
.c3 .c3t-ci i.ok{background:var(--success)}.c3 .c3t-ci i.bad{background:var(--destructive)}.c3 .c3t-ci i.run{background:var(--acc);animation:c3-c3tbl 1s infinite alternate}
|
|
1384
|
+
.c3 .c3t-ci .dim{margin-left:var(--sp-2)}
|
|
1385
|
+
/* result bodies */
|
|
1386
|
+
.c3 .c3t-opts{display:grid;gap:var(--sp-2)}
|
|
1387
|
+
.c3 .c3t-opts .opt-r{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:10px}
|
|
1388
|
+
.c3 .c3t-opts .opt-r.rec{border-color:var(--acc);background:color-mix(in oklab,var(--acc) 10%,transparent)}
|
|
1389
|
+
.c3 .c3t-file{border:1px solid var(--border);border-radius:10px;overflow:hidden}
|
|
1390
|
+
.c3 .c3t-file .fh{display:flex;gap:var(--sp-2);align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--muted);flex-wrap:wrap}
|
|
1391
|
+
.c3 .c3t-file .fh b{flex:1;min-width:0}
|
|
1392
|
+
.c3 .c3t-file .fb{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-2)}
|
|
1393
|
+
.c3 .c3t-file .ft{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border);overflow-wrap:anywhere}
|
|
1394
|
+
.c3 .c3t-md h4{margin:var(--sp-2) 0 2px;font-size:var(--fs-3)}.c3 .c3t-md p{margin:2px 0}.c3 .c3t-md ul{margin:2px 0;padding-left:18px}
|
|
1395
|
+
.c3 .c3t-note{margin:0;font-size:var(--fs-3)}
|
|
1396
|
+
.c3 .c3t-dk{position:relative;border:1px solid var(--border);border-radius:12px;overflow:hidden;touch-action:pan-y;user-select:none;display:block}
|
|
1397
|
+
.c3 .c3t-dk .sl{padding:var(--sp-4);min-height:170px;display:flex;flex-direction:column;gap:var(--sp-2)}
|
|
1398
|
+
.c3 .c3t-dk .sl h4{margin:0;font-size:var(--fs-5);font-weight:600}
|
|
1399
|
+
.c3 .c3t-dk .nv{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border);background:var(--muted)}
|
|
1400
|
+
.c3 .c3t-dk .nv .dim{flex:1;text-align:center}
|
|
1401
|
+
.c3 .c3t-deck .foot{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-2);justify-content:space-between}
|
|
1402
|
+
.c3 .c3t-tbl .tw{overflow-x:auto}
|
|
1403
|
+
.c3 .c3t-tbl .tbl{width:100%;border-collapse:collapse;font-size:var(--fs-2)}
|
|
1404
|
+
.c3 .c3t-tbl .tbl td,.c3 .c3t-tbl .tbl th{padding:6px 10px 6px 0;border-bottom:1px solid var(--border);text-align:left}
|
|
1405
|
+
.c3 .c3t-tbl .tbl td.n,.c3 .c3t-tbl .tbl th.n{font-family:var(--mono);text-align:right}
|
|
1406
|
+
.c3 .c3t-th{background:none;border:0;padding:0 4px;font:inherit;color:inherit;cursor:pointer;white-space:nowrap;min-height:44px}
|
|
1407
|
+
.c3 .c3t-dg .dg{border:1px solid var(--border);border-radius:10px;background:var(--card);overflow:auto}
|
|
1408
|
+
.c3 .c3t-dg svg{display:block;max-width:100%;height:auto}
|
|
1409
|
+
.c3 .c3t-dg .nd{fill:var(--card);stroke:var(--border);stroke-width:1.5}.c3 .c3t-dg .cp{stroke:var(--acc);fill:color-mix(in oklab,var(--acc) 12%,transparent)}
|
|
1410
|
+
.c3 .c3t-dg text{fill:var(--foreground);font:500 12px var(--mono)}.c3 .c3t-dg .ed{stroke:var(--muted-foreground);fill:none;stroke-width:1.5}.c3 .c3t-dg .ec{stroke:var(--acc);fill:none;stroke-width:2.5}
|
|
1411
|
+
.c3 .c3t-dg summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
|
|
1412
|
+
.c3 .c3t-draft{display:grid;gap:var(--sp-2)}
|
|
1413
|
+
.c3 .sayb{display:grid;gap:4px}
|
|
1414
|
+
.c3 .sayb .m{padding:6px 12px;border-radius:12px;max-width:100%;overflow-wrap:anywhere}
|
|
1415
|
+
.c3 .sayb .m.me{justify-self:end;background:var(--acc);color:var(--on-accent)}.c3 .sayb .m.bot{background:var(--muted)}
|
|
1416
|
+
.c3 .c3t-back{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px var(--sp-3);margin:0;font:var(--fs-2) var(--mono)}
|
|
1417
|
+
.c3 .c3t-back dt{color:var(--muted-foreground)}.c3 .c3t-back dd{margin:0;overflow-wrap:anywhere}
|
|
1418
|
+
/* the page and its groups */
|
|
1419
|
+
.c3 .c3t-page{display:grid;gap:var(--sp-3);min-width:0}
|
|
1420
|
+
.c3 .c3t-demo select{border:1px solid var(--border);border-radius:99px;padding:6px 12px;background:var(--card);color:var(--foreground);font:var(--fs-2) var(--sans);max-width:100%}
|
|
1421
|
+
.c3 .c3t-note{min-height:0}
|
|
1422
|
+
.c3 .c3t-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--sp-3);align-items:start}
|
|
1423
|
+
.c3 .c3t-cards>*{min-width:0}
|
|
1424
|
+
.c3 .c3t-sect{display:grid;gap:var(--sp-2)}
|
|
1425
|
+
.c3 .c3t-sect .sh2{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);flex-wrap:wrap}
|
|
1426
|
+
.c3 .c3t-sect .sh2 h2{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--fs-4)}
|
|
1427
|
+
.c3 .c3t .c3t-row{cursor:pointer}
|
|
1428
|
+
.c3 .c3t .c3t-row .xp{cursor:default}
|
|
1429
|
+
.c3 .c3t .c3t-row .xi{display:grid;gap:var(--sp-2);padding-top:var(--sp-2)}
|
|
1430
|
+
.c3 .c3t-chev{color:var(--muted-foreground);align-self:center;transition:transform .2s}
|
|
1431
|
+
.c3 .c3t-row[aria-expanded="true"] .c3t-chev{transform:rotate(90deg)}
|
|
1432
|
+
.c3 .c3t-sw{width:52px;min-height:44px;background:none;border:0;padding:0;display:inline-flex;align-items:center;cursor:pointer}
|
|
1433
|
+
.c3 .c3t-sw i{display:block;width:36px;height:20px;border-radius:99px;background:var(--border);position:relative}
|
|
1434
|
+
.c3 .c3t-sw i::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:6px;background:var(--on-accent);transition:transform .15s}
|
|
1435
|
+
.c3 .c3t-sw[aria-checked="true"] i{background:var(--acc)}.c3 .c3t-sw[aria-checked="true"] i::after{transform:translateX(16px)}
|
|
1436
|
+
.c3 .c3t-sw:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
|
|
1437
|
+
.c3 .c3t-panel{display:grid;gap:var(--sp-2);border:1px solid var(--border);border-radius:10px;padding:var(--sp-3)}
|
|
1438
|
+
.c3 .c3t-panel .feed{display:flex;flex-direction:column;gap:var(--sp-2);max-height:220px;overflow:auto}
|
|
1439
|
+
.c3 .c3t-panel .m{padding:6px 12px;border-radius:12px;max-width:88%;overflow-wrap:anywhere}
|
|
1440
|
+
.c3 .c3t-panel .m.me{align-self:flex-end;background:var(--acc);color:var(--on-accent)}.c3 .c3t-panel .m.bot{background:var(--muted)}
|
|
1441
|
+
.c3 .c3t-panel .m.st{color:var(--muted-foreground);font:var(--fs-2) var(--mono);padding:0}
|
|
1442
|
+
.c3 .c3t-tl2 .tlr{display:flex;gap:var(--sp-2);align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border)}
|
|
1443
|
+
.c3 .c3t-tl2 .tlr .lab{width:78px}
|
|
1444
|
+
.c3 .c3t-edge{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:var(--sp-4);align-items:start}
|
|
1445
|
+
.c3 .elist{display:flex;flex-direction:column;gap:2px}
|
|
1446
|
+
.c3 .elist .eh{margin-top:var(--sp-3);font:500 var(--fs-1) var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}
|
|
1447
|
+
.c3 .elist button{text-align:left;padding:8px 12px;border-radius:8px;color:var(--muted-foreground);font-size:var(--fs-3);width:100%;background:none;border:0;min-height:44px;cursor:pointer}
|
|
1448
|
+
.c3 .elist button[aria-pressed="true"]{background:color-mix(in oklab,var(--acc) 12%,transparent);color:var(--acc)}
|
|
1449
|
+
.c3 .c3t-node{border:1px solid var(--border);border-radius:12px;padding:var(--sp-3);display:grid;gap:var(--sp-3);background:var(--card);min-width:0}
|
|
1450
|
+
.c3 .c3t-node .top{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}
|
|
1451
|
+
.c3 .c3t-node .tm{display:grid;gap:var(--sp-2)}
|
|
1452
|
+
@media (max-width:760px){
|
|
1453
|
+
.c3 .c3t-edge{grid-template-columns:minmax(0,1fr)}
|
|
1454
|
+
.c3 .c3t .pill,.c3 .c3t-card .pill,.c3 .c3t-card .ib,.c3 .c3t .ib,.c3 .c3t .chip2.lk,.c3 .c3t-card .chip2.lk,.c3 .c3t-card select,.c3 .c3t-demo select,.c3 .c3t-tray input,.c3 .c3t-panel input,.c3 .c3t .seg button{min-height:44px}
|
|
1455
|
+
.c3 .c3t .ib,.c3 .c3t-card .ib{min-width:44px}
|
|
1456
|
+
.c3 .c3t-cards{grid-template-columns:minmax(0,1fr)}
|
|
1457
|
+
.c3 .c3t-card{padding:var(--sp-3)}
|
|
1458
|
+
}
|
|
1459
|
+
@media (prefers-reduced-motion:reduce){.c3 .c3t-card.flash,.c3 .dotp,.c3 .c3t-ci i.run{animation:none}.c3 .c3t-card[data-swipe]>*:not(.rv){transition:none}}
|
|
1460
|
+
/* the header and dock icons: the agent button (spark) and the terminal button (>_) are told apart by a thin ring on the agent one */
|
|
1461
|
+
.c3 .c3top .ib[data-c3pg="agent-button"]{border-color:color-mix(in oklab,var(--acc) 45%,var(--border))}
|
|
1462
|
+
.c3 .c3top .ib[data-c3pg="agent-button"] .ic{color:var(--acc)}
|
|
1463
|
+
.c3 .c3dock .dk-h .ib[data-c3pg="dock-agent"] .ic{color:var(--acc)}
|
|
1464
|
+
.c3 .c3dock .dk-h .ib .bdg{position:absolute;top:-6px;right:-6px;box-shadow:0 0 0 2px var(--card)}
|
|
1465
|
+
.c3 .c3t-card h3{font:600 var(--fs-5)/1.3 var(--sans);text-transform:none;letter-spacing:0;color:var(--foreground)}
|
|
1466
|
+
.c3 .c3t-obs .chip2{display:inline-block;background:var(--muted);color:var(--muted-foreground);border-radius:99px;padding:2px 10px;font:var(--fs-1)/1.5 var(--mono);border:0}
|
|
1467
|
+
.c3 .c3t-obs .chip2 b{color:var(--foreground);font-weight:500}
|
|
1468
|
+
.c3 .c3t-card .tg{width:max-content}
|
|
1469
|
+
@media (max-width:760px){
|
|
1470
|
+
.c3 .c3t .pill,.c3 .c3t-card .pill,.c3 .c3t .chip2.lk,.c3 .c3t-card .chip2.lk,.c3 .c3t-th{min-width:44px;justify-content:center}
|
|
1471
|
+
}
|
|
1472
|
+
.c3 .cs-empty .fold{flex-wrap:nowrap;align-items:flex-start}
|
|
1473
|
+
.c3 .cs-empty .fold .ic{flex:none;margin-top:2px}
|
|
1474
|
+
|
|
1475
|
+
/* the header Sessions button is a pill in look only: its class is not .pill, so a "try" pill is the first button.pill of a page (the mockup's header has no such pill) */
|
|
1476
|
+
.c3 .psess{border:1px solid var(--border);background:var(--background);padding:3px 10px;font:var(--fs-3) var(--sans);color:var(--muted-foreground);display:inline-flex;gap:6px;align-items:center;border-radius:16px;transition:transform .18s cubic-bezier(.3,.7,.2,1),box-shadow .2s,background .15s,border-color .15s,color .15s}
|
|
1477
|
+
.c3 .psess:hover{border-color:var(--ring)}
|
|
1478
|
+
.c3 .psess:active{transform:scale(.93)}
|
|
1479
|
+
@media (max-width:760px){.c3 .psess{min-height:44px}}
|
|
1480
|
+
.c3 .psess .c{font:var(--fs-1) var(--mono)}
|