usage-cli 0.29.32__py3-none-any.whl
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.
- adapters/__init__.py +5 -0
- adapters/agy.py +68 -0
- adapters/claude.py +215 -0
- adapters/codex.py +209 -0
- adapters/rate_limits.py +76 -0
- adapters/registry.py +17 -0
- adapters/types.py +139 -0
- agy_disk_cache.py +135 -0
- agy_loader.py +416 -0
- agy_quota_probe.py +748 -0
- agy_window_keeper.py +185 -0
- analyzer/__init__.py +5 -0
- analyzer/aggregator.py +139 -0
- analyzer/blocks.py +80 -0
- analyzer/diagnoser.py +638 -0
- analyzer/insights.py +277 -0
- analyzer/persona_loader.py +199 -0
- analyzer/reporter.py +989 -0
- analyzer/subscription.py +108 -0
- burn_rate.py +75 -0
- cache_quarantine.py +50 -0
- codex_disk_cache.py +227 -0
- codex_events.py +136 -0
- codex_fork_replay.py +111 -0
- codex_loader.py +1426 -0
- codex_paths.py +20 -0
- critter_frames.py +26 -0
- discussion_bridge.py +1196 -0
- discussion_cli.py +844 -0
- discussion_session.py +622 -0
- discussion_usage.py +13 -0
- discussion_window.py +955 -0
- disk_cache_common.py +132 -0
- disk_cache_lifecycle.py +39 -0
- doctor.py +452 -0
- fsevents_watch.py +207 -0
- history_disk_cache.py +110 -0
- history_loader.py +416 -0
- i18n.py +88 -0
- jsonl_limits.py +17 -0
- jsonl_utils.py +40 -0
- login_item.py +154 -0
- main.py +387 -0
- menubar.py +1201 -0
- menubar_actions.py +204 -0
- menubar_agy.py +193 -0
- menubar_chrome.py +156 -0
- menubar_menu.py +169 -0
- menubar_notify.py +102 -0
- menubar_popover.py +233 -0
- menubar_prefs.py +118 -0
- menubar_refresh.py +285 -0
- menubar_state.py +1200 -0
- menubar_title.py +157 -0
- menubar_update.py +123 -0
- panel_window.py +78 -0
- panel_window_state.py +159 -0
- panels/__init__.py +186 -0
- panels/base.py +83 -0
- panels/dynamic_height.py +140 -0
- panels/payload.py +178 -0
- panels/web_panel.py +513 -0
- panels/window_drag.py +56 -0
- prefs.py +44 -0
- pricing.py +452 -0
- project_resolver.py +112 -0
- service_status.py +383 -0
- session_hooks.py +1154 -0
- setup_app.py +171 -0
- setup_hook.py +1011 -0
- statusline_settings.py +160 -0
- talent_market_bridge.py +243 -0
- time_utils.py +24 -0
- tui.py +288 -0
- tui_sprite.py +206 -0
- ui/__init__.py +5 -0
- ui/html_report.py +923 -0
- ui/report_scripts.py +251 -0
- ui/report_styles.py +370 -0
- ui/tables.py +888 -0
- update_checker.py +156 -0
- update_gate.py +66 -0
- update_release_notes.py +49 -0
- usage_cli-0.29.32.data/data/share/usage/i18n.json +2427 -0
- usage_cli-0.29.32.dist-info/METADATA +223 -0
- usage_cli-0.29.32.dist-info/RECORD +109 -0
- usage_cli-0.29.32.dist-info/WHEEL +5 -0
- usage_cli-0.29.32.dist-info/entry_points.txt +3 -0
- usage_cli-0.29.32.dist-info/licenses/LICENSE +663 -0
- usage_cli-0.29.32.dist-info/top_level.txt +80 -0
- usage_cli.py +827 -0
- usage_client.py +487 -0
- usage_diagnosis_snapshot.py +143 -0
- usage_dir_sweeper.py +100 -0
- usage_lang.py +79 -0
- usage_logging.py +75 -0
- usage_notifications.py +96 -0
- usage_rate.py +97 -0
- usage_session_resume.py +913 -0
- usage_statusline.py +810 -0
- usage_statusline_agy.py +397 -0
- usage_statusline_forwarder.py +88 -0
- usage_terse_mode.py +223 -0
- usage_terse_reminder.py +151 -0
- win_login_item.py +53 -0
- window_keeper.py +264 -0
- windows_watch.py +443 -0
- wintray.py +2014 -0
- wintray_menu.py +136 -0
ui/report_styles.py
ADDED
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
"""CSS for the HTML usage report. Extracted verbatim from html_report."""
|
|
2
|
+
|
|
3
|
+
REPORT_CSS = """:root{
|
|
4
|
+
--bg:#0b0908;
|
|
5
|
+
--bg-gradient-1:rgba(224,154,88,.055);
|
|
6
|
+
--bg-gradient-2:rgba(90,191,160,.12);
|
|
7
|
+
--panel:rgba(23,19,14,.94);
|
|
8
|
+
--card-bg:rgba(23,19,14,.96);
|
|
9
|
+
--card-border:rgba(255,255,255,.14);
|
|
10
|
+
--card-shadow:rgba(0,0,0,.4);
|
|
11
|
+
--control-hover:rgba(255,255,255,.12);
|
|
12
|
+
--hover-glow:rgba(255,255,255,.07);
|
|
13
|
+
--disabled-bg:rgba(255,255,255,.03);
|
|
14
|
+
--soft:rgba(34,28,20,.45);
|
|
15
|
+
--text:#f5f2ec;
|
|
16
|
+
--text-soft:#ddd6c8;
|
|
17
|
+
--muted:#a39a8a;
|
|
18
|
+
--faint:rgba(255,255,255,.08);
|
|
19
|
+
--token:#e8c66a;
|
|
20
|
+
--cost:#5abfa0;
|
|
21
|
+
--warn:#e0885a;
|
|
22
|
+
--accent-purple:#8f86c9;
|
|
23
|
+
--noise-img:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZmlsdGVyIGlkPSJub2lzZSI+CiAgICA8ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iMC44NSIgbnVtT2N0YXZlcz0iNCIgc3RpdGNoVGlsZXM9InN0aXRjaCIvPgogIDwvZmlsdGVyPgogIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbHRlcj0idXJsKCNub2lzZSkiIG9wYWNpdHk9IjAuMDQiLz4KPC9zdmc+");
|
|
24
|
+
--glass-blur:12px;
|
|
25
|
+
--contrib-0:rgba(255,255,255,.05);
|
|
26
|
+
--contrib-1:rgba(90,191,160,.22);
|
|
27
|
+
--contrib-2:rgba(90,191,160,.42);
|
|
28
|
+
--contrib-3:rgba(90,191,160,.68);
|
|
29
|
+
--contrib-4:rgba(90,191,160,.95);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@media (prefers-color-scheme: light){
|
|
33
|
+
:root{
|
|
34
|
+
--bg:#f6f2e9;
|
|
35
|
+
--bg-gradient-1:rgba(176,90,43,.035);
|
|
36
|
+
--bg-gradient-2:rgba(46,125,104,.08);
|
|
37
|
+
--panel:rgba(255,253,246,.96);
|
|
38
|
+
--card-bg:rgba(255,253,246,.98);
|
|
39
|
+
--card-border:#918471;
|
|
40
|
+
--card-shadow:rgba(31,41,55,.06);
|
|
41
|
+
--control-hover:rgba(67,57,42,.1);
|
|
42
|
+
--hover-glow:rgba(31,41,55,.08);
|
|
43
|
+
--disabled-bg:rgba(107,97,81,.08);
|
|
44
|
+
--soft:rgba(240,234,220,.7);
|
|
45
|
+
--text:#292317;
|
|
46
|
+
--text-soft:#43392a;
|
|
47
|
+
--muted:#6b6151;
|
|
48
|
+
--faint:rgba(0,0,0,.06);
|
|
49
|
+
--token:#8a6a1c;
|
|
50
|
+
--cost:#2e7d68;
|
|
51
|
+
--warn:#b05a2b;
|
|
52
|
+
--accent-purple:#68609b;
|
|
53
|
+
--noise-img:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZmlsdGVyIGlkPSJub2lzZSI+CiAgICA8ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iMC44NSIgbnVtT2N0YXZlcz0iNCIgc3RpdGNoVGlsZXM9InN0aXRjaCIvPgogIDwvZmlsdGVyPgogIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbHRlcj0idXJsKCNub2lzZSkiIG9wYWNpdHk9IjAuMDE4Ii8+Cjwvc3ZnPg==");
|
|
54
|
+
--glass-blur:16px;
|
|
55
|
+
--contrib-0:rgba(0,0,0,.05);
|
|
56
|
+
--contrib-1:rgba(46,125,104,.20);
|
|
57
|
+
--contrib-2:rgba(46,125,104,.40);
|
|
58
|
+
--contrib-3:rgba(46,125,104,.65);
|
|
59
|
+
--contrib-4:rgba(46,125,104,.92);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
html{font-size:17.5px}
|
|
64
|
+
html,body{overflow-x:clip}
|
|
65
|
+
*{box-sizing:border-box}
|
|
66
|
+
body{
|
|
67
|
+
margin:0;
|
|
68
|
+
background-color:var(--bg);
|
|
69
|
+
background-image:var(--noise-img),radial-gradient(circle at 15% 20%,var(--bg-gradient-1) 0%,transparent 45%),radial-gradient(circle at 85% 75%,var(--bg-gradient-2) 0%,transparent 45%);
|
|
70
|
+
background-attachment:fixed;
|
|
71
|
+
background-size:auto,100% 100%,100% 100%;
|
|
72
|
+
color:var(--text);
|
|
73
|
+
font-family:"Styrene A","Styrene B","Helvetica Neue",system-ui,sans-serif;
|
|
74
|
+
line-height:1.55;
|
|
75
|
+
-webkit-font-smoothing:antialiased;
|
|
76
|
+
-moz-osx-font-smoothing:grayscale;
|
|
77
|
+
}
|
|
78
|
+
.wrap{max-width:960px;margin:0 auto;padding:48px 24px}
|
|
79
|
+
header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:start;margin-bottom:32px}
|
|
80
|
+
h1,.wrapped-copy h3,.wrapped-total,.prompt,.share-modal h2,.share-section h3,.persona-card h3,.ai-update-head h3{
|
|
81
|
+
font-family:"Grenette",Georgia,serif;
|
|
82
|
+
}
|
|
83
|
+
h1{
|
|
84
|
+
margin:0 0 12px;
|
|
85
|
+
font-size:clamp(2rem,5vw,3.2rem);
|
|
86
|
+
line-height:1.05;
|
|
87
|
+
font-weight:800;
|
|
88
|
+
letter-spacing:-.03em;
|
|
89
|
+
white-space:nowrap;
|
|
90
|
+
color:var(--text);
|
|
91
|
+
}
|
|
92
|
+
.eyebrow,.meta,.empty,footer,.cursor,.prompt,.share-trigger,.share-close,.share-action,.tokens,.cost,.pct,.trend-row .week,.trend-row b,.trend-row em,.delta,.donut-total,.donut-sub,.sub-plan,.sub-since,.ai-update-version,.ai-update-period,th,td,.wrapped-kicker,.wrapped-total-label,.contribution-months,.contribution-days,.contribution-legend{
|
|
93
|
+
font-family:ui-monospace,SFMono-Regular,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
|
|
94
|
+
}
|
|
95
|
+
.eyebrow,.meta,.empty,footer{color:var(--muted)}
|
|
96
|
+
.eyebrow span,.prompt span{color:var(--cost)}
|
|
97
|
+
.cursor{color:var(--token)}
|
|
98
|
+
.cursor{display:inline-block;animation:blink 1.2s steps(2,start) infinite}
|
|
99
|
+
.narrative{max-width:760px;margin:18px 0 0;color:var(--text-soft);font-size:1.02rem;line-height:1.6}
|
|
100
|
+
.meta{font-size:.82rem;text-align:right;white-space:nowrap;line-height:1.4}
|
|
101
|
+
.header-actions{display:flex;flex-direction:column;align-items:flex-end;justify-self:end;gap:12px;min-width:max-content}
|
|
102
|
+
.share-trigger{
|
|
103
|
+
display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--card-border);color:var(--text);padding:6px 14px;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:500;line-height:1.3;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease,opacity .2s ease
|
|
104
|
+
}
|
|
105
|
+
.share-trigger:hover{border-color:rgba(255,255,255,.24);color:var(--text);background:var(--control-hover);transform:translateY(-2px);box-shadow:0 4px 12px var(--hover-glow)}
|
|
106
|
+
@media (prefers-color-scheme: light){
|
|
107
|
+
.share-trigger:hover{border-color:var(--text-soft)}
|
|
108
|
+
}
|
|
109
|
+
.share-trigger:focus-visible,.share-close:focus-visible,.share-action:focus-visible{outline:2px solid var(--cost);outline-offset:2px}
|
|
110
|
+
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:28px 0 20px}
|
|
111
|
+
.card{
|
|
112
|
+
background:var(--card-bg);padding:20px 18px 18px;border-radius:12px;min-height:132px;min-width:0;display:grid;grid-template-rows:minmax(2.2em,auto) auto minmax(1.5em,auto);align-content:start;border:1px solid var(--card-border);box-shadow:0 8px 32px 0 var(--card-shadow);transition:transform .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)
|
|
113
|
+
}
|
|
114
|
+
.card:nth-child(-n+2){grid-column:span 2}
|
|
115
|
+
.card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.2);box-shadow:0 12px 40px 0 var(--hover-glow)}
|
|
116
|
+
.card span{display:block;color:var(--muted);font-size:.78rem;font-weight:600;line-height:1.4;text-transform:uppercase;letter-spacing:.08em;padding-bottom:10px}
|
|
117
|
+
.card b{display:block;min-width:0;max-width:100%;font-size:clamp(1.35rem,3vw,2rem);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.12;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
|
|
118
|
+
.card i{display:block;font-style:normal;color:var(--muted);font-size:.78rem;line-height:1.5;padding-top:10px;overflow-wrap:anywhere;letter-spacing:0}
|
|
119
|
+
.card:first-child b{color:var(--token);text-shadow:0 0 12px rgba(232,198,106,.25)}
|
|
120
|
+
.card:nth-child(2) b{color:var(--cost);text-shadow:0 0 12px rgba(90,191,160,.25)}
|
|
121
|
+
@media (prefers-color-scheme: light){
|
|
122
|
+
.card:first-child b,.card:nth-child(2) b{text-shadow:none}
|
|
123
|
+
}
|
|
124
|
+
.section{
|
|
125
|
+
background:var(--panel);border-radius:12px;margin-top:20px;padding:24px 20px;border:1px solid var(--card-border);box-shadow:0 8px 32px 0 var(--card-shadow)
|
|
126
|
+
}
|
|
127
|
+
.prompt{font-size:.95rem;color:var(--text);margin-bottom:6px;font-weight:600;display:flex;align-items:center;gap:8px}
|
|
128
|
+
.rule{font-size:0;height:1px;background:linear-gradient(90deg,var(--card-border),transparent);margin-bottom:16px;border:none}
|
|
129
|
+
.rank-list{display:grid;gap:4px}
|
|
130
|
+
.rank-head,.rank-line{display:grid;grid-template-columns:20px minmax(0,1fr) 72px 92px 88px;gap:16px;align-items:center}
|
|
131
|
+
.rank-head{padding:0 12px 8px;color:var(--muted);font-size:.72rem;font-weight:600;line-height:1.4;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
|
|
132
|
+
.rank-head>span:nth-child(n+3){text-align:right}
|
|
133
|
+
.rank-line{padding:12px;color:var(--text-soft);border:1px solid transparent;border-radius:10px;box-shadow:inset 0 -1px 0 rgba(255,255,255,.03);transition:transform .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
|
|
134
|
+
.rank-line:hover{transform:translateY(-1px);background:rgba(255,255,255,.03);border-color:var(--card-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 8px 24px rgba(0,0,0,.12)}
|
|
135
|
+
@media (prefers-color-scheme: light){
|
|
136
|
+
.rank-line{box-shadow:inset 0 -1px 0 rgba(0,0,0,.04)}
|
|
137
|
+
.rank-line:hover{background:rgba(0,0,0,.03);border-color:var(--card-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 8px 20px rgba(31,41,55,.06)}
|
|
138
|
+
}
|
|
139
|
+
.rank-line:last-child{box-shadow:none}
|
|
140
|
+
.arrow{color:var(--warn)}
|
|
141
|
+
.name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
142
|
+
.pct{color:var(--text-soft)}
|
|
143
|
+
.cost{color:var(--cost)}
|
|
144
|
+
.tokens,.cost,.pct{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
|
|
145
|
+
.trend{display:grid;gap:6px}
|
|
146
|
+
.trend-row{display:grid;grid-template-columns:56px minmax(0,1fr) 76px 84px;gap:16px;align-items:center;padding:10px 12px;border:1px solid transparent;border-radius:10px;transition:transform .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
|
|
147
|
+
.trend-row:hover{transform:translateY(-1px);background:rgba(255,255,255,.03);border-color:var(--card-border);box-shadow:0 8px 22px rgba(0,0,0,.12)}
|
|
148
|
+
.trend-row .week{color:var(--muted);font-size:.78rem;line-height:1.4}
|
|
149
|
+
.trend-row b{font-weight:400;white-space:nowrap;overflow:hidden;display:block;color:var(--text-soft);letter-spacing:.08em;line-height:1}
|
|
150
|
+
.trend-row em{font-style:normal;text-align:right;color:var(--text-soft);font-size:.82rem;font-variant-numeric:tabular-nums}
|
|
151
|
+
.delta{color:var(--muted);white-space:nowrap;text-align:right;justify-self:end;font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums}
|
|
152
|
+
.delta.up{color:var(--cost)}
|
|
153
|
+
.delta.down{color:var(--warn)}
|
|
154
|
+
.delta.flat{color:var(--muted)}
|
|
155
|
+
.trend-summary{color:var(--text-soft);margin-top:8px;padding-top:12px;border-top:1px solid var(--faint);font-size:.84rem;line-height:1.6}
|
|
156
|
+
@media (prefers-color-scheme: light){
|
|
157
|
+
.trend-row:hover{background:rgba(0,0,0,.03);border-color:var(--card-border);box-shadow:0 8px 18px rgba(31,41,55,.05)}
|
|
158
|
+
}
|
|
159
|
+
.insight-note,.insight-action{padding:12px 16px;border-radius:8px;margin-bottom:10px;font-size:.9rem;line-height:1.5}
|
|
160
|
+
.insight-note{background:rgba(90,191,160,.06);border-left:3px solid var(--cost);color:var(--text-soft)}
|
|
161
|
+
.insight-action{background:rgba(224,136,90,.06);border-left:3px solid var(--warn);color:var(--text-soft);margin-bottom:0}
|
|
162
|
+
.persona-card{border:1px solid var(--card-border);border-radius:12px;background:var(--soft);padding:18px;min-width:0}
|
|
163
|
+
.persona-card h3{margin:0 0 14px;color:var(--text);font-size:.95rem;font-weight:700}
|
|
164
|
+
.persona-caption{margin:0 0 16px;color:var(--text-soft);font-size:.88rem;line-height:1.5}
|
|
165
|
+
.persona-hours{display:grid;grid-template-columns:repeat(24,minmax(8px,1fr));gap:4px;align-items:end;height:176px;padding-top:8px}
|
|
166
|
+
.persona-hour{display:grid;grid-template-rows:1fr auto;gap:7px;align-items:end;min-width:0;height:100%}
|
|
167
|
+
.persona-hour span{display:block;width:100%;min-height:1.5px;border-radius:4px 4px 1px 1px;background:linear-gradient(180deg,var(--cost),var(--accent-purple))}
|
|
168
|
+
.persona-hour.is-peak span{background:linear-gradient(180deg,var(--cost),var(--text-soft));box-shadow:0 0 12px rgba(90,191,160,.4)}
|
|
169
|
+
.persona-hour em{font-style:normal;color:var(--muted);font-size:.58rem;text-align:center;overflow:hidden}
|
|
170
|
+
.table-wrap{overflow-x:auto}
|
|
171
|
+
table{width:100%;border-collapse:collapse;min-width:760px}
|
|
172
|
+
th,td{padding:12px 16px;text-align:left;font-size:.95rem}
|
|
173
|
+
th{color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--card-border)}
|
|
174
|
+
td{color:var(--text-soft);border-bottom:1px solid rgba(255,255,255,.03)}
|
|
175
|
+
@media (prefers-color-scheme: light){
|
|
176
|
+
td{border-bottom:1px solid rgba(0,0,0,.03)}
|
|
177
|
+
}
|
|
178
|
+
td:first-child{color:var(--warn)}
|
|
179
|
+
.share-dialog{
|
|
180
|
+
width:min(760px,calc(100vw - 28px));max-height:min(92vh,860px);border:1px solid var(--card-border);border-radius:12px;background:var(--panel);color:var(--text);padding:0;box-shadow:0 24px 70px rgba(0,0,0,.6);overflow:auto;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)
|
|
181
|
+
}
|
|
182
|
+
.share-dialog::backdrop{background:rgba(5,7,10,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
|
|
183
|
+
@media (prefers-color-scheme: light){
|
|
184
|
+
.share-dialog::backdrop{background:rgba(243,244,246,.72)}
|
|
185
|
+
}
|
|
186
|
+
.share-modal{position:relative;padding:24px;display:grid;gap:18px;align-content:start}
|
|
187
|
+
.share-modal h2{margin:0 40px 0 0;font-size:1.15rem;line-height:1.35;letter-spacing:0;font-weight:700}
|
|
188
|
+
.share-close{
|
|
189
|
+
position:absolute;top:16px;right:16px;width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--card-border);border-radius:8px;background:rgba(255,255,255,.06);color:var(--text);cursor:pointer;font-size:1.1rem;line-height:1;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease,opacity .2s ease
|
|
190
|
+
}
|
|
191
|
+
.share-close:hover{border-color:var(--cost);color:var(--cost);background:var(--control-hover)}
|
|
192
|
+
.share-section{border:1px solid var(--card-border);border-radius:10px;background:var(--soft);padding:16px;display:grid;gap:14px}
|
|
193
|
+
.share-section h3{margin:0;color:var(--text);font-size:.98rem;line-height:1.35;letter-spacing:0;font-weight:700}
|
|
194
|
+
.share-file-mask{display:inline-flex;align-items:center;gap:9px;color:var(--text-soft);font-size:.86rem;cursor:pointer;user-select:none}
|
|
195
|
+
.share-file-mask input{width:16px;height:16px;accent-color:var(--cost)}
|
|
196
|
+
.share-action{
|
|
197
|
+
display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid var(--card-border);border-radius:8px;background:rgba(255,255,255,.06);color:var(--text);cursor:pointer;font-size:.78rem;line-height:1.2;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease,opacity .2s ease
|
|
198
|
+
}
|
|
199
|
+
.share-action:hover{border-color:var(--cost);color:var(--cost);background:var(--control-hover);transform:translateY(-1px)}
|
|
200
|
+
.share-trigger:active,.share-close:active,.share-action:active{transform:translateY(0);background:var(--control-hover);box-shadow:inset 0 1px 3px var(--card-shadow)}
|
|
201
|
+
.share-trigger:disabled,.share-close:disabled,.share-action:disabled{opacity:.55;cursor:not-allowed;transform:none;background:var(--disabled-bg);border-style:dashed;box-shadow:none;color:var(--muted)}
|
|
202
|
+
.share-trigger:disabled:hover,.share-close:disabled:hover,.share-action:disabled:hover{border-color:var(--card-border);background:var(--disabled-bg);color:var(--muted);transform:none;box-shadow:none}
|
|
203
|
+
.share-icon{color:var(--cost);display:inline-flex}
|
|
204
|
+
.share-icon svg{width:18px;height:18px;display:block;stroke-width:1.8}
|
|
205
|
+
.share-file-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
|
|
206
|
+
.share-file-hint{margin:0;color:var(--muted);font-size:.8rem;line-height:1.5}
|
|
207
|
+
.share-toast{min-height:20px;color:var(--cost);font-size:.82rem;opacity:0;transition:opacity .2s ease}
|
|
208
|
+
.share-toast.show{opacity:1}
|
|
209
|
+
.sponsor{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;padding:32px 16px 24px;color:var(--muted);font-size:.88rem}
|
|
210
|
+
.sponsor a{opacity:.8;transition:opacity .2s ease,transform .2s ease;display:inline-flex;text-decoration:none}
|
|
211
|
+
.sponsor a:hover{opacity:1;transform:scale(1.08)}
|
|
212
|
+
.sponsor img{vertical-align:middle;display:block}
|
|
213
|
+
.tagline{font-size:1rem;color:var(--text-soft);letter-spacing:.01em;animation:sponsorWobble 2.6s ease-in-out infinite;display:inline-block;transform-origin:center center}
|
|
214
|
+
.sponsor-link{text-align:center;padding:0 16px 32px;font-size:.8rem}
|
|
215
|
+
.sponsor-link a{color:var(--muted);text-decoration:none;opacity:.7;transition:color .2s ease,opacity .2s ease}
|
|
216
|
+
.sponsor-link a:hover{opacity:1;color:var(--cost)}
|
|
217
|
+
.sponsor a:focus-visible,.sponsor-link a:focus-visible{outline:2px solid var(--cost);outline-offset:4px;border-radius:4px}
|
|
218
|
+
.donut-wrap{display:flex;align-items:center;gap:32px;flex-wrap:wrap;margin-bottom:20px}
|
|
219
|
+
.donut{width:150px;height:150px;flex:0 0 auto}
|
|
220
|
+
.donut circle{transition:stroke-dashoffset .3s ease}
|
|
221
|
+
.donut-total{fill:var(--text);font-size:20px;font-weight:700}
|
|
222
|
+
.donut-sub{fill:var(--muted);font-size:11px;text-transform:uppercase}
|
|
223
|
+
.donut-legend{list-style:none;margin:0;padding:0;display:grid;gap:10px;flex:1 1 200px;min-width:200px}
|
|
224
|
+
.donut-legend li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:center;font-size:.86rem;color:var(--text-soft)}
|
|
225
|
+
.donut-legend .dot{width:10px;height:10px;border-radius:3px}
|
|
226
|
+
.donut-legend .lg-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
227
|
+
.donut-legend .lg-pct{color:var(--muted);text-align:right;font-weight:600}
|
|
228
|
+
.tools{display:grid;gap:12px}
|
|
229
|
+
.tools-head,.tool-row{display:grid;grid-template-columns:minmax(0,1fr) 72px 100px 100px;gap:18px;align-items:center}
|
|
230
|
+
.tools-head{padding:0 16px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:-2px}
|
|
231
|
+
.tools-head>span:nth-child(n+2){text-align:right}
|
|
232
|
+
.tool-row{padding:16px;border:1px solid var(--card-border);border-radius:12px;background:var(--soft);transition:transform .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)}
|
|
233
|
+
.tool-row:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.2);box-shadow:0 8px 24px var(--hover-glow)}
|
|
234
|
+
.tool-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
|
|
235
|
+
.sub-agent{font-weight:700;color:var(--text)}
|
|
236
|
+
.sub-plan{color:var(--text-soft);background:transparent;padding:3px 11px;border-radius:999px;font-size:.82rem;font-weight:600;border:1px solid var(--card-border)}
|
|
237
|
+
@media (prefers-color-scheme: light){
|
|
238
|
+
.sub-plan{background:rgba(255,255,255,.28);border-color:rgba(0,0,0,.12)}
|
|
239
|
+
}
|
|
240
|
+
.sub-since{color:var(--muted);font-size:.82rem}
|
|
241
|
+
.tool-row .pct,.tool-row .tokens,.tool-row .cost{white-space:nowrap;text-align:right}
|
|
242
|
+
.tool-row .pct{color:var(--text-soft);font-weight:600}
|
|
243
|
+
.tool-row .tokens{color:var(--text-soft)}
|
|
244
|
+
.tool-row .cost{color:var(--cost);font-weight:600}
|
|
245
|
+
.ai-updates-grid{display:grid;gap:16px}
|
|
246
|
+
.ai-update-card{padding:18px;border:1px solid var(--card-border);border-radius:12px;background:var(--soft)}
|
|
247
|
+
.ai-update-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
|
|
248
|
+
.ai-update-head h3{margin:0;color:var(--text);font-size:1.05rem;line-height:1.35;font-weight:700}
|
|
249
|
+
.ai-update-version{color:var(--text-soft);font-size:.84rem;font-weight:600;white-space:nowrap}
|
|
250
|
+
.ai-update-period{margin:8px 0 0;color:var(--muted);font-size:.82rem}
|
|
251
|
+
.ai-update-items{list-style:none;display:grid;gap:14px;margin:16px 0 0;padding:0;counter-reset:ai-updates}
|
|
252
|
+
.ai-update-item{position:relative;counter-increment:ai-updates;padding:16px 16px 14px 48px;border:1px solid var(--card-border);border-radius:10px;background:rgba(0,0,0,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
|
|
253
|
+
@media (prefers-color-scheme: light){
|
|
254
|
+
.ai-update-item{background:rgba(255,255,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
|
|
255
|
+
}
|
|
256
|
+
.ai-update-item:nth-child(even){background:rgba(0,0,0,.1)}
|
|
257
|
+
@media (prefers-color-scheme: light){
|
|
258
|
+
.ai-update-item:nth-child(even){background:rgba(255,255,255,.2)}
|
|
259
|
+
}
|
|
260
|
+
.ai-update-item::before{content:counter(ai-updates,decimal-leading-zero);position:absolute;top:16px;left:16px;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;line-height:1}
|
|
261
|
+
.ai-update-item-title{margin:0;color:var(--text);font-size:.92rem;font-weight:700;line-height:1.5}
|
|
262
|
+
.ai-update-item-body{margin:6px 0 0;color:var(--text-soft);font-size:.9rem;line-height:1.65}
|
|
263
|
+
.ai-update-original,.ai-update-history{margin-top:10px;border:1px solid var(--card-border);border-radius:8px;background:rgba(0,0,0,.15)}
|
|
264
|
+
@media (prefers-color-scheme: light){
|
|
265
|
+
.ai-update-original,.ai-update-history{background:rgba(255,255,255,.35)}
|
|
266
|
+
}
|
|
267
|
+
.ai-update-original summary,.ai-update-history summary{cursor:pointer;list-style:none;padding:8px 12px;color:var(--text-soft);font-size:.82rem;font-weight:600;user-select:none;display:flex;align-items:center;gap:6px}
|
|
268
|
+
.ai-update-original summary::before,.ai-update-history summary::before{content:"▶";font-size:.65rem;transition:transform .25s ease;display:inline-block}
|
|
269
|
+
.ai-update-original[open] summary::before,.ai-update-history[open] summary::before{transform:rotate(90deg)}
|
|
270
|
+
.ai-update-original summary::-webkit-details-marker,.ai-update-history summary::-webkit-details-marker{display:none}
|
|
271
|
+
.ai-update-original[open] summary,.ai-update-history[open] summary{border-bottom:1px solid var(--card-border)}
|
|
272
|
+
.ai-update-original div{padding:12px;color:var(--muted);font-size:.82rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
|
|
273
|
+
.ai-update-history>div{padding:12px;display:grid;gap:12px}
|
|
274
|
+
.ai-update-history-period{padding-left:12px;border-left:2px solid var(--card-border)}
|
|
275
|
+
.ai-update-history-period .ai-update-period{margin:0;color:var(--muted);font-size:.78rem}
|
|
276
|
+
.ai-update-history-items{list-style:none;display:grid;gap:10px;margin:8px 0 0;padding:0}
|
|
277
|
+
.ai-update-history-item{padding:0}
|
|
278
|
+
.ai-update-history-item .ai-update-item-title{font-size:.86rem}
|
|
279
|
+
.ai-update-history-item .ai-update-item-body{font-size:.84rem;color:var(--text-soft)}
|
|
280
|
+
.wrapped-section{background:linear-gradient(135deg,rgba(143,134,201,.10),rgba(90,191,160,.13))!important;border:1px solid rgba(255,255,255,.15)!important}
|
|
281
|
+
@media (prefers-color-scheme: light){
|
|
282
|
+
.wrapped-section{background:linear-gradient(135deg,rgba(104,96,155,.07),rgba(46,125,104,.08))!important;border:1px solid rgba(255,255,255,.5)!important}
|
|
283
|
+
}
|
|
284
|
+
.wrapped-card{display:grid;grid-template-columns:minmax(0,1.15fr) 160px minmax(260px,.95fr);gap:20px;align-items:center;padding:4px}
|
|
285
|
+
.wrapped-kicker{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid rgba(232,198,106,.3)!important;border-radius:999px;background:rgba(232,198,106,.1)!important;color:var(--token)!important;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
|
|
286
|
+
.wrapped-copy h3{margin:16px 0 8px;font-size:clamp(2.2rem,4vw,3.2rem);line-height:.98;letter-spacing:-.03em;font-weight:800;color:var(--text)}
|
|
287
|
+
.wrapped-beast-line{margin:0;color:var(--warn);font-size:.95rem;line-height:1.5}
|
|
288
|
+
.wrapped-total{margin-top:18px;max-width:100%;font-size:clamp(1.5rem,2.2vw,2.15rem);line-height:1;font-weight:800;letter-spacing:-.05em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:clip;font-variant-numeric:tabular-nums}
|
|
289
|
+
.wrapped-total-label{margin:8px 0 0;color:var(--muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}
|
|
290
|
+
.wrapped-analogy{margin:10px 0 0;color:var(--text-soft);font-size:.96rem;line-height:1.55}
|
|
291
|
+
.wrapped-art{display:grid;place-items:center}
|
|
292
|
+
.wrapped-art img{width:min(160px,100%);height:auto;image-rendering:auto;filter:drop-shadow(0 14px 28px rgba(0,0,0,.42)) drop-shadow(0 0 22px rgba(90,191,160,.24))}
|
|
293
|
+
@media (prefers-color-scheme: light){
|
|
294
|
+
.wrapped-art img{filter:drop-shadow(0 10px 20px rgba(60,45,20,.25)) invert(1) opacity(.8)}
|
|
295
|
+
}
|
|
296
|
+
.wrapped-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
|
|
297
|
+
.wrapped-metric{padding:14px;border:1px solid var(--card-border)!important;border-radius:12px;background:var(--soft)!important;min-width:0}
|
|
298
|
+
.wrapped-metric span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
|
|
299
|
+
.wrapped-metric b{display:block;color:var(--text);font-size:1rem;line-height:1.35;overflow-wrap:anywhere}
|
|
300
|
+
.wrapped-metric:last-child{grid-column:1/-1}
|
|
301
|
+
.contribution-wrap{display:grid;gap:16px;align-items:start}
|
|
302
|
+
.contribution-heatmap{min-width:0}
|
|
303
|
+
.contribution-months{display:grid;grid-template-columns:repeat(var(--weeks),minmax(0,1fr));gap:3px;padding-left:30px;margin-bottom:8px;color:var(--muted);font-size:.7rem;letter-spacing:.01em}
|
|
304
|
+
.contribution-months span{min-height:1em;white-space:nowrap;overflow:visible}
|
|
305
|
+
.contribution-board{display:grid;grid-template-columns:24px minmax(0,1fr);gap:6px;align-items:stretch}
|
|
306
|
+
.contribution-days{display:grid;grid-template-rows:repeat(7,1fr);gap:3px;color:var(--muted);font-size:.6rem;line-height:1;padding-top:0}
|
|
307
|
+
.contribution-grid{display:grid;grid-template-columns:repeat(var(--weeks),minmax(0,1fr));grid-template-rows:repeat(7,auto);grid-auto-flow:column;gap:3px}
|
|
308
|
+
.contribution-cell{display:block;width:100%;aspect-ratio:1;border-radius:2px;background:var(--contrib-0);border:1px solid var(--card-border)}
|
|
309
|
+
.contribution-cell.level-1{background:var(--contrib-1)}
|
|
310
|
+
.contribution-cell.level-2{background:var(--contrib-2)}
|
|
311
|
+
.contribution-cell.level-3{background:var(--contrib-3)}
|
|
312
|
+
.contribution-cell.level-4{background:var(--contrib-4)}
|
|
313
|
+
.contribution-cell.snake-body{background:var(--token);border-color:var(--token)}
|
|
314
|
+
.contribution-cell.snake-head{background:#fff;border-color:#fff;box-shadow:0 0 14px 4px var(--token);transform:scale(1.35);position:relative;z-index:1}
|
|
315
|
+
.contribution-section .prompt{cursor:pointer;user-select:none;transition:color .2s}
|
|
316
|
+
.contribution-section .prompt:hover{color:var(--token)}
|
|
317
|
+
.contribution-legend{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-top:12px;color:var(--muted);font-size:.72rem}
|
|
318
|
+
.contribution-legend .contribution-cell{width:12px;min-width:12px;height:12px;aspect-ratio:auto}
|
|
319
|
+
.contribution-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
|
|
320
|
+
.contribution-stat{padding:14px;border:1px solid var(--card-border);border-radius:12px;background:var(--soft)}
|
|
321
|
+
.contribution-stat span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
|
|
322
|
+
.contribution-stat b{display:block;color:var(--text);font-size:1rem;line-height:1.35;overflow-wrap:anywhere}
|
|
323
|
+
@keyframes blink{0%,45%{opacity:1}46%,100%{opacity:0}}
|
|
324
|
+
@keyframes sponsorWobble{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(-1px,-2px) rotate(-.8deg)}50%{transform:translate(0,-2.5px) rotate(0)}75%{transform:translate(1px,-2px) rotate(.8deg)}}
|
|
325
|
+
@media (prefers-reduced-motion:reduce){
|
|
326
|
+
.cursor,.tagline{animation:none}
|
|
327
|
+
.share-trigger,.share-close,.share-action,.card,.tool-row{transition:none}
|
|
328
|
+
}
|
|
329
|
+
@media (max-width:780px){
|
|
330
|
+
.wrap{padding:32px 16px}
|
|
331
|
+
header{display:block}
|
|
332
|
+
.meta{text-align:left;margin-top:16px}
|
|
333
|
+
.header-actions{align-items:flex-start;justify-self:start;min-width:0;margin-top:16px}
|
|
334
|
+
.cards{grid-template-columns:repeat(2,1fr)}
|
|
335
|
+
.card:nth-child(-n+2){grid-column:auto}
|
|
336
|
+
.rank-head,.tools-head{display:none}
|
|
337
|
+
.rank-list{display:grid;gap:12px}
|
|
338
|
+
.rank-line{display:grid;grid-template-columns:1fr;gap:8px;padding:16px;border:1px solid var(--card-border);border-radius:10px;background:var(--soft);box-shadow:none}
|
|
339
|
+
.rank-line .arrow{display:none}
|
|
340
|
+
.rank-line .name{white-space:normal;font-weight:700;color:var(--text)}
|
|
341
|
+
.rank-line .pct,.rank-line .tokens,.rank-line .cost,.tool-row .pct,.tool-row .tokens,.tool-row .cost{display:flex;justify-content:space-between;gap:14px;text-align:left}
|
|
342
|
+
.rank-line .pct::before,.rank-line .tokens::before,.rank-line .cost::before,.tool-row .pct::before,.tool-row .tokens::before,.tool-row .cost::before{content:attr(data-label);color:var(--muted);font-weight:500}
|
|
343
|
+
.trend-row{grid-template-columns:52px minmax(0,1fr) 72px 80px;gap:12px;padding:10px}
|
|
344
|
+
.tool-row{grid-template-columns:1fr;gap:8px}
|
|
345
|
+
.tool-row .pct:empty,.tool-row .tokens:empty,.tool-row .cost:empty{display:none}
|
|
346
|
+
.wrapped-card{grid-template-columns:1fr;gap:16px}
|
|
347
|
+
.wrapped-art{order:-1}
|
|
348
|
+
.wrapped-art img{width:140px}
|
|
349
|
+
.wrapped-metrics{grid-template-columns:1fr 1fr}
|
|
350
|
+
.contribution-months{padding-left:30px}
|
|
351
|
+
}
|
|
352
|
+
@media (max-width:480px){
|
|
353
|
+
.wrap{padding:24px 12px 32px}
|
|
354
|
+
h1{white-space:normal}
|
|
355
|
+
.cards{grid-template-columns:repeat(2,1fr);gap:10px}
|
|
356
|
+
.card{min-height:104px;padding:16px 14px 14px}
|
|
357
|
+
.share-dialog{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0}
|
|
358
|
+
.share-modal{min-height:100dvh;padding:20px 16px}
|
|
359
|
+
.share-section{padding:14px}
|
|
360
|
+
.share-action{min-height:42px;font-size:.72rem;gap:6px;white-space:normal}
|
|
361
|
+
.share-file-actions{grid-template-columns:1fr}
|
|
362
|
+
.section{padding:20px 16px}
|
|
363
|
+
.trend-row{grid-template-columns:48px minmax(0,1fr) 64px 72px;gap:10px;padding:8px 10px}
|
|
364
|
+
.trend-row .week,.trend-row em,.delta{font-size:.74rem}
|
|
365
|
+
.trend-summary{font-size:.8rem}
|
|
366
|
+
.wrapped-metrics,.contribution-stats{grid-template-columns:1fr}
|
|
367
|
+
.contribution-months{font-size:.66rem;padding-left:26px}
|
|
368
|
+
.contribution-board{grid-template-columns:22px minmax(0,1fr)}
|
|
369
|
+
.contribution-days{font-size:.58rem}
|
|
370
|
+
}"""
|