/* css/platform-pages.css
   The pages of the platform rewritten in the pattern of the validated mock-up
   (lot P2, Greg 21.10.2026; Docs/claude/maquettes/plateforme-onglets-2026-10-19.html):
   one setting per row, the boxes, the tables in their frame, the lists, the
   message of a report, the danger zone, the summary's lines. The values are
   the mock-up's own rules, copied; its tokens are the console's (--cs-*,
   css/console.css). Classes prefixed pf- (the site styles .row, .box,
   .btn... already); what the console drew with other values (the glance,
   the tables, the key-value lists) takes the mock-up's values on the pages. */

/* ---------------------------------------------------------------- rows */
.pf-rows { border-bottom: 1px solid var(--cs-line); }
.pf-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 430px); gap: 8px 28px; padding: 13px 0 13px 14px; border-top: 1px solid var(--cs-line); align-items: start; }
.pf-row[hidden] { display: none; }
.pf-row::before { content: ""; position: absolute; left: 2px; top: 19px; width: 6px; height: 6px; border-radius: 50%; background: transparent; }
.pf-row.changed::before { background: var(--cs-warn); }
.pf-row .pf-rl b { display: block; font-weight: 600; font-size: 13px; color: var(--cs-fg); }
.pf-row .pf-rl .pf-ex { display: block; color: var(--cs-fg-3); font-size: 12px; margin-top: 2px; max-width: 560px; }
.pf-row .pf-rc { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; min-width: 0; }
.pf-row .pf-rc > input[type="text"], .pf-row .pf-rc > input[type="email"], .pf-row .pf-rc > input[type="password"], .pf-row .pf-rc > input[type="url"], .pf-row .pf-rc > select, .pf-row .pf-rc > textarea { flex: 1 1 220px; }
.pf-row .pf-rc .pf-unit { color: var(--cs-fg-3); font-size: 12px; }
.pf-row .pf-val { font-family: var(--cs-mono); font-size: 12.5px; text-align: right; }
.pf-row .pf-warnline { flex-basis: 100%; min-height: 54px; font-size: 12px; color: var(--cs-fg-3); text-align: right; }
.pf-row .pf-warnline.on { color: var(--cs-warn); }
.pf-row.danger .pf-rl b { color: var(--cs-crit); }
.pf-row.wide { grid-template-columns: minmax(0, 1fr); }
.pf-row.wide .pf-rc { justify-content: stretch; }
.pf-row .pf-rc .pf-sub { flex-basis: 100%; text-align: right; color: var(--cs-fg-3); font-size: 11.5px; }

.cs input[type="email"]:not(#cs-none), .cs input[type="url"]:not(#cs-none), .cs-drawer input[type="email"]:not(#cs-none), .cs-drawer input[type="url"]:not(#cs-none) {
  background: var(--cs-bg) !important; color: var(--cs-fg) !important; border: 1px solid var(--cs-line-2) !important; border-radius: 4px !important; font: 400 13px var(--cs-sans) !important; padding: 5px 8px !important; min-width: 0; width: auto; min-height: 0; height: auto; box-shadow: none !important; }
.pf-row input[type="number"]:not(#cs-none) { width: 96px; font-family: var(--cs-mono) !important; text-align: right; }
.pf-row textarea:not(#cs-none) { width: 100%; resize: vertical; line-height: 1.5; }
.pf-row .pf-file-in { max-width: 100%; color: var(--cs-fg-2); font: 400 12px var(--cs-sans); }
.pf-chk { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; color: var(--cs-fg-2); }
.pf-chk input { width: 16px; height: 16px; accent-color: var(--cs-gold); margin: 0; cursor: pointer; }

/* ---------------------------------------------------------------- boxes, lists, notes */
.pf-box { border: 1px solid var(--cs-line); border-radius: 6px; padding: 12px 14px; min-width: 0; background: var(--cs-panel); }
.pf-box h3 { font-size: 12.5px; margin: 0 0 8px; font-weight: 600; color: var(--cs-fg-2); display: flex; gap: 8px; align-items: baseline; font-family: var(--cs-sans); line-height: 1.45; }
.pf-box h3 .pf-r { margin-left: auto; font-weight: 400; }
.pf-grid2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.pf-grid21 { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; }
.pf-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pf-kv.cs-kv { grid-template-columns: minmax(0, 1fr) fit-content(62%); gap: 5px 14px; }
.pf-kv.cs-kv dt { min-width: 0; } .pf-kv.cs-kv dd { font-size: 12.5px; min-width: 0; overflow-wrap: anywhere; }
.pf-meter { height: 8px; background: var(--cs-line-2); border-radius: 4px; overflow: hidden; margin: 6px 0 4px; }
.pf-meter i { display: block; height: 100%; background: var(--cs-gold); }
.pf-list { list-style: none; margin: 0; padding: 0; }
.pf-list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 2px; border-bottom: 1px solid var(--cs-line); }
.pf-list li:last-child { border-bottom: 0; }
.pf-list .pf-when { font-family: var(--cs-mono); color: var(--cs-fg-3); font-size: 11.5px; white-space: nowrap; }
.pf-list.pf-box { padding: 2px 12px; }
.pf-ro-note { background: var(--cs-info-bg); color: var(--cs-info); padding: 7px 10px; border-radius: 4px; font-size: 12px; margin-bottom: 10px; }
.pf-msg { border: 1px solid var(--cs-line); border-radius: 6px; padding: 10px 12px; background: var(--cs-panel-2); white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; }
.pf-shot { height: 120px; border: 1px dashed var(--cs-line-2); border-radius: 6px; display: grid; place-items: center; color: var(--cs-fg-3); font-size: 12px; background: repeating-linear-gradient(45deg, transparent 0 8px, var(--cs-panel-2) 8px 16px); overflow: hidden; }
.pf-shot img { max-width: 100%; max-height: 100%; display: block; }
.pf-file { display: inline-flex; gap: 6px; align-items: center; font-family: var(--cs-mono); font-size: 12px; }
.pf-err { color: var(--cs-crit); font-size: 12px; margin: 8px 0 0; min-height: 0; }
.pf-err:empty { display: none; }
.pf-toolbar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 8px 0 10px; }
.pf-toolbar input[type="search"]:not(#cs-none) { width: 240px; max-width: 100%; }
.pf-toolbar .pf-r { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.pf-acts-in { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.cs-btn.dng:not(#cs-none) { color: var(--cs-crit); border-color: var(--cs-crit); background: none; }
.cs-p-gold { color: var(--cs-gold); border: 1px solid var(--cs-gold); }
.pf-phone { font-family: var(--cs-mono); font-size: 12px; user-select: all; }
.pf-legend { display: flex; gap: 14px; flex-wrap: wrap; color: var(--cs-fg-2); font-size: 12px; margin-bottom: 6px; }
.pf-legend span { display: inline-flex; align-items: center; gap: 6px; }
.pf-legend i { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }
.pf-legend i.ln { height: 2px; width: 14px; border-radius: 1px; }

/* ---------------------------------------------------------------- tables */
.pf-tw { overflow-x: auto; border: 1px solid var(--cs-line); border-radius: 6px; background: var(--cs-panel); }
.pf-tw table { width: 100%; border-collapse: collapse; }
.pf-tw th { text-align: left; font-weight: 500; color: var(--cs-fg-3); font-size: 11.5px; padding: 7px 10px; border-bottom: 1px solid var(--cs-line); white-space: nowrap; background: var(--cs-panel-2); }
.pf-tw td { padding: 7px 10px; border-bottom: 1px solid var(--cs-line); vertical-align: middle; }
.pf-tw tbody tr:last-child td { border-bottom: 0; }
.pf-tw tbody tr:hover td { background: var(--cs-panel-2); }
.pf-tw td.n, .pf-tw th.n { text-align: right; font-family: var(--cs-mono); font-variant-numeric: tabular-nums; }
.pf-tw th.n { font-family: var(--cs-sans); }
.pf-tw td.r, .pf-tw th.r { text-align: center; }
.pf-tw td .pf-sub, .pf-tw td .cs-sub { color: var(--cs-fg-3); font-size: 11.5px; }
.pf-tw td .pf-sub.cs-s-warn { color: var(--cs-warn); } .pf-tw td .pf-sub.cs-s-crit { color: var(--cs-crit); } .pf-tw td .pf-sub.cs-s-ok { color: var(--cs-ok); }
.pf-tw tr.pf-click { cursor: pointer; }
.pf-tw tr.pf-click:hover td:first-child { text-decoration: underline; text-underline-offset: 2px; }
.pf-tw td.changed { background: var(--cs-warn-bg) !important; }
.pf-tw .pf-mono { font-family: var(--cs-mono); font-size: 12px; }
.pf-tw td.pf-empty { color: var(--cs-fg-3); }
.pf-tw td.cs-actions, .pf-tw td.pf-nowrap { white-space: nowrap; }

/* ---------------------------------------------------------------- the console's pieces, at the mock-up's values */
.pf-content .cs-glance { background: none; }
.pf-content .cs-k { padding: 11px 13px; }
.pf-content .cs-k-val { font-size: 21px; margin-top: 3px; }
.pf-content .cs-k-sub { margin-top: 1px; }
.pf-content .cs-st { width: 16px; }

/* ---------------------------------------------------------------- the summary */
.cs-diff li.pf-dl { font-family: var(--cs-sans); }
.cs-diff li.pf-dl .pf-old { color: var(--cs-crit); text-decoration: line-through; font-family: var(--cs-mono); font-size: 12px; }
.cs-diff li.pf-dl .pf-new { color: var(--cs-ok); font-family: var(--cs-mono); font-size: 12px; }
.pf-conseq { margin-top: 10px; background: var(--cs-warn-bg); color: var(--cs-warn); padding: 7px 10px; border-radius: 4px; font-size: 12px; }

/* The page's own content inside the panel shown as the page. */
.cs-drawer.cs-inpage .cs-dw-b > .pf-page { display: block; }
.pf-page > .pf-sec-t:first-child { margin-top: 0; }

@media (max-width: 960px) { .pf-grid2, .pf-grid21, .pf-grid3 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 860px) {
  .pf-row { grid-template-columns: minmax(0, 1fr); }
  .pf-row .pf-rc { justify-content: flex-start; }
  .pf-row .pf-val, .pf-row .pf-warnline, .pf-row .pf-rc .pf-sub { text-align: left; }
}
@media (max-width: 560px) {
  .pf-row .pf-warnline { min-height: 90px; }
  .pf-toolbar .pf-r { margin-left: 0; }
}

/* The save bar sticks above the site's footer ("Swiss made", fixed at the
   bottom of every page with the rail's shell), not under it. */
body.md-ui .cs-drawer.cs-inpage > .cs-dw-f { bottom: var(--md-footer-h, 0px); }

/* The rights' matrix in the mock-up's frame (its headers keep sticking to the
   window: the frame is not a scrolling box on a wide screen). */
.cs-drawer.cs-inpage .cs-mxw { border: 1px solid var(--cs-line); border-radius: 6px; }
.cs-drawer.cs-inpage .cs-mx thead th { background: var(--cs-panel-2); }
.cs-mx td.fn b { font-weight: 600; }
.cs-mx .pf-code { font-family: var(--cs-mono); }

/* The key-value lists in the boxes of a page: the mock-up's columns. */
.pf-box .cs-kv { grid-template-columns: minmax(0, 1fr) fit-content(62%); gap: 5px 14px; }
.pf-box .cs-kv dt { min-width: 0; } .pf-box .cs-kv dd { font-size: 12.5px; min-width: 0; overflow-wrap: anywhere; }

/* Santé des restaurants and Relances de mise en route (their windows drawn in
   the mock-up's markup, lot P2): the alerts and the missing steps as pills. */
#mdHealth .ah-counts { display: flex; gap: 6px 10px; flex-wrap: wrap; align-items: center; margin: 0 0 10px; }
#mdHealth .ah-chip, #mdRollout .aro-chip { display: inline-flex; align-items: center; font-size: 11.5px; padding: 1px 7px; border-radius: 3px; white-space: nowrap; background: var(--cs-panel-2); color: var(--cs-fg-2); border: 1px solid var(--cs-line); }
#mdHealth .ah-chip.is-serious { background: var(--cs-crit-bg); color: var(--cs-crit); border-color: transparent; }
#mdHealth .ah-n { font-family: var(--cs-mono); color: var(--cs-fg-2); margin-right: 6px; }
#mdHealth .ah-ok { color: var(--cs-ok); }
#mdHealth .ah-acts { list-style: none; margin: 0; padding: 0; }
#mdHealth .ah-act { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; padding: 8px 2px; border-bottom: 1px solid var(--cs-line); }
#mdHealth .ah-when { font-family: var(--cs-mono); color: var(--cs-fg-3); font-size: 11.5px; white-space: nowrap; }
#mdHealth .ah-kinds { display: flex; gap: 4px; flex-wrap: wrap; margin: 8px 0; }
#mdHealth .ah-kind { appearance: none; border: 1px solid var(--cs-line-2); background: none; color: var(--cs-fg-2); font: 500 12px var(--cs-sans); padding: 3px 9px; border-radius: 12px; cursor: pointer; }
#mdHealth .ah-kind.is-on { color: var(--cs-fg); border-color: var(--cs-gold); background: var(--cs-panel-2); }
#mdRollout .aro-chips { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 4px; }
#mdRollout .aro-summary, #mdHealth .ah-summary { font-weight: 600; }
#mdRollout .aro-direction, #mdHealth .ah-direction { color: var(--cs-warn); font-size: 11.5px; }
#mdRollout .aro-direction .md-icon { display: none; }

/* Dépenses: the totals by category as the mock-up's key-value list. */
.pf-kvtable { width: 100%; border-collapse: collapse; }
.pf-kvtable td { padding: 2px 0; border: 0; color: var(--cs-fg-2); }
.pf-kvtable td.n { text-align: right; font-family: var(--cs-mono); font-size: 12.5px; color: var(--cs-fg); }
.pf-kvtable tr.cs-total td { font-weight: 600; color: var(--cs-fg); padding-top: 4px; }

/* Encaissements and Tunnel de paiement (their windows, lot P2): the figures
   as the mock-up's key-value list, the recent intents in its table. */
.pf-statkv:not(#cs-none) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.pf-statkv .mon-stat { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 14px; padding: 3px 0; background: none; border: 0; box-shadow: none; min-height: 0; }
.pf-statkv .mon-label { color: var(--cs-fg-2); font-size: 13px; text-transform: none; letter-spacing: normal; }
.pf-statkv .mon-value { font-family: var(--cs-mono); font-size: 12.5px; text-align: right; color: var(--cs-fg); font-weight: 400; }
.pf-statkv .mon-value.mon-alert { color: var(--cs-warn); }
.pf-statkv .mon-sub { grid-column: 1 / -1; color: var(--cs-fg-3); font-size: 11.5px; }
.cs-drawer .pf-tw .mon-table { width: 100%; border-collapse: collapse; }
.cs-drawer .pf-tw .mon-table .mon-num { text-align: right; font-family: var(--cs-mono); }
.cs-drawer .mon-tag { display: inline-flex; font-size: 11.5px; padding: 1px 7px; border-radius: 3px; background: var(--cs-panel-2); color: var(--cs-fg-2); border: 1px solid var(--cs-line); }
.cs-drawer .mon-tag.mon-tag-ok { background: var(--cs-ok-bg); color: var(--cs-ok); border-color: transparent; }
.cs-drawer .mon-tag.mon-tag-bad { background: var(--cs-crit-bg); color: var(--cs-crit); border-color: transparent; }
.cs-drawer #monChart .mon-chart { width: 100%; height: auto; display: block; }

/* Total annuel (its window, lot P2): the four figures in the mock-up's boxes. */
.pf-grid4:not(#cs-none) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 12px 0 0; }
.pf-ry:not(#cs-none) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; align-items: baseline; box-shadow: none; }
.pf-ry .ry-stat-label { color: var(--cs-fg-2); font-size: 13px; text-transform: none; letter-spacing: normal; }
.pf-ry .ry-stat-value { font-family: var(--cs-mono); font-size: 12.5px; text-align: right; font-weight: 400; color: var(--cs-fg); }
.pf-ry .ry-stat-sub { grid-column: 1 / -1; color: var(--cs-fg-3); font-size: 11.5px; }
.pf-ry.is-main { border-color: var(--cs-gold); }
@media (max-width: 960px) { .pf-grid4:not(#cs-none) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pf-grid4:not(#cs-none) { grid-template-columns: minmax(0, 1fr); } }

/* Lot P2b: a page that saves nothing (Santé's outbox, Google) has no bar:
   its empty footer takes no room. */
.cs-drawer.cs-inpage > .cs-dw-f:empty { display: none; }

/* Utilisateurs: the three boxes of figures above the list (the mock-up's
   inline margin, P2a's doubt, moved here in lot P2b). */
#kvUsersPage { margin-bottom: 12px; }

/* Lot P2b: the settings in the mock-up's rows (js/console/tech-settings.js).
   A row keeps the class names the settings panel had (cs-fld, cs-fld-h,
   cs-fld-v, cs-desc, cs-hint): the console's rules for them give way to the
   mock-up's here. */
.pf-rows > .pf-row.cs-fld { display: grid; gap: 8px 28px; padding: 13px 0 13px 14px; border-bottom: 0; border-radius: 0; margin: 0; background: none; }
.pf-rows > .pf-row.cs-fld.changed { background: none; margin: 0; padding: 13px 0 13px 14px; }
.pf-row .pf-rl.cs-fld-h { display: block; }
.pf-row .pf-rl strong { display: block; font-weight: 600; font-size: 13px; color: var(--cs-fg); }
.pf-row .pf-rl .pf-code { display: block; font-family: var(--cs-mono); font-size: 11px; color: var(--cs-fg-3); margin-top: 3px; }
.pf-row .pf-rc.cs-fld-v .cs-pill { margin-left: 0; }
.pf-row .pf-rc .pf-sub.cs-hint, .pf-row .pf-rc .pf-sub.cs-sub { flex-basis: 100%; text-align: right; margin: 0; }
.pf-row .pf-rc .pf-fld-err { color: var(--cs-crit); }
.pf-row.pf-warn .pf-rl .pf-ex { color: var(--cs-warn); }
.pf-box > .pf-hint.pf-first { margin-top: 0; }
.pf-own .pf-inline-bar { margin-top: 12px; }
@media (max-width: 860px) { .pf-row .pf-rc .pf-sub.cs-hint, .pf-row .pf-rc .pf-sub.cs-sub { text-align: left; } }

/* Lot P2c: the last pages of the mock-up (Configuration, Créancier, Cadres).
   The grid of a formula's content: the mock-up's .mx (centred boxes). */
.pf-tw table.pf-mx th.r, .pf-tw table.pf-mx td.r { text-align: center; width: 92px; }
.pf-tw table.pf-mx input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--cs-gold); cursor: pointer; vertical-align: middle; margin: 0; }
.pf-tw table.pf-mx input:disabled { cursor: not-allowed; opacity: .6; }
/* A history line whose third cell holds a button ("Retirer l'annonce"). */
.pf-list[data-price-hist] li > span:last-child, .pf-list[data-trial-hist] li > span:last-child { justify-self: end; text-align: right; }
/* A frame of the sliders in one row: its small labelled numbers. */
.pf-row .pf-rc .pf-fr { display: inline-flex; align-items: center; gap: 5px; }
.pf-row .pf-rc .pf-fr .pf-hint { white-space: nowrap; }
.pf-row .pf-rc .pf-fr-wide { flex: 1 1 220px; }
.pf-row .pf-rc .pf-fr-wide input { flex: 1 1 auto; min-width: 0; }
.pf-row .pf-rc input[type="date"] { font-family: var(--cs-mono); }
/* The languages of a legal text, in the page's head (the mock-up's .seg). */
.pf-acts .cs-seg button[aria-pressed="true"] { background: var(--cs-panel-2); color: var(--cs-fg); }
@media (max-width: 560px) { .pf-row .pf-rc .pf-fr { flex-wrap: wrap; } }

/* ==========================================================================
   The theme (Greg, 25.10.2026: "1 seul CSS pour toutes les pages sauf pour le
   mode Service"): the metallic gold of every page that wears the console,
   the platform's and the Edition's alike. Its colours are css/console.css's
   tokens (--cs-line-grad, --cs-lw / --cs-lwn, --cs-sheen). Straight lines: a
   transparent border painted by the gradient (border-image; its width a
   share of the border's own, so a side without border stays without line).
   Rounded boxes: the fill on the padding box, the gradient on the border
   box (the radius kept). Here, last of the shared sheets, so that it draws
   over their solid lines.
   ========================================================================== */

/* Straight lines: the bars, the menu's groups, the rows, the lists. */
.cs-top.pf-top, .pf-top .pf-barrow, .pf-grp + .pf-grp, .pf-mdw-h, .pf-rows, .pf-row, .pf-list li, .pf-ck,
.cs-toolbar, .cs-dw-h, .cs-fld, .cs-files li, .cs-hist li, .cs-k { border-color: transparent; border-image: var(--cs-line-grad) 1 / var(--cs-lwn); }
.pf-top .pf-barrow { border-bottom: 1px solid transparent; }
.pf-mdw { border-right: 1px solid transparent; border-image: var(--cs-line-grad) 1 / var(--cs-lwn); }

/* Rounded boxes: the card, the boxes, the tables' frames, the glance strip. */
:is(.pf-card, .pf-box, .pf-tw, .cs-box, .cs-glance, .cs-hist, .cs-dlg):not(#cs-none) {
  border-color: transparent; border-width: var(--cs-lw);
  background: linear-gradient(var(--cs-panel), var(--cs-panel)) padding-box, var(--cs-line-grad) border-box; }
:is(.pf-msg, .cs-plat):not(#cs-none) {
  border-color: transparent; border-width: var(--cs-lw);
  background: linear-gradient(var(--cs-panel-2), var(--cs-panel-2)) padding-box, var(--cs-line-grad) border-box; }

/* The buttons (the console's, and the hosted windows' levelled ones): a gold
   line round their fill; the primary one in the solid gold, its text dark. */
.cs-btn:not(.pri):not(.dng):not(#cs-none),
.cs-drawer .cs-hosted :is(.ro-modal-btn, .btn, .md-btn, .sub-btn):not(.primary):not(.accent):not(.danger):not(#cs-none),
.cs-drawer .ro-modal-btn:not(.primary):not(#cs-none) {
  border-color: transparent !important;
  background: linear-gradient(var(--cs-panel-2), var(--cs-panel-2)) padding-box, var(--cs-line-grad) border-box !important; }
.cs-btn.pri:not(#cs-none) { background: var(--cs-sheen); color: var(--cs-gold-ink); border-color: transparent; }
.cs-btn.pri:not(#cs-none):hover { filter: brightness(1.05); }
.cs-drawer .cs-hosted :is(.ro-modal-btn, .btn, .md-btn):is(.primary, .accent):not(#cs-none),
.cs-drawer .ro-modal-btn.primary:not(#cs-none) { background: var(--cs-sheen) !important; color: var(--cs-gold-ink) !important; border-color: transparent !important; }

/* The fields: the console's thin field, bordered in gold (a changed one keeps
   its amber; the space switch's list stays transparent over its name). */
:is(.cs, .cs-drawer, .cs-ov) :is(input[type="text"], input[type="number"], input[type="date"], input[type="time"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input[type="password"], input:not([type]), select, textarea, .ro-modal-input):not(.cs-chg):not(.md-rsel-select):not(#cs-none):not(#cs-none2) {
  border-color: transparent !important;
  background: linear-gradient(var(--cs-bg), var(--cs-bg)) padding-box, var(--cs-line-grad) border-box !important; }

/* The bar's small controls: the space or restaurant switch, the theme's (or
   the mode's) segmented control. */
body.md-ui .pf-top :is(.md-rsel, .cs-seg, .md-mode) {
  border-color: transparent;
  background: linear-gradient(var(--cs-bar), var(--cs-bar)) padding-box, var(--cs-line-grad) border-box; }

/* The solid gold: the active tab's line (its label gold too), the gauges, the
   switches. */
.pf-tab[aria-selected="true"]:not(#cs-none) { color: var(--cs-gold); border-image: var(--cs-sheen) 1; }
.pf-tab:not(#cs-none):hover { color: var(--cs-gold); }
:is(.pf-meter, .cs-meter) { background: var(--cs-sel); }
:is(.pf-meter, .cs-meter) i { background: var(--cs-sheen); }
.cs-switch:not(#cs-none):checked { background: var(--cs-sheen); border-color: transparent; }
.cs-drawer .md-switch-row[aria-checked="true"] .md-switch-row__track { background: var(--cs-sheen) !important; border-color: transparent !important; }
.cs-drawer .md-switch-row[aria-checked="true"] .md-switch-row__thumb { background: var(--cs-gold-ink) !important; }
/* The site's switch off, grey (inside a panel the outline token is the gold). */
.cs-drawer .md-switch-row:not(.es-sw):not([aria-checked="true"]) .md-switch-row__track { border-color: var(--cs-fg-3); }
.cs-drawer .md-switch-row:not(.es-sw):not([aria-checked="true"]) .md-switch-row__thumb { background: var(--cs-fg-3); }

/* No text under 12 px (MD3 lot M6, resto-md3-lisibilite): the console's 11
   and 11.5 px are 12 px on every page that wears it. */
:is(.cs, .cs-drawer, .cs-ov, .pf-mdw) :is(.cs-btn.sm, .cs-pill, .pf-hint, .cs-sub, .cs-hint, .pf-sub, .pf-when, .pf-grp-h, .pf-g, .pf-sec-t, .cs-k-lbl, .pf-code, .pf-cd, .cs-h-when):not(#cs-none),
:is(.cs, .cs-drawer) :is(th, .cs-mx td.grp):not(#cs-none) { font-size: 12px; }

/* ---------------------------------------------------------------- one density everywhere
   Greg, 26.10.2026 ("la facon dont on a densifie les pages ... pour toutes les
   pages de toute la plateforme, de tout le restaurant en mode edition"): the
   Edition's measures (css/edition-console.css, "tighter lists") on every page
   of the one style -- the platform's console (cs-page), the management pages
   (ga-frame), the account and welcome pages (gb-solo) and the Edition --,
   never the public pages nor the Service mode, which do not carry these
   classes. A row 5 px above and below (13), a field of a panel 5 px (10), a
   list line 4 px (8), a table's cell 5 px (7), a box 10 px (12), a section
   14 px under the block before it (24), a row's small button 2 px. */
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) :is(.pf-row, .ed-row, .cs-fld, .md-switch-row.es-sw, .dir-level, .dir-field):not(#cs-none) { padding-top: 5px !important; padding-bottom: 5px !important; }
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) .pf-row::before { top: 11px; }
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) .pf-row .pf-rc .cs-btn.sm:not(#cs-none) { padding-top: 2px; padding-bottom: 2px; }
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) .pf-list li { padding-top: 4px; padding-bottom: 4px; }
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) :is(.cs, .cs-drawer, .pf-tw) td:not(#cs-none) { padding-top: 5px; padding-bottom: 5px; }
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) .ga-wrap table:not(.ga-keep):not(.ro-modal table) td:not(#cs-none) { padding-top: 5px !important; padding-bottom: 5px !important; }
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) :is(.pf-box, .cs-pad, .pf-prob, .dv-card):not(#cs-none) { padding-top: 10px; padding-bottom: 10px; }
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) .pf-box h3 { margin-bottom: 4px; }
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) .pf-sec-t:not(:first-child) { margin-top: 14px; }
/* The 48 px hit area of a chip or a segment (its ::after) reaches into the
   next row now that rows are tighter: it stays above that row, so a finger
   on its edge still hits it (resto-md3-choix, 375 px). */
body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) :is(.md-chip--choice, .md-chip--filter, .md-seg .md-seg__btn, .md-seg > button) { position: relative; z-index: 1; }
@media (pointer: fine) { body.md-ui:is(.cs-page, .ga-frame, .gb-solo, .ed-frame) .md-switch-row.es-sw { min-height: 34px; } }
