@mean-weasel/lineage 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +82 -1
- package/dist/cli/lineage-dev.js +739 -218
- package/dist/cli/lineage-dev.js.map +4 -4
- package/dist/cli/lineage.js +739 -218
- package/dist/cli/lineage.js.map +4 -4
- package/dist/server.js +1008 -82
- package/dist/server.js.map +4 -4
- package/dist/web/assets/index-DI7dn5M6.css +1 -0
- package/dist/web/assets/index-dJy71x2a.js +21 -0
- package/dist/web/index.html +2 -2
- package/fixtures/demo-project/lineage/swissifier-rich-demo.json +194 -0
- package/package.json +1 -1
- package/dist/web/assets/index-CegGQ4Cv.css +0 -1
- package/dist/web/assets/index-Cm95o4aV.js +0 -19
package/dist/web/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Lineage</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-dJy71x2a.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DI7dn5M6.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="root"></div>
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "swissifier-rich-demo",
|
|
3
|
+
"title": "Swissifier rich demo",
|
|
4
|
+
"notes": "Rich demo seed rooted on the first generated Swissifier LinkedIn creative. Generated PNG media is restored from the pinned optional release pack.",
|
|
5
|
+
"campaign": "local-review",
|
|
6
|
+
"audience": "local-review",
|
|
7
|
+
"media": {
|
|
8
|
+
"target_dir": "rich-demo-drafts/swissifier-v1",
|
|
9
|
+
"source_env": "LINEAGE_SWISSIFIER_MEDIA_DIR",
|
|
10
|
+
"source_hint": "Set LINEAGE_SWISSIFIER_MEDIA_DIR to an unpacked Swissifier media pack containing these PNG filenames, then restore media from the demo seed menu.",
|
|
11
|
+
"download": {
|
|
12
|
+
"file": "swissifier-rich-demo-v1.tar.gz",
|
|
13
|
+
"url": "https://github.com/mean-weasel/lineage/releases/download/v0.1.2/swissifier-rich-demo-v1.tar.gz",
|
|
14
|
+
"sha256": "24edc5307d0932ddc8a151c6a8c1001a08c45075e3ae198082038c44519be0de",
|
|
15
|
+
"size_bytes": 31910759
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"root_asset_id": "local-5748fb8ba6df",
|
|
19
|
+
"selected_asset_ids": [
|
|
20
|
+
"local-27050bc5c393",
|
|
21
|
+
"local-6d06bdbd9f56"
|
|
22
|
+
],
|
|
23
|
+
"assets": [
|
|
24
|
+
{
|
|
25
|
+
"asset_id": "local-5748fb8ba6df",
|
|
26
|
+
"file": "swissifier-linkedin-root-v1.png",
|
|
27
|
+
"title": "swissifier linkedin root v1",
|
|
28
|
+
"channel": "linkedin",
|
|
29
|
+
"status": "planned",
|
|
30
|
+
"checksum_sha256": "5748fb8ba6dffea448a0eabf2c361d95958a8b54a3ad5d8e0d499381b820b36b",
|
|
31
|
+
"size_bytes": 1952203,
|
|
32
|
+
"content_type": "image/png",
|
|
33
|
+
"position": { "x": 40, "y": 894 }
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"asset_id": "local-befe299c503d",
|
|
37
|
+
"file": "swissifier-vertical-poster-v1.png",
|
|
38
|
+
"title": "swissifier vertical poster v1",
|
|
39
|
+
"channel": "local",
|
|
40
|
+
"status": "planned",
|
|
41
|
+
"checksum_sha256": "befe299c503db4d4b117122ead698a36045c6da052bf9ce66447df7829393a32",
|
|
42
|
+
"size_bytes": 1882281,
|
|
43
|
+
"content_type": "image/png",
|
|
44
|
+
"position": { "x": 362, "y": 1382 }
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"asset_id": "local-2e102785131f",
|
|
48
|
+
"file": "swissifier-vertical-drill-v1.png",
|
|
49
|
+
"title": "swissifier vertical drill v1",
|
|
50
|
+
"channel": "local",
|
|
51
|
+
"status": "planned",
|
|
52
|
+
"checksum_sha256": "2e102785131ffd61ea27791083df9060d4ad9d352a81cd8a61c0af7fcf4e0da4",
|
|
53
|
+
"size_bytes": 2060360,
|
|
54
|
+
"content_type": "image/png",
|
|
55
|
+
"position": { "x": 362, "y": 894 }
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"asset_id": "local-27050bc5c393",
|
|
59
|
+
"file": "swissifier-vertical-before-after-v1.png",
|
|
60
|
+
"title": "swissifier vertical before after v1",
|
|
61
|
+
"channel": "local",
|
|
62
|
+
"status": "planned",
|
|
63
|
+
"checksum_sha256": "27050bc5c3931685ef06b6704a9591104ddd25e5192ce5c76a1f69fe18c668b0",
|
|
64
|
+
"size_bytes": 1973896,
|
|
65
|
+
"content_type": "image/png",
|
|
66
|
+
"position": { "x": 362, "y": 284 }
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"asset_id": "local-cce63eed23a3",
|
|
70
|
+
"file": "swissifier-poster-bauhaus-grid-v2.png",
|
|
71
|
+
"title": "swissifier poster bauhaus grid v2",
|
|
72
|
+
"channel": "local",
|
|
73
|
+
"status": "planned",
|
|
74
|
+
"checksum_sha256": "cce63eed23a32ebf9c63a5002ffb2e866a9c4352c9f7b3a56f2465636c572774",
|
|
75
|
+
"size_bytes": 1930146,
|
|
76
|
+
"content_type": "image/png",
|
|
77
|
+
"position": { "x": 684, "y": 1504 }
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"asset_id": "local-425b87091830",
|
|
81
|
+
"file": "swissifier-poster-pastel-circles-v2.png",
|
|
82
|
+
"title": "swissifier poster pastel circles v2",
|
|
83
|
+
"channel": "local",
|
|
84
|
+
"status": "planned",
|
|
85
|
+
"checksum_sha256": "425b8709183035defba616b9cc241967fc3fa4f4d592c6aa45160e1204d4fb0f",
|
|
86
|
+
"size_bytes": 2051988,
|
|
87
|
+
"content_type": "image/png",
|
|
88
|
+
"position": { "x": 684, "y": 1260 }
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"asset_id": "local-50301c939ad8",
|
|
92
|
+
"file": "swissifier-drill-color-grid-v2.png",
|
|
93
|
+
"title": "swissifier drill color grid v2",
|
|
94
|
+
"channel": "local",
|
|
95
|
+
"status": "planned",
|
|
96
|
+
"checksum_sha256": "50301c939ad895a868dfcee7d6d9fff59fb055bfbf51ef5c882e5efa675bfcac",
|
|
97
|
+
"size_bytes": 1945371,
|
|
98
|
+
"content_type": "image/png",
|
|
99
|
+
"position": { "x": 684, "y": 1016 }
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"asset_id": "local-6d06bdbd9f56",
|
|
103
|
+
"file": "swissifier-drill-mint-diagonal-v2.png",
|
|
104
|
+
"title": "swissifier drill mint diagonal v2",
|
|
105
|
+
"channel": "local",
|
|
106
|
+
"status": "planned",
|
|
107
|
+
"checksum_sha256": "6d06bdbd9f565f659423b7057c919461106c9775a6dac5c01de6c5b68e3c85d7",
|
|
108
|
+
"size_bytes": 2047125,
|
|
109
|
+
"content_type": "image/png",
|
|
110
|
+
"position": { "x": 684, "y": 772 }
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"asset_id": "local-d49cb3a68453",
|
|
114
|
+
"file": "swissifier-before-after-space-poster-v3.png",
|
|
115
|
+
"title": "swissifier before after space poster v3",
|
|
116
|
+
"channel": "local",
|
|
117
|
+
"status": "planned",
|
|
118
|
+
"checksum_sha256": "d49cb3a68453b5a2ecc5f6997f8406311158a40e7694eb107b6a0a478cf1ebb3",
|
|
119
|
+
"size_bytes": 3057286,
|
|
120
|
+
"content_type": "image/png",
|
|
121
|
+
"position": { "x": 684, "y": 40 }
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"asset_id": "local-111fceddec13",
|
|
125
|
+
"file": "swissifier-before-after-cosmic-portal-v3.png",
|
|
126
|
+
"title": "swissifier before after cosmic portal v3",
|
|
127
|
+
"channel": "local",
|
|
128
|
+
"status": "planned",
|
|
129
|
+
"checksum_sha256": "111fceddec1324278f9a1e3e6ad37c85d0798556059ccc04fa23db194e903936",
|
|
130
|
+
"size_bytes": 2717457,
|
|
131
|
+
"content_type": "image/png",
|
|
132
|
+
"position": { "x": 684, "y": 528 }
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"asset_id": "local-5f51b8356e70",
|
|
136
|
+
"file": "swissifier-before-after-alien-lab-v3.png",
|
|
137
|
+
"title": "swissifier before after alien lab v3",
|
|
138
|
+
"channel": "local",
|
|
139
|
+
"status": "planned",
|
|
140
|
+
"checksum_sha256": "5f51b8356e70d4518b8d87d41e43ceeb441b447fe98e7992f0e95a1d5113c335",
|
|
141
|
+
"size_bytes": 2875831,
|
|
142
|
+
"content_type": "image/png",
|
|
143
|
+
"position": { "x": 684, "y": 284 }
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"asset_id": "local-463b433de01a",
|
|
147
|
+
"file": "swissifier-drill-cosmic-blueprint-v3.png",
|
|
148
|
+
"title": "swissifier drill cosmic blueprint v3",
|
|
149
|
+
"channel": "local",
|
|
150
|
+
"status": "planned",
|
|
151
|
+
"checksum_sha256": "463b433de01a0fe5205c1c0ae3bb501d343e80ccc8bbae5bb184ed28c88d4a52",
|
|
152
|
+
"size_bytes": 2695281,
|
|
153
|
+
"content_type": "image/png",
|
|
154
|
+
"position": { "x": 1006, "y": 528 }
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"asset_id": "local-4f2733e9ff40",
|
|
158
|
+
"file": "swissifier-drill-asteroid-tool-v3.png",
|
|
159
|
+
"title": "swissifier drill asteroid tool v3",
|
|
160
|
+
"channel": "local",
|
|
161
|
+
"status": "planned",
|
|
162
|
+
"checksum_sha256": "4f2733e9ff40f08b20901d58139518629d9756c7d64c6c88a4dcd6fd292593a7",
|
|
163
|
+
"size_bytes": 2645925,
|
|
164
|
+
"content_type": "image/png",
|
|
165
|
+
"position": { "x": 1006, "y": 1016 }
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"asset_id": "local-0f885a18d5ce",
|
|
169
|
+
"file": "swissifier-drill-blacklight-v3.png",
|
|
170
|
+
"title": "swissifier drill blacklight v3",
|
|
171
|
+
"channel": "local",
|
|
172
|
+
"status": "planned",
|
|
173
|
+
"checksum_sha256": "0f885a18d5ce692c437eea40e6b8a31758e2bb28b413a45b09d05d629988bb09",
|
|
174
|
+
"size_bytes": 2386474,
|
|
175
|
+
"content_type": "image/png",
|
|
176
|
+
"position": { "x": 1006, "y": 772 }
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
"edges": [
|
|
180
|
+
{ "parent": "local-5748fb8ba6df", "child": "local-befe299c503d" },
|
|
181
|
+
{ "parent": "local-5748fb8ba6df", "child": "local-2e102785131f" },
|
|
182
|
+
{ "parent": "local-5748fb8ba6df", "child": "local-27050bc5c393" },
|
|
183
|
+
{ "parent": "local-befe299c503d", "child": "local-cce63eed23a3" },
|
|
184
|
+
{ "parent": "local-befe299c503d", "child": "local-425b87091830" },
|
|
185
|
+
{ "parent": "local-2e102785131f", "child": "local-50301c939ad8" },
|
|
186
|
+
{ "parent": "local-2e102785131f", "child": "local-6d06bdbd9f56" },
|
|
187
|
+
{ "parent": "local-27050bc5c393", "child": "local-111fceddec13" },
|
|
188
|
+
{ "parent": "local-27050bc5c393", "child": "local-5f51b8356e70" },
|
|
189
|
+
{ "parent": "local-27050bc5c393", "child": "local-d49cb3a68453" },
|
|
190
|
+
{ "parent": "local-6d06bdbd9f56", "child": "local-4f2733e9ff40" },
|
|
191
|
+
{ "parent": "local-6d06bdbd9f56", "child": "local-0f885a18d5ce" },
|
|
192
|
+
{ "parent": "local-6d06bdbd9f56", "child": "local-463b433de01a" }
|
|
193
|
+
]
|
|
194
|
+
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.drawer-backdrop.asset-detail-backdrop{z-index:55}.asset-detail-drawer{background:var(--surface);grid-template-rows:auto 1fr;gap:14px;width:min(440px,100vw);height:100vh;padding:18px;display:grid;overflow:auto;box-shadow:-18px 0 44px #121f2d33}.asset-detail-drawer>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;display:flex}.asset-detail-drawer h2{font-size:19px}.asset-detail-drawer header p{color:var(--muted);margin-top:3px;font-size:12px;font-weight:800;line-height:1.35}.asset-detail-drawer .inspector{background:0 0;border-left:0;padding:0}.selection-ledger-panel{border-bottom:1px solid var(--line);background:#fbfdfe;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:11px 14px;display:grid}.asset-row:focus-visible{outline-offset:-3px;outline:3px solid #087f8c29}.asset-row.ledger-selected{background:#f5fbf6}.asset-row.ledger-selected:not(.selected){box-shadow:inset 3px 0 #2d7a45}.ledger-select-button{color:#52616b;background:#fff;border:1px solid #cad7dc;border-radius:8px;justify-content:center;align-items:center;width:31px;height:31px;padding:0;display:inline-flex}.ledger-select-button.selected{color:#2d7a45;background:#edf8f0;border-color:#9dccaa}.selection-ledger-title,.selection-ledger-actions{align-items:center;gap:8px;min-width:0;display:flex}.selection-ledger-title svg{color:#2d7a45;flex:none}.selection-ledger-title h3{font-size:13px}.selection-ledger-title p{color:var(--muted);margin-top:2px;font-size:11px;font-weight:800}.selection-ledger-actions{justify-content:flex-end}.selection-ledger-actions span,.selection-ledger-items span{color:#2f7543;background:#edf8f0;border:1px solid #c9dfcf;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.selection-ledger-actions button{color:#21323b;background:#fff;border:1px solid #c8d8de;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:31px;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.selection-ledger-error{color:var(--danger);grid-column:1/-1;font-size:12px;font-weight:800}.review-set-empty{color:var(--muted);grid-column:1/-1;font-size:12px;font-weight:800}.selection-ledger-items{flex-wrap:wrap;grid-column:1/-1;gap:7px;min-width:0;display:flex}.selection-ledger-items span{text-overflow:ellipsis;white-space:nowrap;background:#f5fbf6;max-width:100%;overflow:hidden}.review-set-panel{background:#fff;border:1px solid #d6e3e7;border-radius:8px;grid-column:1/-1;gap:10px;padding:11px;display:grid}.review-set-panel:not([open]),.review-set-history:not([open]),.review-set-detail:not([open]),.review-set-work-packet:not([open]){gap:0}.review-set-panel>summary,.review-set-history>summary,.review-set-detail>summary,.review-set-work-packet>summary{cursor:pointer;list-style:none}.review-set-panel>summary::-webkit-details-marker{display:none}.review-set-history>summary::-webkit-details-marker{display:none}.review-set-detail>summary::-webkit-details-marker{display:none}.review-set-work-packet>summary::-webkit-details-marker{display:none}.review-set-header,.review-set-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.review-set-header h4{text-transform:uppercase;font-size:12px}.review-set-header p{color:var(--muted);margin-top:2px;font-size:11px;font-weight:800}.review-set-header span,.review-set-actions span{color:#4d6270;white-space:nowrap;background:#f3f8fa;border:1px solid #d0e2e7;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.review-set-header-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.review-set-header-badges .review-set-next-context{color:#2f7543;background:#edf8f0;border-color:#c9dfcf}.review-set-candidates{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.review-set-candidate{color:#1e2b34;text-align:left;background:#fbfdfe;border:1px solid #d2dfe4;border-radius:8px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;min-height:72px;padding:9px;display:grid}.review-set-candidate:hover:not(:disabled),.review-set-candidate.drafted{background:#f1fafb;border-color:#80b8c2}.review-set-candidate.selected{background:#f5fbf6;border-color:#9dccaa;box-shadow:inset 3px 0 #2d7a45}.review-set-label{color:#0d6d7a;background:#e8f4f6;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:900;display:inline-flex}.review-set-copy{min-width:0;display:grid}.review-set-copy strong,.review-set-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-set-copy strong{font-size:12px}.review-set-copy small{color:var(--muted);margin-top:2px;font-size:10px;font-weight:800}.review-set-selected{color:#2f7543;background:#edf8f0;border:1px solid #c9dfcf;border-radius:999px;grid-column:2;justify-self:start;padding:3px 7px;font-size:10px;font-weight:900}.review-set-actions button{color:#075d67;background:#eefbfc;border:1px solid #9bcdd5;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:31px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}.review-set-work-packet{background:#fbfdfe;border:1px solid #cfe0e6;border-radius:8px;gap:8px;padding:10px;display:grid}.review-set-work-packet-body{gap:8px;display:grid}.review-set-work-packet-title{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.review-set-work-packet h4{text-transform:uppercase;font-size:12px}.review-set-work-packet-title span{color:var(--muted);text-align:right;font-size:11px;font-weight:800}.review-set-work-packet code{overflow-wrap:anywhere;color:#21323b;background:#fff;border:1px solid #d7e3e7;border-radius:8px;padding:8px;font-size:11px;font-weight:800}.review-set-work-packet button{color:#075d67;background:#eefbfc;border:1px solid #9bcdd5;border-radius:8px;justify-self:start;min-height:31px;padding:0 10px;font-size:12px;font-weight:900}.review-set-work-packet button:disabled{color:#7a8790;background:#eef2f4;border-color:#d5dde2}.review-set-history{grid-column:1/-1;gap:8px;display:grid}.review-set-history-title,.review-set-history-row,.review-set-history-actions{align-items:center;gap:8px;min-width:0;display:flex}.review-set-history-title{justify-content:space-between}.review-set-history-title h4{text-transform:uppercase;font-size:12px}.review-set-history-title span,.review-set-status{border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900}.review-set-history-title span{color:#4d6270;background:#f3f8fa;border:1px solid #d0e2e7}.review-set-history-row{background:#fff;border:1px solid #d8e3e7;border-radius:8px;grid-template-columns:auto minmax(110px,.8fr) minmax(0,1.6fr) auto;padding:8px;display:grid}.review-set-history-row.active{background:#f5fbf6;border-color:#9dccaa}.review-set-history-row.archived{color:#5b6870;background:#f8fafb}.review-set-status.active{color:#2f7543;background:#edf8f0;border:1px solid #c9dfcf}.review-set-status.archived{color:#5d6870;background:#eef2f4;border:1px solid #d5dde2}.review-set-history-row strong,.review-set-history-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-set-history-row small{color:var(--muted);font-size:11px;font-weight:800}.review-set-history-actions{justify-content:flex-end}.review-set-history-actions button{color:#21323b;background:#fff;border:1px solid #c8d8de;border-radius:8px;min-height:28px;padding:0 8px;font-size:11px;font-weight:900}.review-set-detail{background:#fbfdfe;border:1px solid #cfe0e6;border-radius:8px;grid-column:1/-1;gap:9px;padding:10px;display:grid}.review-set-detail h4{text-transform:uppercase;font-size:12px}.review-set-detail p{color:var(--muted);margin-top:2px;font-size:11px;font-weight:800}.review-set-detail-assets{flex-wrap:wrap;gap:6px;display:flex}.review-set-detail-assets span{text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #d7e3e7;border-radius:999px;max-width:100%;padding:4px 8px;font-size:11px;font-weight:900;overflow:hidden}.review-set-detail-assets span.selected{color:#2f7543;background:#edf8f0;border-color:#c9dfcf}.review-set-detail code{color:#21323b;text-overflow:ellipsis;background:#fff;border:1px solid #d7e3e7;border-radius:8px;padding:8px;font-size:11px;font-weight:800;overflow:hidden}@media (width<=760px){.selection-ledger-panel{grid-template-columns:1fr}.selection-ledger-actions{justify-content:flex-start}.review-set-header,.review-set-actions,.review-set-work-packet-title,.review-set-history-row{flex-direction:column;align-items:flex-start}.review-set-work-packet-title span{text-align:left}.review-set-header-badges{justify-content:flex-start}.review-set-history-row{display:flex}.review-set-candidates{grid-template-columns:1fr}}@media (width<=860px){.app-shell,.app-shell.lineage-mode{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:16px}.workspace{padding:12px}.inspector{border-left:0;border-top:1px solid var(--line);padding:12px}.topbar,.board-head,.mini-stats,.pagination-bar{flex-wrap:wrap}.asset-list{max-height:none}.asset-row{grid-template-columns:34px 42px minmax(0,1fr)}.asset-meta,.asset-version{display:none}}.asset-live-inventory{border:1px solid var(--line);max-width:290px;color:var(--ink);text-align:left;background:#f7fafc;border-radius:8px;gap:2px;padding:7px 10px;display:grid}.asset-live-inventory.on{border-color:var(--accent);background:#e9f7f8}.asset-live-inventory small{color:var(--muted);font-size:11px;line-height:1.25}.content-view{gap:14px;min-width:0;display:grid}.content-head,.batch-header,.post-card header,.attach-row,.phase-controls{align-items:center;gap:10px;display:flex}.content-head,.batch-header{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;justify-content:space-between;padding:14px 16px}.content-head h2,.batch-header h3{font-size:18px}.content-head p,.batch-header p{color:var(--muted);margin-top:3px;font-size:12px}.content-grid{grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);gap:14px;min-width:0;display:grid}.content-panel{border:1px solid var(--line);background:var(--surface);min-width:0;max-width:100%;box-shadow:var(--shadow);border-radius:8px;align-content:start;gap:12px;padding:14px;display:grid}.content-form{border-bottom:1px solid var(--line);gap:8px;padding-bottom:12px;display:grid}.content-form.compact{gap:7px}.content-form.inline{grid-template-columns:1fr 1.3fr .8fr .75fr auto;align-items:end}.content-form h3{text-transform:uppercase;grid-column:1/-1;font-size:13px}.batch-list,.post-list{gap:10px;display:grid}.content-tools{border:1px solid var(--line);background:#f8fbfc;border-radius:8px;gap:9px;padding:10px;display:grid}.target-panel{background:#fbfcfd;border:1px solid #cbd9de;border-radius:8px;gap:10px;padding:12px;display:grid}.target-panel.has-target{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.target-panel header,.target-actions,.target-meta{align-items:center;gap:8px;display:flex}.target-panel header{justify-content:space-between}.target-panel h3{align-items:center;gap:6px;font-size:14px;display:flex}.target-panel p,.target-empty{color:var(--muted);font-size:12px;font-weight:800}.target-body{gap:6px;display:grid}.target-body code{color:var(--muted);overflow-wrap:anywhere}.target-body .agent-command,.target-empty .agent-command,.queue-storage code{color:#29404a;overflow-wrap:anywhere;background:#fff;border:1px solid #cbd9de;border-radius:7px;width:100%;padding:7px 8px;font-size:12px;font-weight:800;line-height:1.4;display:block}.target-actions.wrap,.target-meta{flex-wrap:wrap}.target-meta span{color:#29404a;background:#fff;border:1px solid #cbd9de;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900}.target-actions button{color:#22343d;background:#fff;border:1px solid #cbd9de;border-radius:7px;min-height:32px;padding:0 9px;font-size:12px;font-weight:900}.target-actions .danger{color:#7a321c;border-color:#e5b9aa}.content-queue{background:#f7fbfc;border:1px solid #cbd9de;border-radius:8px;gap:10px;min-width:0;max-width:100%;padding:12px;display:grid}.content-queue>header,.queue-storage,.queue-lane header,.queue-lane-title,.queue-lane-actions,.queue-item-meta,.queue-item-actions{align-items:center;gap:8px;display:flex}.content-queue>header{justify-content:space-between}.content-queue h3{align-items:center;gap:6px;font-size:14px;display:flex}.content-queue p,.queue-empty{color:var(--muted);font-size:12px;font-weight:800}.queue-storage,.queue-lane-actions,.queue-item-meta,.queue-item-actions{flex-wrap:wrap}.queue-storage span,.queue-item-meta span,.queue-lane header span{color:#29404a;background:#fff;border:1px solid #cbd9de;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900}.queue-next-action{background:#edf9f4;border:1px solid #9ccbbc;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.queue-next-action>div:first-child{gap:3px;min-width:0;display:grid}.queue-next-action span{color:#254f42;text-transform:uppercase;font-size:11px;font-weight:900}.queue-next-action code{color:var(--muted);overflow-wrap:anywhere}.queue-lanes{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;min-width:0;max-width:100%;display:grid}.queue-lane{border:1px solid var(--line);background:#fff;border-radius:8px;align-content:start;gap:8px;min-width:0;max-width:100%;padding:10px;display:grid}.queue-lane header{justify-content:space-between;align-items:flex-start}.queue-lane header strong{font-size:13px}.queue-lane-actions button{color:#22343d;background:#fff;border:1px solid #cbd9de;border-radius:7px;min-height:30px;padding:0 8px;font-size:12px;font-weight:900}.queue-items{gap:7px;min-width:0;max-width:100%;display:grid}.queue-item{background:#fff;border:1px solid #d7e1e6;border-radius:8px;gap:7px;min-width:0;max-width:100%;padding:9px;display:grid}.queue-item.is-target{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.queue-item strong,.queue-item code{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.queue-item code{color:var(--muted);font-size:12px}.queue-item-actions button{color:#22343d;background:#fff;border:1px solid #cbd9de;border-radius:7px;flex:86px;min-height:30px;padding:0 8px;font-size:12px;font-weight:900}.filter-row,.bulk-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-row select{min-width:140px}.filter-row span,.bulk-row span{color:#48606c;font-size:12px;font-weight:900}.bulk-row button{color:#22343d;background:#fff;border:1px solid #cbd9de;border-radius:7px;min-height:32px;padding:0 9px;font-size:12px;font-weight:900}.bulk-row button:disabled{opacity:.45}.batch-list button{border:1px solid var(--line);text-align:left;background:#fff;border-radius:8px;gap:4px;padding:12px;display:grid}.batch-list button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.batch-list code,.post-card code{color:var(--muted);font-size:12px}.batch-list span{color:#48606c;font-size:12px;font-weight:800}.post-card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:12px;padding:13px;display:grid}.post-card.is-target{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.post-card header{justify-content:space-between}.post-select,.post-status{align-items:center;gap:9px;min-width:0;display:flex}.post-select{flex:240px}.post-select span{min-width:0}.post-status{flex-wrap:wrap;justify-content:flex-end}.post-card header div,.batch-header div{min-width:0}.post-card header strong,.post-card header code{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.post-card header span,.muted-pill,.asset-state,.readiness-state,.target-state{color:#29404a;background:#f7fbfc;border:1px solid #cbd9de;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900}.target-state{border-color:var(--accent);color:#174a78;background:#eef7ff}.readiness-state{color:#66510c;background:#fff9df;border-color:#d2c28f}.asset-state.needs-asset{color:#7a321c;background:#fff4ef;border-color:#e5b9aa}.asset-state.has-asset{color:#254f42;background:#edf9f4;border-color:#9ccbbc}.queue-backup-cue.local-only{color:#66510c;background:#fff9df;border-color:#d2c28f}.phase-scheduled header span,.phase-review header span{background:#edf9f4;border-color:#9ccbbc}.phase-posted header span{background:#f1f7ff;border-color:#bed3ea}.post-assets{flex-wrap:wrap;gap:7px;display:flex}.asset-chip{color:#24424e;background:#f8fbfc;border:1px solid #cbd9de;border-radius:999px;min-height:28px;padding:0 9px;font-size:12px;font-weight:800}.phase-controls{flex-wrap:wrap}.phase-controls input,.attach-row input{flex:160px;min-width:0}.phase-controls button,.attach-row button{color:#22343d;background:#fff;border:1px solid #cbd9de;border-radius:7px;min-height:34px;padding:0 9px;font-size:12px;font-weight:900}.attach-row .target-button.active{border-color:var(--accent);color:#174a78;background:#eef7ff}.post-workbench{grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);gap:10px;display:grid}.post-preview,.asset-candidates{background:#fbfcfd;border:1px solid #cbd9de;border-radius:8px;align-content:start;gap:10px;padding:12px;display:grid}.post-preview p,.asset-candidates p{color:var(--muted);margin-top:3px;font-size:12px;font-weight:800}.post-preview pre{border:1px solid var(--line);white-space:pre-wrap;background:#fff;border-radius:7px;max-height:280px;padding:10px;overflow:auto}.asset-candidates header,.candidate-pager{justify-content:space-between;align-items:center;gap:8px;display:flex}.asset-candidates header span{color:var(--muted);font-size:12px;font-weight:900}.candidate-list{gap:8px;display:grid}.candidate-list article{border:1px solid var(--line);background:#fff;border-radius:7px;gap:7px;padding:9px;display:grid}.candidate-title{color:#1e313a;text-align:left;background:0 0;border:0;gap:3px;padding:0;display:grid}.candidate-title code,.candidate-list span{color:var(--muted);font-size:12px}.candidate-list article>button:not(.candidate-title),.candidate-pager button{color:#22343d;background:#fff;border:1px solid #cbd9de;border-radius:7px;min-height:32px;padding:0 9px;font-size:12px;font-weight:900}.candidate-list article>button:not(.candidate-title):disabled,.candidate-pager button:disabled{opacity:.5}.content-empty,.content-error,.content-empty-state{border:1px solid var(--line);color:var(--muted);background:#fbfcfd;border-radius:8px;padding:12px;font-size:13px;font-weight:700}.content-empty-state{gap:8px;display:grid}.content-empty-state code{overflow-wrap:anywhere;color:#29404a;font-size:12px}@media (width<=900px){.content-grid,.content-form.inline,.post-workbench{grid-template-columns:1fr}.batch-detail{order:1}.content-sidebar{order:2}.content-head,.batch-header,.content-queue>header,.target-panel header,.post-card header,.attach-row,.target-actions,.post-status{flex-direction:column;align-items:stretch}.content-queue .secondary-button,.queue-lane-actions button,.queue-item-actions button{min-height:42px}.queue-lanes{grid-template-columns:1fr}.content-grid,.content-panel,.content-queue,.queue-lanes,.queue-lane,.queue-lane>*,.queue-items,.queue-item,.queue-item>*{min-width:0;max-width:100%}.queue-lane-actions,.queue-item-actions{width:100%}}.copy-fallback{background:#f4fbfc;border:1px solid #9ecbd2;border-radius:8px;gap:10px;margin-bottom:14px;padding:12px;display:grid}.copy-fallback strong{font-size:13px;display:block}.copy-fallback p{color:var(--muted);margin-top:3px;font-size:12px;font-weight:700}.copy-fallback code{color:#142831;white-space:nowrap;background:#fff;border:1px solid #c9dde2;border-radius:7px;padding:9px 10px;font-size:12px;font-weight:800;display:block;overflow-x:auto}.copy-fallback button{color:#125d68;background:#fff;border:1px solid #bdd5dc;border-radius:8px;justify-self:start;min-height:32px;padding:0 11px;font-size:12px;font-weight:800}.current-work-panel{z-index:45;background:#fffffffa;border:1px solid #8fa2aea6;border-radius:8px;width:min(430px,100vw - 36px);max-height:min(72vh,620px);margin-inline:auto;transition:box-shadow .22s,transform .22s,width .22s;display:block;position:fixed;bottom:16px;left:auto;right:18px;overflow:hidden;box-shadow:0 18px 54px #121f2d2e}.current-work-panel.open{width:min(980px,100vw - 36px);transform:translateY(-2px);box-shadow:0 22px 70px #121f2d38}.current-work-panel.collapsed{border-radius:999px;width:54px}.current-work-panel.lineage-context.open{width:min(430px,100vw - 36px)}.current-work-panel>header{justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:8px;display:flex}.current-work-panel.collapsed>header{justify-content:center;min-height:52px;padding:6px}.work-target-toggle{min-width:0;min-height:40px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;flex:1;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 8px;display:grid}.work-target-toggle:hover{background:#f2f6f8}.current-work-panel.collapsed .work-target-toggle{flex:none;grid-template-columns:1fr;place-items:center;width:40px;min-height:40px;padding:0;display:grid}.current-work-panel.collapsed .work-target-toggle>span:not(.work-target-toggle-icon),.current-work-panel.collapsed .work-target-chevron,.current-work-panel.collapsed header>.secondary-button{display:none}.work-target-toggle-icon{width:30px;height:30px;color:var(--accent);background:#eef9fa;border:1px solid #087f8c33;border-radius:8px;place-items:center;display:grid}.work-target-toggle strong,.work-target-toggle small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.work-target-toggle strong{font-size:13px;font-weight:900}.work-target-toggle small{color:var(--muted);margin-top:2px;font-size:12px;font-weight:800}.work-target-chevron{color:var(--muted);transition:transform .18s}.current-work-panel.open .work-target-chevron{transform:rotate(180deg)}.work-target-header-actions{flex:none;display:flex}.work-target-drawer-body{opacity:0;max-height:0;transition:max-height .24s,opacity .18s,transform .22s;overflow:hidden;transform:translateY(10px)}.work-target-drawer-body.collapsed{display:none}.work-target-drawer-body.open{opacity:1;max-height:560px;display:block;overflow:auto;transform:translateY(0)}@media (width<=760px){.current-work-panel{width:min(430px,100vw - 24px);bottom:12px;right:12px}.current-work-panel.open,.current-work-panel.lineage-context.open{width:calc(100vw - 24px)}.work-target-grid{grid-template-columns:minmax(0,1fr)}}.work-target-drawer-content{gap:12px;padding:0 14px 14px;display:grid}.work-target-intro,.current-work-panel p{color:var(--muted);font-size:12px;font-weight:700}.work-target-error{background:#fff7f7;border:1px solid #b13b3b47;border-radius:8px;padding:8px 10px;color:var(--danger)!important}.work-target-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.work-target-card{border:1px solid var(--line);background:#fbfdfe;border-radius:8px;align-content:start;gap:8px;min-width:0;padding:12px;display:grid}.work-target-card.primary{background:#f3fbfa;border-color:#087f8c73}.work-target-card.context{background:#fbfbf7}.work-target-card.asset-selection{background:#f5fbf6;border-color:#2d7a4559}.current-work-panel.lineage-context .work-target-intro,.current-work-panel.lineage-context .work-target-card:not(.context){display:none}.work-target-title{color:#21323b;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;font-weight:900;display:flex}.work-target-title svg{color:var(--accent);flex:none}.work-target-title small{color:var(--muted);text-transform:none;margin-top:2px;font-size:11px;font-weight:800;display:block}.work-target-card strong{overflow-wrap:anywhere;min-width:0;font-size:14px}.work-target-card code{overflow-wrap:anywhere;color:#5a6670;min-width:0;font-size:12px;font-weight:800}.work-target-card .command-line{border:1px solid var(--line);color:#26343d;background:#fff;border-radius:7px;padding:8px}.work-target-actions{flex-wrap:wrap;gap:8px;display:flex}.work-target-actions button{color:#21323b;background:#fff;border:1px solid #c8d8de;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-size:12px;font-weight:900;display:inline-flex}@media (width<=760px){.current-work-panel{width:calc(100vw - 20px);max-height:78vh;bottom:10px;left:10px;right:10px}.work-target-drawer-body.open{max-height:480px}.current-work-panel>header{flex-direction:column;align-items:stretch}.work-target-header-actions .secondary-button{width:100%}}@media (prefers-reduced-motion:reduce){.current-work-panel,.work-target-chevron,.work-target-drawer-body{transition:none}}.ledger-view{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.ledger-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:16px;display:flex}.ledger-head h2{font-size:18px}.ledger-head p{color:var(--muted);margin-top:2px;font-size:12px}.ledger-head-actions{align-items:center;gap:10px;display:flex}.ledger-head-actions span{color:var(--muted);font-size:12px;font-weight:800}.ledger-summary{border-bottom:1px solid var(--line);background:#f8fbfc;flex-wrap:wrap;gap:10px;padding:10px 16px;display:flex}.ledger-summary span{color:var(--muted);font-size:12px;font-weight:800}.ledger-summary strong{color:#26343d;font-size:12px}.ledger-filters{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 16px;display:grid}.ledger-filter-group{gap:7px;min-width:0;display:grid}.ledger-filter-group span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.ledger-filter-group select{color:#29404a;background:#fff;border-color:#cbd9de;min-height:36px;font-size:12px;font-weight:900}.ledger-list{gap:8px;max-height:calc(100vh - 330px);padding:12px;display:grid;overflow:auto}.ledger-record{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;overflow:hidden}.ledger-record.expanded{background:#fff;border-color:#a8cdd6}.ledger-record-main{width:100%;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:minmax(220px,1fr) minmax(160px,.65fr) minmax(240px,1fr);align-items:center;gap:14px;padding:13px 14px;display:grid}.ledger-record-title strong,.ledger-record-title code{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ledger-record-title code{color:var(--muted);margin-top:3px;font-size:12px}.ledger-record.selected{box-shadow:inset 3px 0 0 var(--accent)}.ledger-record-meta,.ledger-record-states{flex-wrap:wrap;gap:6px;display:flex}.ledger-record-meta span{color:var(--muted);font-size:12px;font-weight:800}.ledger-pill{color:#29404a;background:#f7fbfc;border:1px solid #cbd9de;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:800}.ledger-record.scheduled .ledger-pill,.ledger-record.selected .ledger-pill{background:#edf9f4;border-color:#9ccbbc}.ledger-record.posted .ledger-pill,.ledger-record.approved .ledger-pill{background:#f1f7ff;border-color:#bed3ea}.ledger-record-detail{border-top:1px solid var(--line);background:#fff;grid-template-columns:minmax(0,1.5fr) minmax(220px,.8fr) auto;align-items:start;gap:14px;padding:12px 14px 14px;display:grid}.ledger-record-detail h3{color:#33414a;text-transform:uppercase;margin:0 0 8px;font-size:12px}.ledger-record-detail p{color:#40515d;margin:0 0 5px;font-size:12px;font-weight:700}.ledger-record-detail ul{gap:6px;margin:0;padding:0;display:grid}.ledger-record-detail li{color:#40515d;gap:2px;font-size:12px;list-style:none;display:grid}.ledger-record-detail li span{overflow-wrap:anywhere}.ledger-error,.ledger-empty{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:8px;margin:14px;padding:12px;font-size:13px;font-weight:700}@media (width<=760px){.ledger-head,.ledger-head-actions{flex-direction:column;align-items:stretch}.ledger-filters{grid-template-columns:1fr}.ledger-record-main,.ledger-record-detail{grid-template-columns:minmax(0,1fr)}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.view-tabs{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:3px;display:inline-flex}.view-tabs button{color:#30404a;background:0 0;border:0;border-radius:6px;min-height:32px;padding:0 11px;font-size:12px;font-weight:900}.view-tabs button.active{background:var(--accent);color:#fff}.lineage-view{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-rows:auto auto auto minmax(0,1fr);height:calc(100vh - 92px);min-height:640px;display:grid;overflow:hidden}.lineage-header{z-index:32;border-bottom:1px solid var(--line);background:#fffffff5;border-radius:8px 8px 0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:15px;display:flex;box-shadow:0 8px 20px #121f2d0f}.lineage-header h2{font-size:18px}.lineage-header p,.lineage-side code{color:var(--muted);font-size:12px}.lineage-scope-bar{border-bottom:1px solid var(--line);color:#40515d;background:#f8fbfc;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 15px;font-size:12px;display:flex}.lineage-scope-bar strong{color:#273743;text-transform:uppercase;font-size:11px}.lineage-scope-bar code{overflow-wrap:anywhere;color:#273743;max-width:420px;font-size:11px}.lineage-panel-action-row,.lineage-candidate-actions{flex-wrap:wrap;gap:6px;display:flex}.lineage-panel-action-row button{color:#70580f;background:#fff8dc;border-color:#cfb56d}.lineage-actions,.lineage-side-actions,.lineage-link-form{flex-wrap:wrap;gap:8px;display:flex}.lineage-workbench{border-radius:0 0 8px 8px;grid-template-columns:minmax(0,1fr);min-height:0;display:grid;position:relative;overflow:hidden}.lineage-canvas{background-color:#fbfdff;background-image:linear-gradient(#eef3f6 1px,#0000 1px),linear-gradient(90deg,#eef3f6 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-width:0;min-height:0;position:relative}.lineage-side{z-index:7;border:1px solid var(--line);background:var(--surface-2);opacity:1;border-radius:8px;align-content:start;gap:12px;width:min(360px,100% - 24px);min-width:0;padding:14px;transition:opacity .18s,transform .24s;display:grid;position:absolute;top:12px;bottom:12px;right:12px;overflow:auto;transform:translate(0);box-shadow:0 18px 54px #121f2d2e}.lineage-side.collapsed{opacity:0;pointer-events:none;transform:translate(28px)}.lineage-side-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:10px;display:flex}.lineage-side-head p{margin-top:3px}.lineage-side h3{text-transform:uppercase;font-size:13px}.lineage-side dl{gap:8px;display:grid}.lineage-side dl div{grid-template-columns:72px 1fr;gap:8px;display:grid}.lineage-side dt{color:var(--muted);font-size:11px;font-weight:800}.lineage-side dd{margin:0;font-size:12px}.lineage-side-actions button{border:1px solid var(--line);color:#26343d;background:#fff;border-radius:7px;min-height:32px;padding:0 9px;font-size:12px;font-weight:800}.lineage-side-actions .primary-lite{color:#1f6b3a;background:#e8f7ee;border-color:#9cccb0}.lineage-next-panel{border-bottom:1px solid var(--line);gap:8px;padding-bottom:12px;display:grid}.lineage-panel-title-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.lineage-count-pill{color:var(--muted);background:#fff;border:1px solid #c7d7df;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:900}.lineage-count-pill.full{color:#075e66;border-color:#0d8b93}.lineage-panel-action-row{justify-content:flex-end}.lineage-panel-action-row button{border-radius:7px;min-height:30px;padding:0 9px;font-size:12px;font-weight:850}.lineage-selection-warning,.lineage-candidate-warning{color:#70580f;background:#fff8dc;border:1px solid #dec47a;border-radius:7px;padding:7px 8px;font-size:12px;font-weight:800;line-height:1.35}.lineage-candidate-warning{text-transform:uppercase;border-radius:999px;width:fit-content;padding:2px 7px;font-size:10px}.lineage-handoff-panel{border-bottom:1px solid var(--line);gap:8px;padding-bottom:12px;display:grid}.lineage-handoff-panel h4{color:#273743;text-transform:uppercase;margin:0;font-size:12px}.lineage-handoff-panel code{color:#273743;overflow-wrap:anywhere;background:#fff;border:1px solid #d4dde3;border-radius:7px;min-width:0;padding:7px 8px;display:block}.lineage-copy-row{grid-template-columns:minmax(0,1fr) 58px;gap:6px;display:grid}.lineage-handoff-panel p{color:#40515d;margin:0;font-size:12px;line-height:1.45}.lineage-handoff-base{background:#fff;border:1px solid #cfdce3;border-radius:7px;gap:3px;padding:8px;display:grid}.lineage-handoff-base span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.lineage-handoff-base strong{color:#273743;overflow-wrap:anywhere;font-size:12px}.lineage-handoff-base small{color:var(--muted);overflow-wrap:anywhere;font-size:11px;font-weight:800}.lineage-handoff-base.branch{background:#fff8eb;border-color:#d9ad63}.lineage-handoff-panel button{color:#125d68;background:#f4fafb;border:1px solid #bdd5dc;border-radius:7px;min-height:32px;font-size:12px;font-weight:800}.lineage-brief-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.lineage-brief-head button{min-height:28px;padding:0 8px}.lineage-brief-group details{gap:7px;display:grid}.lineage-brief-group details[open]{gap:7px}.lineage-brief-group summary{cursor:pointer;color:#125d68;font-size:12px;font-weight:900}.lineage-brief-group summary+.lineage-copy-row{margin-top:7px}.lineage-brief-group{background:#f8fbfc;border:1px solid #bdd5dc;border-radius:8px;gap:7px;padding:9px;display:grid}.lineage-candidate{width:100%;min-height:48px;color:var(--text);text-align:left;background:#fff;border:1px solid #d4dde3;border-radius:7px;gap:8px;padding:7px 9px;display:grid}.lineage-candidate-main{color:inherit;text-align:left;background:0 0;border:0;gap:2px;padding:0;display:grid}.lineage-candidate-action{color:#fff;background:#0d5b92;border:1px solid #0d5b92;border-radius:7px;flex:134px;width:auto;min-height:40px;padding:0 10px;font-size:13px;font-weight:900}.lineage-candidate-action.secondary{color:#125d68;background:#f4fafb;border-color:#bdd5dc}.lineage-candidate-action:disabled,.lineage-side-actions button:disabled,.lineage-detail-actions button:disabled{cursor:not-allowed;opacity:.55}.lineage-candidate-action.remove{color:#70580f;background:#fff8dc;border-color:#cfb56d}.lineage-candidate span{font-size:12px;font-weight:850}.lineage-candidate-meta{flex-wrap:wrap;gap:5px;margin-top:3px;display:flex}.lineage-candidate-meta span{color:#4f5e68;text-transform:uppercase;background:#f7fafb;border:1px solid #d4dde3;border-radius:999px;width:fit-content;padding:2px 6px;font-size:10px;font-weight:900}.lineage-candidate code{overflow-wrap:anywhere}.lineage-candidate.active{border-color:var(--accent-2);box-shadow:0 0 0 3px #0d5b921f}.lineage-candidate.selected{background:#f4fbf6;border-color:#9cccb0}.lineage-link-form{display:grid}.lineage-link-form label{gap:6px;width:100%;display:grid}.lineage-link-form input{border:1px solid var(--line);width:100%;min-height:34px;color:var(--text);background:#fff;border-radius:7px;padding:7px 9px}.lineage-note-field{color:var(--muted);gap:6px;font-size:11px;font-weight:800;display:grid}.lineage-note-field textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:76px;color:var(--text);font:inherit;background:#fff;border-radius:7px;padding:8px 9px;font-size:12px;font-weight:600}.lineage-note-status{color:#5d6b75;font-size:11px;font-weight:800}.lineage-note-status.dirty{color:#9a6114}.lineage-link-form button{color:#125d68;background:#f4fafb;border:1px solid #bdd5dc;border-radius:7px;min-height:34px;font-size:12px;font-weight:800}.lineage-node{border:2px solid var(--line);background:#fff;border-radius:8px;width:188px;padding:10px;position:relative;box-shadow:0 10px 24px #18242e14}.lineage-node-action{color:#31536a;opacity:.72;background:#ffffffeb;border:1px solid #d4dde3;border-radius:6px;place-items:center;width:48px;height:24px;font-size:10px;font-weight:900;transition:opacity .14s;display:grid;position:absolute;top:6px;right:6px}.lineage-node:hover .lineage-node-action,.lineage-node.active .lineage-node-action{opacity:1}.lineage-handle{background:#53717f;border:2px solid #fff;width:10px;height:10px}.lineage-canvas .react-flow__edge{pointer-events:all}.lineage-canvas .react-flow__node{visibility:visible!important}.lineage-canvas .react-flow__minimap{border:1px solid var(--line);border-radius:7px;box-shadow:0 8px 20px #121f2d14}.lineage-canvas .react-flow__edge-path{stroke:#91a5b1;stroke-width:2px}.lineage-canvas .react-flow__edge.animated .react-flow__edge-path{stroke:#278153}.lineage-canvas .react-flow__edge.animated marker path{fill:#278153}.lineage-node.active{border-color:var(--accent-2);box-shadow:0 0 0 4px #0d5b9224,0 10px 24px #18242e14}.lineage-node.selected{background:linear-gradient(#f4fbf6,#fff);border-color:#278153;box-shadow:0 0 0 4px #2781532e,0 12px 28px #18242e1f}.lineage-node.selected:after{color:#1f6b3a;content:"next variation";text-transform:uppercase;background:#e8f7ee;border:1px solid #9cccb0;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900;position:absolute;top:-13px;left:10px}.lineage-node.latest{border-color:#c47a18}.lineage-node strong,.lineage-node small{display:block}.lineage-node strong{font-size:13px}.lineage-node small{color:var(--muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.lineage-thumb{color:#4f5e68;background:radial-gradient(circle at 25% 22%,#087f8c38,#0000 24%),linear-gradient(135deg,#edf3f6,#fff 62%,#e8eef2);border:1px solid #d4dde3;border-radius:7px;place-items:center;height:58px;margin-bottom:8px;font-size:12px;font-weight:900;display:grid;overflow:hidden}.lineage-thumb img,.lineage-thumb video{object-fit:cover;width:100%;height:100%}.lineage-thumb span{overflow-wrap:anywhere;padding:4px}.lineage-badges{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.lineage-badges span{color:#44515b;background:#eef3f6;border-radius:999px;min-height:21px;padding:2px 7px;font-size:10px;font-weight:900}.lineage-badges .latest{color:#8a570f;background:#fff2d8}.lineage-badges .root{color:#31536a;background:#e8f0f5}.lineage-badges .selected{color:#1f6b3a;background:#e8f7ee}.lineage-badges .local-only{color:#6e5812;background:#fff7d7}.lineage-badges .s3-backed{color:#125d68;background:#edf8fa}.lineage-badges .local-s3{color:#27609a;background:#eef5fd}.lineage-node-hint{color:#31536a;text-transform:uppercase;margin-top:7px;font-size:10px;font-weight:900;display:block}.lineage-empty,.lineage-empty-state{min-height:360px;color:var(--muted);text-align:center;place-items:center;gap:10px;display:grid}@media (width<=960px){.lineage-view{height:auto;min-height:calc(100vh - 92px)}.lineage-header{flex-direction:column;align-items:stretch}.lineage-state-strip{justify-content:flex-start}.lineage-workbench{grid-template-columns:1fr;min-height:720px}.lineage-canvas{min-height:560px}.lineage-side{max-height:min(520px,100% - 24px);top:auto}}@media (width<=640px){.lineage-view{height:auto;min-height:720px}.lineage-canvas{min-height:500px}.lineage-copy-row{grid-template-columns:1fr}}.lineage-canvas .react-flow__edge-path{transition:opacity .16s,stroke .16s,stroke-width .16s}.lineage-node{transition:border-color .16s,box-shadow .16s,opacity .16s,transform .16s}.lineage-canvas.focus-active .lineage-node.focus-none{opacity:.48}.lineage-canvas.focus-active .react-flow__edge:not(.lineage-edge-focus) .react-flow__edge-path{opacity:.32}.lineage-node.focus-parent{border-color:#8a6bc9;box-shadow:0 0 0 4px #8a6bc929,0 10px 24px #18242e14}.lineage-node.focus-child{border-color:#0d8b93;box-shadow:0 0 0 4px #0d8b9329,0 10px 24px #18242e14}.lineage-canvas .react-flow__edge.lineage-edge-focus-parent .react-flow__edge-path{stroke:#8a6bc9;stroke-width:3px}.lineage-canvas .react-flow__edge.lineage-edge-focus-child .react-flow__edge-path{stroke:#0d8b93;stroke-width:3px}.lineage-canvas-status{z-index:6;background:#fffffff2;border:1px solid #8fa2aea6;border-radius:8px;gap:2px;max-width:min(360px,100% - 24px);padding:9px 10px;display:grid;position:absolute;top:12px;left:12px;box-shadow:0 10px 28px #121f2d1f}.lineage-canvas-status-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.lineage-canvas-status span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.lineage-canvas-status strong,.lineage-canvas-status code{overflow-wrap:anywhere}.lineage-canvas-status strong{font-size:13px}.lineage-canvas-status button{color:#125d68;background:#f4fafb;border:1px solid #bdd5dc;border-radius:7px;width:fit-content;min-height:28px;padding:0 8px;font-size:12px;font-weight:800}.lineage-canvas-status-head button{width:28px;padding:0}.lineage-empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.lineage-context-menu{z-index:80;border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;width:min(240px,100vw - 24px);padding:8px;display:grid;position:fixed;box-shadow:0 18px 48px #121f2d33}.lineage-context-menu strong{color:#273743;overflow-wrap:anywhere;padding:4px 6px 6px;font-size:12px}.lineage-context-menu p{color:#70580f;background:#fff8dc;border:1px solid #dec47a;border-radius:7px;margin:0 6px 4px;padding:6px 7px;font-size:11px;font-weight:800;line-height:1.35}.lineage-context-menu button{color:#26343d;text-align:left;background:0 0;border:0;border-radius:7px;min-height:34px;padding:0 9px;font-size:12px;font-weight:850}.lineage-context-menu button:hover,.lineage-context-menu button:focus-visible{color:#125d68;background:#eef7fa;outline:0}.lineage-context-menu button.danger{color:#8a3b3b}.lineage-context-menu button.selection-replace{color:#125d68}.lineage-context-menu button.danger:hover,.lineage-context-menu button.danger:focus-visible{color:#7a2020;background:#fff0f0}.lineage-context-menu button:disabled{cursor:not-allowed;opacity:.55}.lineage-detail-backdrop{z-index:40;background:#121c2475;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.lineage-detail-modal{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(920px,100%);max-height:calc(100vh - 44px);display:grid;overflow:hidden;box-shadow:0 28px 80px #0e1a223d}.lineage-detail-modal header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;gap:14px;padding:14px;display:flex}.lineage-detail-modal h3{font-size:16px}.lineage-detail-modal header code{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:12px;display:block}.lineage-detail-modal header button{border:1px solid var(--line);color:#26343d;background:#fff;border-radius:7px;min-height:32px;padding:0 10px;font-size:12px;font-weight:800}.lineage-detail-body{grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:16px;padding:14px;display:grid;overflow:auto}.lineage-detail-preview{background:#f7fafb;border:1px solid #d4dde3;border-radius:8px;place-items:center;min-height:360px;display:grid;overflow:hidden}.lineage-detail-preview img,.lineage-detail-preview video{object-fit:contain;width:100%;height:100%;max-height:68vh}.lineage-detail-preview span{color:var(--muted);font-size:13px;font-weight:900}.lineage-preview-empty{text-align:center;gap:6px;max-width:280px;padding:18px;display:grid}.lineage-preview-empty strong{color:#273743;text-transform:uppercase;font-size:14px}.lineage-preview-empty span{color:#5d6b75;font-size:12px;line-height:1.45}.lineage-detail-body dl{align-content:start;gap:9px;display:grid}.lineage-detail-body dl div{border-bottom:1px solid #e7edf1;gap:3px;padding-bottom:8px;display:grid}.lineage-detail-body dt{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.lineage-detail-body dd{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:12px}.lineage-detail-context{background:#f8fbfc;border:1px solid #d4dde3;border-radius:8px;gap:8px;padding:10px;display:grid}.lineage-detail-proof{background:#fbfdff;border:1px solid #d4dde3;border-radius:8px;grid-column:1/-1;gap:8px;padding:10px;display:grid}.lineage-detail-proof h4{color:#273743;text-transform:uppercase;margin:0;font-size:12px}.lineage-detail-proof>p{color:var(--muted);font-size:12px}.lineage-proof-error{color:#8a3b3b}.lineage-proof-job{background:#fff;border:1px solid #dbe5ea;border-radius:8px;gap:8px;padding:9px;display:grid}.lineage-proof-job-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.lineage-proof-job-head strong,.lineage-proof-job code,.lineage-proof-output strong{overflow-wrap:anywhere}.lineage-proof-job-head span{color:#125d68;text-transform:uppercase;background:#f4fafb;border:1px solid #bdd5dc;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900}.lineage-proof-job p{color:#40515d;font-size:12px;line-height:1.45}.lineage-proof-job dl,.lineage-proof-output-list{gap:6px;display:grid}.lineage-proof-output{background:#f8fbfc;border:1px solid #e0e8ed;border-radius:7px;gap:2px;padding:7px 8px;display:grid}.lineage-proof-output span,.lineage-proof-output small{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.lineage-detail-context h4{color:#273743;text-transform:uppercase;margin:0;font-size:12px}.lineage-detail-context p{color:var(--muted);font-size:12px}.lineage-detail-warning{color:#70580f;background:#fff8dc;border:1px solid #dec47a;border-radius:7px;padding:8px 9px;font-size:12px;font-weight:800;line-height:1.4}.lineage-relation-list{gap:6px;display:grid}.lineage-relation-button{color:#125d68;overflow-wrap:anywhere;text-align:left;background:linear-gradient(#fff,#f4fafb);border:1px solid #bdd5dc;border-radius:7px;gap:2px;min-height:30px;padding:7px 9px;font-size:12px;font-weight:800;display:grid}.lineage-relation-button:hover{border-color:var(--accent-2);box-shadow:0 0 0 3px #0d5b921a}.lineage-relation-button span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.lineage-relation-button strong{color:#125d68;font-size:12px}.lineage-detail-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding:14px;display:flex}.lineage-detail-actions button,.lineage-detail-actions a{border:1px solid var(--line);color:#26343d;background:#fff;border-radius:7px;justify-content:center;align-items:center;min-height:32px;padding:0 10px;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.lineage-detail-actions .primary-lite{color:#fff;background:#0d5b92;border-color:#0d5b92;flex:220px;min-height:42px;font-size:13px}.lineage-detail-actions .danger{color:#8a3b3b;background:#fff4f4;border-color:#e3b7b7}.lineage-detail-actions button:disabled{cursor:not-allowed;opacity:.55}@media (width<=960px){.lineage-detail-body{grid-template-columns:1fr}.lineage-detail-preview{min-height:260px}.lineage-detail-actions{background:var(--surface);position:sticky;bottom:0}}@media (width<=640px){.lineage-detail-backdrop{padding:8px}.lineage-detail-modal{max-height:calc(100vh - 16px)}.lineage-detail-actions button,.lineage-detail-actions a{flex:140px}}.lineage-new-backdrop{z-index:45;background:#121c246b;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.lineage-new-modal{border:1px solid var(--line);background:var(--surface);border-radius:8px;grid-template-rows:auto auto minmax(140px,1fr) auto auto auto;gap:12px;width:min(720px,100%);max-height:calc(100vh - 36px);padding:16px;display:grid;overflow:hidden;box-shadow:0 28px 80px #0e1a223d}.lineage-new-modal header,.lineage-new-modal footer{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lineage-new-modal h3{font-size:18px}.lineage-new-modal p{color:var(--muted);font-size:13px}.lineage-new-search,.lineage-new-field{gap:6px;display:grid}.lineage-new-search span,.lineage-new-field span{color:#40515d;text-transform:uppercase;font-size:11px;font-weight:900}.lineage-new-search input,.lineage-new-field input,.lineage-new-field textarea{border:1px solid var(--line);width:100%;min-height:40px;color:var(--text);font:inherit;background:#fff;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:650}.lineage-new-field textarea{resize:vertical;min-height:76px}.lineage-new-results{background:#f8fbfc;border:1px solid #d8e3e8;border-radius:8px;align-content:start;gap:8px;min-height:0;padding:8px;display:grid;overflow:auto}.lineage-new-results button{color:#26343d;text-align:left;background:#fff;border:1px solid #d4dde3;border-radius:8px;gap:4px;padding:10px;display:grid}.lineage-new-results button.selected{border-color:var(--accent);box-shadow:0 0 0 3px #087f8c1f}.lineage-new-results strong,.lineage-new-results code{overflow-wrap:anywhere}.lineage-new-results code,.lineage-new-results span{color:var(--muted);font-size:12px}.lineage-new-modal footer{border-top:1px solid var(--line);align-items:center;padding-top:12px}@media (width<=640px){.lineage-new-modal footer{display:grid}}.lineage-selection-strip{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 15px;display:flex}.lineage-selection-strip.has-warning{background:#fffaf0}.lineage-selection-strip div:first-child{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;display:flex}.lineage-selection-strip strong{color:#273743;text-transform:uppercase;font-size:12px}.lineage-selection-strip span{color:#5d6b75;font-size:12px;font-weight:800}.lineage-selection-strip.has-warning span{color:#8a570f}.lineage-selection-strip button{color:#125d68;background:#f4fafb;border:1px solid #bdd5dc;border-radius:7px;min-height:30px;padding:0 10px;font-size:12px;font-weight:850}.lineage-selection-strip-actions{flex-wrap:wrap;gap:6px;display:flex}.lineage-selection-strip-actions button:last-child{color:#70580f;background:#fff8dc;border-color:#cfb56d}.lineage-workspace-picker{min-width:min(340px,100%);position:relative}.lineage-workspace-trigger{color:#26343d;text-align:left;background:linear-gradient(#fff,#f4fafb);border:1px solid #bdd5dc;border-radius:8px;gap:2px;width:100%;min-height:48px;padding:8px 11px;display:grid}.lineage-workspace-trigger span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.lineage-workspace-trigger strong,.lineage-workspace-trigger code{overflow-wrap:anywhere}.lineage-workspace-trigger strong{font-size:13px}.lineage-workspace-trigger code{color:var(--muted);font-size:11px}.lineage-workspace-menu{z-index:28;border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;width:min(420px,100vw - 32px);padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 18px 52px #121f2d2e}.lineage-workspace-options{gap:6px;max-height:280px;display:grid;overflow:auto}.lineage-workspace-options button{color:#26343d;text-align:left;background:#fff;border:1px solid #d4dde3;border-radius:7px;gap:3px;padding:8px;display:grid}.lineage-workspace-options button.active{border-color:var(--accent);box-shadow:0 0 0 3px #087f8c1c}.lineage-workspace-options code,.lineage-workspace-options span,.lineage-workspace-options p{color:var(--muted);font-size:11px}.lineage-workspace-menu footer{border-top:1px solid var(--line);justify-content:space-between;gap:8px;padding-top:8px;display:flex}@media (width<=960px){.lineage-workspace-picker{min-width:0}.lineage-workspace-menu{width:min(420px,100%);right:0}}.lineage-title{min-width:120px}.lineage-primary-controls{flex-wrap:wrap;flex:auto;align-items:center;gap:9px;min-width:0;display:flex}.lineage-next-summary{color:#26343d;text-align:left;background:#f8fbfc;border:1px solid #bdd5dc;border-radius:8px;flex:0 260px;gap:2px;min-width:min(260px,100%);padding:8px 10px;display:grid}.lineage-next-summary span,.lineage-next-summary small{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.lineage-next-summary strong{overflow-wrap:anywhere;font-size:13px}.lineage-overflow,.lineage-demo-menu,.lineage-overflow{position:relative}.lineage-demo-menu summary,.lineage-overflow summary{color:#125d68;cursor:pointer;background:#f4fafb;border:1px solid #bdd5dc;border-radius:8px;justify-content:center;align-items:center;min-height:38px;padding:0 13px;font-size:13px;font-weight:800;list-style:none;display:inline-flex}.lineage-demo-menu summary{justify-items:start;min-width:145px;padding-block:5px;display:grid}.lineage-demo-menu summary span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.lineage-demo-menu summary strong{font-size:12px}.lineage-demo-menu summary::-webkit-details-marker{display:none}.lineage-overflow summary::-webkit-details-marker{display:none}.lineage-demo-menu div,.lineage-overflow div{z-index:25;border:1px solid var(--line);background:#fff;border-radius:8px;gap:6px;min-width:190px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 42px #121f2d29}.lineage-demo-menu div{min-width:220px;left:0;right:auto}.lineage-demo-menu p{border-bottom:1px solid var(--line);gap:2px;margin:0;padding:3px 3px 8px;display:grid}.lineage-demo-menu p span{color:var(--muted);font-size:12px;font-weight:800}.lineage-demo-menu button,.lineage-overflow button{color:#26343d;text-align:left;background:#fff;border:1px solid #d4dde3;border-radius:7px;justify-content:flex-start;min-height:34px;padding:0 9px;font-size:12px;font-weight:800}@media (width<=960px){.lineage-primary-controls{min-width:0;display:grid}.lineage-next-summary{min-width:0}}.local-selection-toolbar{background:#f2fafb;border:1px solid #bdd5dc;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 12px;display:flex}.local-selection-toolbar div,.local-backup-list div{gap:2px;display:grid}.local-selection-toolbar strong,.local-backup-list strong{color:#17313b;font-size:13px}.local-selection-toolbar span,.local-backup-list span{color:var(--muted);font-size:12px}.local-selection-toolbar button,.local-backup-drawer footer button,.local-backup-drawer header button{border:1px solid var(--line);color:#24343d;background:#fff;border-radius:7px;min-height:34px;padding:0 10px;font-size:12px;font-weight:900}.local-selection-toolbar button{align-items:center;gap:7px;display:inline-flex}.local-selection-toolbar .icon-lite{justify-content:center;width:34px;padding:0}.local-backup-drawer{border:1px solid var(--line);background:var(--surface);width:min(720px,100vw - 32px);max-height:calc(100vh - 32px);box-shadow:var(--shadow);border-radius:8px;display:grid;overflow:auto}.local-backup-drawer header,.local-backup-drawer footer{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.local-backup-drawer footer{border-top:1px solid var(--line);border-bottom:0}.local-backup-drawer h2{font-size:18px}.local-backup-list,.local-backup-preview,.local-backup-warning{gap:8px;margin:14px;display:grid}.local-backup-list div,.local-backup-preview span{border:1px solid var(--line);background:#f8fbfc;border-radius:7px;padding:9px 10px}.local-backup-warning{color:#6d451e;background:#fff8ee;border:1px solid #e2c1a2;border-radius:7px;padding:10px 12px}.local-backup-warning strong{color:#593617;font-size:13px}.local-backup-warning span{font-size:12px;font-weight:800}.local-backup-queue{gap:12px;display:grid}.backup-queue-head,.backup-queue-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.backup-queue-head{grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:16px;display:grid}.backup-queue-head h2{font-size:18px}.backup-queue-head p,.backup-queue-card small{color:var(--muted);font-size:12px}.backup-queue-actions,.backup-card-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.backup-queue-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.backup-queue-stats div{background:#f8fbfc;border:1px solid #d7e2e6;border-radius:7px;padding:8px 10px}.backup-queue-stats strong,.backup-queue-stats span{display:block}.backup-queue-stats strong{color:#172b34;font-size:18px}.backup-queue-stats span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.backup-queue-grid{grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;display:grid}.backup-queue-lane{align-content:start;gap:8px;display:grid}.backup-queue-lane h3{color:#263943;font-size:13px}.backup-queue-card{gap:8px;padding:11px;display:grid}.backup-queue-card.selected{border-color:#087b92;box-shadow:0 0 0 3px #087b9224}.backup-queue-card strong,.backup-queue-card code{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.backup-queue-card code{color:var(--muted);font-size:12px}.backup-card-meta{flex-wrap:wrap;gap:6px;display:flex}.backup-card-meta span{color:#29404a;background:#f7fbfc;border:1px solid #d1dde2;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:800}.backup-card-actions button,.backup-queue-actions button{border:1px solid var(--line);color:#24343d;background:#fff;border-radius:7px;min-height:34px;padding:0 10px;font-size:12px;font-weight:900}.backup-card-actions button[aria-pressed=true]{background:#edf9f4;border-color:#8fc6b5}.backup-card-actions button:disabled,.backup-queue-actions button:disabled{opacity:.55}.backup-empty{color:var(--muted);background:#fbfdfe;border:1px dashed #c8d7dd;border-radius:8px;padding:14px;font-size:13px;font-weight:800}@media (width<=960px){.backup-queue-head,.backup-queue-grid{grid-template-columns:1fr}.backup-queue-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.review-queue{gap:14px;display:grid}.review-summary{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:minmax(220px,1fr) repeat(4,minmax(96px,130px));align-items:stretch;gap:10px;padding:14px;display:grid}.review-summary h2{font-size:20px}.review-summary p,.review-empty,.queue-card small{color:var(--muted);font-size:12px;font-weight:700;line-height:1.4}.queue-stat{border:1px solid var(--line);background:#f8fbfc;border-radius:8px;gap:3px;padding:10px;display:grid}.queue-stat strong{font-size:19px}.queue-stat span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.batch-review-strip{background:#f4f8fd;border:1px solid #c8d9ed;border-radius:8px;grid-template-columns:auto minmax(180px,1fr) auto auto auto;align-items:center;gap:10px;padding:12px;display:grid}.batch-review-strip textarea{resize:vertical;min-height:38px}.batch-review-strip code,.queue-card code{overflow-wrap:anywhere;color:#2f414d;font-size:12px;line-height:1.45;display:block}.batch-review-strip button,.queue-card button{color:#125d68;background:#fff;border:1px solid #bdd5dc;border-radius:8px;min-height:34px;padding:0 11px;font-size:12px;font-weight:900}.review-queue .queue-lanes{grid-template-columns:minmax(0,1fr);gap:14px;min-width:0;display:grid}.review-queue .queue-lane{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:12px;min-width:0;padding:14px;display:grid}.review-queue .queue-lane summary{cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;list-style:none;display:grid}.review-queue .queue-lane summary::-webkit-details-marker{display:none}.review-queue .queue-lane summary:before{border:1px solid var(--line);color:#40515d;content:"+";border-radius:7px;place-items:center;width:28px;height:28px;font-size:16px;font-weight:900;display:grid}.review-queue .queue-lane[open] summary:before{content:"-"}.review-queue .queue-lane h3{text-transform:capitalize;font-size:17px}.review-queue .queue-lane summary .lane-counts{grid-column:1/-1}.review-queue .queue-lane summary .lane-counts span{color:var(--muted);background:0 0;border:0;padding:0;font-size:12px}.lane-counts{flex-wrap:wrap;gap:7px;display:flex}.lane-counts span,.queue-tag{border:1px solid var(--line);color:#4a5963;background:#f7fafb;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:900}.lane-counts .review-chip{color:#5b465f;background:#faf7fb;border-color:#d5ccd8}.lane-counts .review-chip.approved{color:#176346;background:#f1faf6;border-color:#b9d9cc}.lane-counts .review-chip.needs_revision{color:#755315;background:#fff9eb;border-color:#e5d1a4}.lane-counts .review-chip.rejected,.lane-counts .review-chip.ignored{color:#8d3035;background:#fff5f5;border-color:#e4c3c4}.review-queue .queue-columns{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));align-items:flex-start;gap:10px;min-width:0;margin-top:12px;display:grid}.queue-column{align-content:start;gap:8px;min-width:0;display:grid}.queue-column h4{color:#39444d;text-transform:uppercase;margin:0;font-size:12px;font-weight:900}.queue-card{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fbfcfd;border-radius:8px;gap:7px;min-height:116px;padding:10px;display:grid}.queue-card strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.25;display:-webkit-box;overflow:hidden}.queue-card.selected{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.queue-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.review-actions{flex-wrap:wrap;gap:5px;display:flex}.review-actions button{min-height:28px;padding:0 8px}.review-actions button[aria-pressed=true]{color:#0d5f6e;background:#eef8fa;border-color:#6a9baa}.backup-locked{color:#7a5960;font-size:11px;font-weight:900;line-height:1.3}@media (width<=760px){.batch-review-strip{grid-template-columns:1fr}}.settings-view{gap:18px;display:grid}.settings-header{border:1px solid var(--line);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.settings-header h2{font-size:26px}.settings-header p{max-width:720px;color:var(--muted);font-size:13px;font-weight:700}.settings-sections{gap:14px;display:grid}.settings-section{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:10px;padding:14px;display:grid}.settings-section>h3{font-size:18px}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;display:grid}.settings-card,.settings-loading{border:1px solid var(--line);background:#fbfdfe;border-radius:8px;padding:16px}.settings-card-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.settings-icon{color:#075f6c;background:#e9f6f8;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.settings-card h4{font-size:17px}.settings-card p,.settings-loading{color:var(--muted);font-size:13px;font-weight:700}.settings-switch{background:#edf2f5;border:1px solid #cbd7df;border-radius:999px;align-items:center;width:48px;height:28px;padding:3px;display:inline-flex}.settings-switch span{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .16s;display:block;box-shadow:0 2px 6px #121f2d2e}.settings-switch.on{border-color:var(--accent);background:var(--accent)}.settings-switch.on span{transform:translate(19px)}.settings-switch:disabled{cursor:wait;opacity:.7}.settings-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.settings-release{grid-template-columns:repeat(2,minmax(0,220px));gap:10px;display:grid}.settings-release div{border:1px solid var(--line);background:#fbfdfe;border-radius:8px;padding:10px}.settings-release dt{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.settings-release dd{color:#26343d;margin:4px 0 0;font-size:15px;font-weight:850}.settings-meta div{border:1px solid var(--line);border-radius:8px;padding:9px}.settings-meta dd{align-items:center;gap:5px;display:flex}.settings-meta .ok{color:var(--accent);font-weight:800}.settings-meta .warn{color:#936300;font-weight:800}.settings-meta .muted{color:var(--muted);font-weight:800}.settings-config{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.settings-config span{color:#42515b;background:#f7fafc;border:1px solid #cbd7df;border-radius:999px;gap:7px;padding:6px 9px;font-size:12px;font-weight:800;display:inline-flex}@media (width<=760px){.settings-header{flex-direction:column;align-items:stretch}.settings-grid,.settings-meta,.settings-release{grid-template-columns:1fr}}.app-shell{transition:grid-template-columns .24s}.app-shell:has(.sidebar.collapsed){grid-template-columns:0 minmax(0,1fr)}.sidebar{z-index:18;opacity:1;transition:opacity .18s,padding .24s,transform .24s;position:relative;transform:translate(0)}.sidebar.collapsed{z-index:60;border-right-color:#0000;padding-left:0;padding-right:0;overflow:visible;transform:translate(-18px)}.sidebar-collapse-toggle{z-index:50;color:#125d68;background:#f4fafb;border:1px solid #bdd5dc;border-radius:8px;justify-content:center;align-items:center;width:34px;min-height:34px;padding:0;transition:left .24s,transform .24s;display:inline-flex;position:fixed;top:50vh;left:244px;transform:translateY(-50%)}.sidebar.collapsed .sidebar-collapse-toggle{opacity:1;pointer-events:auto;left:12px}.sidebar.collapsed>:not(.sidebar-collapse-toggle){pointer-events:none;visibility:hidden}.mobile-filter-toggle{display:none}.sidebar-mobile-collapse{display:contents}@media (width<=760px){.sidebar{padding-bottom:14px}.sidebar .brand{margin-bottom:12px}.mobile-filter-toggle{border:1px solid var(--line);color:#23313a;background:#f8fbfc;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 12px;font-size:13px;font-weight:900;display:flex}.mobile-filter-toggle .open{transform:rotate(180deg)}.mobile-filter-toggle svg{transition:transform .18s}.sidebar-mobile-collapse{opacity:0;max-height:0;transition:max-height .22s,opacity .16s,padding-top .22s;display:grid;overflow:hidden}.sidebar-mobile-collapse[data-open=true]{opacity:1;max-height:1300px;padding-top:14px}.sidebar-mobile-collapse .side-section:last-child{margin-bottom:0}}.view-tabs{border:1px solid var(--line);background:var(--surface);border-radius:8px;display:inline-flex;position:relative;overflow:visible}.view-tabs button{border:0;border-right:1px solid var(--line);color:#30404a;background:0 0;min-height:40px;padding:0 12px;font-size:13px;font-weight:800}.view-tabs button:last-child{border-right:0}.view-tabs button.active{color:#075f6c;background:#e9f6f8}.more-menu{display:flex;position:relative}.more-menu>button{border-right:0;align-items:center;gap:5px;display:inline-flex}.more-menu>button svg{flex:none}.more-menu>button .open{transform:rotate(180deg)}.more-menu-popover{z-index:60;border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:180px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 16px 42px #121f2d29}.more-menu-popover button{text-align:left;border:0;border-radius:7px;justify-content:flex-start;min-height:36px;padding:0 10px}.more-menu-popover button:hover,.more-menu-popover button[aria-pressed=true]{color:#075f6c;background:#edf7f8}@media (width<=760px){.view-tabs{width:100%;max-width:100%;display:flex;overflow-x:auto}.view-tabs button{flex:none;padding:0 8px;font-size:12px}.more-menu>button{gap:4px}.topbar>.icon-button,.topbar>.primary-button,.topbar>.secondary-button,.topbar>.searchbox{width:100%;max-width:100%}}:root{--bg:#f6f8fb;--surface:#fff;--surface-2:#eef3f6;--text:#182027;--muted:#69747d;--line:#dce3e8;--accent:#087f8c;--accent-2:#0d5b92;--danger:#b13b3b;--shadow:0 14px 40px #121f2d14;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.app-shell.lineage-mode{grid-template-columns:260px minmax(0,1fr)}.sidebar,.inspector{background:var(--surface);border-color:var(--line)}.sidebar{border-right:1px solid var(--line);padding:22px 18px}.brand{align-items:center;gap:12px;margin-bottom:28px;display:flex}.brand-mark{color:#eefcff;background:#11313a;border-radius:8px;place-items:center;width:40px;height:40px;font-size:13px;font-weight:800;display:grid}h1,h2,h3,p{margin:0}.brand h1{font-size:17px;line-height:1.2}.brand p,.board-head p,.upload-drawer header p{color:var(--muted);margin-top:2px;font-size:12px}.side-section{gap:11px;margin-bottom:24px;display:grid}.side-section h2{color:#39444d;text-transform:uppercase;font-size:12px;font-weight:800}label{color:#44515b;gap:6px;font-size:12px;font-weight:700;display:grid}input,select{border:1px solid var(--line);width:100%;color:var(--text);background:#fff;border-radius:7px;outline:none;min-height:36px;padding:8px 10px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #087f8c1f}.health-line{color:var(--accent);align-items:center;gap:8px;font-size:13px;font-weight:800;display:flex}dl{margin:0}.health dl{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.health dl div{border:1px solid var(--line);border-radius:8px;padding:9px}dt{color:var(--muted);font-size:11px;font-weight:700}dd{color:var(--text);overflow-wrap:anywhere;margin:3px 0 0;font-size:12px}.text-button{color:#30404a;text-align:left;background:0 0;border:0;min-height:28px;padding:0;font-size:13px;font-weight:700}.workspace{min-width:0;padding:18px;position:relative}.topbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.searchbox{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex:1;align-items:center;gap:8px;height:42px;padding:0 12px;display:flex}.searchbox input{min-height:38px;box-shadow:none;border:0;padding:0}.icon-button,.primary-button,.secondary-button,.action-grid button,.danger-section button,.upload-drawer footer button,.upload-drawer header button{border:1px solid var(--line);background:var(--surface);color:#23313a;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 13px;font-size:13px;font-weight:800;display:inline-flex}.icon-button{width:42px;padding:0}.primary-button{border-color:var(--accent);background:var(--accent);color:#fff}.secondary-button{color:#125d68;background:#f4fafb;border-color:#bdd5dc}.primary-button:disabled,button:disabled{cursor:not-allowed;opacity:.5}.toast{border:1px solid var(--line);background:var(--surface);color:#25313a;border-radius:8px;align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;font-size:13px;font-weight:700;display:flex}.lineage-mode .toast.ok{z-index:20;max-width:min(440px,100% - 36px);position:absolute;top:70px;right:18px;box-shadow:0 12px 30px #121f2d1f}.toast.ok svg{color:var(--accent)}.toast.error svg{color:var(--danger)}.toast button{color:var(--muted);background:0 0;border:0;margin-left:auto;font-size:12px;font-weight:800}.asset-board{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;overflow:hidden}.board-head{border-bottom:1px solid var(--line);justify-content:space-between;gap:14px;padding:16px;display:flex}.board-head h2{font-size:18px}.board-context-note{color:#125d68;margin-top:6px;font-size:12px;font-weight:800}.mini-stats{color:var(--muted);align-items:center;gap:10px;font-size:12px;font-weight:800;display:flex}.mini-stats>span{border:1px solid var(--line);border-radius:999px;padding:6px 9px}.asset-list{max-height:calc(100vh - 184px);display:grid;overflow:auto}.asset-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:34px 46px minmax(240px,1.9fr) minmax(140px,.85fr) minmax(94px,.5fr) minmax(132px,.75fr);align-items:center;gap:12px;width:100%;min-height:74px;padding:10px 14px;display:grid}.asset-row:hover,.asset-row.selected{background:#f2f8fa}.asset-row.selected{box-shadow:inset 3px 0 0 var(--accent)}.pagination-bar{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:10px;padding:10px 14px;display:flex}.pagination-bar button{border:1px solid var(--line);background:var(--surface);color:#263740;border-radius:8px;min-height:34px;padding:0 12px;font-size:12px;font-weight:800}.pagination-bar span{color:var(--muted);font-size:12px;font-weight:800}.pagination-bar label{align-items:center;gap:7px;display:flex}.pagination-bar select{width:76px;min-height:34px}.thumb{width:42px;height:42px;color:var(--accent-2);background:linear-gradient(#fff,#edf5f6);border:1px solid #cad7dc;border-radius:8px;place-items:center;display:grid;overflow:hidden}.thumb img,.thumb video{object-fit:contain;background:#fff;width:100%;height:100%}.asset-main,.asset-meta,.asset-version{gap:4px;min-width:0;display:grid}.asset-title-line{flex-wrap:wrap;align-items:flex-start;gap:8px;min-width:0;display:flex}.asset-title-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:150px;font-size:14px;line-height:1.25;display:-webkit-box;overflow:hidden}.asset-id,.asset-meta span,.asset-version span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.asset-version code{color:#33444f;font-size:11px}.status-chip,.source-chip,.storage-chip{color:#45535d;text-transform:uppercase;background:#e7edf1;border-radius:999px;align-items:center;width:fit-content;padding:3px 7px;font-size:11px;font-weight:900;display:inline-flex}.source-chip,.storage-chip.local-only{color:#6e5812;background:#fff7d7;border:1px solid #d6c58c}.storage-chip.s3-backed{color:#125d68;background:#edf8fa;border:1px solid #bdd5dc}.storage-chip.local-s3{color:#27609a;background:#eef5fd;border:1px solid #c8d9ed}.storage-chip.catalog-record{color:#52616b;background:#f5f7f8;border:1px solid #d1d9df}.status-chip.working{color:#086e78;background:#e7f5f6}.status-chip.published{color:#2d7a45;background:#eaf6ee}.status-chip.archived{color:#7a5a36;background:#f1ece7}.placement-chip{color:#27616a;text-overflow:ellipsis;white-space:nowrap;background:#edf6f7;border:1px solid #cadde3;border-radius:999px;align-items:center;width:fit-content;max-width:100%;padding:3px 7px;font-size:11px;font-weight:900;display:inline-flex;overflow:hidden}.placement-chip.posted{color:#2f7543;background:#edf8f0;border-color:#c9dfcf}.placement-chip.scheduled{color:#27609a;background:#eef5fd;border-color:#c8d9ed}.placement-chip.skipped{color:#765738;background:#f5eee8;border-color:#dfd1c4}.inspector{border-left:1px solid var(--line);align-content:start;gap:16px;padding:18px;display:grid}.inspector.empty{color:var(--muted)}.preview-pane{aspect-ratio:16/10;border:1px solid var(--line);background:#eff4f7;border-radius:8px;place-items:center;display:grid;overflow:hidden}.preview-pane img,.preview-pane video{object-fit:contain;background:#fff;width:100%;height:100%}.preview-placeholder{color:var(--muted);text-transform:uppercase;place-items:center;gap:8px;font-size:12px;font-weight:800;display:grid}.preview-placeholder small{color:#5f6d76;text-align:center;text-transform:none;max-width:240px;font-size:12px;font-weight:700;line-height:1.35}.preview-error{text-transform:none;max-width:100%;font-size:11px;font-weight:700}.preview-error summary{color:var(--accent-2);cursor:pointer}.preview-error code{overflow-wrap:anywhere;color:#52616b;max-width:260px;margin-top:6px;font-size:10px;display:block}.inspector-title{gap:8px;display:grid}.inspector-title h2{font-size:21px;line-height:1.14}.inspector-title p{color:var(--muted);font-size:13px;line-height:1.45}.action-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.detail-section{border-top:1px solid var(--line);gap:10px;padding-top:14px;display:grid}.detail-section h3{text-transform:uppercase;font-size:12px;font-weight:900}.detail-section dl{gap:8px;display:grid}.detail-section dl div{grid-template-columns:86px minmax(0,1fr);gap:9px;display:grid}.placement-section label{gap:5px}.placement-list{gap:8px;display:grid}.placement-item{border:1px solid var(--line);background:#f8fbfc;border-radius:8px;gap:5px;padding:9px;display:grid}.placement-item small{color:var(--muted);overflow-wrap:anywhere;font-size:11px;font-weight:700}.placement-item a{color:var(--accent-2);overflow-wrap:anywhere;font-size:12px;font-weight:800;text-decoration:none}.muted-copy{color:var(--muted);font-size:12px;font-weight:700}.object-key{overflow-wrap:anywhere;border:1px solid var(--line);color:#31414c;background:#f7fafb;border-radius:8px;padding:10px;font-size:11px;line-height:1.45;display:block}.danger-section{border-top:1px solid var(--line);gap:10px;padding-top:14px;display:grid}.danger-section button{width:100%;color:var(--danger);border-color:#e6c9c9}.drawer-backdrop{z-index:10;background:#121c2457;justify-content:end;display:grid;position:fixed;inset:0}.upload-drawer{background:var(--surface);grid-template-rows:auto auto 1fr auto auto;gap:16px;width:min(620px,100vw);height:100vh;padding:20px;display:grid;overflow:auto;box-shadow:-18px 0 44px #121f2d2e}.upload-drawer header,.upload-drawer footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.upload-drawer h2{font-size:20px}.file-drop{color:#2b5962;background:#f5fafb;border:1px dashed #9fb4bd;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:74px;font-size:13px;font-weight:900;display:flex}.file-drop input{display:none}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid .wide{grid-column:1/-1}.confirm-line{align-items:center;gap:8px;display:flex}.confirm-line input{width:16px;min-height:16px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){.app-shell,.app-shell.lineage-mode{grid-template-columns:220px minmax(0,1fr)}.asset-row{grid-template-columns:46px minmax(0,1fr) minmax(110px,.45fr)}.asset-row .asset-meta:not(.narrow){display:none}.review-summary,.queue-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.app-shell,.app-shell.lineage-mode{grid-template-columns:1fr;display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.topbar,.board-head,.mini-stats,.pagination-bar{flex-direction:column;align-items:stretch}.topbar{flex-wrap:wrap}.searchbox{flex-basis:100%;order:3}.asset-row{grid-template-columns:42px minmax(0,1fr);min-height:86px}.asset-row .asset-meta,.asset-row .asset-version{display:none}.asset-meta,.asset-version{grid-column:2}.action-grid,.form-grid,.review-summary,.handoff-strip,.queue-columns{grid-template-columns:1fr}.queue-lane header{flex-direction:column;align-items:flex-start}.lineage-mode .toast.ok{max-width:100%;position:sticky;top:8px;right:auto}}
|