/* Console-only rules. Components and page layouts come from ds.css (design system + frames, 1:1);
   colors use only semantic tokens; no external resources. */
* { box-sizing: border-box; }
html, body, #app { height: 100%; }
body { margin: 0; background: var(--bg-0); color: var(--fg-1); font-family: var(--font-body); font-size: var(--text-md); }
[hidden] { display: none !important; }
:focus-visible { outline: none; box-shadow: var(--focus-ring); }
a { color: var(--fg-link); text-underline-offset: 3px; }
a:hover { color: var(--primary-fg); }
p { margin: 0; }
code, pre { font: var(--type-mono); }
pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: var(--space-3); background: var(--bg-sunken); border: 1px solid var(--line-1); max-width: 100%; margin: 0; }
h2 { margin: 0; font: 700 var(--text-lg)/1.2 var(--font-display); letter-spacing: .04em; }
h3 { margin: 0; }
#content { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
#content > section, #content section[data-ui-state] { display: flex; flex-direction: column; gap: 16px; min-width: 0; }

/* Shell: the top bar carries the global search (frame 02.a, CONSOLE §14.2), right-aligned before the environment badge. */
.fma-shell { height: 100%; }
.fma-top .env { margin-left: auto; }
/* The header paints above the page (positioned tabs), so the suggestion list is never covered. */
.fma-top { position: relative; z-index: 20; }
.fma-top .fma-top-search { position: relative; }
.fma-top .fma-top-search + .env { margin-left: 0; }
.fma-top-search .at-suggest { position: absolute; top: calc(100% + 4px); right: -1px; }
.fma-top-search .at-search-open { display: none; }
.fma-shell[data-connected=false] .fma-top-search { visibility: hidden; }
.fma-top .actions { display: flex; gap: 4px; }
.fma-side-foot > [role=status] { display: block; }
.menu, .mobile-actions { display: none !important; }

/* dom.el wraps text in a span: inside a bold name it keeps the name's size and colour, not the Japanese line's 11 px. */
.at-name b span { font-size: inherit; color: inherit; }

/* Raw form controls not built with ui.field keep the DS input look. */
.at-page input:not(.fma-input input):not([type=checkbox]):not([type=radio]), .at-page select:not(.fma-input select), .at-page textarea:not(.fma-input textarea) {
  width: 100%; height: var(--control-md); padding: 0 var(--space-2); border: 1px solid var(--line-2); border-radius: var(--radius-1);
  background: var(--bg-sunken); color: var(--fg-1); font: var(--type-ui); }
.fma-input[data-multiline=true] { height: auto; padding: var(--space-2); align-items: flex-start; }
.fma-input textarea { min-height: 64px; resize: vertical; }

/* Reads, notices and empty states (DS look). */
.read-meta { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); font: var(--type-caption); color: var(--fg-3); }
.muted, small { font: var(--type-caption); color: var(--fg-3); }
.empty { padding: var(--space-8); text-align: center; color: var(--fg-3); font: var(--type-body); border: 1px solid var(--line-1); background: var(--bg-1); }
.skeleton { height: var(--space-8); background: var(--bg-3); width: 100%; }
.skeleton.short { width: 60%; }
.notice { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border: 1px solid var(--primary-line); background: var(--primary-soft); overflow-wrap: anywhere; font: var(--type-ui); }
.notice:empty { display: none; }
.notice.warning { border-color: var(--warning); background: color-mix(in srgb, var(--warning) 8%, var(--bg-1)); }
.notice.danger { border-color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, var(--bg-1)); }
.notice.success { border-color: var(--success); background: color-mix(in srgb, var(--success) 8%, var(--bg-1)); }
.notice a { display: inline-block; margin-right: var(--space-4); }
.stale-values { opacity: .5; }
.mail-content { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Legacy page blocks, until each page uses the frames' grid (at-split / at-main / at-aside). */
.split { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.split > .main-column { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.split > .fma-panel, .split > aside { flex: 1 1 300px; min-width: 0; }
.filters { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 16px; }
.filters .fma-field { flex: 0 1 260px; }
.attachment-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: var(--space-2); align-items: end; }
.write-form { display: flex; flex-direction: column; gap: 12px; }
.write-form > .fma-btn, .at-checks > .fma-btn, .at-confirm .fma-btn { align-self: flex-start; }
.stack { display: flex; flex-direction: column; gap: 16px; }
.activity { display: flex; flex-direction: column; gap: 16px; }
.activity:empty { display: none; }

/* Dialogs (courrier, clonage) and write-state cards. */
dialog { width: min(700px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow-y: auto; padding: var(--space-5); color: var(--fg-1); background: var(--bg-1); border: 1px solid var(--line-2); border-top: 3px solid var(--primary); box-shadow: var(--shadow-3); }
dialog::backdrop { background: var(--overlay); }
.state-card { display: flex; flex-direction: column; gap: 8px; padding: 12px 16px; border: 1px solid var(--line-1); border-left: 3px solid var(--primary); background: var(--bg-1); }
.state-card[data-write-state=applied] { border-left-color: var(--success); }
.state-card[data-write-state=refused], .state-card[data-write-state=conflict] { border-left-color: var(--danger); }
.state-card a { display: inline-block; margin-right: var(--space-3); }
.state-card summary { cursor: pointer; color: var(--fg-3); }

/* Compte (03) et inventaire (04). */
.at-table.at-items tbody tr { cursor: pointer; }
.fma-slot:not([data-loaded]) { border: 1px dashed var(--line-2); }

/* Connexion (28). */
#content .at-login-page { display: flex; justify-content: center; padding-top: 64px; }
.fma-shell[data-connected=false] .fma-top .actions { visibility: hidden; }

/* Accueil (01). */
.at-grid4 > .tile-span2 { grid-column: span 2; }
.tile-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.at-todo:empty + .at-muted { margin-top: 0; }
.todo-group { display: contents; }
.todo { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-3); border: 1px solid var(--line-1); border-left: 3px solid var(--line-3); background: var(--bg-1); }
.todo b { font: var(--type-body-strong); }
.todo span { flex: 1 1 260px; color: var(--fg-2); font: var(--type-caption); overflow-wrap: anywhere; }
.todo.danger { border-left-color: var(--danger); }
.todo.warning { border-left-color: var(--warning); }
.shortcut-list { display: flex; flex-direction: column; gap: var(--space-2); }
.shortcut-list a { display: block; padding: var(--space-2) var(--space-3); border: 1px solid var(--line-1); text-decoration: none; }
.shortcut-list a:hover { border-color: var(--primary-line); }

/* Data module (08, 08.a, 08.b, 09, CONSOLE §15): the frames' flush three-column page fills the main area,
   each column scrolls on its own. */
.at-page.at-page-flush { padding: 0; gap: 0; height: 100%; }
.at-page-flush > #content { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.at-page-flush > #content > div:empty { display: none; }
.at-page-flush > #content > section { flex: 1 1 auto; min-height: 0; }
.at-tree .fma-field .fma-hint:empty, .at-data-filters .fma-hint:empty { display: none; }
.at-tree button.at-tree-item { width: 100%; border: 0; background: none; cursor: pointer; text-align: left; }
.at-table.at-data th[tabindex] { cursor: pointer; }
.at-tree-item > span:first-child, .at-ref > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; overflow-wrap: anywhere; }
.at-tree-item > .at-flag, .at-ref > .at-rel { flex: none; }
.at-table.at-data tbody tr { cursor: pointer; }
@media (max-width: 900px) {
  .at-page.at-page-flush, .at-page-flush .at-3col { height: auto; }
  .at-page-flush .at-tree, .at-page-flush .at-detail { flex: 1 1 100%; max-height: none; border: 0; }
}

/* Lot 24 (CONSOLE §19): game-register islands, write modal, sortable headers. */
dialog.at-modal { width: min(720px, calc(100vw - 32px)); padding: 0; border-top: 0; overflow: hidden; }
dialog.at-modal[open] { display: flex; flex-direction: column; }
dialog.at-modal .at-modal-body { min-height: 0; overflow-y: auto; }
dialog.at-modal .at-modal-body .state-card, dialog.at-modal .at-modal-body .notice:empty { margin: 0; }
.at-th-btn { display: inline-flex; align-items: center; gap: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.at-th-btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.at-th-btn:hover { color: var(--fg-1); }
.fma-side-brand img.at-logo { width: auto; flex: none; }
.at-rbadge { display: inline-flex; align-items: center; }
.at-lock-wrap { display: inline-flex; vertical-align: -1px; margin-left: 4px; }
.at-lock-wrap .at-lock { margin-left: 0; }
.at-lock-icon { display: inline-flex; color: var(--fg-3); }
.fma-unit:not([data-framed]) { background: var(--ink-900); box-shadow: inset 0 0 0 2px var(--rt-c); }
.fma-unit .at-unit-fac { color: var(--fac-c, var(--fg-2)); font-weight: 600; }
.fma-unit .at-unit-lock { position: absolute; top: 34%; right: 8px; display: inline-flex; padding: 3px; background: var(--overlay); }
.fma-unit .fma-unit-top img.fma-unit-fac[hidden] { display: none; }
.fma-popup:not([data-framed]) { border: 1px solid var(--line-gold, var(--line-2)); background: var(--ink-900); }
.fma-cur .fma-cur-item img[hidden] { display: none; }
.at-cur-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.at-att-add { display: flex; align-items: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.at-att-add .fma-field { width: 140px; }
.at-modal-dest b span, .at-att .at-name b span { font: inherit; color: inherit; }
.at-mail-form { display: flex; flex-direction: column; gap: 14px; }
.at-mail-form > .notice:empty { display: none; }

/* Below 900 px the search field folds into a button that opens page 02 (CONSOLE §14.2). */
@media (max-width: 900px) {
  .fma-top .fma-top-search { width: auto; padding: 0; border: 0; background: none; }
  .fma-top-search > svg, .fma-top-search input, .fma-top-search kbd, .fma-top-search .at-suggest { display: none; }
  .fma-top-search .at-search-open { display: inline-flex; }
}

/* Phone: the sidebar becomes a menu; touch targets stay at 44 px. */
@media (max-width: 700px) {
  .fma-shell { grid-template-columns: minmax(0, 1fr); grid-template-rows: var(--topbar) auto 1fr; }
  .fma-side { display: none; grid-row: 2; }
  .fma-side.open { display: flex; }
  .fma-side.open .fma-side-brand b, .fma-side.open .fma-side-brand small, .fma-side.open .fma-side-group, .fma-side.open a span, .fma-side.open .fma-side-foot { display: revert; }
  .fma-top { grid-row: 1; }
  .fma-main { grid-row: 3; }
  .fma-top .env, .fma-top .actions { display: none; }
  .menu { display: inline-flex !important; }
  .mobile-actions { display: flex !important; flex-wrap: wrap; gap: var(--space-2); padding: var(--space-3); }
  .at-page { padding: 16px; }
  .at-h1 { font: var(--type-title-2); }
  .fma-btn, .fma-input { min-height: 44px; }
  .attachment-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .attachment-row button { grid-column: 1 / 3; }
}

/* Page 15 (lot 22): dom.el wraps text in a span; identifiers and glossary terms keep their frame size (CONSOLE §17.5). */
.at-tr-id b span, .at-tr-id .fr span, .at-tr-list td b span { font: inherit; color: inherit; }
.at-tr-form .fma-input textarea { min-height: 76px; font-size: 15px; line-height: 1.6; }

/* Lot 29 — début : compétences en cartes (frames 40 à 42.a, CONSOLE §23). Repris des frames ; couleurs en jetons. */
.sk-type{display:inline-flex;align-items:center;height:24px;padding:0 10px;background:var(--primary);color:var(--white);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;font-size:11px}
.sk-type.passive{background:var(--fg-2)}
.sk-pad{padding:14px 16px}
.sk-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.sk-pick{display:flex;flex-direction:column;border:1px solid var(--line-1)}
.sk-pick-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;min-height:40px;padding:4px 10px;border-bottom:1px solid var(--line-1)}
.sk-pick-row:last-child{border-bottom:0}
.sk-pick-row.on{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}
.sk-pick-row b{font:var(--type-body-strong)}
.sk-pick-row small{display:block;font:var(--type-caption);color:var(--fg-3)}
.sk-pick-row .uses{font:var(--type-mono);font-size:11px;color:var(--fg-3)}
.sk-pick-row .uses.shared{color:var(--warning)}
.sk-pick-row:has(.sk-brick){grid-template-columns:auto minmax(0,1fr) auto;align-items:start;padding:10px}
.sk-brick{display:flex;flex-direction:column;gap:4px;min-width:0}
.sk-say{font:var(--type-body);font-size:13px;line-height:1.55;color:var(--fg-1)}
.sk-say .v{font-weight:700;color:var(--fg-1)}
.unk{text-decoration:underline dotted;text-decoration-color:var(--warning);text-underline-offset:3px}
.sk-say .v.unk{color:var(--warning)}
.sk-facts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sk-fact,.sk-src,.sk-id{font:var(--type-caption);font-size:11px;padding:1px 6px;border:1px solid var(--line-1);color:var(--fg-2)}
.sk-fact.copy{color:var(--warning);border-color:var(--warning)}
.sk-fact.mine{color:var(--primary-fg);border-color:var(--primary)}
.sk-src{color:var(--success);border-color:var(--success)}
.sk-src.gen{color:var(--fg-3);border-color:var(--line-2,var(--line-1))}
.sk-id{font:var(--type-mono);font-size:11px;border:0;color:var(--fg-3)}
.sk-used{margin:0;font:var(--type-caption);color:var(--fg-3)}
.sk-used.shared{color:var(--fg-2)}
.sk-legend{margin:0;padding:8px 10px;font:var(--type-caption);color:var(--fg-3);border-top:1px solid var(--line-1)}
.sk-legend .sk-src{margin:0 2px}
.sk-catalog{display:flex;flex-direction:column;gap:10px}
.sk-cat{display:flex;flex-direction:column;gap:14px}
.sk-cat-group h5{margin:0 0 6px;font:var(--type-label);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3)}
.sk-kind{border:1px solid var(--line-1);padding:10px;display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.sk-kind.ok{box-shadow:inset 3px 0 0 var(--success)}
.sk-kind-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sk-state{font:var(--type-caption);font-size:11px;padding:1px 6px;border:1px solid}
.sk-state.ok{color:var(--success);border-color:var(--success)}
.sk-state.warn{color:var(--warning);border-color:var(--warning)}
.sk-examples{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:4px}
.sk-examples small{color:var(--fg-3)}
.sk-later{margin:0;font:var(--type-caption);color:var(--fg-3)}
.sk-hidden{margin:0;font:var(--type-caption);color:var(--warning)}
.sk-states .at-state p{margin:0;font:var(--type-caption);color:var(--fg-2);line-height:1.5}
.sk-states .at-state code{font:var(--type-mono);font-size:11px}
.sk-states .at-state header{display:flex;align-items:center;gap:8px}
.sk-states .at-state header b{flex:1 1 auto}
.sk-states .at-state.err{border-color:var(--danger)}
.sk-states .at-state.ok{border-color:var(--success)}
.sk-states .at-state.warn{border-color:var(--warning)}
.sc-impact{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border:2px solid var(--warning);background:color-mix(in srgb,var(--warning) 8%,var(--bg-1))}
.sc-impact .big{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--warning);color:var(--white);font:700 22px/1 var(--font-body)}
.sc-impact b{display:block;font:var(--type-body-strong);font-size:15px;color:var(--fg-1)}
.sc-impact span{font:var(--type-caption);color:var(--fg-2);line-height:1.5}
.sc-impact span strong{color:var(--fg-1)}
.sc-impact.ok{border-color:var(--success);background:color-mix(in srgb,var(--success) 8%,var(--bg-1))}
.sc-impact.ok .big{background:var(--success)}
.sc-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sc-card{display:flex;flex-direction:column;border:1px solid var(--line-2);background:var(--bg-1);cursor:pointer;position:relative}
.sc-card:hover{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.sc-card.on{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.sc-card.wide{grid-column:1/-1}
.sc-band{display:flex;align-items:center;gap:10px;height:34px;padding:0 14px;background:var(--fg-1);color:var(--white);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;font-size:12px}
.sc-band .grow{flex:1 1 auto}
.sc-band .cd{font:var(--type-mono);font-size:11px;letter-spacing:0;text-transform:none;color:var(--white);opacity:.85}
.sc-band.ult{background:var(--primary)}
.sc-band.trait{background:var(--value-fg)}
.sc-head{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px 8px}
.sc-ico{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:2px solid var(--line-2);background:var(--bg-2);font:700 22px/1 var(--font-display,var(--font-body));color:var(--fg-2)}
.sc-ico.ult{border-color:var(--primary);color:var(--primary-fg)}
.sc-ico.trait{border-color:var(--value-fg);color:var(--value-fg)}
.sc-head h3{margin:0;font:var(--type-title-3,600 18px/1.2 var(--font-body));color:var(--fg-1)}
.sc-head small{display:block;margin-top:2px;font:var(--type-caption);color:var(--fg-3)}
.sc-geo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:4px 14px 10px}
.sc-geo>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:8px 10px;background:var(--bg-sunken);border:1px solid var(--line-1)}
.sc-geo b{display:block;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;font-size:10px;color:var(--fg-3)}
.sc-geo strong{display:block;font:var(--type-body-strong);font-size:15px;color:var(--fg-1)}
.sc-geo strong.mod{color:var(--primary-fg)}
.sc-geo s{font:var(--type-mono);font-size:11px;color:var(--fg-4);margin-left:6px}
.sc-grid{display:grid;gap:1px;width:max-content}
.sc-grid.n7{grid-template-columns:repeat(7,9px)}
.sc-grid.n9{grid-template-columns:repeat(9,9px)}
.sc-grid i{display:block;width:9px;height:9px;background:var(--bg-2);border:1px solid var(--line-1);box-sizing:border-box}
.sc-grid i.o{background:var(--cyan-600);border-color:var(--cyan-600)}
.sc-grid i.r{background:color-mix(in srgb,var(--cyan-600) 25%,transparent);border-color:var(--cyan-600)}
.sc-grid i.h{background:var(--danger);border-color:var(--danger)}
.sc-grid i.f{background:var(--success);border-color:var(--success)}
.sc-grid i.t{background:var(--fg-1);border-color:var(--fg-1)}
.sc-desc{padding:2px 14px 12px;font:var(--type-body);font-size:13px;line-height:1.65;color:var(--fg-1);white-space:pre-line}
.sc-desc .v{font-weight:700;color:var(--value-fg)}
.sc-desc .bf{font-weight:700;color:var(--danger)}
.sc-desc .tag{font-weight:600;color:var(--fg-3)}
.sc-desc .mod{font-weight:700;color:var(--primary-fg);background:var(--primary-soft);padding:0 3px}
.sc-tree{margin:0 14px 12px;border-top:1px dashed var(--line-2);padding-top:10px}
.sc-tree>b{display:flex;justify-content:space-between;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;font-size:10px;color:var(--fg-3)}
.sc-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.sc-br{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--line-1);background:var(--bg-2);font:var(--type-caption);font-size:12px;line-height:1.5;color:var(--fg-2)}
.sc-br b{font:var(--type-body-strong);font-size:12px;color:var(--fg-1)}
.sc-br em{font-style:normal;font:var(--type-mono);font-size:10px;color:var(--fg-4)}
.sc-br .v{font-weight:700;color:var(--value-fg)}
.sc-foot{display:flex;align-items:center;gap:8px;margin-top:auto;padding:8px 14px;border-top:1px solid var(--line-1);font:var(--type-caption);color:var(--fg-3)}
.sc-foot .grow{flex:1 1 auto}
.sc-toggle{display:inline-flex;border:1px solid var(--line-2)}
.sc-toggle span{padding:2px 8px;font:var(--type-caption);font-size:11px;color:var(--fg-3)}
.sc-toggle span.on{background:var(--fg-1);color:var(--white)}
.sc-ed{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.sc-blocks{display:flex;flex-direction:column}
.sc-blk{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line-1)}
.sc-blk:last-child{border-bottom:0}
.sc-blk.add{background:color-mix(in srgb,var(--success) 7%,transparent)}
.sc-blk.del{background:color-mix(in srgb,var(--danger) 6%,transparent)}
.sc-blk.del .sc-desc{text-decoration:line-through;color:var(--fg-3)}
.sc-blk .sc-desc{padding:0}
.sc-kind{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 8px;font:var(--type-label);font-size:10px;letter-spacing:.05em;text-transform:uppercase;border:1px solid}
.sc-kind.atk{color:var(--primary-fg);border-color:var(--primary)}
.sc-kind.bon{color:var(--success);border-color:var(--success)}
.sc-kind.mal{color:var(--danger);border-color:var(--danger)}
.sc-kind.eff{color:var(--cyan-600);border-color:var(--cyan-600)}
.sc-actions{display:flex;gap:6px}
.sc-choose{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sc-choose button{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:12px;border:1px solid var(--line-2);background:var(--bg-1);text-align:left;cursor:pointer;font:var(--type-caption);color:var(--fg-3)}
.sc-choose button b{font:var(--type-body-strong);color:var(--fg-1)}
.sc-choose button.on{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 -3px 0 var(--primary)}
.sc-steps{display:flex;flex-direction:column;gap:14px;padding:14px 16px}
.sc-step{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px}
.sc-step>span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--fg-1);color:var(--white);font:700 12px/1 var(--font-body)}
.sc-step>div{display:flex;flex-direction:column;gap:8px;min-width:0}
.sc-step h4{margin:3px 0 0;font:var(--type-body-strong);color:var(--fg-1)}
.sc-cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--line-2)}
.sc-cmp>div{padding:10px 12px}
.sc-cmp>div:first-child{border-right:1px solid var(--line-2);background:var(--bg-sunken)}
.sc-cmp b{display:block;margin-bottom:4px;font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;font-size:10px;color:var(--fg-3)}
.sc-cmp .sc-desc{padding:0}
.sc-tbl{width:100%;border-collapse:collapse;font:var(--type-caption)}
.sc-tbl th{padding:8px 10px;text-align:left;font:var(--type-label);font-size:10px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-3);border-bottom:1px solid var(--line-2)}
.sc-tbl td{padding:9px 10px;border-bottom:1px solid var(--line-1);color:var(--fg-1);vertical-align:top}
.sc-tbl td small{display:block;color:var(--fg-3)}
.sc-tbl tr.bad td{background:color-mix(in srgb,var(--danger) 6%,transparent)}
.sc-host{display:flex;flex-direction:column;gap:16px;min-width:0}
.sc-impact-links{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.at-sh-main>.fma-tabs{flex:0 0 auto}
.sc-ed>.sc-card.wide{grid-column:auto}
/* Lot 29 — fin */
/* Lot 31 (frames 43 et 43.a) : texte en jeu, éditeur de texte, onglet Textes. */
.at-text-render{padding:2px 0 8px;white-space:normal}
.at-text-ed{display:flex;flex-direction:column;gap:12px}
.at-text-ed .sc-cmp>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.at-text-base{padding:8px 10px;background:var(--bg-2);border:1px solid var(--line-1);font:var(--type-body);font-size:13px;line-height:1.6;color:var(--fg-2)}
.at-text-input{width:100%;box-sizing:border-box;min-height:140px;padding:8px 10px;resize:vertical;background:var(--bg-sunken);color:var(--fg-1);border:1px solid var(--line-2);font:var(--type-body);font-size:13px;line-height:1.6}
.at-text-input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.at-text-line{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2)}
.sk-fact.mono{font-family:var(--font-mono)}
dialog.at-modal-text{width:min(720px,calc(100vw - 32px))}
@media (max-width:700px){.at-text-ed .sc-cmp{grid-template-columns:minmax(0,1fr)}.at-text-ed .sc-cmp>div:first-child{border-right:0;border-bottom:1px solid var(--line-2)}}
/* Lot 31 — fin */
/* Lot 32 (frames 44 et 44.a) : arbre de potentiel éditable. */
.pt-tree{display:flex;flex-direction:column;gap:12px}
.pt-tier{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch}
.pt-tier>.lab{display:flex;flex-direction:column;justify-content:center;gap:4px;font:var(--type-label);font-size:11px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-3)}
.pt-tier>.lab b{font:var(--type-body-strong);font-size:15px;letter-spacing:0;text-transform:none;color:var(--fg-1)}
.pt-br{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line-2);background:var(--bg-1);min-width:0}
.pt-br.mod{border-color:var(--info);box-shadow:inset 3px 0 0 var(--info)}
.pt-br.trunk{grid-column:2 / 4}
.pt-br h4{margin:0;display:flex;gap:8px;align-items:center;font:var(--type-body-strong);font-size:14px;color:var(--fg-1)}
.pt-br h4 .ab{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--fg-1);color:var(--white);font:700 12px/1 var(--font-body)}
.pt-br h4 .grow{flex:1 1 auto}
.pt-br .pt-text{padding:0}
.pt-chips{display:flex;flex-wrap:wrap;gap:6px}
.pt-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid var(--line-2);background:var(--bg-2);font:var(--type-caption);font-size:12px;color:var(--fg-1)}
.pt-chip.pas{border-color:var(--primary);color:var(--primary)}
.pt-chip.rep{border-color:var(--warning);color:var(--warning)}
.pt-chip.add{border-color:var(--success);color:var(--success)}
.pt-chip.off{color:var(--fg-3);text-decoration:line-through}
.pt-ad{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 14px;border-bottom:1px solid var(--line-1)}
.pt-ad:last-child{border-bottom:0}
.pt-ad.del>div{text-decoration:line-through;color:var(--fg-3)}
.pt-ad small{display:block;font:var(--type-caption);color:var(--fg-3)}
.pt-ad .fx{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:8px 10px;border-left:2px solid var(--line-2);background:var(--bg-2)}
.pt-ad .fx>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pt-ad .fx .sc-desc{padding:0;flex:1 1 200px}
.pt-ad .fx .sc-desc.del{text-decoration:line-through;color:var(--fg-3)}
.pt-ad .tx-acts{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-top:8px}
.pt-val{display:inline-flex;align-items:center;min-height:26px;padding:0 8px;border:1px solid var(--line-2);background:var(--bg-1);font-family:var(--font-mono);font-size:12px}
.sc-br-add{display:block;margin-top:4px;padding:2px 6px;border-left:2px solid var(--success);background:var(--bg-2);font-size:12px}
.pt-num{width:76px;min-height:24px;border:1px solid var(--line-2);background:var(--bg-0);color:var(--fg-1);font-family:var(--font-mono);font-size:12px;padding:0 4px}
.pt-val small{color:var(--fg-3);margin-left:4px;white-space:nowrap}
.sc-br-text{white-space:pre-line}
.pt-wait{opacity:.6}
.pt-add{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
@media (max-width:700px){.pt-tier{grid-template-columns:minmax(0,1fr)}.pt-br.trunk{grid-column:auto}.pt-ad{grid-template-columns:minmax(0,1fr)}}
/* Lot 32 — fin */
/* Lot 33 (frame 45) : publié pour le téléphone. */
.at-ph-pub{grid-template-columns:repeat(2,minmax(0,1fr))}
.at-ph-pub .at-ph-actions{margin-top:8px}
.at-ph-cable{margin-top:8px}
@media (max-width:700px){.at-ph-pub{grid-template-columns:minmax(0,1fr)}}
/* Lot 33 — fin */
/* Lot 34 (frames 46 et 46.c) : Atelier personnage, le menu du jeu modifiable. */
.ap-host{display:flex;flex-direction:column;gap:16px;min-width:0;container-type:inline-size}
.ap-stage{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr) minmax(280px,400px);gap:18px;min-height:480px;padding:22px 24px;
  background:radial-gradient(ellipse at 52% 40%,var(--ink-600) 0%,var(--ink-800) 46%,var(--ink-950) 100%);color:var(--fg-1);border:1px solid var(--ink-950)}
.ap-rar{font:800 40px/1 'Cormorant Garamond',var(--font-display,serif);background:linear-gradient(180deg,var(--gold-100),var(--gold-500));-webkit-background-clip:text;background-clip:text;color:transparent}
.ap-name{font:700 34px/1.1 'Cormorant Garamond',var(--font-display,serif);color:var(--white);overflow-wrap:anywhere}
.ap-title{display:inline-block;margin-top:4px;padding:2px 8px;border-left:3px solid var(--gold-500);background:color-mix(in srgb,var(--black-950) 35%,transparent);font-size:13px}
.ap-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin-top:18px}
.ap-stat{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;height:30px;padding:0 8px;background:color-mix(in srgb,var(--black-950) 38%,transparent);border:1px solid transparent;color:var(--white);font:600 14px/1 var(--font-body);cursor:pointer;text-align:left}
.ap-stat.static{cursor:default}
.ap-stat .ic{display:grid;place-items:center;width:20px;height:20px;border-radius:3px;background:var(--ink-700);color:var(--fg-2);font-size:12px}
.ap-stat .v{text-align:right}
.ap-stat .d{font-size:11px;color:var(--green-400)}
.ap-stat.on{border-color:var(--gold-500);background:color-mix(in srgb,var(--gold-500) 16%,transparent)}
.ap-stat.chg .v{color:var(--gold-300)}
.ap-stat:focus-visible,.ap-sk:focus-visible{outline:2px solid var(--gold-300);outline-offset:1px}
.ap-hint{margin:12px 0 0;font-size:12px;color:var(--fg-3)}
.ap-portrait{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.ap-portrait img{max-width:100%;height:auto;border-radius:6px}
.ap-portrait .sil{width:200px;height:300px;border-radius:100px 100px 18px 18px;background:linear-gradient(180deg,var(--ink-500),var(--ink-800))}
.ap-portrait small{color:var(--fg-3);text-align:center}
.ap-lvl{display:flex;align-items:flex-end;gap:8px}
.ap-lvl b{font:300 56px/1 'Cormorant Garamond',var(--font-display,serif);color:var(--white)}
.ap-lvl span{margin-bottom:8px;color:var(--fg-2)}
.ap-slider{width:100%;accent-color:var(--gold-500);margin:6px 0 14px}
.ap-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ap-tile{display:flex;justify-content:space-between;align-items:center;min-height:46px;padding:8px 12px;border:1px solid var(--ink-500);background:color-mix(in srgb,var(--ink-950) 55%,transparent)}
.ap-tile em{font-style:normal;color:var(--gold-500);letter-spacing:.08em}
.ap-skills{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px}
.ap-sk{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border:1px solid var(--ink-500);background:color-mix(in srgb,var(--ink-950) 55%,transparent);color:var(--fg-1);font-size:11px;text-decoration:none;text-align:center;min-width:0}
.ap-sk i{width:46px;height:46px;background:linear-gradient(135deg,var(--cyan-400),var(--indigo-700));border:1px solid var(--cyan-300)}
.ap-sk.ultra i{background:linear-gradient(135deg,var(--copper-400),var(--crimson-700));border-color:var(--gold-300)}
.ap-sk.trait i{background:linear-gradient(135deg,var(--indigo-400),var(--indigo-700))}
.ap-sk small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-3)}
.ap-sk .dot{position:absolute;top:4px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--gold-300)}
.ap-sk .cd{position:absolute;top:34px;left:50%;transform:translateX(-50%);padding:0 5px;background:var(--ink-950);color:var(--white);font-size:10px}
.ap-sk:hover{border-color:var(--gold-500)}
.ap-kv{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(80px,.6fr) minmax(0,1.6fr)}
.ap-kv>div{display:flex;align-items:center;gap:6px;padding:9px 12px;border-bottom:1px solid var(--line-1);font:var(--type-caption);color:var(--fg-2);min-width:0}
.ap-kv>div.h{font:var(--type-label);font-size:10px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-3);background:var(--bg-2)}
.ap-kv b{color:var(--fg-1)}
.ap-delta{color:var(--success);font-weight:700}
.ap-kv .at-sf{display:flex;align-items:center;gap:8px;padding:0;border:0;background:none;min-width:0}
.ap-kv .at-sf>span:first-child{display:none}
@container (max-width:1050px){.ap-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ap-portrait{display:none}}
@container (max-width:640px){.ap-stage{grid-template-columns:minmax(0,1fr);padding:16px}.ap-kv{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ap-kv>div.h:nth-child(2){display:none}}
.ef-picker{display:flex;flex-direction:column;gap:12px;min-width:0;container-type:inline-size}
.ef-top{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line-2)}
.ef-top>button{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border:0;border-right:1px solid var(--line-2);background:var(--bg-1);color:var(--fg-1);text-align:left;cursor:pointer;min-width:0}
.ef-top>button:last-child{border-right:0}
.ef-top>button.on{background:var(--bg-2);box-shadow:inset 0 -3px 0 var(--primary)}
.ef-top b{display:block;font:var(--type-body-strong)}
.ef-top small{display:block;font:var(--type-caption);color:var(--fg-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ef-ico{display:grid;place-items:center;width:32px;height:32px;border-radius:4px;color:var(--white);font:700 14px/1 var(--font-body);flex:0 0 auto}
.ef-ico.img{object-fit:contain;background:none}
.ef-ico.up{background:linear-gradient(135deg,var(--green-400),var(--green-700))}
.ef-ico.down{background:linear-gradient(135deg,var(--red-400),var(--red-800))}
.ef-ico.atk{background:linear-gradient(135deg,var(--copper-400),var(--copper-800))}
.ef-ico.fx{background:linear-gradient(135deg,var(--cyan-500),var(--indigo-700))}
.ef-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start}
.ef-cats{display:flex;flex-direction:column;border:1px solid var(--line-2);max-height:520px;overflow:auto}
.ef-cats>button{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border:0;border-bottom:1px solid var(--line-1);background:var(--bg-1);color:var(--fg-1);font:var(--type-caption);text-align:left;cursor:pointer}
.ef-cats>button.sub{padding-left:22px;color:var(--fg-2)}
.ef-cats>button.on{background:color-mix(in srgb,var(--primary) 10%,transparent);box-shadow:inset 3px 0 0 var(--primary);font-weight:700}
.ef-cats .n{color:var(--fg-3)}
.ef-list{display:flex;flex-direction:column;border:1px solid var(--line-2);margin-top:8px;max-height:620px;overflow:auto}
.ef-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 12px;border-bottom:1px solid var(--line-1);background:var(--bg-1)}
.ef-item b{font:var(--type-body-strong);color:var(--fg-1)}
.ef-item small{display:block;margin-top:2px;font:var(--type-caption);color:var(--fg-3)}
.ef-var{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ef-var>button{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;border:1px solid var(--line-2);background:var(--bg-1);color:var(--fg-1);font:var(--type-caption);cursor:pointer}
.ef-var>button.on{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent);font-weight:700}
.ef-var em{font-style:normal;color:var(--fg-3)}
.ef-end{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.ef-dup{display:inline-flex;align-items:center;height:22px;padding:0 8px;background:var(--bg-3);font:var(--type-label);font-size:11px;color:var(--fg-2);white-space:nowrap}
@container (max-width:640px){.ef-body{grid-template-columns:minmax(0,1fr)}.ef-cats{max-height:200px}.ef-top{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Lot 34 — fin */

/* Lot 35 (pages 47 à 47.f) : atelier refondu. Jetons seulement ; registre jeu pour les cartes. */
.ws-host{display:flex;flex-direction:column;gap:12px;min-width:0;flex:1 0 auto;min-height:max(600px,calc(100vh - 330px));container-type:inline-size}
.at-sh.wide .at-sh-main{gap:10px;padding-top:10px}
.ws-ph{display:inline-flex;align-items:center;justify-content:center;background:var(--ink-800);color:var(--gold-300);font:700 12px var(--font-display,serif)}
.ws-stage{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr) minmax(300px,420px);gap:18px;flex:1;min-height:0;padding:18px 22px;
  background:radial-gradient(ellipse at 50% 35%,var(--ink-600) 0%,var(--ink-850) 55%,var(--ink-950) 100%);color:var(--ink-100)}
.ws-rar{font:700 40px/1 var(--font-numeral);color:var(--gold-300)}
.ws-name{margin:6px 0 0;font:800 32px/1.1 var(--font-display,serif);color:var(--white)}
.ws-sub{font-size:13px;color:var(--ink-300);margin-top:6px}
.ws-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin-top:18px}
.ws-st{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;background:color-mix(in srgb,var(--ink-950) 55%,transparent);border:1px solid var(--line-1);font-size:12.5px;color:var(--ink-200)}
.ws-st b{font:600 16px var(--font-numeral);color:var(--white)}
.ws-portrait{display:flex;align-items:center;justify-content:center;min-height:0}
.ws-face{width:min(320px,100%);aspect-ratio:1;object-fit:cover;border:2px solid var(--gold-600);box-shadow:var(--shadow-3)}
.ws-right{display:flex;flex-direction:column;gap:12px;min-width:0}
.ws-glob{display:grid;grid-template-columns:60px 1fr;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--gold-600);background:color-mix(in srgb,var(--ink-950) 60%,transparent);color:inherit;text-decoration:none}
.ws-glob.ch,.ws-sk.ch .ws-skico,.ws-pas.ch{box-shadow:0 0 0 2px var(--red-400)}
.ws-glob b{color:var(--white);font:700 16px var(--font-display,serif)}
.ws-glob small{font:600 12px var(--font-mono,monospace);color:var(--gold-300)}
.ws-glob p{margin:4px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-200)}
.ws-globico{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid var(--gold-500)}
.ws-skr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ws-sk{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11.5px;color:var(--ink-200);text-decoration:none}
.ws-skico{width:68px;height:68px;border-radius:50%;object-fit:cover;border:2px solid var(--line-3)}
.ws-pasr{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--ink-300)}
.ws-pas{display:inline-flex;text-decoration:none}
.ws-pasico{width:30px;height:30px;object-fit:contain}
.ws-strip{flex:none;background:color-mix(in srgb,var(--ink-950) 92%,transparent);border-top:1px solid var(--gold-600);padding:10px 0}
.ws-row{position:relative;display:flex;gap:10px;overflow-x:auto;padding:0 16px 6px;scroll-snap-type:x mandatory}
.ws-cardp{flex:none;width:88px;position:relative;scroll-snap-align:start;border:1px solid var(--line-2);background:var(--ink-800);color:var(--ink-100);text-decoration:none;font-size:11px}
.ws-cardp.on{border:2px solid var(--gold-400);box-shadow:var(--shadow-2)}
.ws-cardp span{display:block;padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-cardp i{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--red-400)}
.ws-cardface{width:88px;height:88px;object-fit:cover;display:block}
.ws-grid{display:grid;grid-template-columns:250px minmax(0,1fr) 340px;grid-template-rows:minmax(0,1fr);flex:1;min-height:0;border:1px solid var(--line-2);background:var(--bg-2)}
.ws-rail{display:flex;flex-direction:column;overflow-y:auto;background:var(--bg-1);border-right:1px solid var(--line-2);padding:8px 0}
.ws-rail > a:first-child{padding:6px 14px;font-size:12px}
.ws-grp{padding:12px 14px 4px;font:600 10px var(--font-body,sans-serif);letter-spacing:.2em;color:var(--fg-3)}
.ws-it{display:flex;align-items:center;gap:9px;padding:6px 14px;font-size:13px;color:var(--fg-2);border-left:3px solid transparent;text-decoration:none}
.ws-it.on{background:var(--red-50);border-left-color:var(--red-600);color:var(--fg-1);font-weight:600}
.ws-it small{margin-left:auto;font-size:11px;color:var(--fg-3)}
.ws-itico{width:24px;height:24px;flex:none;border-radius:50%;object-fit:cover}
.ws-dot{width:7px;height:7px;border-radius:50%;background:var(--red-600);margin-left:auto;flex:none}
.ws-center{padding:14px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.ws-card{background:var(--ink-850);color:var(--ink-100);border:1px solid var(--gold-600);box-shadow:var(--shadow-2)}
.ws-ch{display:flex;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line-1);flex-wrap:wrap}
.ws-sicon{width:68px;height:68px;border-radius:50%;object-fit:cover;border:2px solid var(--gold-500)}
.ws-sname{margin:0;font:700 21px var(--font-display,serif);color:var(--white)}
.ws-stype{font-size:11.5px;letter-spacing:.06em;color:var(--ink-300)}
.ws-meta{margin-left:auto;display:flex;gap:8px}
.ws-mbox{border:1px solid var(--line-2);padding:5px 10px;min-width:64px;text-align:center}
.ws-mbox b{display:block;font:600 19px var(--font-numeral);color:var(--gold-300)}
.ws-mbox span{font-size:9.5px;letter-spacing:.14em;color:var(--ink-300)}
.ws-lv{display:flex;gap:4px;width:100%}
.ws-lv button{font:600 12px var(--font-mono,monospace);padding:5px 10px;border:1px solid var(--line-2);background:transparent;color:var(--ink-200);cursor:pointer}
.ws-lv button.on{background:var(--gold-300);color:var(--ink-900);border-color:var(--gold-300)}
.ws-txt{margin:0;padding:14px 16px;font-size:15px;line-height:1.85}
.ws-v{font:inherit;font-weight:600;color:var(--gold-300);background:transparent;border:0;border-bottom:1px dashed var(--gold-500);padding:0 3px;cursor:pointer}
.ws-v.mod{background:color-mix(in srgb,var(--red-500) 30%,transparent);color:var(--white);border-bottom:1px solid var(--red-400)}
.ws-v.on{outline:2px solid var(--gold-300);outline-offset:1px}
.ws-bf{color:var(--cyan-300);font-weight:600}
.ws-sec{display:flex;align-items:center;gap:10px;padding:8px 16px 6px;font:600 10px var(--font-body,sans-serif);letter-spacing:.2em;color:var(--ink-300);border-top:1px solid var(--line-1)}
.ws-sec > :last-child:not(:first-child){margin-left:auto}
.ws-ef{display:grid;grid-template-columns:28px 1fr auto auto;gap:10px;align-items:center;padding:8px 16px;border-top:1px solid var(--line-1);font-size:13px;cursor:pointer}
.ws-ef.on{background:color-mix(in srgb,var(--red-500) 16%,transparent);box-shadow:inset 3px 0 0 var(--red-400)}
.ws-ef.del{opacity:.5;text-decoration:line-through}
.ws-efico,.ws-mcico{width:24px;height:24px;object-fit:contain}
.ws-who{font-size:11px;padding:2px 8px;border:1px solid var(--cyan-500);color:var(--cyan-200);white-space:nowrap}
.ws-when{font-size:11px;padding:2px 8px;border:1px solid var(--gold-600);color:var(--gold-200);white-space:nowrap}
.ws-mech{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px 14px}
.ws-mc{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 10px;border:1px solid var(--cyan-500);color:var(--cyan-200);background:color-mix(in srgb,var(--cyan-600) 14%,transparent)}
.ws-mc.del{opacity:.5;text-decoration:line-through}
.ws-empty{margin:0;padding:10px 16px;font-size:12.5px;color:var(--ink-300)}
.ws-insp{background:var(--bg-1);border-left:1px solid var(--line-2);padding:14px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.ws-insp h3{margin:0;font:700 17px var(--font-display,serif)}
.ws-ov{font:600 10px var(--font-body,sans-serif);letter-spacing:.2em;color:var(--fg-3)}
.ws-pill{align-self:flex-start;font-size:11px;font-weight:600;padding:2px 8px;border:1px solid var(--green-500);color:var(--green-700)}
.ws-fields{display:flex;flex-direction:column;gap:6px}
.ws-bar{flex:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 14px;background:var(--bg-1);border:1px solid var(--line-2);box-shadow:var(--shadow-1)}
.ws-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:0}
.ws-chg{font-size:12px;padding:3px 8px;background:var(--bg-2);border:1px solid var(--line-2)}
.ws-reason{min-width:240px;height:32px;padding:0 8px;border:1px solid var(--line-3);background:var(--bg-0);color:var(--fg-1);font:inherit}
.ws-err{font-size:12px;color:var(--red-700)}
.ws-cmphead{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;font:600 10px var(--font-body,sans-serif);letter-spacing:.2em;color:var(--fg-3)}
.ws-cmplist{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding:12px;background:var(--ink-900);color:var(--ink-100)}
.ws-cmp{display:grid;grid-template-columns:200px 1fr 1fr;gap:12px;padding:10px 12px;border:1px solid var(--line-1)}
.ws-cmp.ch{border-color:var(--red-400)}
.ws-cmp p{margin:0;font-size:13px;line-height:1.6}
.ws-was{color:var(--ink-300)}
.ws-add{background:color-mix(in srgb,var(--red-500) 32%,transparent);color:var(--white);padding:0 3px}
@container (max-width:900px){.ws-grid,.ws-stage{grid-template-columns:minmax(0,1fr)}}
.at-sh.wide{grid-template-columns:minmax(0,1fr)}
.ef-range{font:600 12px var(--font-mono,monospace);color:var(--gold-700)}
.ef-mine{font-size:11px;font-weight:600;padding:1px 6px;border:1px solid var(--red-300);color:var(--red-700)}
/* Lot 35 · fiche : barre de l'atelier, sélecteur complet, en-tête de la structure (maquettes Sélection et Atelier). */
.ws-top{flex:none;display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:6px 14px;background:var(--ink-950);color:var(--ink-100);border-bottom:1px solid var(--gold-600)}
.ws-brand{font:600 11px var(--font-body,sans-serif);letter-spacing:.24em;color:var(--gold-300)}
.ws-crumbs{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-300);min-width:0}
.ws-crumbs a{color:var(--ink-100)}
.ws-crumbs b{color:var(--white);font-weight:600}
.ws-crumbs i{font-style:normal;color:var(--ink-400)}
.ws-hint{font:500 11px var(--font-mono,monospace);color:var(--ink-300);padding:2px 8px;border:1px solid var(--ink-600);white-space:nowrap}
.ws-ctl{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* L'atelier tient dans la fenêtre : la structure et l'inspecteur défilent seuls, la barre des changements reste visible. */
.at-sh.wide .ws-host{flex:1 1 0;height:auto;min-height:520px}
.ws-ctl .fma-field{gap:2px}
.ws-ctl .fma-field label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ws-ctl .fma-hint{display:none}
.ws-ctl .fma-input{min-width:150px;height:32px;background:var(--ink-900);border-color:var(--ink-600);color:var(--ink-100)}
.ws-ctl .fma-switch,.ws-ctl label{color:var(--ink-100)}
.ws-open{display:inline-flex;align-items:center;height:34px;padding:0 14px;background:var(--red-600);border:1px solid var(--red-600);color:var(--white);font-weight:600;font-size:13px;text-decoration:none}
.ws-open.ghost{background:transparent;border-color:var(--ink-500);color:var(--ink-100)}
.ws-stars{margin-top:8px;color:var(--gold-300);letter-spacing:4px}
.ws-lvl{display:flex;align-items:baseline;gap:6px}
.ws-lvl b{font:700 48px/1 var(--font-numeral);color:var(--white)}
.ws-lvl span{font-size:15px;color:var(--ink-300)}
.ws-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ws-tile{display:flex;flex-direction:column;gap:2px;padding:7px 10px;border:1px solid var(--line-2);background:color-mix(in srgb,var(--ink-950) 55%,transparent);color:var(--ink-300);font-size:11px;text-decoration:none}
.ws-tile b{font:600 15px var(--font-numeral);color:var(--white)}
.ws-tile:hover{border-color:var(--gold-500)}
.ws-note{margin:0;font-size:11.5px;color:var(--ink-300)}
.ws-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 16px 8px}
.ws-chip{font:600 12px var(--font-body,sans-serif);padding:4px 10px;border:1px solid var(--ink-600);background:transparent;color:var(--ink-200);cursor:pointer}
.ws-chip[aria-pressed="true"]{background:var(--gold-300);border-color:var(--gold-300);color:var(--ink-900)}
.ws-find{margin-left:auto;height:28px;min-width:200px;padding:0 8px;border:1px solid var(--ink-600);background:var(--ink-900);color:var(--ink-100);font:inherit;font-size:12px}
.ws-cardp .ws-cardr{position:absolute;top:4px;left:4px;padding:0}
.ws-rail > .ws-who-head{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;padding:6px 14px 10px;border-bottom:1px solid var(--line-2);color:var(--fg-1);text-decoration:none}
.ws-who-head span{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.ws-who-head b{font:700 16px var(--font-display,serif)}
.ws-who-head small{font-size:11px;color:var(--fg-3)}
.ws-headface{width:48px;height:48px;object-fit:cover;border:1px solid var(--gold-600)}
.ws-tab span{display:flex;flex-direction:column;gap:1px}
.ws-tab b{font:600 10px var(--font-body,sans-serif);letter-spacing:.2em;color:var(--fg-3)}
.ws-it.ws-tab small{margin-left:0;font-size:12px;color:var(--fg-2)}
/* Lot 35 · palette « Ajouter un effet » en trois colonnes (page 47.d, maquette Ajouter). */
dialog.at-modal.pal-modal{width:min(1200px,calc(100vw - 32px));height:min(760px,calc(100vh - 48px))}
dialog.at-modal.pal-modal .at-modal-body{flex:1;display:flex;min-height:0;overflow:hidden;padding:0}
dialog.at-modal.pal-modal .at-modal-foot:empty{display:none}
.pal{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
.pal-top{display:flex;align-items:center;gap:12px;padding:12px 18px}
.pal-search{flex:1;height:42px;padding:0 14px;border:2px solid var(--ink-900);background:var(--bg-0);color:var(--fg-1);font:inherit;font-size:15px}
.pal-cols{display:grid;grid-template-columns:230px minmax(0,1fr) 380px;grid-template-rows:minmax(0,1fr);flex:1;min-height:0;border-top:1px solid var(--line-1)}
.pal-cats{border-right:1px solid var(--line-1);padding:6px 0;overflow-y:auto}
.pal-grp{padding:12px 18px 4px;font:600 10px var(--font-body,sans-serif);letter-spacing:.22em;color:var(--fg-3)}
.pal-cat{display:flex;align-items:center;gap:10px;width:100%;padding:8px 18px;border:0;border-left:3px solid transparent;background:transparent;color:var(--fg-2);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}
.pal-cat small{margin-left:auto;font:500 11px var(--font-mono,monospace);color:var(--fg-3)}
.pal-cat.on{background:var(--red-50);border-left-color:var(--red-600);color:var(--fg-1);font-weight:600}
.pal-mid{display:flex;flex-direction:column;min-height:0;min-width:0}
.pal-chips{display:flex;gap:6px;flex-wrap:wrap;padding:10px 16px}
.pal-chip{font:inherit;font-size:12px;padding:4px 10px;border:1px solid var(--line-3);background:transparent;color:var(--fg-2);cursor:pointer}
.pal-chip[aria-pressed="true"]{background:var(--ink-900);border-color:var(--ink-900);color:var(--white)}
.pal-list{flex:1;min-height:0;overflow-y:auto}
.pal-pad{padding:10px 16px}
.pal-opt{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:10px 16px;border:0;border-top:1px solid var(--line-1);background:transparent;color:var(--fg-1);font:inherit;text-align:left;cursor:pointer}
.pal-opt:hover{background:var(--bg-2)}
.pal-opt.on{background:var(--red-50);box-shadow:inset 3px 0 0 var(--red-600)}
.pal-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.pal-txt b{font-size:14px}
.pal-txt small{font-size:12px;color:var(--fg-3)}
.pal-range{font:500 12px var(--font-mono,monospace);color:var(--fg-2);text-align:right;white-space:nowrap}
.pal-conf{border-left:1px solid var(--line-1);padding:16px 18px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}
.pal-conf h3{margin:0;font:700 17px var(--font-display,serif)}
.pal-lab{font:600 11px var(--font-body,sans-serif);letter-spacing:.08em;color:var(--fg-2)}
.pal-vals{display:flex;flex-wrap:wrap;gap:6px}
.pal-val{font:600 12.5px var(--font-mono,monospace);padding:6px 10px;border:1px solid var(--line-3);background:transparent;color:var(--fg-1);cursor:pointer}
.pal-val small{font:inherit;font-weight:400;color:var(--fg-3)}
.pal-val[aria-pressed="true"]{background:var(--gold-300);border-color:var(--gold-500);color:var(--ink-900)}
.pal-say{padding:10px 12px;background:var(--ink-850);color:var(--ink-100);border:1px solid var(--gold-600);font-size:13.5px;line-height:1.6}
.pal-say p{margin:0}
.pal-act{margin-top:auto;display:flex;justify-content:flex-end;gap:8px}
@media (max-width:900px){.pal-cols{grid-template-columns:minmax(0,1fr);overflow-y:auto}}
/* Lot 35 — fin */
