raidlock 0.1.0__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.
Files changed (126) hide show
  1. raidlock/__init__.py +11 -0
  2. raidlock/__main__.py +5 -0
  3. raidlock/_python.py +58 -0
  4. raidlock/achievements.py +156 -0
  5. raidlock/approvals.py +237 -0
  6. raidlock/bench.py +286 -0
  7. raidlock/bridge/__init__.py +186 -0
  8. raidlock/budgets.py +178 -0
  9. raidlock/cli.py +2153 -0
  10. raidlock/commands_install.py +114 -0
  11. raidlock/core/__init__.py +26 -0
  12. raidlock/core/advisories.py +16 -0
  13. raidlock/core/billing.py +54 -0
  14. raidlock/core/board.py +2251 -0
  15. raidlock/core/brief.py +111 -0
  16. raidlock/core/clock.py +40 -0
  17. raidlock/core/cost.py +198 -0
  18. raidlock/core/db.py +608 -0
  19. raidlock/core/errors.py +52 -0
  20. raidlock/core/exe.py +6 -0
  21. raidlock/core/hints.py +32 -0
  22. raidlock/core/identity.py +285 -0
  23. raidlock/core/lead.py +758 -0
  24. raidlock/core/lead_env.py +23 -0
  25. raidlock/core/lead_hook.py +42 -0
  26. raidlock/core/leases.py +19 -0
  27. raidlock/core/lock.py +99 -0
  28. raidlock/core/messages.py +98 -0
  29. raidlock/core/migrate.py +579 -0
  30. raidlock/core/model.py +126 -0
  31. raidlock/core/models.py +109 -0
  32. raidlock/core/paths.py +61 -0
  33. raidlock/core/portable.py +53 -0
  34. raidlock/core/receipts.py +73 -0
  35. raidlock/core/registry.py +39 -0
  36. raidlock/core/repos.py +250 -0
  37. raidlock/core/safeio.py +201 -0
  38. raidlock/core/status.py +52 -0
  39. raidlock/core/store.py +107 -0
  40. raidlock/core/tokens.py +77 -0
  41. raidlock/core/transcript.py +208 -0
  42. raidlock/duel.py +371 -0
  43. raidlock/foresight.py +191 -0
  44. raidlock/frames.py +162 -0
  45. raidlock/gitguard.py +753 -0
  46. raidlock/guard.py +239 -0
  47. raidlock/hooks.py +1526 -0
  48. raidlock/infer.py +205 -0
  49. raidlock/limits.py +685 -0
  50. raidlock/lore/__init__.py +22 -0
  51. raidlock/lore/approval.py +145 -0
  52. raidlock/lore/capture.py +146 -0
  53. raidlock/lore/cli.py +109 -0
  54. raidlock/lore/distill.py +17 -0
  55. raidlock/lore/frontmatter.py +56 -0
  56. raidlock/lore/inject.py +127 -0
  57. raidlock/lore/vault.py +264 -0
  58. raidlock/mcp/__init__.py +34 -0
  59. raidlock/mcp/resources.py +72 -0
  60. raidlock/mcp/server.py +184 -0
  61. raidlock/mcp/tools.py +178 -0
  62. raidlock/notify.py +144 -0
  63. raidlock/party.py +239 -0
  64. raidlock/pr.py +575 -0
  65. raidlock/prsync.py +318 -0
  66. raidlock/recipes/README.md +34 -0
  67. raidlock/recipes/__init__.py +105 -0
  68. raidlock/recipes/docs-refresh.md +15 -0
  69. raidlock/recipes/multi-repo-refactor.md +15 -0
  70. raidlock/recipes/security-audit.md +27 -0
  71. raidlock/recipes/upgrade-deps.md +15 -0
  72. raidlock/reputation.py +194 -0
  73. raidlock/resume.py +329 -0
  74. raidlock/resurrect.py +419 -0
  75. raidlock/routing.py +419 -0
  76. raidlock/runners/__init__.py +16 -0
  77. raidlock/runners/base.py +341 -0
  78. raidlock/runners/brief.py +176 -0
  79. raidlock/runners/claude_code.py +121 -0
  80. raidlock/runners/cli.py +110 -0
  81. raidlock/runners/codex.py +114 -0
  82. raidlock/runners/gemini.py +64 -0
  83. raidlock/runners/isolation.py +391 -0
  84. raidlock/runners/policy.py +123 -0
  85. raidlock/runners/runner.py +921 -0
  86. raidlock/runners/shell.py +35 -0
  87. raidlock/runners/verifycache.py +93 -0
  88. raidlock/runners/workspace.py +376 -0
  89. raidlock/scan.py +357 -0
  90. raidlock/snapshot.py +151 -0
  91. raidlock/treasury.py +210 -0
  92. raidlock/tui.py +223 -0
  93. raidlock/web/__init__.py +5 -0
  94. raidlock/web/achievements/view.css +19 -0
  95. raidlock/web/achievements/view.js +58 -0
  96. raidlock/web/bosses/view.css +19 -0
  97. raidlock/web/bosses/view.js +46 -0
  98. raidlock/web/cli.py +90 -0
  99. raidlock/web/data.py +687 -0
  100. raidlock/web/export.py +153 -0
  101. raidlock/web/frames/view.css +25 -0
  102. raidlock/web/frames/view.js +63 -0
  103. raidlock/web/graph/__init__.py +142 -0
  104. raidlock/web/graph/view.css +33 -0
  105. raidlock/web/graph/view.js +136 -0
  106. raidlock/web/raidmap/__init__.py +205 -0
  107. raidlock/web/raidmap/view.css +15 -0
  108. raidlock/web/raidmap/view.js +47 -0
  109. raidlock/web/replay/__init__.py +258 -0
  110. raidlock/web/replay/view.css +13 -0
  111. raidlock/web/replay/view.js +127 -0
  112. raidlock/web/server.py +292 -0
  113. raidlock/web/static/app.css +851 -0
  114. raidlock/web/static/app.js +2102 -0
  115. raidlock/web/static/fonts/OFL.txt +93 -0
  116. raidlock/web/static/fonts/cinzel-600.woff2 +0 -0
  117. raidlock/web/static/fonts/cinzel-700.woff2 +0 -0
  118. raidlock/web/static/icon-32.png +0 -0
  119. raidlock/web/static/icon-raid.svg +1 -0
  120. raidlock/web/static/icon.svg +1 -0
  121. raidlock/web/static/index.html +122 -0
  122. raidlock-0.1.0.dist-info/METADATA +186 -0
  123. raidlock-0.1.0.dist-info/RECORD +126 -0
  124. raidlock-0.1.0.dist-info/WHEEL +4 -0
  125. raidlock-0.1.0.dist-info/entry_points.txt +34 -0
  126. raidlock-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,851 @@
1
+ @font-face{font-family:"Cinzel";src:url("/static/fonts/cinzel-600.woff2") format("woff2");font-weight:600;font-display:swap}
2
+ @font-face{font-family:"Cinzel";src:url("/static/fonts/cinzel-700.woff2") format("woff2");font-weight:700;font-display:swap}
3
+ :root,[data-theme=raid]{
4
+ --brand-primary:#7ea2ff;--brand-neutral:#a1a7b3;--brand-success:#5fd29a;--brand-warning:#f0b44c;--brand-danger:#f07a8c;
5
+ --bg1:#0b0a1a;--bg2:#1b1338;--ink:#f3e9d2;--muted:#b9a98a;--accent:#f5c451;--accent2:#c9902b;--on-accent:#0b0a1a;
6
+ --todo:#7aa2ff;--doing:#ff9f43;--review:#c08bff;--blocked:#ff5d73;--done:#4ee39a;--cancelled:var(--brand-neutral);
7
+ --s-working:#4ee39a;--s-quiet:#9bd8b8;--s-review:#c08bff;--s-blocked:#ff5d73;--s-stalled:#ffb020;--s-idle:#8f88a8;
8
+ --ok:#4ee39a;--ok-edge:#2f8f61;--no:#ffb3bf;--no-edge:#7a3a4a;--coin:#ffe08a;
9
+ --panel:rgba(24,17,48,.78);--panel2:rgba(18,13,38,.72);--card1:#352a52;--card2:#2a2140;--edge:#5b4a86;--pill:#1b1433;--pill-edge:#4a3c73;
10
+ --btn:#241b40;--bubble:#2a2147;--toast:rgba(32,24,62,.96);--sticky:rgba(20,14,42,.94);
11
+ --font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
12
+ --font-display:"Cinzel","Palatino Linotype",Palatino,Georgia,serif;
13
+ --page:radial-gradient(1200px 700px at 70% -10%,#3a2470 0%,transparent 60%),linear-gradient(180deg,var(--bg2),var(--bg1));
14
+ --glow:0 0 12px rgba(245,196,81,.45);
15
+ }
16
+ [data-theme=plain]{
17
+ --brand-primary:#2f5bd3;--brand-neutral:#5d6472;--brand-success:#17784a;--brand-warning:#8a5700;--brand-danger:#c3283f;
18
+ --bg1:#f6f7f9;--bg2:#f6f7f9;--ink:#1d2129;--muted:var(--brand-neutral);--accent:var(--brand-primary);--accent2:var(--brand-primary);--on-accent:#ffffff;
19
+ --todo:var(--brand-primary);--doing:#a24c08;--review:#7a3fc4;--blocked:var(--brand-danger);--done:var(--brand-success);
20
+ --s-working:var(--brand-success);--s-quiet:#2f7a57;--s-review:#7a3fc4;--s-blocked:var(--brand-danger);--s-stalled:var(--brand-warning);--s-idle:var(--brand-neutral);
21
+ --ok:var(--brand-success);--ok-edge:var(--brand-success);--no:#b0263a;--no-edge:#d9a3ac;--coin:#7a5600;
22
+ --panel:#ffffff;--panel2:#ffffff;--card1:#ffffff;--card2:#ffffff;--edge:#d6dae1;--pill:#f1f3f6;--pill-edge:#d6dae1;
23
+ --btn:#ffffff;--bubble:#f1f3f6;--toast:#ffffff;--sticky:rgba(246,247,249,.96);
24
+ --font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--page:#f6f7f9;--glow:none;
25
+ }
26
+ @media (prefers-color-scheme:dark){
27
+ :root[data-theme=plain]{
28
+ --brand-primary:#7ea2ff;--brand-neutral:#a1a7b3;--brand-success:#5fd29a;--brand-warning:#f0b44c;--brand-danger:#f07a8c;
29
+ --bg1:#14161b;--bg2:#14161b;--ink:#e6e8ec;--muted:var(--brand-neutral);--accent:var(--brand-primary);--accent2:var(--brand-primary);--on-accent:#0d0f14;
30
+ --todo:var(--brand-primary);--doing:#f0a35e;--review:#b993f0;--blocked:var(--brand-danger);--done:var(--brand-success);
31
+ --s-working:var(--brand-success);--s-quiet:#8fc7aa;--s-review:#b993f0;--s-blocked:var(--brand-danger);--s-stalled:var(--brand-warning);--s-idle:#9aa1ad;
32
+ --ok:var(--brand-success);--ok-edge:#2f7a55;--no:#f3a2ae;--no-edge:#6b3a44;--coin:#f0d27a;
33
+ --panel:#1c1f26;--panel2:#1c1f26;--card1:#22262e;--card2:#22262e;--edge:#323844;--pill:#262a33;--pill-edge:#3a404c;
34
+ --btn:#22262e;--bubble:#262a33;--toast:#22262e;--page:#14161b;--sticky:rgba(20,22,27,.96);
35
+ }
36
+ }
37
+ *{box-sizing:border-box}
38
+ html,body{margin:0;min-height:100%;color:var(--ink);font-family:var(--font);overflow-x:clip;background:var(--bg1)}
39
+ body{background:var(--page);min-height:100vh;line-height:1.4}
40
+ #stars{position:fixed;inset:0;pointer-events:none;z-index:0;width:100%;height:100%}
41
+ [data-theme=plain] #stars,[data-theme=plain] .ico,[data-theme=plain] .raid-sub{display:none!important}
42
+ header,#tabs,main,footer{position:relative;z-index:2}
43
+ main{max-width:1180px;margin:0 auto}
44
+ main:focus{outline:none}
45
+ .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
46
+ .skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--accent);color:var(--on-accent);padding:8px 14px;border-radius:8px;font-weight:bold;text-decoration:none}
47
+ .skip:focus{top:12px}
48
+ header{z-index:5;display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between;padding:16px 22px 8px;max-width:1180px;margin:0 auto}
49
+ .brand{min-width:0}
50
+ h1{margin:0;font-size:22px;letter-spacing:.5px;color:var(--accent);text-shadow:var(--glow);font-weight:700}
51
+ h1 .lockup{display:block;height:26px;width:auto;max-width:100%;overflow:visible}
52
+ h1 .lk-mark{fill:var(--accent)}
53
+ h1 .lk-word{fill:var(--ink)}
54
+ [data-theme=raid] h1 .lockup{filter:drop-shadow(0 0 6px rgba(245,196,81,.45))}
55
+ #crumbs{font-size:14px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
56
+ #crumbs a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
57
+ #crumbs [aria-current]{color:var(--ink)}
58
+ #crumbs .err{color:var(--no)}
59
+ .hud{display:flex;gap:8px 10px;align-items:center;flex-wrap:wrap;min-width:0}
60
+ .tog{background:var(--btn);color:var(--ink);border:1px solid var(--edge);border-radius:6px;padding:6px 10px;font:inherit;font-size:14px;cursor:pointer;text-decoration:none;display:inline-block;line-height:1.2;min-height:32px}
61
+ .tog[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
62
+ .tog:hover{border-color:var(--accent)}
63
+ .menu{position:relative}
64
+ .menu>summary,.more-menu>summary{list-style:none}
65
+ .menu>summary::-webkit-details-marker,.more-menu>summary::-webkit-details-marker{display:none}
66
+ .menu[open]>summary,.more-menu[open]>summary{border-color:var(--accent);color:var(--accent)}
67
+ .menu-body{position:absolute;right:0;top:calc(100% + 6px);z-index:90;display:flex;flex-direction:column;gap:8px;padding:10px;min-width:230px;max-width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);overflow:auto;background:var(--toast);border:1px solid var(--edge);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.35)}
68
+ .provider-info ul{margin:4px 0 0;padding-left:18px;font-size:14px;color:var(--muted)}
69
+ .provider-info p{margin:4px 0 0}
70
+ #tabs{display:flex;flex-wrap:wrap;gap:6px;padding:4px 22px 10px;max-width:1180px;margin:0 auto}
71
+ #tabs a{text-decoration:none;display:inline-block;background:var(--panel);color:var(--muted);border:1px solid var(--edge);border-radius:999px;padding:6px 14px;font-size:14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
72
+ #tabs a[aria-current=page]{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:bold}
73
+ #notice{margin:0 22px 10px;padding:8px 12px;border:1px solid var(--s-stalled);border-radius:10px;font-size:14px}
74
+ #soundBanner{position:fixed;left:16px;bottom:16px;z-index:70;background:var(--toast);border:1px solid var(--accent2);color:var(--ink);border-radius:999px;padding:6px 14px;font:inherit;font-size:14px;box-shadow:0 4px 14px rgba(0,0,0,.4);cursor:pointer;max-width:calc(100vw - 32px)}
75
+ .raid-sub{display:block;margin-top:2px;font-size:12px;color:var(--muted);font-weight:normal;letter-spacing:.08em;text-transform:uppercase;font-style:normal}
76
+ .badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;border-radius:999px;padding:1px 8px;border:1px solid var(--s,var(--edge));color:var(--s,var(--ink));white-space:nowrap;max-width:100%}
77
+ .badge b{color:var(--s,var(--ink));font-weight:600}
78
+ .bill{font-size:12px;border-radius:6px;padding:0 6px;border:1px solid var(--edge);color:var(--muted);white-space:nowrap}
79
+ .bill.api{color:var(--coin);border-color:var(--accent2)}
80
+ .bill.plan{color:var(--ok);border-color:var(--ok-edge)}
81
+ .cls{font-size:14px;color:var(--muted);font-weight:normal}
82
+ .pill{display:inline-flex;align-items:center;gap:3px;background:var(--pill);border:1px solid var(--pill-edge);border-radius:9px;padding:1px 8px;color:var(--muted);font-size:14px;max-width:100%;overflow-wrap:anywhere}
83
+ .pill.tk{color:var(--accent);border-color:var(--accent2)}
84
+ .pill.ow{color:var(--ink)}
85
+ .pill.coin{color:var(--coin)}
86
+ .pill.claim{color:var(--ok);border-color:var(--ok-edge)}
87
+ .pill.noclaim{color:var(--no);border-color:var(--no-edge)}
88
+ .pill.lock{color:var(--ink)}
89
+ .pill.lock.low{color:var(--blocked);border-color:var(--blocked)}
90
+ .pill.takeover{color:var(--s-stalled);border-color:var(--s-stalled)}
91
+ .pill.appr{color:var(--review);border-color:var(--review)}
92
+ .pill.appr.ok{color:var(--ok);border-color:var(--ok-edge)}
93
+ .pill.pr{color:var(--accent);border-color:var(--accent2);text-decoration:none}
94
+ .empty{color:var(--muted);font-size:14px;padding:10px 4px;list-style:none}
95
+ code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;background:var(--pill);border:1px solid var(--pill-edge);border-radius:5px;padding:1px 5px;overflow-wrap:anywhere}
96
+ #limits{display:flex;flex-wrap:wrap;gap:8px;padding:0 22px 12px;min-width:0}
97
+ .limit{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;flex:1 1 300px;min-width:0;padding:8px 12px;border:1px solid var(--pill-edge);border-radius:8px;background:var(--panel);font-size:14px}
98
+ .limit strong{font-size:14px}
99
+ .limit .lv small{color:var(--muted);font-size:12px}
100
+ .limit .age{color:var(--muted);font-size:12px;margin-left:auto}
101
+ .limit .age.old{color:var(--s-stalled)}
102
+ .limit.warning{border-color:var(--s-stalled)}
103
+ .limit.critical{border-color:var(--blocked)}
104
+ #overview{padding:4px 22px 20px}
105
+ #overview>h2{font-size:18px;margin:4px 0 12px}
106
+ #projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px}
107
+ .proj{display:block;color:inherit;text-decoration:none;background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:12px;min-width:0}
108
+ .proj:hover{border-color:var(--accent)}
109
+ .proj h3{margin:0;color:var(--accent);font-size:16px;overflow-wrap:anywhere}
110
+ .proj .top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
111
+ .proj .act{font-size:14px;color:var(--muted)}
112
+ .proj.att-0{border-left:4px solid var(--blocked)}
113
+ .proj.att-1{border-left:4px solid var(--review)}
114
+ .proj.att-2{border-left:4px solid var(--doing)}
115
+ .proj .repos{margin-top:8px}
116
+ .bar{display:flex;height:8px;border-radius:6px;overflow:hidden;background:var(--pill);border:1px solid var(--pill-edge);margin:6px 0 4px}
117
+ .bar i{display:block;height:100%;background:var(--lc)}
118
+ .start{font-size:14px;color:var(--muted)}
119
+ .start code{display:block;margin-top:5px}
120
+ #idle{margin:12px 0 0;padding:8px 12px;border:1px dashed var(--edge);border-radius:10px;font-size:14px;color:var(--muted)}
121
+ #idle a{color:var(--accent)}
122
+ #board{padding:0 22px 6px}
123
+ :is(#wsbar,#realmbar){position:sticky;top:0;z-index:4;margin:0 0 14px;padding:10px 14px;border-radius:0 0 10px 10px;background:var(--sticky);border-bottom:1px solid var(--edge);backdrop-filter:blur(8px)}
124
+ .wsrow{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;min-width:0}
125
+ #wsName{margin:0;font-size:18px;color:var(--accent);overflow-wrap:anywhere}
126
+ #repos,.repos{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
127
+ .repo{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:14px;border:1px solid var(--pill-edge);background:var(--pill);color:var(--ink);border-radius:999px;padding:2px 10px;min-height:28px;max-width:100%;overflow-wrap:anywhere}
128
+ .repo .rc{font-size:12px;color:var(--muted)}
129
+ button.repo{cursor:pointer}
130
+ button.repo:hover{border-color:var(--accent)}
131
+ button.repo[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:bold}
132
+ button.repo[aria-pressed=true] .rc{color:inherit}
133
+ .status-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;margin:6px 0 0;font-size:14px;min-width:0}
134
+ .seg{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
135
+ .seg+.seg::before{content:"\00B7";color:var(--muted);margin:0 8px}
136
+ .seg.s-doing b{color:var(--doing)}
137
+ .seg.s-review b{color:var(--review)}
138
+ .seg.s-blocked b{color:var(--blocked)}
139
+ .seg.s-todo b{color:var(--todo)}
140
+ .seg.s-done b{color:var(--done)}
141
+ .seg.s-stalled{color:var(--s-stalled);white-space:normal;min-width:0;overflow-wrap:anywhere;display:inline}
142
+ .seg.s-spend b{color:var(--coin)}
143
+ .seg.zero{color:var(--muted)}
144
+ :is(#viewTabs,#realmTabs){display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
145
+ :is(#viewTabs,#realmTabs) a{font-size:14px;text-decoration:none;color:var(--muted);border:1px solid var(--edge);border-radius:8px;padding:5px 11px;background:var(--btn)}
146
+ :is(#viewTabs,#realmTabs) a[aria-current=page]{color:var(--accent);border-color:var(--accent);font-weight:bold}
147
+ #focus{display:flex;flex-direction:column;gap:12px}
148
+ .block{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:10px 14px 12px;min-width:0}
149
+ .block h2{margin:0;font-size:16px;display:inline-flex;flex-direction:column}
150
+ .block>h2{display:flex}
151
+ .block .sub{font-size:14px;color:var(--muted);margin:2px 0 0}
152
+ #needs{border-color:var(--accent2);box-shadow:inset 4px 0 0 var(--accent)}
153
+ #needs.calm{box-shadow:none;border-color:var(--edge)}
154
+ .fold>summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;list-style:none}
155
+ .fold>summary::-webkit-details-marker{display:none}
156
+ .fold>summary::before,.panel>summary::before,.sub-fold>summary::before{content:"\25B8";color:var(--muted);font-size:14px;width:12px}
157
+ .fold[open]>summary::before,.panel[open]>summary::before,.sub-fold[open]>summary::before{content:"\25BE"}
158
+ .rows{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
159
+ .row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:start;border-top:1px solid var(--pill-edge);padding:8px 2px 2px;min-width:0}
160
+ .rows>.row:first-child{border-top:0;padding-top:2px}
161
+ .row-main{min-width:0}
162
+ .row-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0}
163
+ .row-title .t{font-size:14px;font-weight:600;overflow-wrap:anywhere}
164
+ .row-title .cid{font-size:12px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}
165
+ .row .reason{font-size:14px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
166
+ .row.one .reason{white-space:normal;overflow-wrap:anywhere}
167
+ .row .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
168
+ .row-actions{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}
169
+ .row .det{grid-column:1/-1;font-size:14px;border-top:1px dashed var(--pill-edge);padding-top:6px;max-height:320px;overflow:auto;overflow-wrap:anywhere}
170
+ .row .det>div{margin-bottom:4px}
171
+ .row .det b{color:var(--muted);font-weight:normal}
172
+ .row .why{color:var(--no)}
173
+ button.primary{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);border-radius:6px;padding:6px 14px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;min-height:32px}
174
+ button.primary:hover{filter:brightness(1.08)}
175
+ .more-menu{position:relative}
176
+ .more-body{position:absolute;right:0;top:calc(100% + 4px);z-index:30;width:min(520px,calc(100vw - 48px));background:var(--toast);border:1px solid var(--edge);border-radius:10px;padding:8px 10px;box-shadow:0 8px 24px rgba(0,0,0,.3);display:flex;flex-direction:column;gap:6px}
177
+ .more-body p{margin:0}
178
+ .cmd{display:flex;align-items:center;gap:6px;min-width:0}
179
+ .cmd code{flex:1 1 0;width:0;min-width:0;overflow-x:auto;white-space:pre;padding:3px 6px}
180
+ .cmd .copy{background:var(--btn);color:var(--ink);border:1px solid var(--edge);border-radius:6px;font:inherit;font-size:14px;padding:3px 10px;min-height:28px;cursor:pointer;flex:none}
181
+ .cmd .copy:hover{border-color:var(--accent)}
182
+ .more-row{list-style:none;padding-top:6px}
183
+ #lanes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
184
+ .lane{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:10px 12px;min-width:0;border-top:4px solid var(--c,var(--edge))}
185
+ .lane-h{margin:0;font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:6px}
186
+ .lane-h .count{font-size:14px;background:var(--pill);border-radius:10px;padding:2px 8px;color:var(--muted)}
187
+ .lane[data-lane=todo]{--c:var(--todo)}.lane[data-lane=doing]{--c:var(--doing)}.lane[data-lane=review]{--c:var(--review)}.lane[data-lane=blocked]{--c:var(--blocked)}.lane[data-lane=done]{--c:var(--done)}.lane[data-lane=cancelled]{--c:var(--cancelled)}
188
+ .lane .row{grid-template-columns:minmax(0,1fr)}
189
+ .lane .row-actions{justify-content:flex-start}
190
+ #panels{display:flex;flex-direction:column;gap:10px;padding:12px 22px 14px}
191
+ .panel{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:8px 14px;min-width:0}
192
+ .panel>summary{cursor:pointer;font-size:15px;font-weight:600;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;list-style:none;padding:4px 0;min-height:32px}
193
+ .panel>summary>span:first-child{display:inline-flex;flex-direction:column}
194
+ .panel>summary::-webkit-details-marker{display:none}
195
+ .panel>summary .cls{font-weight:normal}
196
+ .sub-fold{margin-top:10px}
197
+ .sub-fold>summary{cursor:pointer;font-size:14px;color:var(--accent);list-style:none;display:flex;gap:4px;align-items:baseline}
198
+ .sub-fold>summary::-webkit-details-marker{display:none}
199
+ .panel-tools{margin-top:6px}
200
+ select{background:var(--btn);color:var(--ink);border:1px solid var(--edge);border-radius:6px;font:inherit;font-size:14px;padding:3px 6px;max-width:100%;min-height:28px}
201
+ .vol{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);max-width:100%}
202
+ .vol input{width:100px;accent-color:var(--accent)}
203
+ .agents{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:8px;margin-top:6px}
204
+ .agent{display:flex;gap:10px;align-items:flex-start;background:var(--panel2);border:1px solid var(--edge);border-left:4px solid var(--s);border-radius:10px;padding:8px 10px;min-width:0}
205
+ .agent .av{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:bold;background:var(--pill);border:2px solid var(--s)}
206
+ [data-theme=raid] .agent .av{font-size:18px;background:radial-gradient(circle at 30% 30%,#5d4aa0,#241a48)}
207
+ .agent .body{min-width:0;flex:1}
208
+ .agent .nm{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;overflow-wrap:anywhere}
209
+ .agent .line{font-size:14px;margin-top:3px;overflow-wrap:anywhere;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}
210
+ .agent .who{color:var(--ink)}
211
+ .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
212
+ .chip{border:1px solid var(--pill-edge);border-radius:999px;padding:1px 9px;background:var(--pill);font-size:14px;color:var(--muted);overflow-wrap:anywhere;max-width:100%}
213
+ .vlist{position:relative;height:min(60vh,460px);overflow-y:auto;overflow-x:hidden;margin-top:8px;border-radius:8px}
214
+ .vlist .spacer{position:relative;width:100%}
215
+ .lrow{position:absolute;left:0;right:0;height:64px;border-radius:12px;display:flex;gap:8px;align-items:flex-start;padding:4px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;width:100%}
216
+ .lrow:hover .bub,.lrow[aria-pressed=true] .bub{border-color:var(--accent2)}
217
+ .ava{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:bold;background:var(--pill);border:1px solid var(--accent2)}
218
+ [data-theme=raid] .ava{font-size:15px;background:radial-gradient(circle at 30% 30%,#5d4aa0,#241a48)}
219
+ .bub{min-width:0;flex:1;background:var(--bubble);border:1px solid var(--pill-edge);border-radius:4px 12px 12px 12px;padding:5px 9px;font-size:14px;overflow:hidden}
220
+ .bub .hd{display:flex;gap:2px 8px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
221
+ .bub .hd b{color:var(--ink)}
222
+ .bub .tx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
223
+ .k-note .bub,.k-status .bub{border-style:dashed}
224
+ .k-review .bub{border-color:var(--review)}
225
+ .k-handback .bub{border-color:var(--done)}
226
+ #logDetail{margin-top:8px;padding:8px 10px;border:1px solid var(--edge);border-radius:10px;background:var(--bubble);font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap}
227
+ #chat{max-height:320px;border-radius:8px;overflow:auto;margin-top:8px;display:flex;flex-direction:column;gap:8px;padding-right:4px}
228
+ .msg{display:flex;gap:8px;align-items:flex-start;min-width:0}
229
+ .msg .bub .tx{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
230
+ .msg .hd{flex-wrap:wrap;white-space:normal}
231
+ .tbl{overflow-x:auto;margin-top:8px;max-width:100%}
232
+ table{border-collapse:collapse;width:100%;font-size:14px}
233
+ th,td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--pill-edge);white-space:nowrap}
234
+ th{color:var(--muted);font-weight:normal;font-size:14px}
235
+ td.num,th.num{text-align:right}
236
+ .tsum{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;font-size:14px}
237
+ .tsum .big{font-size:20px;color:var(--coin);font-weight:bold}
238
+ .bars{display:flex;flex-direction:column;gap:6px;margin-top:8px}
239
+ .brow{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr) auto;gap:8px;align-items:center;font-size:14px}
240
+ .brow .nm{white-space:normal;overflow-wrap:anywhere}
241
+ .brow .tr{height:8px;border-radius:4px;background:var(--pill);overflow:hidden}
242
+ .brow .tr i{display:block;height:100%;background:var(--accent)}
243
+ .note-sm{font-size:14px;color:var(--muted);margin-top:6px}
244
+ .burst{position:fixed;pointer-events:none;z-index:50;font-size:18px;animation:fly 1.3s ease-out forwards}
245
+
246
+ #toasts{position:fixed;inset:auto 16px 16px auto;margin:0;padding:0;border:0;background:none;color:var(--ink);overflow:visible;z-index:60;display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 32px))}
247
+ .toast{background:var(--toast);border:1px solid var(--accent2);border-radius:10px;padding:10px 12px;font-size:14px;box-shadow:0 6px 20px rgba(0,0,0,.35);overflow-wrap:anywhere}
248
+ [data-theme=raid] .toast{animation:slidein .4s ease-out,fadeout .6s ease-in 5.4s forwards}
249
+ .toast b{color:var(--accent)}
250
+ .raven{position:fixed;z-index:80;pointer-events:none;font-size:22px;left:0;top:0}
251
+ footer{text-align:center;color:var(--muted);font-size:14px;padding:0 16px 18px}
252
+ [hidden]{display:none!important}
253
+ :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
254
+ .cues{border:1px solid var(--edge);border-radius:8px;margin:0;padding:6px 8px 8px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center;min-width:0}
255
+ .cues legend{font-size:14px;color:var(--muted);padding:0 4px}
256
+ .cue{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;min-height:24px;min-width:0}
257
+ .cue input{accent-color:var(--accent);width:16px;height:16px;margin:0;flex:none}
258
+ .cue span{display:flex;flex-direction:column;min-width:0;line-height:1.25}
259
+ .cue small{color:var(--muted);font-size:12px}
260
+ .cue-try{background:var(--btn);color:var(--ink);border:1px solid var(--edge);border-radius:6px;font:inherit;font-size:12px;padding:3px 8px;min-height:24px;cursor:pointer}
261
+ .cue-try:hover{border-color:var(--accent)}
262
+ .sound-body{width:300px}
263
+ .model-trust{margin-top:10px}
264
+ .model-trust>summary,.model-trust td>details>summary{cursor:pointer;font-size:14px;color:var(--accent)}
265
+ .evid{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:2px;font-size:14px;white-space:normal}
266
+ .evid li{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap}
267
+ .evid .delta{color:var(--muted)}
268
+ .ag-0{--agc:#ff9f43}.ag-1{--agc:#7aa2ff}.ag-2{--agc:#4ee39a}.ag-3{--agc:#ff6fae}.ag-4{--agc:#ffe08a}.ag-5{--agc:#5fd8e6}.ag-6{--agc:#c08bff}.ag-7{--agc:#b8e05a}
269
+ [data-theme=plain] .ag-0{--agc:#a24c08}[data-theme=plain] .ag-1{--agc:#2f5bd3}[data-theme=plain] .ag-2{--agc:#17784a}[data-theme=plain] .ag-3{--agc:#b3246b}
270
+ [data-theme=plain] .ag-4{--agc:#7a5600}[data-theme=plain] .ag-5{--agc:#0d6f7c}[data-theme=plain] .ag-6{--agc:#7a3fc4}[data-theme=plain] .ag-7{--agc:#4d6b0f}
271
+ @media (prefers-color-scheme:dark){
272
+ :root[data-theme=plain] .ag-0{--agc:#f0a35e}:root[data-theme=plain] .ag-1{--agc:#7ea2ff}:root[data-theme=plain] .ag-2{--agc:#5fd29a}:root[data-theme=plain] .ag-3{--agc:#f08bbd}
273
+ :root[data-theme=plain] .ag-4{--agc:#f0d27a}:root[data-theme=plain] .ag-5{--agc:#6fd0dc}:root[data-theme=plain] .ag-6{--agc:#b993f0}:root[data-theme=plain] .ag-7{--agc:#b5d86a}
274
+ }
275
+ #viewPane{min-width:0;margin-bottom:14px}
276
+ #viewPane h2{margin:0 0 4px;font-size:18px;color:var(--accent);display:flex;flex-direction:column}
277
+ #viewPane .legend-row{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:14px;color:var(--muted);margin:6px 0 10px}
278
+ #viewPane .legend-row span{display:inline-flex;align-items:center;gap:5px}
279
+ #viewPane .sw{width:12px;height:12px;border-radius:3px;background:var(--agc,var(--edge));display:inline-block}
280
+ .scrollbox{overflow:auto;max-width:100%;border:1px solid var(--edge);border-radius:10px;background:var(--panel2);padding:6px}
281
+ .scrollbox svg{display:block;max-width:none}
282
+ .forecast{margin-top:12px;padding-top:8px;border-top:1px solid var(--edge)}
283
+ .forecast h3{margin:0;font-size:14px;color:var(--accent)}
284
+ .spark{display:flex;align-items:flex-end;gap:3px;height:48px;margin-top:8px;max-width:420px}
285
+ .spark i{flex:1 1 0;min-width:3px;background:var(--coin);border-radius:2px 2px 0 0;opacity:.85}
286
+ .alerts{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
287
+ .alert{font-size:14px;border:1px solid var(--s-stalled);border-left-width:5px;border-radius:8px;padding:6px 10px;overflow-wrap:anywhere}
288
+ .alert.critical{border-color:var(--blocked)}
289
+ @media (max-width:640px){
290
+ header,#tabs,#overview,#board,#panels,#limits{padding-left:16px;padding-right:16px}
291
+ :is(#wsbar,#realmbar){position:static;margin-left:-16px;margin-right:-16px;padding:8px 16px}
292
+ #notice{margin-left:16px;margin-right:16px}
293
+ .menu{position:static}
294
+ .menu-body{left:16px;right:16px;min-width:0;max-width:none}
295
+ header{position:relative}
296
+ .brow{grid-template-columns:minmax(0,7rem) minmax(0,1fr) auto}
297
+ .row{grid-template-columns:minmax(0,1fr)}
298
+ .row-actions{justify-content:flex-start}
299
+ .more-menu{position:static}
300
+ .more-body{left:0;right:0;width:auto}
301
+ .row{position:relative}
302
+ .sound-body{width:auto}
303
+ .limit .age{margin-left:0}
304
+ :is(#wsbar,#realmbar) .wsrow{flex-wrap:nowrap;gap:10px}
305
+ #wsName{font-size:16px;flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
306
+ #repos{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;flex:1 1 auto}
307
+ #repos .repo{flex:none}
308
+ :is(#wsbar,#realmbar) .status-line{font-size:14px;margin-top:4px}
309
+ }
310
+ @media (max-width:600px){
311
+ table.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
312
+ table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
313
+ table.stack tr{border-bottom:1px solid var(--pill-edge);padding:6px 0}
314
+ table.stack td{display:flex;justify-content:space-between;gap:12px;border:0;padding:2px 4px;white-space:normal;text-align:right;overflow-wrap:anywhere}
315
+ table.stack td::before{content:attr(data-label);color:var(--muted);text-align:left;flex:none}
316
+ table.stack td>details{text-align:left;flex:1;min-width:0}
317
+ }
318
+ @keyframes fly{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.4) rotate(220deg);opacity:0}}
319
+ @keyframes slidein{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
320
+ @keyframes fadeout{to{opacity:0;transform:translateY(8px)}}
321
+ @media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
322
+ .width-0 { width: 0%; }
323
+ .height-0 { height: 0%; }
324
+ .width-1 { width: 1%; }
325
+ .height-1 { height: 1%; }
326
+ .width-2 { width: 2%; }
327
+ .height-2 { height: 2%; }
328
+ .width-3 { width: 3%; }
329
+ .height-3 { height: 3%; }
330
+ .width-4 { width: 4%; }
331
+ .height-4 { height: 4%; }
332
+ .width-5 { width: 5%; }
333
+ .height-5 { height: 5%; }
334
+ .width-6 { width: 6%; }
335
+ .height-6 { height: 6%; }
336
+ .width-7 { width: 7%; }
337
+ .height-7 { height: 7%; }
338
+ .width-8 { width: 8%; }
339
+ .height-8 { height: 8%; }
340
+ .width-9 { width: 9%; }
341
+ .height-9 { height: 9%; }
342
+ .width-10 { width: 10%; }
343
+ .height-10 { height: 10%; }
344
+ .width-11 { width: 11%; }
345
+ .height-11 { height: 11%; }
346
+ .width-12 { width: 12%; }
347
+ .height-12 { height: 12%; }
348
+ .width-13 { width: 13%; }
349
+ .height-13 { height: 13%; }
350
+ .width-14 { width: 14%; }
351
+ .height-14 { height: 14%; }
352
+ .width-15 { width: 15%; }
353
+ .height-15 { height: 15%; }
354
+ .width-16 { width: 16%; }
355
+ .height-16 { height: 16%; }
356
+ .width-17 { width: 17%; }
357
+ .height-17 { height: 17%; }
358
+ .width-18 { width: 18%; }
359
+ .height-18 { height: 18%; }
360
+ .width-19 { width: 19%; }
361
+ .height-19 { height: 19%; }
362
+ .width-20 { width: 20%; }
363
+ .height-20 { height: 20%; }
364
+ .width-21 { width: 21%; }
365
+ .height-21 { height: 21%; }
366
+ .width-22 { width: 22%; }
367
+ .height-22 { height: 22%; }
368
+ .width-23 { width: 23%; }
369
+ .height-23 { height: 23%; }
370
+ .width-24 { width: 24%; }
371
+ .height-24 { height: 24%; }
372
+ .width-25 { width: 25%; }
373
+ .height-25 { height: 25%; }
374
+ .width-26 { width: 26%; }
375
+ .height-26 { height: 26%; }
376
+ .width-27 { width: 27%; }
377
+ .height-27 { height: 27%; }
378
+ .width-28 { width: 28%; }
379
+ .height-28 { height: 28%; }
380
+ .width-29 { width: 29%; }
381
+ .height-29 { height: 29%; }
382
+ .width-30 { width: 30%; }
383
+ .height-30 { height: 30%; }
384
+ .width-31 { width: 31%; }
385
+ .height-31 { height: 31%; }
386
+ .width-32 { width: 32%; }
387
+ .height-32 { height: 32%; }
388
+ .width-33 { width: 33%; }
389
+ .height-33 { height: 33%; }
390
+ .width-34 { width: 34%; }
391
+ .height-34 { height: 34%; }
392
+ .width-35 { width: 35%; }
393
+ .height-35 { height: 35%; }
394
+ .width-36 { width: 36%; }
395
+ .height-36 { height: 36%; }
396
+ .width-37 { width: 37%; }
397
+ .height-37 { height: 37%; }
398
+ .width-38 { width: 38%; }
399
+ .height-38 { height: 38%; }
400
+ .width-39 { width: 39%; }
401
+ .height-39 { height: 39%; }
402
+ .width-40 { width: 40%; }
403
+ .height-40 { height: 40%; }
404
+ .width-41 { width: 41%; }
405
+ .height-41 { height: 41%; }
406
+ .width-42 { width: 42%; }
407
+ .height-42 { height: 42%; }
408
+ .width-43 { width: 43%; }
409
+ .height-43 { height: 43%; }
410
+ .width-44 { width: 44%; }
411
+ .height-44 { height: 44%; }
412
+ .width-45 { width: 45%; }
413
+ .height-45 { height: 45%; }
414
+ .width-46 { width: 46%; }
415
+ .height-46 { height: 46%; }
416
+ .width-47 { width: 47%; }
417
+ .height-47 { height: 47%; }
418
+ .width-48 { width: 48%; }
419
+ .height-48 { height: 48%; }
420
+ .width-49 { width: 49%; }
421
+ .height-49 { height: 49%; }
422
+ .width-50 { width: 50%; }
423
+ .height-50 { height: 50%; }
424
+ .width-51 { width: 51%; }
425
+ .height-51 { height: 51%; }
426
+ .width-52 { width: 52%; }
427
+ .height-52 { height: 52%; }
428
+ .width-53 { width: 53%; }
429
+ .height-53 { height: 53%; }
430
+ .width-54 { width: 54%; }
431
+ .height-54 { height: 54%; }
432
+ .width-55 { width: 55%; }
433
+ .height-55 { height: 55%; }
434
+ .width-56 { width: 56%; }
435
+ .height-56 { height: 56%; }
436
+ .width-57 { width: 57%; }
437
+ .height-57 { height: 57%; }
438
+ .width-58 { width: 58%; }
439
+ .height-58 { height: 58%; }
440
+ .width-59 { width: 59%; }
441
+ .height-59 { height: 59%; }
442
+ .width-60 { width: 60%; }
443
+ .height-60 { height: 60%; }
444
+ .width-61 { width: 61%; }
445
+ .height-61 { height: 61%; }
446
+ .width-62 { width: 62%; }
447
+ .height-62 { height: 62%; }
448
+ .width-63 { width: 63%; }
449
+ .height-63 { height: 63%; }
450
+ .width-64 { width: 64%; }
451
+ .height-64 { height: 64%; }
452
+ .width-65 { width: 65%; }
453
+ .height-65 { height: 65%; }
454
+ .width-66 { width: 66%; }
455
+ .height-66 { height: 66%; }
456
+ .width-67 { width: 67%; }
457
+ .height-67 { height: 67%; }
458
+ .width-68 { width: 68%; }
459
+ .height-68 { height: 68%; }
460
+ .width-69 { width: 69%; }
461
+ .height-69 { height: 69%; }
462
+ .width-70 { width: 70%; }
463
+ .height-70 { height: 70%; }
464
+ .width-71 { width: 71%; }
465
+ .height-71 { height: 71%; }
466
+ .width-72 { width: 72%; }
467
+ .height-72 { height: 72%; }
468
+ .width-73 { width: 73%; }
469
+ .height-73 { height: 73%; }
470
+ .width-74 { width: 74%; }
471
+ .height-74 { height: 74%; }
472
+ .width-75 { width: 75%; }
473
+ .height-75 { height: 75%; }
474
+ .width-76 { width: 76%; }
475
+ .height-76 { height: 76%; }
476
+ .width-77 { width: 77%; }
477
+ .height-77 { height: 77%; }
478
+ .width-78 { width: 78%; }
479
+ .height-78 { height: 78%; }
480
+ .width-79 { width: 79%; }
481
+ .height-79 { height: 79%; }
482
+ .width-80 { width: 80%; }
483
+ .height-80 { height: 80%; }
484
+ .width-81 { width: 81%; }
485
+ .height-81 { height: 81%; }
486
+ .width-82 { width: 82%; }
487
+ .height-82 { height: 82%; }
488
+ .width-83 { width: 83%; }
489
+ .height-83 { height: 83%; }
490
+ .width-84 { width: 84%; }
491
+ .height-84 { height: 84%; }
492
+ .width-85 { width: 85%; }
493
+ .height-85 { height: 85%; }
494
+ .width-86 { width: 86%; }
495
+ .height-86 { height: 86%; }
496
+ .width-87 { width: 87%; }
497
+ .height-87 { height: 87%; }
498
+ .width-88 { width: 88%; }
499
+ .height-88 { height: 88%; }
500
+ .width-89 { width: 89%; }
501
+ .height-89 { height: 89%; }
502
+ .width-90 { width: 90%; }
503
+ .height-90 { height: 90%; }
504
+ .width-91 { width: 91%; }
505
+ .height-91 { height: 91%; }
506
+ .width-92 { width: 92%; }
507
+ .height-92 { height: 92%; }
508
+ .width-93 { width: 93%; }
509
+ .height-93 { height: 93%; }
510
+ .width-94 { width: 94%; }
511
+ .height-94 { height: 94%; }
512
+ .width-95 { width: 95%; }
513
+ .height-95 { height: 95%; }
514
+ .width-96 { width: 96%; }
515
+ .height-96 { height: 96%; }
516
+ .width-97 { width: 97%; }
517
+ .height-97 { height: 97%; }
518
+ .width-98 { width: 98%; }
519
+ .height-98 { height: 98%; }
520
+ .width-99 { width: 99%; }
521
+ .height-99 { height: 99%; }
522
+ .width-100 { width: 100%; }
523
+ .height-100 { height: 100%; }
524
+ .tile-weight-1 { --w: 1; }
525
+ .tile-weight-2 { --w: 2; }
526
+ .tile-weight-3 { --w: 3; }
527
+ .tile-weight-4 { --w: 4; }
528
+ .tile-weight-5 { --w: 5; }
529
+ .tile-weight-6 { --w: 6; }
530
+ .tile-weight-7 { --w: 7; }
531
+ .tile-weight-8 { --w: 8; }
532
+ .tile-weight-9 { --w: 9; }
533
+ .tile-weight-10 { --w: 10; }
534
+ .row,.agent{position:relative}
535
+ .fx-layer{position:absolute;inset:0;pointer-events:none;z-index:3;border-radius:inherit}
536
+ [data-theme=plain] .fx-layer,html[data-anim=off] .fx-layer,html[data-anim=off] .fx-pulse::after,[data-theme=plain] .fx-pulse::after{display:none}
537
+ html[data-anim=off] *,html[data-anim=off] *::before,html[data-anim=off] *::after{animation:none!important;transition:none!important}
538
+ .fx-stamp .rim,.quest-seal .rim,.ach-seal .rim{fill:rgba(245,196,81,.18);stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}
539
+ .fx-stamp .mark,.quest-seal .mark,.ach-seal .mark{fill:none;stroke:var(--coin);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
540
+ .fx-done::before{content:"";position:absolute;inset:-3px;border-radius:12px;box-shadow:0 0 0 2px var(--accent),0 0 18px 2px rgba(245,196,81,.6);opacity:0;animation:fx-glow 1.1s ease-out forwards}
541
+ .fx-rays{position:absolute;left:50%;top:50%;margin:-60px 0 0 -60px;overflow:visible;opacity:0;animation:fx-burst 1s cubic-bezier(.2,.7,.3,1) forwards}
542
+ .fx-rays line{stroke:var(--accent);stroke-width:3;stroke-linecap:round}
543
+ .fx-rays circle{fill:none;stroke:var(--coin);stroke-width:2}
544
+ .fx-cast{position:absolute;left:10%;right:10%;bottom:3px;height:7px;border-radius:4px;background:rgba(11,10,26,.7);border:1px solid var(--accent2);overflow:hidden;opacity:0;animation:fx-hold 1.9s linear forwards}
545
+ .fx-cast i{display:block;height:100%;background:linear-gradient(90deg,var(--accent2),var(--coin));transform-origin:left center;transform:scaleX(0)}
546
+ .fx-cast.full i{animation:fx-fill .9s linear forwards}
547
+ .fx-cast.cut i{animation:fx-cut .6s linear forwards}
548
+ .fx-cast.cut::after{content:"";position:absolute;inset:0;background:var(--blocked);opacity:0;animation:fx-flash .5s ease-out .45s forwards}
549
+ .fx-refused .fx-cast,.fx-verify.fail .fx-cast{animation-duration:1.1s}
550
+ .fx-stamp{position:absolute;right:14px;top:50%;margin-top:-20px;opacity:0;animation:fx-stamp 1s ease-out .9s forwards}
551
+ .fx-shield{position:absolute;inset:-3px;border-radius:12px;box-shadow:0 0 0 2px var(--brand-primary),0 0 16px 3px rgba(126,162,255,.65),inset 0 0 14px rgba(126,162,255,.35);opacity:0;animation:fx-glow 1.3s ease-out forwards}
552
+ .fx-ring{position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border:2px solid var(--blocked);opacity:0;animation:fx-ripple .9s ease-out .35s forwards}
553
+ .fx-ring.late{animation-delay:.55s}
554
+ .fx-float{position:absolute;right:16px;top:2px;font-weight:700;font-size:15px;color:var(--coin);text-shadow:0 1px 0 #000,0 0 8px rgba(255,224,138,.6);white-space:nowrap;opacity:0;animation:fx-rise 1.7s ease-out forwards}
555
+ .fx-pulse::after{content:"";position:absolute;inset:-2px;border-radius:10px;pointer-events:none;box-shadow:0 0 0 2px var(--blocked),0 0 14px rgba(255,93,115,.55);opacity:.12;animation:fx-pulse 2.4s ease-in-out infinite}
556
+ .fx-pulse.fx-stall::after{box-shadow:0 0 0 2px var(--s-stalled),0 0 14px rgba(255,176,32,.5)}
557
+ .fx-pulse.fx-off::after{animation-play-state:paused}
558
+ .fx-level::after{content:"";position:absolute;inset:0;border-radius:12px;opacity:0;animation:fx-glow .9s ease-out forwards}
559
+ .fx-level.lvl-ok::after{box-shadow:inset 0 0 0 2px var(--done),0 0 14px var(--done)}
560
+ .fx-level.lvl-warning::after{box-shadow:inset 0 0 0 2px var(--s-stalled),0 0 14px var(--s-stalled)}
561
+ .fx-level.lvl-critical::after{box-shadow:inset 0 0 0 2px var(--blocked),0 0 14px var(--blocked)}
562
+ .toast.quest{border-color:var(--accent)}
563
+ .toast .quest-seal{width:22px;height:22px;vertical-align:-6px;margin-right:6px}
564
+ [data-theme=raid] .toast.quest{box-shadow:0 6px 20px rgba(0,0,0,.35),0 0 14px rgba(245,196,81,.45)}
565
+ [data-theme=raid] .toast.quest .quest-seal{animation:fx-stamp-in .6s ease-out .25s both}
566
+ .ach-banner{position:fixed;top:12px;left:16px;right:16px;margin:0 auto;width:max-content;max-width:calc(100vw - 32px);z-index:70;display:flex;gap:10px;align-items:center;padding:8px 16px 8px 10px;border-radius:12px;background:var(--toast);border:1px solid var(--accent);box-shadow:0 6px 20px rgba(0,0,0,.35);overflow:hidden}
567
+ .ach-banner .ach-seal{flex:none}
568
+ .ach-banner .ach-text{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
569
+ .ach-banner small{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
570
+ .ach-banner b{color:var(--accent);font-size:15px}
571
+ [data-theme=raid] .ach-banner{animation:fx-drop .5s cubic-bezier(.2,.9,.3,1.2),fadeout .6s ease-in 5.3s forwards}
572
+ [data-theme=raid] .ach-banner::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 30%,rgba(255,233,168,.45) 50%,transparent 70%);transform:translateX(-100%);animation:fx-shine 1.2s ease-out .4s forwards}
573
+ [data-theme=raid] .ach-banner .ach-seal{animation:fx-stamp-in .6s ease-out .2s both}
574
+ @keyframes fx-glow{0%{opacity:0}25%{opacity:1}100%{opacity:0}}
575
+ @keyframes fx-burst{0%{transform:scale(.3) rotate(0);opacity:0}20%{opacity:1}100%{transform:scale(1.5) rotate(30deg);opacity:0}}
576
+ @keyframes fx-hold{0%{opacity:0}8%{opacity:1}80%{opacity:1}100%{opacity:0}}
577
+ @keyframes fx-fill{to{transform:scaleX(1)}}
578
+ @keyframes fx-cut{to{transform:scaleX(.62)}}
579
+ @keyframes fx-flash{0%{opacity:0}30%{opacity:.85}100%{opacity:.35}}
580
+ @keyframes fx-stamp{0%{transform:scale(2.2) rotate(-14deg);opacity:0}30%{transform:scale(.92) rotate(0);opacity:1}45%{transform:scale(1)}75%{opacity:1}100%{opacity:0}}
581
+ @keyframes fx-stamp-in{0%{transform:scale(2) rotate(-14deg);opacity:0}60%{transform:scale(.92) rotate(0);opacity:1}100%{transform:scale(1);opacity:1}}
582
+ @keyframes fx-ripple{0%{transform:scale(.3);opacity:.9}100%{transform:scale(4);opacity:0}}
583
+ @keyframes fx-rise{0%{transform:translateY(8px);opacity:0}15%{opacity:1}70%{opacity:1}100%{transform:translateY(-44px);opacity:0}}
584
+ @keyframes fx-pulse{0%,100%{opacity:.12}50%{opacity:.85}}
585
+ @keyframes fx-drop{from{transform:translateY(-140%);opacity:0}to{transform:none;opacity:1}}
586
+ @keyframes fx-shine{to{transform:translateX(100%)}}
587
+
588
+ .view-head,.as-text,.handoff-sum{min-width:0;overflow-wrap:anywhere}
589
+ main,header,#tabs{max-width:1600px}
590
+ #focus{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
591
+ #columns{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;align-items:start}
592
+ #sidebar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}
593
+ #focus>*,#columns>*,#sidebar>*,.row>*,.row-title>*{min-width:0;overflow-wrap:anywhere}
594
+ #workTabs,#activityChips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
595
+ #workTabs>*,#activityChips>*{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
596
+ #workTabs{grid-column:1/-1}
597
+ #columns .row{grid-template-columns:minmax(0,1fr)}
598
+ #columns .row-actions{justify-content:flex-start}
599
+ #focus .block{margin:0;overflow-wrap:anywhere}
600
+ #focus .block>summary{min-height:32px}
601
+ #focus .block>summary .sub{flex-basis:100%;max-width:75ch}
602
+ #needs .reason{max-width:75ch}
603
+ #needs.calm{padding:10px 14px}
604
+ #needs.calm .rows{margin:0}
605
+ #chat{max-height:440px;overflow:auto;overflow-anchor:none}
606
+ #chat .msg{min-width:0}
607
+ #chat a{color:var(--accent);min-height:24px;display:inline-block}
608
+ .new-messages{color:var(--accent);border-top:1px solid var(--accent);font-size:14px;padding:8px 0}
609
+ #sidebar .agents{grid-template-columns:minmax(0,1fr)}
610
+ #sidebar .agent{min-width:0}
611
+ #sidebar .brow{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
612
+ #sidebar .brow>span:last-child{grid-column:1/-1}
613
+ #sidebar .vlist{height:320px}
614
+ #sidebar h3{font-size:14px}
615
+ #focus[data-filter=chatter] #columns,#focus[data-filter=chatter] #needs,#focus[data-filter=chatter] #loreInbox{display:none}
616
+ @media(min-width:768px){
617
+ #columns{grid-template-columns:repeat(3,minmax(0,1fr))}
618
+ }
619
+ @media(min-width:1280px){
620
+ #focus{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"needs needs" "lore lore" "cols side";column-gap:16px}
621
+ #needs{grid-area:needs}
622
+ #loreInbox{grid-area:lore}
623
+ #columns{grid-area:cols}
624
+ #workTabs{display:none}
625
+ #sidebar{grid-area:side}
626
+ }
627
+ @media(min-width:768px) and (max-width:1279px){
628
+ #workTabs button:not([data-tab=todo]):not([data-tab=chatter]){display:none}
629
+ #focus:not([data-tab=chatter]) #chatter{display:none}
630
+ #focus[data-tab=chatter] #columns{display:none}
631
+ #sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}
632
+ #chatter{grid-column:1/-1}
633
+ }
634
+ @media(max-width:767px){
635
+ #focus:not([data-tab=todo]) #todo,#focus:not([data-tab=doing]) #doing,#focus:not([data-tab=done]) #donePanel,#focus:not([data-tab=chatter]) #chatter{display:none}
636
+ #focus[data-tab=chatter] #columns{display:none}
637
+ }
638
+ #workTabs [aria-selected=true]{border-color:var(--accent);color:var(--accent)}
639
+ #focus>#sidebar table.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
640
+ #focus>#sidebar table.stack,#focus>#sidebar table.stack tbody,#focus>#sidebar table.stack tr,#focus>#sidebar table.stack td{display:block;width:100%}
641
+ #focus>#sidebar table.stack tr{border-bottom:1px solid var(--pill-edge);padding:6px 0}
642
+ #focus>#sidebar table.stack td{display:flex;justify-content:space-between;gap:12px;border:0;padding:2px 4px;white-space:normal;text-align:right;overflow-wrap:anywhere}
643
+ #focus>#sidebar table.stack td::before{content:attr(data-label);color:var(--muted);text-align:left;flex:none}
644
+ #focus>#sidebar table.stack td>section{text-align:left;flex:1;min-width:0}
645
+ #sidebar .evid{padding-left:16px}
646
+ #sidebar .evid li{flex-wrap:wrap}
647
+ #cardDrawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(620px,100%);height:100dvh;max-height:100dvh;max-width:100%;padding:24px;background:var(--panel);color:var(--ink);border:0;border-left:1px solid var(--edge);overflow:auto}
648
+ #cardDrawer::backdrop{background:rgba(0,0,0,.45)}
649
+ #drawerBody{max-width:75ch;font-size:14px;overflow-wrap:anywhere}
650
+ #drawerBody>div{margin:12px 0}
651
+ #cardDrawer h2{font-size:20px;overflow-wrap:anywhere}
652
+ #needs.calm>summary::before{display:none}
653
+ #needs.calm h2{font-size:14px;font-weight:normal}
654
+ #needs>summary span[id]{scroll-margin-top:240px}
655
+ @media(min-width:1024px){#columns{gap:16px}}
656
+ @media(min-width:1440px){#focus{grid-template-columns:minmax(0,1fr) 350px}}
657
+ @media(max-width:390px){
658
+ #board{padding-left:12px;padding-right:12px}
659
+ :is(#wsbar,#realmbar){margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}
660
+ }
661
+
662
+ .block .count{display:inline-block;margin-left:10px;vertical-align:middle;font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:0;background:var(--pill);border:1px solid var(--pill-edge);border-radius:10px;padding:1px 8px;color:var(--ink)}
663
+ #chat .msg .tx{display:block;-webkit-line-clamp:unset;max-width:75ch}
664
+ #workTabs .tog,#activityChips .tog{border-color:var(--muted)}
665
+ #workTabs [aria-selected=true],#activityChips [aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}
666
+
667
+ .level{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:14px;font-weight:normal;margin-top:4px;min-width:0}
668
+ .level .lvl{color:var(--accent);font-size:14px}
669
+ .level .rank{border:1px solid var(--pill-edge);border-radius:10px;padding:1px 8px;color:var(--ink)}
670
+ .level .xp{width:min(160px,40vw);height:8px;accent-color:var(--accent)}
671
+ .level .xp-text{color:var(--muted)}
672
+ .lvl-chip{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;border:1px solid var(--accent);color:var(--accent);border-radius:10px;padding:1px 6px;vertical-align:middle}
673
+ [data-theme=plain] .level,[data-theme=plain] .lvl-chip{display:none!important}
674
+ .seg.s-stalled b{display:inline-block;max-width:min(42ch,60vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
675
+ #wsName,#overviewTitle{position:relative}
676
+ .fx-levelup{inset:-10px;display:flex;align-items:center;justify-content:flex-start;padding-left:12px;border-radius:12px;animation:fx-levelup-glow 2.4s ease-out forwards}
677
+ .fx-levelup .ding{font-size:22px;font-weight:700;color:var(--accent);letter-spacing:1px;text-shadow:0 0 12px rgba(245,196,81,.9),0 0 2px #000;animation:fx-ding 2.4s cubic-bezier(.2,.8,.2,1) forwards}
678
+ @keyframes fx-levelup-glow{0%{box-shadow:0 0 0 0 rgba(245,196,81,0)}15%{box-shadow:0 0 0 3px var(--accent),0 0 40px 8px rgba(245,196,81,.55)}100%{box-shadow:0 0 0 0 rgba(245,196,81,0)}}
679
+ @keyframes fx-ding{0%{transform:translateY(12px) scale(.6);opacity:0}15%{transform:translateY(0) scale(1.15);opacity:1}30%{transform:scale(1)}80%{opacity:1}100%{transform:translateY(-28px);opacity:0}}
680
+ .toast.levelup{border-color:var(--accent);box-shadow:0 0 18px rgba(245,196,81,.45)}
681
+ @media(prefers-reduced-motion:reduce){.fx-levelup,.fx-levelup .ding{animation:none;display:none}}
682
+ .tbl table{width:auto;max-width:100%}
683
+ .tbl th,.tbl td{padding:5px 14px 5px 0}
684
+ .tbl td.score{font-weight:bold;color:var(--accent)}
685
+ .evid{min-width:min(100%,320px)}
686
+ .evid li{display:grid;grid-template-columns:minmax(0,1fr) 7ch 7ch;gap:8px;justify-content:stretch}
687
+ .evid li>b,.evid li>.delta{text-align:right;font-variant-numeric:tabular-nums}
688
+ .tsum,.tbl td.num,.brow{font-variant-numeric:tabular-nums}
689
+ #overviewCosts #costTitle{display:none}
690
+ .bars{max-width:760px}
691
+ :root,[data-theme=raid]{--panel-solid:#181130;--edge-strong:#8a78c0}
692
+ [data-theme=plain]{--panel-solid:#ffffff;--edge-strong:#8a919e}
693
+ @media (prefers-color-scheme:dark){:root[data-theme=plain]{--panel-solid:#1c1f26;--edge-strong:#6b7280}}
694
+ #cardDrawer,.menu-body{background:var(--panel-solid)}
695
+ .tog,.pill,.chip,.repo,button.details,.lane-more{border-color:var(--edge-strong)}
696
+ .tile .who{color:var(--ink);opacity:.9}
697
+ #lanes{display:flex;flex-wrap:wrap;align-items:flex-start}
698
+ #lanes>.lane{flex:1 1 230px}
699
+ #lanes>.lane.empty{flex:0 1 190px}
700
+ .bub{max-width:75ch}
701
+ #needsList{max-width:1100px}
702
+ .raid-sub,.bill,.lane-tag,.level .xp-text,#chat .hd{font-size:14px}
703
+ summary{min-height:24px}
704
+ input[type=range]{min-height:24px}
705
+ #cueList input[type=checkbox]{width:20px;height:20px}
706
+ #wsStatus .seg+.seg::before{content:none}
707
+ #wsStatus{display:flex;flex-wrap:wrap;column-gap:16px;row-gap:2px}
708
+ .proj .status-line .seg+.seg::before{content:none}
709
+ .proj .status-line{display:flex;flex-wrap:wrap;column-gap:12px;row-gap:2px}
710
+ #drawerBody .drawer-h{font-size:14px;margin:16px 0 4px;color:var(--accent)}
711
+ :is(#viewTabs,#realmTabs){gap:2px;border-bottom:1px solid var(--edge);margin-top:10px}
712
+ :is(#viewTabs,#realmTabs) a{border:0;border-bottom:3px solid transparent;border-radius:0;background:none;padding:6px 12px;min-height:24px}
713
+ :is(#viewTabs,#realmTabs) a[aria-current=page]{border-bottom-color:var(--accent);border-color:transparent transparent var(--accent)}
714
+ :is(#viewTabs,#realmTabs) a:hover{color:var(--ink)}
715
+ #drawerBody .cmd{align-items:flex-start}
716
+ #drawerBody .cmd code{white-space:pre-wrap;overflow-wrap:anywhere;width:auto;overflow:visible}
717
+ @media(max-width:767px){
718
+ :is(#viewTabs,#realmTabs){flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
719
+ :is(#viewTabs,#realmTabs)>*{flex:none;white-space:nowrap}
720
+ #repos{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);scrollbar-width:thin}
721
+ }
722
+ #doneHint.count{margin-left:8px}
723
+ @media(max-width:767px){
724
+ header{flex-wrap:nowrap;gap:8px;padding-top:10px;padding-bottom:4px}
725
+ .hud{flex-wrap:nowrap;gap:6px}
726
+ #crumbs{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
727
+ #tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
728
+ #tabs a{flex:none}
729
+ :is(#wsbar,#realmbar){margin-bottom:8px}
730
+ :is(#wsbar,#realmbar) .status-line{margin:2px 0 6px}
731
+ }
732
+ .spark-axis{display:flex;justify-content:space-between;max-width:420px;font-size:14px;color:var(--muted);margin-top:2px}
733
+ #needs>summary{position:relative}
734
+ #needs>summary>span[id]:empty{position:absolute;left:0;top:0;width:0;height:0;overflow:hidden}
735
+ [data-theme=raid] body::after{content:"";position:fixed;inset:0 0 -60vh;z-index:0;pointer-events:none;opacity:.85;background-image:radial-gradient(3px 3px at 6% 20%,#ffb347,transparent 70%),radial-gradient(2px 2px at 14% 65%,#ffd27a,transparent 70%),radial-gradient(3px 3px at 27% 40%,#ff9d3c,transparent 70%),radial-gradient(2px 2px at 38% 85%,#ffd27a,transparent 70%),radial-gradient(3px 3px at 52% 30%,#ffb347,transparent 70%),radial-gradient(2px 2px at 61% 70%,#ff9d3c,transparent 70%),radial-gradient(3px 3px at 73% 15%,#ffd27a,transparent 70%),radial-gradient(2px 2px at 84% 55%,#ffb347,transparent 70%),radial-gradient(3px 3px at 95% 80%,#ff9d3c,transparent 70%);background-size:100% 60vh;filter:drop-shadow(0 0 3px rgba(255,160,60,.9));animation:embers 16s linear infinite}
736
+ [data-theme=raid] .lockup{animation:torch 3.2s ease-in-out infinite}
737
+ [data-theme=raid] #doingList .row{animation:breathe 4s ease-in-out infinite}
738
+ [data-theme=raid] .agent .av,[data-theme=raid] .frame .av{animation:bob 3.6s ease-in-out infinite}
739
+ [data-theme=raid] .agent:nth-child(2n) .av,[data-theme=raid] .frame:nth-child(2n) .av{animation-delay:-1.8s}
740
+ @keyframes embers{from{transform:translateY(0)}to{transform:translateY(-60vh)}}
741
+ @keyframes torch{0%,100%{filter:drop-shadow(0 0 2px rgba(255,170,60,.35))}45%{filter:drop-shadow(0 0 7px rgba(255,170,60,.75))}60%{filter:drop-shadow(0 0 4px rgba(255,170,60,.5))}}
742
+ @keyframes breathe{0%,100%{box-shadow:0 0 0 0 rgba(245,196,81,0)}50%{box-shadow:0 0 14px 0 rgba(245,196,81,.22)}}
743
+ @keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
744
+ #focus[data-filter=chatter] #sidebar>:not(#chatter){display:none}
745
+
746
+ #focus[data-filter=chatter] #chat{max-height:70vh}
747
+ @media(min-width:1280px){#focus[data-filter=chatter]{grid-template-columns:minmax(0,1fr);grid-template-areas:"side"}}
748
+ @media(max-width:767px){#lanes>.lane,#lanes>.lane.empty{flex-basis:100%}}
749
+ #repos::before{content:"Zones";align-self:center;color:var(--muted);font-size:14px;text-transform:uppercase;letter-spacing:.06em;margin-right:4px}
750
+ [data-theme=raid] #repos::before{content:"Zones"}
751
+ [data-theme=plain] #repos::before{content:"Repos"}
752
+ #hudLevel .level{margin:0 6px 0 0}
753
+ @media(max-width:767px){#hudLevel .xp,#hudLevel .xp-text{display:none}}
754
+ :root[data-theme=raid]{color-scheme:dark}
755
+ #footer{display:flex;flex-direction:column;align-items:center;gap:4px}
756
+ #footer .credit a{color:var(--accent)}
757
+
758
+ #settings .menu-body{width:min(280px,calc(100vw - 32px))}
759
+ .merged-head{margin:18px 0 8px;font-size:15px;color:var(--accent)}
760
+ .waiting-note{display:block;margin:4px 0 0;color:var(--muted);font-size:14px;font-weight:normal}.waiting-note a{color:var(--accent)}
761
+ .search{position:relative;display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}
762
+ #q{width:min(260px,40vw);min-height:32px;padding:4px 28px 4px 10px;border-radius:16px;border:1px solid var(--edge-strong);background:var(--btn);color:var(--ink);font:inherit;font-size:14px}
763
+ #q::placeholder{color:var(--muted)}
764
+ #q:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
765
+ .qkey{position:absolute;right:calc(100% - min(260px,40vw) + 8px);pointer-events:none;font-size:12px;color:var(--muted);border:1px solid var(--edge);border-radius:4px;padding:0 5px}
766
+ #qCount{font-size:14px;color:var(--muted);white-space:nowrap}
767
+ #q:focus+.qkey,#q:not(:placeholder-shown)+.qkey{display:none}
768
+ @media(max-width:767px){.search{margin-left:0;width:100%}#q{width:100%}.qkey{display:none}}
769
+ body[data-page=guild]:not([data-tab=treasury]) #overviewCosts{display:none}
770
+ body[data-page=guild][data-tab=treasury] #focus,body[data-page=guild][data-tab=treasury] #panels>:not(#overviewCosts){display:none}
771
+ [data-theme=raid] button.primary{position:relative;overflow:hidden}
772
+ [data-theme=raid] button.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);transform:translateX(-120%);animation:shimmer 5.5s ease-in-out infinite;pointer-events:none}
773
+ [data-theme=raid] #needs:not(.calm){animation:arcane 4.5s ease-in-out infinite}
774
+ [data-theme=raid] .ico{display:inline-block;margin-right:.3em;animation:sway 3.8s ease-in-out infinite;transform-origin:50% 80%}
775
+ [data-theme=raid] .row,[data-theme=raid] .bag,[data-theme=raid] .frame{transition:transform .18s ease,box-shadow .18s ease}
776
+ [data-theme=raid] .row:hover,[data-theme=raid] .bag:hover,[data-theme=raid] .frame:hover{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(245,196,81,.35),0 6px 18px rgba(245,196,81,.12)}
777
+ [data-theme=raid] .enter{animation:rise .32s ease-out}
778
+ @keyframes shimmer{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
779
+ @keyframes arcane{0%,100%{box-shadow:0 0 0 1px rgba(245,196,81,.25),0 0 18px rgba(245,196,81,.08)}50%{box-shadow:0 0 0 1px rgba(245,196,81,.55),0 0 28px rgba(245,196,81,.22)}}
780
+ @keyframes sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
781
+ @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
782
+ .streak{font-size:14px;color:var(--accent);border:1px solid var(--pill-edge);border-radius:12px;padding:2px 10px;white-space:nowrap}
783
+ .victory{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(245,196,81,.25),rgba(5,3,15,.82) 60%);animation:fadein .3s ease-out}
784
+ .victory-card{text-align:center;padding:28px 36px;border:2px solid var(--accent);border-radius:16px;background:var(--panel-solid);box-shadow:0 0 60px rgba(245,196,81,.45);animation:victory-pop .6s cubic-bezier(.2,1.4,.4,1);max-width:min(560px,calc(100vw - 32px))}
785
+ .victory-card h2{margin:6px 0 8px;font-size:28px;color:var(--accent)}
786
+ .victory-card p{margin:0 0 16px;color:var(--ink)}
787
+ .v-kicker{font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
788
+ @keyframes victory-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.06);opacity:1}100%{transform:scale(1)}}
789
+ @keyframes fadein{from{opacity:0}to{opacity:1}}
790
+ .limit.stale>strong~*:not(.age){opacity:.55}
791
+ #kbdHelp{background:var(--panel-solid);color:var(--ink);border:1px solid var(--edge-strong);border-radius:12px;padding:18px 22px;max-width:min(440px,calc(100vw - 32px))}
792
+ #kbdHelp::backdrop{background:rgba(5,3,15,.6)}
793
+ #kbdHelp h2{margin:0 0 12px;font-size:18px;color:var(--accent)}
794
+ #kbdHelp dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0 0 14px;font-size:14px}
795
+ #kbdHelp dt{white-space:nowrap}#kbdHelp dd{margin:0}
796
+ kbd{font-family:ui-monospace,monospace;font-size:12px;border:1px solid var(--edge-strong);border-bottom-width:2px;border-radius:4px;padding:1px 6px;background:var(--btn);color:var(--ink)}
797
+ [data-theme=raid] body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(ellipse 30% 9% at 25% 28%,rgba(190,170,255,.08),transparent 70%),radial-gradient(ellipse 26% 8% at 75% 62%,rgba(255,210,150,.06),transparent 70%),radial-gradient(ellipse 22% 7% at 50% 85%,rgba(190,170,255,.05),transparent 70%);background-size:200% 100%;animation:mist 70s linear infinite}
798
+ @keyframes mist{from{background-position:0 0}to{background-position:-200% 0}}
799
+ header{position:relative}
800
+ #wsName{font-size:22px}
801
+ :is(#wsbar,#realmbar) .repo,#repos::before{font-size:15px}
802
+ #wsStatus{font-size:15px}
803
+ :is(#viewTabs,#realmTabs) a{font-size:16px}
804
+ #q{font-size:15px;min-height:34px}
805
+ #hudLevel .level .lvl{font-size:18px}
806
+ #hudLevel .level .rank,#hudLevel .level .xp-text,#hudLevel .streak{font-size:15px}
807
+ #hudLevel .level .xp{width:min(200px,18vw);height:9px}
808
+ .hud>.tog,.hud>details>summary.tog{font-size:15px;padding:7px 14px}
809
+ [data-theme=raid] h1,[data-theme=raid] h2,[data-theme=raid] h3,[data-theme=raid] .lvl,[data-theme=raid] .v-kicker,[data-theme=raid] :is(#viewTabs,#realmTabs) a,[data-theme=raid] .victory-card h2{font-family:var(--font-display);font-weight:600;letter-spacing:.02em}
810
+ [data-theme=raid] .raid-sub{font-family:var(--font)}
811
+ body[data-page=guild]:not([data-tab=chatter]) #chatter{display:none}
812
+ body[data-page=guild][data-tab=chatter] #panels{display:none}
813
+ body[data-page=guild]:not([data-sub=focus]) #panels,body[data-page=guild]:not([data-sub=focus]) #sidebar{display:none}
814
+ #hudLevel{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
815
+ #hudLevel .streak{order:2}
816
+ .proj .seg.s-stalled{display:block;min-width:0;max-width:100%}.proj .seg.s-stalled b{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
817
+ small{font-size:max(12px,.85em)}
818
+ h3{font-size:16px}
819
+ [data-theme=raid] h1 .cls,[data-theme=raid] h2 .cls,[data-theme=raid] h3 .cls,[data-theme=raid] .count{font-family:var(--font);font-weight:normal;letter-spacing:0}
820
+ [data-theme=raid] .count{font-weight:700}
821
+ #focus[data-filter=chatter] #chatter{max-width:none}
822
+ .limit{flex:1 1 auto}
823
+ .limit .age{margin-left:auto;white-space:nowrap}
824
+ :is(#wsbar,#realmbar){border:1px solid var(--edge);border-radius:12px}
825
+
826
+ body[data-tab=treasury] #overviewCosts>summary{pointer-events:none;list-style:none}
827
+ body[data-tab=treasury] #overviewCosts>summary::-webkit-details-marker{display:none}
828
+ body[data-tab=treasury] #overviewCosts>summary::marker{content:""}
829
+ body[data-tab=treasury] #treasury{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 28px;align-items:start}
830
+ body[data-tab=treasury] #treasury>.tsum,body[data-tab=treasury] #treasury>.note-sm{grid-column:1/-1}
831
+ body[data-tab=treasury] #treasury>.forecast{grid-column:1}
832
+ body[data-tab=treasury] #treasury>.tside{grid-column:2}
833
+ @media(max-width:900px){body[data-tab=treasury] #treasury{grid-template-columns:minmax(0,1fr)}body[data-tab=treasury] #treasury>*{grid-column:1!important;grid-row:auto!important}}
834
+ #soundBanner{display:none!important}
835
+ .lane-h{justify-content:flex-start;gap:10px}.lane-h .count{order:0;margin-left:0;font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:0;background:var(--pill);border:1px solid var(--pill-edge);border-radius:10px;padding:1px 8px;color:var(--ink);align-self:flex-start;margin-top:2px}
836
+ #overviewTitle{margin:0;font-size:22px;color:var(--accent)}
837
+ #realmbar{position:static}
838
+ body[data-page=realm]:not([data-tab=chatter]) #chatter,body[data-page=realm]:not([data-tab=treasury]) #overviewCosts{display:none}
839
+ body[data-page=realm]:is([data-tab=chatter],[data-tab=treasury]) :is(#projects,#idle,#agentsPanel,#logPanel){display:none!important}
840
+ body[data-tab=chatter] #chatter>summary{pointer-events:none;list-style:none}
841
+ body[data-tab=chatter] #chatter>summary::-webkit-details-marker{display:none}
842
+ .level .xp{position:relative;display:inline-block;overflow:hidden;width:min(220px,18vw);height:16px;border:1px solid #c9a24a;border-radius:4px;background:linear-gradient(#120a24,#241640);box-shadow:inset 0 1px 3px #000c,0 0 0 1px #000a,0 0 10px #f5c55a33}
843
+ .level .xp::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),#0009 calc(10% - 1px) 10%);pointer-events:none}
844
+ .level .xp-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(#ffe7a0,#f5c55a 45%,#b8801f);box-shadow:0 0 8px #f5c55a99;transition:width .8s ease}
845
+ .level .xp-fill::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#fff8 50%,transparent 70%);background-size:200% 100%;animation:xpshine 3.5s linear infinite}
846
+ .level .xp-pct{position:relative;z-index:1;display:block;font:600 11px/14px var(--font-display);color:#fff;text-align:center;text-shadow:0 1px 2px #000,0 0 3px #000}
847
+ @keyframes xpshine{from{background-position:200% 0}to{background-position:-200% 0}}
848
+ @media(prefers-reduced-motion:reduce){.level .xp-fill::after{animation:none}}
849
+ #hudLevel .level .xp{width:min(220px,18vw);height:16px}
850
+ #hudLevel{position:relative}
851
+ #hudLevel .fx-levelup{justify-content:center;padding-left:0}