/* Montserrat (SIL OFL 1.1), hébergée localement */
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 300; font-display: swap; src: url("fonts/montserrat-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/montserrat-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/montserrat-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/montserrat-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/montserrat-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: italic; font-weight: 400; font-display: swap; src: url("fonts/montserrat-latin-400-italic.woff2") format("woff2"); }

/* Mountain Agency OS v1.0 — orange de la marque, neutres froids, bleu glacier (ski), indigo (alpinisme) */
:root {
  --bg: #F4F5F7; --paper: #FFFFFF; --ink: #1B1F24; --rock: #667085; --line: #E4E7EC; --line-2: #F0F2F5;
  --accent: #F85000; --accent-strong: #C2410C; --accent-btn: #D9480F; --on-accent: #FFFFFF; --accent-tint: #FFF1E8; --accent-soft: #FFD9C2;
  --ski: #2E6FB0; --ski-tint: #E8F1FA; --alp: #5B4BC4; --alp-tint: #EFEDFB;
  --ok: #344054; --ok-tint: #EEF1F5; --warn: #B45309; --warn-tint: #FEF3C7; --bad: #D92D20; --bad-tint: #FEE4E2; --focus: #2E6FB0;
  --r: 16px; --r-sm: 10px; --shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 4px 16px rgba(16, 24, 40, .04);
  --f: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --side: 232px; --tab: 64px;
  box-sizing: border-box; color-scheme: light;
  padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #111316; --paper: #1A1D21; --ink: #ECEEF1; --rock: #98A2B3; --line: #2A2F36; --line-2: #22262B;
    --accent: #FF7A2F; --accent-strong: #FF9A5C; --accent-btn: #FF7A2F; --on-accent: #1B1F24; --accent-tint: #3A2213; --accent-soft: #6B3514;
    --ski: #7FB3E6; --ski-tint: #1B2A3A; --alp: #A79BF0; --alp-tint: #25213F;
    --ok: #D0D5DD; --ok-tint: #262A30; --warn: #F5B94A; --warn-tint: #3A2E12; --bad: #FF8A80; --bad-tint: #3D1C1A; --focus: #7FB3E6;
    --shadow: 0 1px 2px rgba(0, 0, 0, .3); color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #111316; --paper: #1A1D21; --ink: #ECEEF1; --rock: #98A2B3; --line: #2A2F36; --line-2: #22262B;
  --accent: #FF7A2F; --accent-strong: #FF9A5C; --accent-btn: #FF7A2F; --on-accent: #1B1F24; --accent-tint: #3A2213; --accent-soft: #6B3514;
  --ski: #7FB3E6; --ski-tint: #1B2A3A; --alp: #A79BF0; --alp-tint: #25213F;
  --ok: #D0D5DD; --ok-tint: #262A30; --warn: #F5B94A; --warn-tint: #3A2E12; --bad: #FF8A80; --bad-tint: #3D1C1A; --focus: #7FB3E6;
  --shadow: 0 1px 2px rgba(0, 0, 0, .3); color-scheme: dark;
}
*, *::before, *::after { box-sizing: inherit; }
html { scroll-padding-top: env(safe-area-inset-top, 0px); -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 14px/1.55 var(--f); -webkit-font-smoothing: antialiased; }
body.noscroll { overflow: hidden; }
a { color: var(--accent-strong); text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--f); font-weight: 600; letter-spacing: -.01em; line-height: 1.2; margin: 0; }
h3 { font-size: 15px; } h4 { font-size: 14px; margin-bottom: 6px; }
h3 small, h4 small { font-weight: 500; font-size: 12px; color: var(--rock); background: var(--line-2); padding: 1px 8px; border-radius: 999px; margin-left: 6px; }
p { margin: 0 0 8px; }
b, strong { font-weight: 600; }
button, input, select, textarea { font: inherit; color: inherit; }
img { max-width: 100%; }
.grow { flex: 1; min-width: 0; }

/* ---------- coque ---------- */
.app { display: grid; grid-template-columns: var(--side) 1fr; min-height: 100vh; }
.side { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 22px; padding: 22px 14px; background: var(--paper); border-right: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); padding: 0 8px; }
.brand img { width: 38px; height: auto; }
.brand b { font-weight: 700; font-size: 17px; display: block; line-height: 1; letter-spacing: .04em; }
.brand span { font-size: 11px; color: var(--rock); letter-spacing: .02em; }
#nav { display: flex; flex-direction: column; gap: 2px; overflow-y: auto; }
.nav-i { display: flex; align-items: center; gap: 11px; padding: 8px 10px; border-radius: var(--r-sm); color: var(--rock); text-decoration: none; font-weight: 500; font-size: 13.5px; position: relative; }
.nav-i:hover { background: var(--line-2); color: var(--ink); }
.nav-i.on { background: var(--accent-tint); color: var(--accent-strong); }
.side .nav-i.on::before { content: ""; position: absolute; left: -14px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--accent); }
.ic { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.badge { margin-left: auto; min-width: 22px; padding: 1px 7px; border-radius: 11px; background: var(--accent); color: #fff; font-size: 11px; font-weight: 600; text-align: center; }
.side-foot { margin-top: auto; font-size: 11px; color: var(--rock); padding: 0 8px; line-height: 1.45; }
.side-foot img { width: 104px; display: block; margin-bottom: 8px; }
.logo-dark { display: none !important; }
:root[data-theme="dark"] .logo-light { display: none !important; } :root[data-theme="dark"] .logo-dark { display: block !important; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .logo-light { display: none !important; } :root:not([data-theme="light"]) .logo-dark { display: block !important; } }
.main { min-width: 0; display: flex; flex-direction: column; }
.top { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; display: flex; align-items: center; gap: 12px; padding: 12px 32px; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(12px); }
.top h1 { font-size: 20px; font-weight: 600; margin-right: auto; }
.ctl { display: flex; align-items: center; gap: 8px; }
.refbtn { white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 7px 14px; cursor: pointer; font-weight: 500; font-size: 13px; }
.refbtn em { font-style: normal; font-size: 11px; font-weight: 600; color: var(--warn); background: var(--warn-tint); padding: 1px 7px; border-radius: 999px; }
.seg-lang { display: inline-flex; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 3px; gap: 2px; }
.seg-lang button { border: 0; background: none; padding: 5px 11px; cursor: pointer; font-weight: 500; font-size: 12.5px; border-radius: 999px; color: var(--rock); }
.seg-lang button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.pole-sw button { display: inline-flex; flex-direction: column; align-items: center; line-height: 1.15; padding: 4px 13px; }
.pole-sw small { font-size: 10px; font-weight: 400; opacity: .75; }
.icon-btn { width: 38px; height: 38px; display: inline-grid; place-items: center; border: 1px solid var(--line); background: var(--paper); border-radius: 999px; cursor: pointer; font-size: 18px; line-height: 1; color: var(--ink); }
.icon-btn.sm { width: 30px; height: 30px; font-size: 13px; }
#view { padding: 8px 32px 56px; max-width: 1360px; width: 100%; outline: none; }
.tabbar { display: none; }

/* ---------- éléments ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 7px 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font-weight: 500; font-size: 13.5px; text-decoration: none; cursor: pointer; white-space: nowrap; transition: background .15s, border-color .15s; }
.btn:hover { border-color: var(--rock); }
.btn.primary { background: var(--accent-btn); border-color: var(--accent-btn); color: var(--on-accent); font-weight: 600; }
.btn.primary:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.btn.danger { background: var(--bad); border-color: var(--bad); color: #fff; }
.btn.ghost { border-color: transparent; background: none; color: var(--rock); }
.btn.sm { min-height: 30px; padding: 3px 12px; font-size: 12.5px; }
.btn.big { min-height: 52px; font-size: 16px; width: 100%; border-radius: var(--r-sm); }
.link { background: none; border: 0; padding: 0; color: var(--accent-strong); text-decoration: underline; cursor: pointer; font-weight: 500; display: inline-block; margin-top: 10px; }
.pill { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; white-space: nowrap; background: var(--line-2); color: var(--ink); }
.st-confirmed, .st-ongoing, .rs-ok, .ok, .rq-won, .d-go { background: var(--ok-tint); color: var(--ok); }
.st-confirmed::before, .rs-ok::before, .d-go::before { content: "✓"; }
.st-open, .st-proposed, .rs-missing, .rs-review, .warn, .rq-new, .d-planB, .d-postpone { background: var(--warn-tint); color: var(--warn); }
.st-cancelled, .rs-invalid, .bad, .d-abort { background: var(--bad-tint); color: var(--bad); }
.st-ongoing { background: var(--accent-tint); color: var(--accent-strong); }
.neg { color: var(--bad) !important; font-weight: 600; }
.warn-t { color: var(--warn); font-weight: 500; } .ok-t { color: var(--ok); }
.muted { color: var(--rock); } .small { font-size: 12.5px; }
.empty { color: var(--rock); padding: 8px 0; }
.empty-state { display: grid; place-items: center; gap: 8px; padding: 32px 12px; color: var(--rock); text-align: center; }
.empty-state .ico { width: 36px; height: 36px; color: var(--accent); }
.panel { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 20px 22px; box-shadow: var(--shadow); }
.panel > h3 { margin-bottom: 14px; display: flex; align-items: center; gap: 4px; }
.panel.flush { padding: 0; overflow-x: auto; }
.stack { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.row-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 14px; }
.row-acts.tight { margin-top: 0; gap: 6px; }
.btn-col { display: flex; flex-direction: column; gap: 8px; }
.kv { margin: 0; display: grid; gap: 8px; }
.kv > div { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 7px; border-bottom: 1px solid var(--line-2); }
.kv > div:last-child { border-bottom: 0; }
.kv dt { color: var(--rock); } .kv dd { margin: 0; font-weight: 600; text-align: right; }
blockquote { margin: 12px 0 0; padding: 10px 14px; background: var(--bg); border-radius: var(--r-sm); font-style: italic; }
.tags { display: flex; flex-wrap: wrap; gap: 4px; }
.tags i { font-style: normal; font-size: 11.5px; padding: 2px 8px; border-radius: 999px; background: var(--line-2); }

/* icônes et visuels */
.ico { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.act-ic { width: 36px; height: 36px; border-radius: 12px; display: inline-grid; place-items: center; flex: none; vertical-align: middle; }
.act-ic .ico { width: 20px; height: 20px; }
.act-ic.pole-ski { background: var(--ski-tint); color: var(--ski); } .act-ic.pole-alpine { background: var(--alp-tint); color: var(--alp); }
h2 .act-ic { width: 40px; height: 40px; margin-right: 6px; vertical-align: -8px; }
.pole { display: inline-block; font-size: 10.5px; font-weight: 600; padding: 1px 8px; border-radius: 999px; vertical-align: 1px; }
.pole-ski { background: var(--ski-tint); color: var(--ski); } .pole-alpine { background: var(--alp-tint); color: var(--alp); }
.dbadge { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 48px; height: 52px; border-radius: 12px; background: var(--accent-tint); color: var(--accent-strong); flex: none; line-height: 1; }
.dbadge b { font-size: 19px; font-weight: 600; } .dbadge small { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; margin-top: 3px; }
.dbadge.sm { width: 38px; height: 40px; border-radius: 10px; } .dbadge.sm b { font-size: 15px; }
.dbadge.lg { width: 64px; height: 70px; border-radius: 16px; } .dbadge.lg b { font-size: 26px; }
.dbadge.warnb { background: var(--warn-tint); color: var(--warn); }
.av { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: var(--paper); font-size: 11px; font-weight: 600; border: 2px solid var(--paper); margin-right: -6px; flex: none; }
.av.lg { width: 42px; height: 42px; font-size: 13.5px; margin-right: -4px; }
.av.miss { background: var(--paper); color: var(--bad); border: 2px dashed var(--bad); cursor: pointer; font-size: 16px; }
.bar { display: block; height: 6px; border-radius: 999px; background: var(--line-2); overflow: hidden; }
.bar i { display: block; height: 100%; border-radius: 999px; background: var(--accent); }
.bar.b-warn i { background: var(--warn); } .bar.b-bad i { background: var(--bad); }
h3 .bar { flex: 1; max-width: 160px; margin-left: 10px; }
.ring { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; min-width: 96px; }
.ring .rg { position: relative; width: 84px; height: 84px; }
.ring svg { width: 84px; height: 84px; }
.ring .rg-bg { fill: none; stroke: var(--line-2); stroke-width: 7; }
.ring .rg-v { fill: none; stroke: var(--accent); stroke-width: 7; stroke-linecap: round; transition: stroke-dasharray .6s; }
.ring.r-bad .rg-v { stroke: var(--bad); }
.ring .rg b { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 500; }
.ring .rg b small { font-size: 11px; font-weight: 500; margin-left: 1px; }
.ring figcaption { font-size: 12px; color: var(--rock); line-height: 1.3; }
.ring figcaption small { display: block; color: var(--ink); font-weight: 600; font-size: 12.5px; }
.mini { display: grid; grid-template-columns: 1fr auto; gap: 4px 8px; font-size: 11.5px; color: var(--rock); align-items: center; }
.mini b { color: var(--ink); font-size: 12px; } .mini .bar { grid-column: 1 / -1; }
.info { display: inline-block; position: relative; vertical-align: middle; }
.info summary { list-style: none; width: 20px; height: 20px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; font-size: 11px; font-weight: 600; font-style: italic; color: var(--rock); cursor: pointer; background: var(--paper); }
.info summary::-webkit-details-marker { display: none; }
.info[open] summary { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.info > div { position: absolute; z-index: 15; left: 0; top: 26px; width: min(320px, 80vw); background: var(--ink); color: var(--paper); padding: 10px 12px; border-radius: var(--r-sm); font-size: 12px; line-height: 1.5; box-shadow: 0 8px 24px rgba(0,0,0,.2); }
.flag { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 500; padding: 3px 9px; border-radius: 999px; }
.flag .ico { width: 14px; height: 14px; }
.flags { display: flex; flex-wrap: wrap; gap: 5px; }

/* ---------- aujourd’hui ---------- */
.hero2 { display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: center; justify-content: space-between; padding: 26px 30px; margin: 8px 0 18px; border-radius: 22px; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); position: relative; overflow: hidden; }
.hero2::after { content: ""; position: absolute; right: -60px; top: -80px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, var(--accent-tint), transparent 70%); pointer-events: none; }
.hero2 > * { position: relative; z-index: 1; }
.hero2.small { padding: 20px 26px; }
.wd { margin: 0; text-transform: capitalize; color: var(--accent-strong); font-weight: 500; letter-spacing: .02em; }
.date-xl { font-size: clamp(28px, 4vw, 44px); font-weight: 300; letter-spacing: -.02em; margin: 2px 0 6px; }
.lead { font-size: 15px; color: var(--rock); margin: 0; }
.hero-acts { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 14px; }
.simnote { color: var(--warn); font-weight: 500; font-size: 13px; }
.simnote .link { margin: 0 0 0 6px; }
.rings { display: flex; gap: 18px; flex-wrap: wrap; }
.kpis { display: grid; grid-template-columns: repeat(2, minmax(140px, 1fr)); gap: 10px 22px; }
.kpi small { display: block; color: var(--rock); font-size: 11.5px; } .kpi b { font-size: 18px; font-weight: 500; }
.ktiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-bottom: 18px; }
.ktile { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 0 10px; align-items: center; text-align: left; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; box-shadow: var(--shadow); transition: transform .12s, border-color .12s; }
.ktile:hover { transform: translateY(-1px); border-color: var(--rock); }
.ktile .ico { grid-row: span 2; width: 34px; height: 34px; padding: 8px; border-radius: 10px; background: var(--line-2); color: var(--ink); }
.ktile.hot .ico { background: var(--accent-tint); color: var(--accent-strong); }
.ktile b { font-size: 20px; font-weight: 500; line-height: 1; } .ktile span { font-size: 11.5px; color: var(--rock); line-height: 1.25; }
.ktile.on { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.ktile.clear .ico { background: var(--ink); color: var(--paper); } .ktile.clear span { grid-row: span 2; font-weight: 500; color: var(--ink); }
.today-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(290px, 1fr); gap: 18px; align-items: start; }
.xlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.x { display: flex; gap: 14px; align-items: center; padding: 12px 14px; border-radius: 14px; background: var(--bg); }
.x-ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--paper); color: var(--rock); flex: none; }
.x.sev1 .x-ic { background: var(--bad-tint); color: var(--bad); } .x.sev2 .x-ic { background: var(--warn-tint); color: var(--warn); }
.x-main { flex: 1; min-width: 0; }
.x-title { font-weight: 600; margin: 0; font-size: 13.5px; }
.x-detail { margin: 2px 0 0; color: var(--rock); font-size: 12.5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.x-acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.x-acts .btn { min-height: 32px; padding: 4px 13px; font-size: 12.5px; }
.deplist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.dm2 { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 14px; text-decoration: none; color: var(--ink); }
.dm2:hover { background: var(--bg); }
.dm2-t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.dm2-t b { font-size: 13.5px; } .dm2-r { display: flex; align-items: center; gap: 8px; font-size: 12px; } .dm2-r em { font-style: normal; font-weight: 600; }

/* ---------- cordée ---------- */
.rope { display: block; flex: none; }
.rope .rp-line { stroke: var(--line); stroke-width: 2; }
.rope .rp-g { stroke-width: 1.6; }
.rope .rp-g.on { fill: var(--ink); stroke: var(--ink); }
.rope .rp-g.miss { fill: var(--paper); stroke: var(--bad); stroke-dasharray: 2 2; }
.rope .rp-g.off { fill: var(--paper); stroke: var(--line); }
.rope .rp-c { stroke-width: 1.8; }
.rope .rp-c.on { fill: var(--accent); stroke: var(--accent); }
.rope .rp-c.need { fill: var(--paper); stroke: var(--accent); stroke-dasharray: 2.5 2; }
.rope .rp-c.opt { fill: var(--paper); stroke: var(--line); }
.rope-panel .rope { margin: 6px 0 12px; max-width: 100%; height: auto; }
.legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--rock); font-size: 12px; margin: 0 0 14px; }

/* ---------- barres d’outils, onglets, cartes ---------- */
div.bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin: 8px 0 18px; height: auto; background: none; border-radius: 0; overflow: visible; }
.tabs { display: flex; flex-wrap: wrap; gap: 2px; background: var(--paper); border: 1px solid var(--line); padding: 4px; border-radius: 999px; }
.tabs button { border: 0; background: none; padding: 6px 14px; border-radius: 999px; cursor: pointer; font-weight: 500; color: var(--rock); font-size: 13px; }
.tabs button[aria-selected="true"] { background: var(--ink); color: var(--paper); }
.tabs b { font-size: 11px; margin-left: 4px; opacity: .7; font-weight: 500; }
h3.grp { font-size: 13px; font-weight: 600; color: var(--rock); margin: 22px 0 10px; }
.dgrid, .cgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.dcard, .ccard { display: flex; flex-direction: column; gap: 14px; padding: 16px; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); transition: transform .12s, border-color .12s; position: relative; }
.dcard:hover, .ccard:hover { transform: translateY(-2px); border-color: var(--rock); }
.dcard.pole-b-ski { border-top: 3px solid var(--ski); } .dcard.pole-b-alpine { border-top: 3px solid var(--alp); }
.dc-top, .cc-top { display: flex; align-items: center; gap: 12px; }
.dc-t, .cc-top > div { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dc-t b, .cc-top b { font-size: 14px; font-weight: 600; } .dc-t small, .cc-top small { color: var(--rock); font-size: 12px; }
.dc-mid { display: flex; align-items: center; gap: 10px; } .dc-mid em { font-style: normal; font-weight: 600; font-size: 13px; margin-right: auto; }
.dc-bars { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dc-g { display: flex; align-items: center; min-height: 30px; } .dc-g small { margin-left: auto; color: var(--rock); font-size: 11px; }
.cc-meta { display: flex; gap: 14px; font-size: 12.5px; color: var(--rock); } .cc-meta span { display: inline-flex; gap: 5px; align-items: center; }
.age { font-size: 11.5px; color: var(--rock); white-space: nowrap; } .age.late { color: var(--bad); font-weight: 600; }
.gcard .skills { display: flex; gap: 6px; flex-wrap: wrap; }
.sk { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--line-2); }
.table { min-width: 720px; }
.thead, .trow { display: grid; gap: 12px; align-items: center; padding: 11px 20px; }
.thead { font-size: 12px; color: var(--rock); border-bottom: 1px solid var(--line); font-weight: 500; }
.trow { border-top: 1px solid var(--line-2); text-decoration: none; color: var(--ink); }
.trow:hover { background: var(--bg); }
.trow small { display: block; color: var(--rock); font-size: 12px; }
.t-cli .thead, .t-cli .trow { grid-template-columns: 1.8fr 1fr .6fr 1fr .7fr 1.4fr; }

/* ---------- fiches ---------- */
.back { display: inline-flex; margin: 4px 0 12px; font-weight: 500; font-size: 13px; }
.page-head { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.page-head h2 { font-size: clamp(24px, 3vw, 32px); font-weight: 500; letter-spacing: -.02em; }
.sub { color: var(--rock); margin: 4px 0 0; }
.head-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kband { display: flex; flex-wrap: wrap; gap: 20px 34px; align-items: center; padding: 18px 24px; margin-bottom: 18px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); }
.kb-g, .kb-d { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.kb-g small, .kb-d small { color: var(--rock); font-size: 12px; } .kb-g > div { display: flex; }
.kb-d { align-items: center; } .kb-d b { font-size: 12.5px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.detail-grid.wide-left { grid-template-columns: minmax(0, 1.7fr) minmax(290px, 1fr); }
.plist, .clog, .checks, .reqs, .sched, .pays, .cands, .ices, .rolls { list-style: none; margin: 0; padding: 0; }
.plist li { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; justify-content: space-between; padding: 10px 0; border-top: 1px solid var(--line-2); }
.plist li:first-child { border-top: 0; }
.plist a { text-decoration: none; color: var(--ink); }
.plist small { color: var(--rock); }
.checks li { padding: 5px 0 5px 26px; position: relative; }
.checks li::before { position: absolute; left: 0; top: 5px; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.checks li.ok::before { content: "✓"; background: var(--ok-tint); color: var(--ok); } .checks li.bad::before { content: "!"; background: var(--bad-tint); color: var(--bad); }
.checks li.warn::before { content: "!"; background: var(--warn-tint); color: var(--warn); } .checks li.neutral::before { content: "–"; background: var(--line-2); color: var(--rock); }
.checks li.ok, .checks li.bad, .checks li.warn, .checks li.neutral { background: none; color: inherit; }
.checks.small li { font-size: 12.5px; }
.match { display: flex; gap: 16px; justify-content: space-between; align-items: flex-start; padding: 12px 0; border-top: 1px solid var(--line-2); }
.match:first-of-type { border-top: 0; }
.match .row-acts { margin-top: 0; flex-direction: column; align-items: flex-end; }
table.num { width: 100%; border-collapse: collapse; font-size: 13px; }
table.num td { padding: 7px 4px; border-top: 1px solid var(--line-2); vertical-align: top; }
table.num td:last-child { text-align: right; font-weight: 600; white-space: nowrap; }
table.num td:nth-child(2) { color: var(--rock); }
table.num tfoot td { border-top: 1px solid var(--line); }
table.num tr.neg td { color: var(--bad); }
.clog li { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line-2); }
.clog small { flex-basis: 100%; color: var(--rock); }
.dg { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; font-weight: 700; font-size: 12px; border: 1px solid rgba(0,0,0,.2); color: #1a1a1a; }
.dg1 { background: #CCFF66; } .dg2 { background: #FFFF00; } .dg3 { background: #FF9900; } .dg4 { background: #FF0000; color: #fff; }
.dg5 { background: repeating-conic-gradient(#000 0 25%, #FF0000 0 50%) 0 0/12px 12px; color: #fff; text-shadow: 0 0 2px #000; }
.booking header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.booking h3 a { color: var(--ink); text-decoration: none; }
.bk-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 22px; }
.bk-grid h4 + .bar { margin: 6px 0 10px; }
.reqs li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 2px 10px; padding: 9px 0; border-top: 1px solid var(--line-2); align-items: center; }
.reqs li:first-child { border-top: 0; }
.st-ic { width: 26px; height: 26px; padding: 5px; border-radius: 50%; grid-row: span 2; align-self: start; }
.st-ic.ok { background: var(--ok-tint); color: var(--ok); } .st-ic.missing, .st-ic.review { background: var(--warn-tint); color: var(--warn); }
.st-ic.invalid { background: var(--bad-tint); color: var(--bad); }
.rq-l { font-weight: 500; } .rq-d { grid-column: 2 / -1; color: var(--rock); font-size: 12px; }
.rq-a { grid-column: 2 / -1; display: flex; gap: 6px; flex-wrap: wrap; } .rq-a:empty { display: none; }
.reqs li.invalid .rq-d, .reqs li.review .rq-d { color: var(--ink); }
.sched li, .pays li { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; padding: 3px 0; }
.sched { margin: 8px 0; } .pays { border-top: 1px solid var(--line-2); padding-top: 6px; }
.cands li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line-2); }
.steps { display: inline-flex; gap: 3px; margin-right: 4px; } .steps i { width: 8px; height: 8px; border-radius: 50%; background: var(--line); } .steps i.on { background: var(--accent); }

/* ---------- calendrier, finances, bilan, matériel ---------- */
.calnav { display: flex; align-items: center; gap: 8px; }
.cal-title { font-size: 20px; font-weight: 500; min-width: 190px; text-align: center; }
.cal-title::first-letter { text-transform: uppercase; }
.cal { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 11.5px; }
.cal th, .cal td { border-bottom: 1px solid var(--line-2); border-right: 1px solid var(--line-2); padding: 3px 2px; text-align: center; min-width: 30px; height: 38px; }
.cal thead th { font-weight: 600; } .cal thead small { display: block; color: var(--rock); font-weight: 400; }
.cal tbody th { text-align: left; padding: 4px 12px; white-space: nowrap; position: sticky; left: 0; background: var(--paper); z-index: 1; font-size: 12.5px; font-weight: 500; }
.cal tbody th a { color: var(--ink); text-decoration: none; }
.cal .we { background: var(--bg); } .cal .today { box-shadow: inset 0 0 0 2px var(--accent); }
.cal td.off { background: repeating-linear-gradient(45deg, var(--line-2) 0 4px, transparent 4px 8px); }
.cal td.clash { box-shadow: inset 0 0 0 2px var(--bad); }
.cal-i { display: block; font-weight: 600; font-size: 10.5px; border-radius: 6px; padding: 3px 0; text-decoration: none; margin: 1px 0; }
.cal-i.pole-ski { background: var(--ski); color: var(--paper); } .cal-i.pole-alpine { background: var(--alp); color: var(--paper); }
.legend .cal-i { display: inline-block; padding: 1px 6px; }
.cal-open th { color: var(--bad) !important; }
.lg-off, .lg-clash, .lgd { display: inline-block; width: 14px; height: 14px; border-radius: 4px; vertical-align: -2px; }
.lg-off { background: repeating-linear-gradient(45deg, var(--line) 0 3px, transparent 3px 6px); border: 1px solid var(--line); }
.lg-clash { box-shadow: inset 0 0 0 2px var(--bad); }
.lgd.p { background: var(--accent); } .lgd.o { background: var(--bad); } .lgd.r { background: var(--line-2); border: 1px solid var(--line); }
.frows { display: flex; flex-direction: column; gap: 4px; }
.frow { display: grid; grid-template-columns: auto minmax(150px, 1fr) minmax(120px, 1.4fr) 132px; gap: 14px; align-items: center; padding: 8px; border-radius: 12px; text-decoration: none; color: var(--ink); }
.frow:hover { background: var(--bg); }
.fr-t, .fr-n { display: flex; flex-direction: column; } .fr-t small, .fr-n small { color: var(--rock); font-size: 11.5px; } .fr-n { text-align: right; }
.stack-bar { display: flex; height: 10px; border-radius: 999px; background: var(--line-2); overflow: hidden; }
.stack-bar i { display: block; height: 100%; } .stack-bar .p { background: var(--accent); } .stack-bar .o { background: var(--bad); }
table.rep { width: 100%; border-collapse: collapse; }
table.rep th, table.rep td { padding: 11px 18px; border-top: 1px solid var(--line-2); text-align: right; }
table.rep th[scope=row] { text-align: left; font-weight: 400; color: var(--rock); }
table.rep thead th { font-weight: 600; border-top: 0; }
table.rep small { color: var(--rock); margin-left: 4px; }
.hbars { display: flex; flex-direction: column; gap: 12px; }
.hb { display: grid; grid-template-columns: auto minmax(140px, 1fr) minmax(100px, 2fr) auto; gap: 12px; align-items: center; }
.hb-t { display: flex; flex-direction: column; } .hb-t small { color: var(--rock); font-size: 11.5px; }
.hb .bar { height: 10px; } .hb-v { font-weight: 600; }
.eq-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.eq { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 12px; border-radius: 12px; background: var(--bg); border: 1px solid var(--line-2); }
.eq b { font-size: 13px; } .eq small { color: var(--rock); font-size: 11px; }
.eq.repair { background: var(--bad-tint); border-color: transparent; } .eq.repair small { color: var(--bad); }
.eq-next { display: inline-flex; gap: 6px; align-items: center; font-size: 11px; font-weight: 600; margin-top: 4px; }
.eq-acts { position: absolute; top: 8px; right: 8px; display: flex; gap: 4px; }
.sup-li { border-top: 1px solid var(--line) !important; padding-bottom: 0 !important; }
.sup-li + li { border-top: 0 !important; }

/* ---------- feuille ---------- */
.sheet[hidden] { display: none; }
.sheet { position: fixed; inset: 0; z-index: 50; }
.sheet-back { position: absolute; inset: 0; background: rgba(17, 19, 22, .45); backdrop-filter: blur(2px); }
.sheet-panel { position: absolute; top: 12px; right: 12px; bottom: 12px; width: min(520px, calc(100vw - 24px)); background: var(--paper); display: flex; flex-direction: column; border-radius: 22px; box-shadow: 0 24px 60px rgba(0,0,0,.25); padding-top: env(safe-area-inset-top, 0px); overflow: hidden; }
.sheet-panel.wide { width: min(680px, calc(100vw - 24px)); }
.sheet-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--line-2); }
.sheet-head h2 { font-size: 18px; font-weight: 600; }
.sheet-body { flex: 1; overflow-y: auto; padding: 20px 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-content: start; }
.sheet-body > *:not(.field), .sheet-body > .field.full, .sheet-body > div[data-for], .sheet-body > div[data-new], .sheet-body > div[data-exp], .sheet-body > div[data-dest], .sheet-body > .grid2 { grid-column: 1 / -1; }
.sheet-body > div[data-for], .sheet-body > div[data-new], .sheet-body > div[data-exp], .sheet-body > div[data-dest], .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sheet-body > div[hidden] { display: none; }
.sheet-body h3 { margin-top: 10px; }
.sheet-foot { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding: 14px 22px calc(14px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line-2); }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; border: 0; margin: 0; padding: 0; }
.field.inline { flex-direction: row; align-items: center; gap: 10px; }
.lbl { font-weight: 500; font-size: 12.5px; color: var(--rock); }
.lbl::first-letter { text-transform: uppercase; }
.opt { font-style: normal; font-weight: 400; color: var(--rock); font-size: 11.5px; opacity: .8; }
.help { font-size: 11.5px; color: var(--rock); }
input, select, textarea { width: 100%; min-height: 42px; padding: 9px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--paper); }
input:focus, select:focus, textarea:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px var(--accent-soft); }
textarea { resize: vertical; line-height: 1.5; }
input[readonly] { background: var(--bg); }
.field.invalid input, .field.invalid select, .field.invalid textarea, .choices.invalid { border-color: var(--bad); box-shadow: 0 0 0 1px var(--bad); }
.err { color: var(--bad); font-size: 12px; font-weight: 500; }
.check { display: flex; align-items: center; gap: 8px; font-weight: 400; min-height: 32px; }
.check input { width: 20px; min-height: 20px; accent-color: var(--accent); }
fieldset.field .check { display: inline-flex; margin-right: 14px; }
.choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; border-radius: var(--r-sm); }
.choice { position: relative; display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--line); border-radius: 12px; padding: 11px 12px 11px 38px; cursor: pointer; background: var(--paper); }
.choice input { position: absolute; left: 13px; top: 14px; width: 16px; min-height: 16px; margin: 0; accent-color: var(--accent); }
.choice:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); background: var(--accent-tint); }
.choice.danger:has(input:checked) { border-color: var(--bad); box-shadow: 0 0 0 1px var(--bad); background: var(--bad-tint); }
.c-l { font-weight: 600; } .c-d { font-size: 12px; color: var(--rock); }
.choices.danger5 { grid-template-columns: repeat(5, 1fr); }
.choices.danger5 .choice { padding: 10px 6px 8px; align-items: center; text-align: center; }
.choices.danger5 .choice input { position: static; margin-bottom: 4px; }
.choices.danger5 .c-l { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; font-size: 17px; border: 1px solid rgba(0,0,0,.2); color: #1a1a1a; }
.dgc.dg1 .c-l { background: #CCFF66; } .dgc.dg2 .c-l { background: #FFFF00; } .dgc.dg3 .c-l { background: #FF9900; } .dgc.dg4 .c-l { background: #FF0000; color: #fff; }
.dgc.dg5 .c-l { background: repeating-conic-gradient(#000 0 25%, #FF0000 0 50%) 0 0/14px 14px; color: #fff; text-shadow: 0 0 2px #000; }
.dgc { background: var(--paper) !important; } .dgc .c-d { font-size: 11px; }
.presets { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.more-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.more-nav .nav-i { border: 1px solid var(--line); color: var(--ink); }
.seg-lang.mob { display: inline-flex !important; }
.toasts { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(22px + env(safe-area-inset-bottom, 0px)); z-index: 60; display: flex; flex-direction: column; gap: 8px; align-items: center; pointer-events: none; }
.toast { background: var(--ink); color: var(--paper); padding: 10px 18px; border-radius: 999px; font-weight: 500; font-size: 13px; box-shadow: 0 8px 24px rgba(0,0,0,.25); max-width: min(560px, 92vw); transition: opacity .3s, transform .3s; }
.toast.out { opacity: 0; transform: translateY(6px); }

/* ---------- terrain ---------- */
.field-wrap { max-width: 640px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.field-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.field-top select { min-width: 180px; }
.fcard { background: var(--paper); border: 1px solid var(--line); border-radius: 22px; padding: 20px; display: flex; flex-direction: column; gap: 18px; box-shadow: var(--shadow); }
.fcard > header h2 { font-size: 24px; font-weight: 500; }
.fcard > header p { font-size: 15px; margin: 6px 0 0; color: var(--rock); }
.fsec { border-top: 1px solid var(--line-2); padding-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.fsec h3 { font-size: 16px; }
.rolls li.roll { display: flex; gap: 12px; justify-content: space-between; align-items: center; padding: 10px 0; border-top: 1px solid var(--line-2); }
.rolls li.roll > div:first-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rolls b { font-size: 15px; } .rolls small { color: var(--rock); }
.seg { display: flex; gap: 6px; flex: none; }
.seg .btn { min-height: 46px; min-width: 88px; border-radius: 12px; }
.em-row { display: flex; gap: 8px; } .em-row .btn { background: var(--bad-tint); color: var(--bad); border-color: var(--bad); }
.ices li { padding: 7px 0; border-top: 1px solid var(--line-2); display: flex; flex-wrap: wrap; gap: 4px 10px; }
.ices small { flex-basis: 100%; color: var(--rock); }
.sheet-panel.field-sheet .sheet-body { font-size: 15px; }

/* ---------- espace client ---------- */
.portal-mode .side, .portal-mode .top, .portal-mode .tabbar { display: none !important; }
.portal-mode .app { grid-template-columns: 1fr; }
.portal { max-width: 680px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; padding-top: 16px; }
.portal-banner { background: var(--warn-tint); color: var(--warn); padding: 9px 14px; border-radius: 12px; font-weight: 500; font-size: 12.5px; margin: 0; }
.portal-head { display: flex; gap: 14px; align-items: center; }
.portal-head img { width: 48px; } .portal-head h2 { font-size: 24px; font-weight: 500; }

/* ---------- responsive ---------- */
@media (min-width: 861px) { .top .top-brand { display: none !important; } }
@media (max-width: 1180px) { .pole-sw small { display: none; } }
@media (max-width: 1080px) { .today-grid, .detail-grid, .detail-grid.wide-left { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 860px) {
  body { font-size: 14.5px; }
  .app { grid-template-columns: 1fr; }
  .side { display: none; }
  .top { padding: 10px 14px; gap: 8px; }
  .top-brand { width: 28px; height: auto; }
  .top h1 { font-size: 17px; }
  .top .seg-lang, .top .pole-sw, #themeBtn { display: none !important; }
  .refbtn { font-size: 12px; padding: 6px 10px; } .refbtn em { display: none; }
  #view { padding: 4px 14px calc(var(--tab) + 28px + env(safe-area-inset-bottom, 0px)); }
  .tabbar { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 30; background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(12px); border: 1px solid var(--line); border-radius: 22px; padding: 6px; box-shadow: 0 10px 30px rgba(16,24,40,.12); }
  .tabbar .nav-i { flex-direction: column; gap: 2px; padding: 6px 2px; font-size: 10.5px; font-weight: 500; text-align: center; border-radius: 16px; }
  .tabbar button.nav-i { border: 0; background: none; color: var(--rock); cursor: pointer; font: inherit; font-size: 10.5px; font-weight: 500; }
  .tabbar .nav-i.on { background: var(--accent-tint); color: var(--accent-strong); }
  .tabbar .nav-i span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .tabbar .badge { position: absolute; top: 2px; right: 50%; transform: translateX(22px); min-width: 18px; font-size: 10px; padding: 0 4px; }
  .hero2 { padding: 20px; border-radius: 18px; gap: 18px; }
  .rings { gap: 10px; width: 100%; justify-content: space-between; }
  .ring { min-width: 0; flex: 1; } .ring .rg, .ring svg { width: 70px; height: 70px; } .ring .rg b { font-size: 16px; }
  .ktiles { grid-template-columns: repeat(2, 1fr); }
  .x { flex-wrap: wrap; } .x-acts { width: 100%; justify-content: flex-start; padding-left: 52px; }
  .sheet-panel, .sheet-panel.wide { top: auto; right: 0; bottom: 0; left: 0; width: 100vw; max-height: 92vh; border-radius: 22px 22px 0 0; }
  .sheet-body, .sheet-body > div[data-for], .sheet-body > div[data-new], .sheet-body > div[data-exp], .sheet-body > div[data-dest], .grid2 { grid-template-columns: 1fr; }
  .bk-grid { grid-template-columns: 1fr; }
  .match { flex-direction: column; } .match .row-acts { align-items: flex-start; }
  .toasts { bottom: calc(var(--tab) + 28px + env(safe-area-inset-bottom, 0px)); }
  .choices.danger5 .c-d { display: none; }
  .cal-title { min-width: 0; font-size: 17px; }
  .frow { grid-template-columns: auto 1fr auto; } .frow .stack-bar { grid-column: 1 / -1; order: 5; }
  .hb { grid-template-columns: auto 1fr auto; } .hb .bar { grid-column: 1 / -1; order: 5; }
  .portal-mode #view { padding-bottom: 28px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ============ v1.1 — densité, écrans plein cadre, barre latérale sombre ============ */
:root { --side: 212px; --r: 14px; --r-sm: 9px; --side-bg: #15171B; --side-ink: #A0A7B4; }
body { font-size: 13px; }
h3 { font-size: 13.5px; }
.side { background: var(--side-bg); border-right: 0; gap: 18px; padding: 18px 12px; }
.brand { color: #fff; } .brand span { color: #8A92A0; } .brand img { width: 32px; }
.nav-i { color: var(--side-ink); padding: 7px 10px; font-size: 13px; }
.side .nav-i:hover { background: rgba(255,255,255,.06); color: #fff; }
.side .nav-i.on { background: rgba(248,80,0,.16); color: #FF8A4C; }
.side .nav-i.on::before { left: -12px; }
.side-foot { color: #8A92A0; } .side-foot img { width: 92px; }
.top { padding: 10px 20px; min-height: 56px; }
.top h1 { font-size: 17px; }
.btn { min-height: 32px; padding: 5px 13px; font-size: 12.5px; }
.btn.sm { min-height: 27px; padding: 2px 10px; font-size: 12px; }
.btn.big { min-height: 46px; font-size: 14.5px; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.btn .ico { width: 16px; height: 16px; }
.icon-btn { width: 34px; height: 34px; }
.panel { padding: 14px 16px; }
.panel > h3 { margin-bottom: 10px; }
h3.mt { margin: 16px 0 8px; }
.pill { padding: 2px 8px; font-size: 11px; }
.act-ic { width: 30px; height: 30px; border-radius: 9px; } .act-ic .ico { width: 17px; height: 17px; }
h2 .act-ic { width: 32px; height: 32px; vertical-align: -6px; }
.dbadge { width: 42px; height: 46px; border-radius: 10px; } .dbadge b { font-size: 16px; }
.dbadge.sm { width: 34px; height: 36px; border-radius: 8px; } .dbadge.sm b { font-size: 13px; } .dbadge.sm small { font-size: 9px; }
.dbadge.lg { width: 52px; height: 56px; } .dbadge.lg b { font-size: 21px; }
.av { width: 26px; height: 26px; font-size: 10px; } .av.lg { width: 34px; height: 34px; font-size: 12px; }
.ring { min-width: 74px; gap: 4px; } .ring .rg, .ring svg { width: 62px; height: 62px; } .ring .rg b { font-size: 15px; } .ring figcaption { font-size: 11px; } .ring figcaption small { font-size: 11.5px; }
.rings.sm { gap: 10px; }
.page-head { margin-bottom: 0; gap: 12px; } .page-head h2 { font-size: 22px; }
.kband { padding: 10px 16px; margin-bottom: 0; gap: 14px 28px; }
.back { margin: 0; font-size: 12px; }
.kv > div { padding-bottom: 5px; } .kv { gap: 5px; }
.plist li { padding: 8px 0; }
.dcard, .ccard { padding: 13px; gap: 10px; }
.dgrid, .cgrid { gap: 10px; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
h3.grp { margin: 10px 0 8px; }
div.bar { margin: 0; }
.tabs button { padding: 5px 12px; font-size: 12.5px; }
.legend { margin: 0; }
.scroll { overflow: auto; min-height: 0; }
.mini-ic .ico, .mini-ic { width: 14px; height: 14px; display: inline-block; margin-right: 3px; color: var(--rock); }
.dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; } .dot.bad { background: var(--bad); } .dot.warn { background: var(--warn); } .dot.ok { background: #98A2B3; }
.empty-state.big { padding: 60px 16px; } .empty-state.big .ico { width: 44px; height: 44px; }

/* aujourd’hui */
.t-head { display: flex; align-items: center; gap: 18px 30px; flex-wrap: wrap; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 14px 20px; box-shadow: var(--shadow); position: relative; overflow: hidden; }
.t-head::after { content: ""; position: absolute; right: -40px; top: -90px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, var(--accent-tint), transparent 70%); pointer-events: none; }
.t-head > * { position: relative; z-index: 1; }
.t-date { flex: 1; min-width: 240px; } .t-date .date-xl { font-size: 30px; margin: 0 0 2px; } .t-date .lead { font-size: 13px; }
.t-acts { display: flex; gap: 8px; }
.ktiles { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(138px, 1fr); grid-template-columns: none; overflow-x: auto; gap: 8px; margin: 0; padding-bottom: 2px; }
.ktile { padding: 8px 11px; border-radius: 12px; } .ktile .ico { width: 28px; height: 28px; padding: 6px; } .ktile b { font-size: 16px; } .ktile span { font-size: 11px; }
.today-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.panel.col { display: flex; flex-direction: column; min-height: 0; }
.panel.col > .scroll { flex: 1; }
.x { padding: 9px 11px; gap: 11px; border-radius: 12px; } .x-ic { width: 32px; height: 32px; border-radius: 10px; } .x-title { font-size: 12.5px; } .x-detail { font-size: 11.5px; }
.x-acts .btn { min-height: 28px; padding: 3px 11px; font-size: 11.5px; }
.xlist { gap: 6px; }
.dm2 { padding: 6px; gap: 10px; } .dm2-t b { font-size: 12.5px; }
.wk { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wk > li { display: flex; gap: 10px; } .wk ul { list-style: none; margin: 0; padding: 0; flex: 1; display: flex; flex-direction: column; gap: 4px; }
.wk a { display: flex; gap: 7px; align-items: center; padding: 6px 8px; border-radius: 9px; background: var(--bg); text-decoration: none; color: var(--ink); font-size: 12px; }
.wk a .ico { width: 15px; height: 15px; color: var(--rock); } .wk a.w .ico { color: var(--warn); }

/* écrans plein cadre (bureau) */
.detail-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 861px) {
  html, body { height: 100%; overflow: hidden; }
  .app { height: 100vh; }
  .side { height: 100vh; }
  .main { height: 100vh; overflow: hidden; }
  #view { flex: 1; min-height: 0; overflow: hidden; padding: 4px 20px 16px; max-width: none; }
  .screen { height: 100%; display: flex; flex-direction: column; gap: 12px; min-height: 0; }
  .screen > * { flex: none; }
  .screen > .scroll, .screen > .cgrid, .screen > .detail-grid, .screen > .today-grid, .screen > .md, .screen > .g-grid, .screen > .cal-wrap, .screen > .field-app { flex: 1; min-height: 0; }
  .screen > .cgrid, .screen > .scroll { overflow: auto; align-content: start; }
  .screen > .detail-grid, .screen > .today-grid, .screen > .g-grid { align-items: stretch; }
  .screen > .detail-grid > *, .screen > .g-grid > * { min-height: 0; overflow: auto; }
  .screen-portal { overflow: auto; display: block; }
  .md .dp > .back { display: none; }
}
@media (max-width: 1280px) { .detail-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); } .today-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } .today-grid > .panel:last-child { display: none; } }

/* liste + fiche */
.md { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 12px; min-height: 0; }
.pane { min-height: 0; overflow: auto; }
.lp { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--shadow); display: flex; flex-direction: column; overflow: hidden; }
.lp-head { padding: 12px; display: flex; flex-direction: column; gap: 8px; border-bottom: 1px solid var(--line-2); }
.lp-head h3 { display: flex; align-items: center; }
.lp-list { flex: 1; overflow: auto; padding: 6px; display: flex; flex-direction: column; gap: 2px; }
.lsearch { display: flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 999px; padding: 0 10px; background: var(--bg); }
.lsearch input { border: 0; background: none; min-height: 32px; padding: 0; box-shadow: none !important; }
.lsearch .ico { width: 15px; height: 15px; color: var(--rock); }
.lrow { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 10px; text-decoration: none; color: var(--ink); }
.lrow:hover { background: var(--bg); } .lrow.on { background: var(--accent-tint); }
.lrow .av { margin-right: 0; }
.lr-t { flex: 1; min-width: 0; display: flex; flex-direction: column; } .lr-t b { font-size: 12.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .lr-t small { color: var(--rock); font-size: 11px; display: flex; align-items: center; }
.lr-m { display: flex; align-items: center; gap: 5px; } .lr-bar { width: 58px; display: flex; flex-direction: column; gap: 2px; font-size: 10px; color: var(--rock); text-align: right; }
.cnt { min-width: 20px; height: 20px; border-radius: 10px; background: var(--accent); color: #fff; font-size: 11px; display: grid; place-items: center; padding: 0 5px; }
.sq-ic { width: 32px; height: 32px; border-radius: 9px; background: var(--line-2); display: grid; place-items: center; flex: none; } .sq-ic .ico { width: 17px; height: 17px; }
.sq-ic.lg { width: 48px; height: 48px; border-radius: 13px; background: var(--accent-tint); color: var(--accent-strong); } .sq-ic.lg .ico { width: 24px; height: 24px; }
.dp { display: flex; flex-direction: column; gap: 12px; }
.card-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; box-shadow: var(--shadow); }
.card-head h2 { font-size: 20px; font-weight: 500; }
.kpis4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.kpis4 .kpi, .kpi-strip .kpi { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 9px 12px; }
.kpi small { font-size: 11px; } .kpi b { font-size: 16px; font-weight: 500; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi.bad b { color: var(--bad); } .kpi.good b { color: var(--ink); }
.stars { display: inline-flex; gap: 1px; } .stars i { width: 15px; height: 15px; color: var(--line); } .stars i.on { color: #F5A524; } .stars .ico { width: 15px; height: 15px; fill: currentColor; stroke: none; }
.contacts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.contacts li { display: flex; gap: 10px; align-items: flex-start; padding: 8px; border-radius: 10px; background: var(--bg); }
.contacts b { display: block; font-size: 12.5px; } .contacts small { color: var(--rock); display: block; }
.ct-l { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; } .ct-l a { display: inline-flex; gap: 4px; align-items: center; font-size: 11.5px; } .ct-l .ico { width: 13px; height: 13px; }
.strip { display: grid; grid-template-columns: repeat(60, 1fr); gap: 2px; margin-bottom: 10px; }
.strip i { height: 22px; border-radius: 3px; background: var(--line-2); } .strip i.m1 { box-shadow: inset 2px 0 0 var(--rock); }
.strip i.pole-bg-ski { background: var(--ski); } .strip i.pole-bg-alpine { background: var(--alp); } .strip i.off { background: repeating-linear-gradient(45deg, var(--line) 0 3px, transparent 3px 6px); }
.chips-row { display: flex; flex-wrap: wrap; gap: 4px; }
.chipb { border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 3px 9px; font-size: 11.5px; cursor: pointer; color: var(--rock); }
.chipb.on { background: var(--ink); color: var(--paper); border-color: var(--ink); } .chipb b { font-weight: 500; opacity: .7; }
.eq-tiles { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 6px !important; align-content: start; }
.eqt { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 8px; border-radius: 11px; border: 1px solid var(--line-2); text-decoration: none; color: var(--ink); background: var(--paper); }
.eqt:hover { border-color: var(--rock); } .eqt.on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.eqt b { font-size: 12px; } .eqt small { font-size: 10.5px; color: var(--rock); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.eqt .dot { position: absolute; top: 10px; right: 10px; }
.eqt.st-repair, .eqt.st-retired { opacity: .7; }
.it-img { width: 100%; aspect-ratio: 1; border-radius: 9px; object-fit: cover; display: block; background: var(--line-2); }
.it-img.xl { width: 180px; height: 180px; border-radius: 16px; }
.item-top { display: flex; gap: 18px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 14px; box-shadow: var(--shadow); align-items: flex-start; flex-wrap: wrap; }
.item-top h2 { font-size: 24px; font-weight: 500; } .item-top .kpis4 { margin-top: 12px; }
.photo { display: flex; flex-direction: column; gap: 6px; align-items: stretch; width: 180px; }
.photo-btn { cursor: pointer; }

/* gestion */
.kpi-strip { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
.g-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1.1fr); gap: 12px; min-height: 0; }
.chart { width: 100%; height: auto; display: block; }
.chart .gl { stroke: var(--line-2); } .chart .gl.z { stroke: var(--line); }
.chart .ax { font: 500 10px var(--f); fill: var(--rock); }
.chart .b-rev { fill: var(--accent); }
.chart .l-mar { fill: none; stroke: var(--ink); stroke-width: 2; }
.chart .p-mar { fill: var(--ink); } .chart .p-neg { fill: var(--bad); }
.lgd { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -2px; }
.lgd.m { background: var(--ink); border-radius: 50%; width: 9px; height: 9px; }
.lgd.h { background: repeating-linear-gradient(45deg, var(--accent) 0 2px, var(--accent-tint) 2px 5px); }
.donut { display: flex; gap: 14px; align-items: center; } .donut svg { width: 128px; height: 128px; flex: none; }
.donut .d-v { font: 600 14px var(--f); fill: var(--ink); } .donut .ax { font: 500 9px var(--f); fill: var(--rock); }
.dl { list-style: none; margin: 0; padding: 0; flex: 1; display: flex; flex-direction: column; gap: 5px; font-size: 12px; }
.dl li { display: flex; gap: 7px; align-items: center; } .dl i { width: 10px; height: 10px; border-radius: 3px; flex: none; } .dl span { flex: 1; } .dl b { font-weight: 600; }
.hb2 { display: grid; grid-template-columns: 110px 1fr 90px; gap: 10px; align-items: center; font-size: 12px; padding: 3px 0; } .hb2 b { text-align: right; font-weight: 600; } .hb2 .bar { height: 8px; }
table.pl { width: 100%; border-collapse: collapse; font-size: 12px; }
table.pl th { text-align: right; font-weight: 500; color: var(--rock); padding: 6px 4px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: var(--paper); }
table.pl th:first-child, table.pl td:first-child { text-align: left; }
table.pl td { padding: 7px 4px; border-top: 1px solid var(--line-2); text-align: right; white-space: nowrap; }
table.pl td a { display: flex; gap: 8px; align-items: center; text-decoration: none; color: var(--ink); } table.pl td a span { display: flex; flex-direction: column; } table.pl td small { color: var(--rock); font-size: 10.5px; display: block; }
table.pl td.pos { color: var(--ink); font-weight: 600; } table.pl td.neg small { color: var(--bad); }
table.pl tfoot td { font-weight: 600; border-top: 2px solid var(--line); position: sticky; bottom: 0; background: var(--paper); }
table.pl tr.cx td { opacity: .5; text-decoration: line-through; }

/* calendrier */
.cal-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 12px; min-height: 0; }
.cal-wrap > * { min-height: 0; overflow: auto; }
.cal th, .cal td { height: 32px; min-width: 26px; }

/* terrain */
.field-app { max-width: 560px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; min-height: 0; background: var(--paper); border: 1px solid var(--line); border-radius: 22px; overflow: hidden; box-shadow: var(--shadow); }
.f-top { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--line-2); }
.f-guide { display: flex; align-items: center; gap: 8px; } .f-guide select { min-height: 32px; padding: 4px 8px; width: auto; }
.f-date { flex: 1; color: var(--rock); font-size: 12px; text-transform: capitalize; text-align: right; }
.f-off { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--warn-tint); color: var(--warn); } .f-off.on { background: var(--ok-tint); color: var(--ok); } .f-off .ico { width: 14px; height: 14px; }
.fday { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.f-hero { display: flex; align-items: center; gap: 12px; padding: 14px; background: linear-gradient(135deg, var(--accent-tint), transparent); }
.f-hero h2 { font-size: 19px; font-weight: 600; } .f-hero p { margin: 2px 0 0; color: var(--rock); font-size: 12.5px; }
.f-cd { background: var(--accent); color: #fff; font-weight: 600; font-size: 12px; padding: 5px 10px; border-radius: 999px; white-space: nowrap; }
.f-steps { list-style: none; margin: 0; padding: 8px 10px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; border-bottom: 1px solid var(--line-2); }
.f-steps a { display: flex; flex-direction: column; align-items: center; gap: 3px; text-decoration: none; color: var(--rock); font-size: 10px; text-align: center; line-height: 1.2; }
.f-steps i { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 600; font-size: 11px; background: var(--line-2); }
.f-steps .done i { background: var(--ink); color: var(--paper); } .f-steps .cur i { background: var(--accent); color: #fff; box-shadow: 0 0 0 4px var(--accent-soft); } .f-steps .cur a { color: var(--ink); font-weight: 600; }
.f-body { flex: 1; overflow: auto; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.fstep { border: 1px solid var(--line); border-radius: 14px; padding: 12px; scroll-margin-top: 8px; }
.fstep header { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; } .fstep h3 { font-size: 14px; }
.fs-n { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--line-2); font-weight: 600; font-size: 11.5px; } .fs-n .ico { width: 14px; height: 14px; }
.fstep.done { border-color: var(--line-2); } .fstep.done .fs-n { background: var(--ink); color: var(--paper); }
.fstep.cur { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); } .fstep.cur .fs-n { background: var(--accent); color: #fff; }
.fs-b { display: flex; flex-direction: column; gap: 8px; }
.pcs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pc { display: flex; gap: 10px; align-items: center; padding: 8px; border-radius: 12px; background: var(--bg); }
.pc b { display: block; font-size: 13.5px; } .pc small { color: var(--rock); display: block; }
.pc .av { margin-right: 0; }
.seg2 { display: flex; gap: 6px; } .tg { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); font-size: 17px; cursor: pointer; }
.tg.on { background: var(--ink); color: var(--paper); border-color: var(--ink); } .tg.no.on { background: var(--bad); border-color: var(--bad); color: #fff; }
.bchks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.bchk { width: 100%; display: flex; gap: 10px; align-items: center; text-align: left; padding: 11px 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; font-size: 13px; }
.bchk .ico { width: 18px; height: 18px; color: var(--rock); } .bchk.on { background: var(--ok-tint); border-color: transparent; } .bchk.on .ico { color: var(--ink); } .bchk:disabled { cursor: default; }
.f-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line-2); background: var(--paper); }
.sos { background: var(--bad) !important; border-color: var(--bad) !important; color: #fff !important; font-weight: 700; letter-spacing: .06em; }
.f-next { display: flex; gap: 10px; align-items: center; justify-content: center; margin: 0 0 10px; } .f-next small { display: block; color: var(--rock); }
.geo { margin-top: 8px; font-size: 13px; } .em-row { flex-wrap: wrap; }

@media (max-width: 860px) {
  .md { display: block; } .md .dp { display: none; } .md.has-sel .lp { display: none; } .md.has-sel .dp { display: flex; }
  .lp { max-height: none; }
  .kpi-strip { grid-template-columns: repeat(2, 1fr); } .kpis4 { grid-template-columns: repeat(2, 1fr); }
  .g-grid, .detail-grid.three, .today-grid, .cal-wrap { grid-template-columns: 1fr; }
  .today-grid > .panel:last-child { display: flex; }
  .t-date .date-xl { font-size: 24px; }
  .eq-tiles { grid-template-columns: repeat(3, 1fr); }
  .photo, .it-img.xl { width: 100%; height: auto; }
  .screen-field #view, .screen-field { padding: 0; }
  .field-app { border-radius: 18px; }
  .item-top { flex-direction: column; }
}

/* v1.1 finitions */
.x { flex-wrap: wrap; row-gap: 8px; } .x-main { flex: 1 1 60%; } .x-acts { flex: 1 0 100%; justify-content: flex-start; padding-left: 43px; }
.plist li:has(> .steps) { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 10px; align-items: start; }
.plist li:has(> .steps) > .steps { margin-top: 5px; } .plist li:has(> .steps) > .row-acts { grid-column: 2; }
.docl li { flex-wrap: nowrap; } .docl .st-ic { grid-row: auto; }
.g-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .95fr) minmax(0, 1.2fr); }
table.pl td b { font-weight: 600; display: block; max-width: 170px; overflow: hidden; text-overflow: ellipsis; }
.pc .grow > span { display: block; margin-top: 2px; }
@media (max-width: 860px) {
  .kpi-strip, .kpis4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-grid > *, .detail-grid > * { min-width: 0; overflow-x: auto; }
  .x-acts { padding-left: 0; }
}

/* ============ v1.2 — finition premium : couleur de marque, moins de contours, chiffres alignés, mouvement ============ */
:root, :root[data-theme="light"], :root[data-theme="dark"] {
  --accent: var(--brand, #F85000); --accent-btn: var(--brand-btn, #D9480F); --accent-strong: var(--brand-strong, #C2410C); --on-accent: var(--brand-on, #FFFFFF);
  --accent-tint: color-mix(in srgb, var(--accent) 10%, var(--paper)); --accent-soft: color-mix(in srgb, var(--accent) 28%, var(--paper));
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --accent: var(--brand, #F85000); --accent-tint: color-mix(in srgb, var(--accent) 16%, var(--paper)); --accent-soft: color-mix(in srgb, var(--accent) 35%, var(--paper)); } }
:root { --bg: #EEF0F3; --shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 12px rgba(16, 24, 40, .035); }
:root[data-theme="dark"] { --bg: #0E1013; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --bg: #0E1013; } }
body { font-size: 13px; font-variant-numeric: tabular-nums; }
.panel, .t-head, .kband, .card-head, .item-top, .dcard, .ccard, .lp, .kpis4 .kpi, .kpi-strip .kpi, .field-app { border-color: transparent; }
.dcard:hover, .ccard:hover { border-color: transparent; box-shadow: 0 6px 22px rgba(16, 24, 40, .09); }
h3 { font-size: 13.5px; font-weight: 600; } .page-head h2, .card-head h2 { font-size: 20px; } .t-date .date-xl { font-size: 28px; font-weight: 300; }
.ring .rg-v { stroke: var(--ink); } .ring.r-bad .rg-v { stroke: var(--bad); }
.bar i { background: var(--ink); } .bar.b-warn i { background: var(--warn); } .bar.b-bad i { background: var(--bad); }
.dbadge { background: var(--line-2); color: var(--ink); } .dbadge small { color: var(--rock); }
.nav-i.on::before { background: var(--accent); }
.x { background: color-mix(in srgb, var(--bg) 60%, var(--paper)); }
@keyframes rise { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes slide { from { transform: translateX(24px); opacity: .6; } to { transform: none; opacity: 1; } }
.screen { animation: rise .18s ease-out; } .sheet-panel { animation: slide .2s ease-out; }
@media (max-width: 860px) { @keyframes slideup { from { transform: translateY(30px); } to { transform: none; } } .sheet-panel { animation: slideup .2s ease-out; } }

/* couvertures */
.cover { position: relative; overflow: hidden; background-size: cover; background-position: center; background-color: #1B2430; }
.cover svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.cv-ski { background: linear-gradient(150deg, #0E2238, #2E6FB0); } .cv-alpine { background: linear-gradient(150deg, #1A1636, #5B4BC4); }
.cv-l path { fill: none; stroke: rgba(255,255,255,.2); stroke-width: 1; } .cv-r { fill: rgba(8, 12, 20, .45); }
.cv-alt { position: absolute; right: 8px; bottom: 6px; color: #fff; font-size: 10.5px; font-weight: 600; letter-spacing: .04em; opacity: .9; }
.cover.band { height: 56px; margin: -13px -13px 0; border-radius: 14px 14px 0 0; }
.dcard.pole-b-ski, .dcard.pole-b-alpine { border-top: 0; }
.thumbw { position: relative; } .cover.thumb { width: 96px; height: 60px; border-radius: 12px; }
.cover-btn { position: absolute; right: 4px; bottom: 4px; width: 24px; height: 24px; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; display: grid; place-items: center; cursor: pointer; } .cover-btn .ico { width: 13px; height: 13px; }
.cover.portal-cv { height: 130px; border-radius: 18px; }
.av-up { position: relative; cursor: pointer; } .av-up > span { position: absolute; right: -2px; bottom: -2px; width: 20px; height: 20px; border-radius: 50%; background: var(--ink); color: var(--paper); display: grid; place-items: center; } .av-up .ico { width: 12px; height: 12px; }
.av.xl { width: 56px; height: 56px; font-size: 18px; margin: 0; }
img.av { object-fit: cover; padding: 0; }

/* recherche rapide */
.cmdbtn { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 6px 8px 6px 12px; color: var(--rock); cursor: pointer; font-size: 12.5px; min-width: 180px; }
.cmdbtn span { flex: 1; text-align: left; } kbd { font: 500 10.5px var(--f); border: 1px solid var(--line); border-radius: 6px; padding: 1px 6px; color: var(--rock); background: var(--bg); }
#cmdk { position: fixed; inset: 0; z-index: 80; } .ck-back { position: absolute; inset: 0; background: rgba(17, 19, 22, .4); backdrop-filter: blur(3px); }
.ck { position: absolute; left: 50%; top: 12vh; transform: translateX(-50%); width: min(620px, 92vw); background: var(--paper); border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.3); overflow: hidden; animation: rise .15s ease-out; }
.ck-in { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--line-2); } .ck-in input { border: 0; box-shadow: none !important; min-height: 36px; font-size: 15px; padding: 0; } .ck-in .ico { width: 18px; height: 18px; color: var(--rock); }
.ck-list { list-style: none; margin: 0; padding: 6px; max-height: 54vh; overflow: auto; }
.ck-list li { display: flex; gap: 12px; align-items: center; padding: 9px 10px; border-radius: 10px; cursor: pointer; }
.ck-list li[aria-selected="true"] { background: var(--accent-tint); } .ck-list li .ico { width: 18px; height: 18px; color: var(--rock); }
.ck-list b { display: block; font-size: 13px; } .ck-list small { color: var(--rock); font-size: 11.5px; } .ck-empty { color: var(--rock); }

/* aujourd’hui */
.xchips { display: flex; flex-wrap: wrap; gap: 5px; margin: -2px 0 10px; }
.xchip { display: inline-flex; align-items: center; gap: 5px; border: 0; background: var(--line-2); border-radius: 999px; padding: 4px 9px 4px 7px; cursor: pointer; color: var(--ink); font-size: 11.5px; }
.xchip .ico { width: 14px; height: 14px; color: var(--rock); } .xchip.hot .ico { color: var(--bad); } .xchip.on { background: var(--ink); color: var(--paper); } .xchip.on .ico { color: var(--paper); }
.sm-link { margin: 0 0 0 auto; font-size: 11.5px; }
.col-stack { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 12px; min-height: 0; }
.opl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; max-height: 240px; }
.opl a { display: flex; gap: 10px; align-items: center; padding: 6px; border-radius: 10px; text-decoration: none; color: var(--ink); } .opl a:hover { background: var(--bg); }
.opl b { display: block; font-size: 12.5px; } .opl small { color: var(--rock); font-size: 11px; }
.panel > h3 .ico, .fillp h3 .ico, .fcp h3 .ico, .opp h3 .ico { width: 16px; height: 16px; color: var(--accent); }

/* remplissage et conditions */
.op { display: flex; gap: 10px; align-items: center; padding: 8px; border-radius: 11px; background: var(--bg); margin-bottom: 6px; }
.op > .ico { width: 30px; height: 30px; padding: 6px; border-radius: 9px; background: var(--paper); color: var(--rock); flex: none; }
.op-merge { background: var(--accent-tint); } .op-merge > .ico { color: var(--accent-strong); }
.op b { display: block; font-size: 12.5px; } .op small { color: var(--rock); font-size: 11px; } .op .av { margin: 0; }
.fcs { display: flex; gap: 6px; flex-wrap: wrap; }
.fc { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 7px 9px; border-radius: 11px; background: var(--bg); min-width: 62px; font-size: 10.5px; }
.fc small { color: var(--rock); text-transform: capitalize; } .fc .ico { width: 20px; height: 20px; } .fc em { font-style: normal; color: var(--rock); }
.fc.al { background: var(--bad-tint); } .fc.al .ico { color: var(--bad); }
.fcp.al { box-shadow: 0 0 0 2px var(--bad-tint), var(--shadow); }
.opts .choice { padding-top: 9px; padding-bottom: 9px; }
.opt-fc { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; } .opt-fc b { font-size: 12px; display: block; margin-bottom: 4px; }
.prefill { background: var(--accent-tint); padding: 8px 10px; border-radius: 10px; font-size: 12px; display: flex; gap: 6px; align-items: center; margin: 0; } .prefill .ico { width: 15px; height: 15px; }
.merge-vis { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 10px; } .merge-vis > div { display: flex; flex-direction: column; align-items: center; gap: 4px; } .merge-vis > .ico { width: 26px; height: 26px; color: var(--accent); }

/* espace client */
.pay-box { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 18px; border-radius: 16px; background: var(--bg); }
.pay-box .ico { width: 30px; height: 30px; color: var(--accent); } .pay-box b { font-size: 26px; font-weight: 500; } .pay-box small { color: var(--rock); }
.sigpad { width: 100%; height: 150px; border: 1px dashed var(--line); border-radius: 12px; background: var(--bg); touch-action: none; cursor: crosshair; display: block; }
.sigpad.bad { border-color: var(--bad); }
.mono textarea { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; letter-spacing: .06em; font-size: 12px; }
.mrz-ok { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border-radius: 12px; background: var(--ok-tint); } .mrz-ok > .ico { width: 22px; height: 22px; flex: none; } .mrz-ok .kv { flex: 1; }

/* terrain : mode gants et plein soleil */
.f-top .icon-btn.on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.field-app.glove { --rock: #3A4250; font-size: 16px; }
.field-app.glove .btn { min-height: 54px; font-size: 16px; } .field-app.glove .tg { width: 58px; height: 58px; font-size: 22px; }
.field-app.glove .pc b { font-size: 17px; } .field-app.glove .fstep h3 { font-size: 17px; } .field-app.glove .bchk { padding: 16px; font-size: 16px; }
.field-app.glove .f-steps a { font-size: 12px; } .field-app.glove .f-steps i { width: 32px; height: 32px; font-size: 14px; }
@media (max-width: 1180px) { .cmdbtn { min-width: 0; } .cmdbtn span, .cmdbtn kbd { display: none; } }
@media (max-width: 860px) { .cmdbtn { padding: 7px; } .col-stack { display: flex; flex-direction: column; } .cover.thumb { display: none; } .thumbw { display: none; } }

/* ============ v1.3 — corrections visuelles ============ */
.top .top-brand { display: none; width: 26px; height: 22px; background: var(--ink); -webkit-mask: var(--mk) center / contain no-repeat; mask: var(--mk) center / contain no-repeat; flex: none; }
@media (max-width: 860px) { .top .top-brand { display: block; } }
.choice.on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); background: var(--accent-tint); }
.choice.danger.on { border-color: var(--bad); box-shadow: 0 0 0 1px var(--bad); background: var(--bad-tint); }
.plist li.sup-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 10px; align-items: start; }
.plist li.sup-row > .steps { margin-top: 5px; } .plist li.sup-row > .row-acts { grid-column: 2; justify-content: flex-start; }
.plist li.sup-row .grow b { display: block; } .plist li.sup-row small { display: block; }
.av-up { flex: none; display: block; } .av-up > .cam { position: absolute; right: -2px; bottom: -2px; width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: var(--paper); display: grid; place-items: center; border: 2px solid var(--bg); }
.av-up > span.av { position: static; }
.strip { margin-bottom: 4px; } .strip-l { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--rock); margin-bottom: 12px; }
.wk a span { display: flex; flex-direction: column; min-width: 0; } .wk a small { color: var(--rock); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ring .rg-bg { stroke-width: 6; } .ring .rg-v { stroke-width: 6; }
.xlist .x-detail { -webkit-line-clamp: 2; }
.lp-head .btn { width: 100%; }
.kv dd { overflow-wrap: anywhere; }
.chart .ax { font-size: 10.5px; }

/* ============ v1.4 — accès, espaces par rôle, équipe, calendrier des urgences ============ */
.login-mode .side, .login-mode .top, .login-mode .tabbar { display: none !important; }
.login-mode .app { grid-template-columns: 1fr; }
.screen-login { overflow: auto; }
.login { min-height: 100%; display: grid; grid-template-columns: minmax(360px, 520px) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.lg-card { background: var(--paper); border-radius: 22px; padding: 28px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 16px; }
.lg-head { display: flex; gap: 14px; align-items: center; } .lg-head h1 { font-size: 20px; font-weight: 600; } .lg-head p { margin: 2px 0 0; }
.lg-logo { width: 56px; height: 56px; object-fit: contain; flex: none; } .lg-logo.mk { background: var(--ink); -webkit-mask: var(--mk) center / contain no-repeat; mask: var(--mk) center / contain no-repeat; }
img.lg-logo.mono { filter: none; }
.lg-tabs { align-self: flex-start; } .lg-hint { margin: 0; color: var(--rock); }
.lg-people { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lg-p { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 18px 12px; border-radius: 16px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; text-align: center; transition: border-color .15s, transform .15s; }
.lg-p:hover { border-color: var(--accent); transform: translateY(-2px); } .lg-p b { font-size: 14px; } .lg-p small { color: var(--rock); font-size: 11.5px; }
.lg-list { display: flex; flex-direction: column; gap: 4px; max-height: 320px; overflow: auto; } .lg-list .lrow { border: 0; background: none; cursor: pointer; text-align: left; font: inherit; }
.lg-form { display: flex; flex-direction: column; gap: 10px; } .lg-demo { display: flex; flex-wrap: wrap; gap: 5px; }
.lg-sent { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; padding: 16px; border-radius: 16px; background: var(--bg); } .lg-sent > .ico { width: 34px; height: 34px; color: var(--accent); }
.lg-note { margin-top: auto; font-size: 11.5px; color: var(--rock); display: flex; gap: 6px; align-items: flex-start; } .lg-note .ico { width: 15px; height: 15px; flex: none; margin-top: 1px; }
.lg-lang { display: flex; gap: 5px; }
.lg-art { position: relative; border-radius: 22px; overflow: hidden; display: grid; grid-template-rows: 1fr 1fr; background: #15171B; }
.lg-art .cover { border-radius: 0; height: 100%; } .lg-art p { position: absolute; left: 28px; bottom: 60px; right: 28px; color: #fff; font-size: 26px; font-weight: 300; line-height: 1.25; margin: 0; text-shadow: 0 2px 12px rgba(0,0,0,.4); }
.lg-art img { position: absolute; left: 28px; bottom: 20px; width: 110px; }
img.mono, .brand img.mono { filter: brightness(0) invert(1); }
#uchip:empty { display: none; }
.uchip { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 12px; background: rgba(255,255,255,.06); color: #fff; }
.uchip b { display: block; font-size: 12.5px; } .uchip small { display: block; color: #8A92A0; font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 120px; }
.uchip .av { margin: 0; border-color: transparent; background: #2A2F36; color: #fff; } .uchip .icon-btn { background: transparent; border-color: rgba(255,255,255,.15); color: #fff; }
.side { gap: 14px; }
.av.xs { width: 22px; height: 22px; font-size: 9px; margin: 0; border-width: 0; }
.pole-sw .pole-in { display: inline-flex; align-items: center; gap: 6px; text-align: left; } .pole-sw .pole-in span { display: flex; flex-direction: column; line-height: 1.1; } .pole-sw .pole-in b { font-weight: 500; font-size: 12.5px; }
.pole-sw button { padding: 4px 12px 4px 6px; } .pole-sw button:first-child { padding-left: 12px; }
.role-guide .pole-sw, .role-guide #cmdBtn, .role-guide #setBtn, .role-client .pole-sw, .role-client #cmdBtn, .role-client #setBtn, .role-client #refBtn { display: none !important; }
.role-guide [data-act="guideEdit"] { display: none; }
.me-wrap { display: flex; flex-direction: column; gap: 12px; overflow: auto; min-height: 0; flex: 1; }
.me-wrap > .back { display: none; }
.sec-t { font-size: 18px; font-weight: 500; }
.mine { max-width: 1040px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; overflow: auto; min-height: 0; flex: 1; } .mine-h h2 { font-size: 26px; font-weight: 300; }
/* calendrier des urgences */
#datePop { position: fixed; z-index: 70; width: 328px; background: var(--paper); border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.22); padding: 14px; animation: rise .15s ease-out; border: 1px solid var(--line); }
.dp-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; } .dp-h b { font-weight: 600; text-transform: capitalize; }
.dp-g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; } .dp-g i { font-style: normal; text-align: center; font-size: 10.5px; color: var(--rock); text-transform: uppercase; }
.dp-d { aspect-ratio: 1; border: 0; border-radius: 10px; background: none; cursor: pointer; font: 500 12.5px var(--f); color: var(--ink); position: relative; }
.dp-d:hover { background: var(--line-2); }
.dp-d.lv-red { background: #FEE4E2; color: #B42318; } .dp-d.lv-yellow { background: #FEF3C7; color: #92400E; } .dp-d.lv-green { background: #DCFCE7; color: #166534; }
:root[data-theme="dark"] .dp-d.lv-red { background: #4A1D1A; color: #FFB4AB; } :root[data-theme="dark"] .dp-d.lv-yellow { background: #3F3313; color: #F8D57E; } :root[data-theme="dark"] .dp-d.lv-green { background: #173A26; color: #9EE6B8; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .dp-d.lv-red { background: #4A1D1A; color: #FFB4AB; } :root:not([data-theme="light"]) .dp-d.lv-yellow { background: #3F3313; color: #F8D57E; } :root:not([data-theme="light"]) .dp-d.lv-green { background: #173A26; color: #9EE6B8; } }
.dp-d.ref { box-shadow: inset 0 0 0 2px var(--ink); font-weight: 700; } .dp-d.sel { box-shadow: inset 0 0 0 2px var(--accent); }
.dp-d.real::after { content: ""; position: absolute; left: 50%; bottom: 4px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--accent); }
.dp-lg { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--rock); margin: 10px 0 4px; flex-wrap: wrap; }
.dp-lg span, .dp-sel li > i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; flex: none; }
.dp-lg .lv-red, .dp-sel .lv-red { background: #F04438; } .dp-lg .lv-yellow, .dp-sel .lv-yellow { background: #F5A524; } .dp-lg .lv-green, .dp-sel .lv-green { background: #22A55A; }
.dp-lg span + * { margin-right: 6px; }
.dp-sel { border-top: 1px solid var(--line-2); margin-top: 8px; padding-top: 10px; } .dp-sel > b { display: block; text-transform: capitalize; font-size: 12.5px; margin-bottom: 6px; }
.dp-sel ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; max-height: 190px; overflow: auto; }
.dp-sel li { display: flex; gap: 8px; align-items: center; font-size: 12px; } .dp-sel li a { color: var(--ink); text-decoration: none; } .dp-sel li a:hover { text-decoration: underline; }
.dp-help { margin: 8px 0 0; }
/* réglages : agence */
.ag-set { display: grid; grid-template-columns: 180px 1fr; gap: 14px; grid-column: 1 / -1; }
.ag-logo { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.ag-prev { width: 180px; height: 100px; border-radius: 14px; background: #15171B; display: grid; place-items: center; } .ag-prev img { max-width: 70%; max-height: 70%; }
.ag-team { display: flex; gap: 14px; flex-wrap: wrap; }
.ag-m { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; width: 150px; padding: 12px; border-radius: 14px; background: var(--bg); } .ag-m b { font-size: 12.5px; } .ag-m small { color: var(--rock); font-size: 11px; }
@media (max-width: 860px) { .login { grid-template-columns: 1fr; } .lg-art { display: none; } .ag-set { grid-template-columns: 1fr; } #datePop { left: 8px !important; right: 8px; width: auto; } }

/* ============ v1.5 — accès, espace guide, espace client ============ */
img.ink { filter: brightness(0); }
:root[data-theme="dark"] img.ink { filter: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) img.ink { filter: none; } }
.lgo { width: 44px; height: 44px; object-fit: contain; flex: none; } .lgo.white { filter: brightness(0) invert(1); }
.top .top-brand { background: none; -webkit-mask: none; mask: none; width: 26px; height: 26px; object-fit: contain; }
.av.xxl { width: 64px; height: 64px; font-size: 20px; margin: 0; } .av.hero { width: 96px; height: 96px; font-size: 30px; margin: 0; border: 3px solid rgba(255,255,255,.9); }
.gx-ov { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,22,.15) 0%, rgba(10,14,22,.35) 45%, rgba(10,14,22,.82) 100%); }
.gx-pill { background: rgba(255,255,255,.92); color: #1B1F24; }
.fcs.light .fc { background: rgba(255,255,255,.14); color: #fff; backdrop-filter: blur(6px); } .fcs.light .fc small, .fcs.light .fc em { color: rgba(255,255,255,.8); }
.wd.light { color: #FFB27F; }
/* accès */
.screen-login { padding: 0 !important; overflow: auto; }
.login-mode #view { padding: 0 !important; }
.login2 { min-height: 100%; height: 100%; display: grid; grid-template-columns: minmax(380px, 460px) minmax(0, 1fr); background: var(--paper); }
.lg-side { display: flex; flex-direction: column; padding: 36px 40px; gap: 24px; overflow: auto; }
.lg-brand { display: flex; align-items: center; gap: 12px; } .lg-brand h1 { font-size: 17px; font-weight: 600; } .lg-brand p { margin: 0; color: var(--rock); font-size: 12.5px; }
.lg-main { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 16px; }
.lg-main h2 { font-size: 30px; font-weight: 300; letter-spacing: -.02em; }
.seg3 { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--bg); border-radius: 14px; padding: 4px; gap: 4px; }
.seg3 button { border: 0; background: none; padding: 9px; border-radius: 10px; font: 500 13px var(--f); color: var(--rock); cursor: pointer; }
.seg3 button[aria-selected="true"] { background: var(--paper); color: var(--ink); box-shadow: 0 1px 3px rgba(16,24,40,.12); }
.lg-hint { margin: 0; color: var(--rock); font-size: 13px; }
.lg-people, .lg-guides { display: flex; flex-direction: column; gap: 8px; }
.lg-guides { max-height: 330px; overflow: auto; }
.lg-p, .lg-g { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; text-align: left; font: inherit; color: var(--ink); transition: border-color .15s, box-shadow .15s, transform .15s; }
.lg-p:hover, .lg-g:hover { border-color: var(--accent); box-shadow: 0 6px 20px rgba(16,24,40,.08); transform: translateY(-1px); }
.lg-p > span, .lg-g > span { flex: 1; display: flex; flex-direction: column; } .lg-p b, .lg-g b { font-size: 14.5px; font-weight: 600; } .lg-p small, .lg-g small { color: var(--rock); font-size: 12px; }
.lg-g .av { margin: 0; }
.go { width: 30px; height: 30px; border-radius: 50%; background: var(--bg); display: grid; place-items: center; color: var(--rock); } .go .ico { width: 12px; height: 12px; }
.lg-p:hover .go, .lg-g:hover .go { background: var(--accent); color: #fff; }
.lg-foot { display: flex; flex-direction: column; gap: 10px; } .lg-foot p { margin: 0; font-size: 11.5px; color: var(--rock); display: flex; gap: 6px; } .lg-foot .ico { width: 14px; height: 14px; flex: none; }
.lg-photo { position: relative; background-size: cover; background-position: center 40%; }
.lg-photo .gx-ov, .lg-photo > .lg-ov { position: absolute; inset: 0; background: linear-gradient(200deg, rgba(10,14,22,0) 30%, rgba(10,14,22,.7) 100%); }
.lg-mao { position: absolute; top: 28px; right: 32px; width: 120px; }
.lg-claim { position: absolute; left: 40px; right: 40px; bottom: 40px; color: #fff; }
.lg-claim p { font-size: clamp(26px, 3vw, 40px); font-weight: 300; line-height: 1.15; letter-spacing: -.02em; margin: 0 0 8px; max-width: 620px; } .lg-claim span { font-size: 13px; opacity: .8; }
/* espace guide */
.gspace { display: flex; flex-direction: column; gap: 16px; overflow: auto; min-height: 0; flex: 1; }
.gs-h { display: flex; align-items: center; gap: 16px; } .gs-h h1 { font-size: 30px; font-weight: 300; letter-spacing: -.02em; } .gs-h p { margin: 0; } .gs-h .wd { color: var(--accent-strong); }
.gs-h.compact h1 { font-size: 24px; }
.gs-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); gap: 16px; min-height: 0; }
.gx-next { position: relative; min-height: 380px; border-radius: 22px; overflow: hidden; background: #1B2430 var(--ph) center / cover no-repeat; color: #fff; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; box-shadow: 0 10px 30px rgba(16,24,40,.12); }
.gx-next > * { position: relative; }
.gx-top { display: flex; justify-content: space-between; align-items: center; }
.gx-body h2 { font-size: 32px; font-weight: 500; letter-spacing: -.02em; margin: 2px 0 6px; } .gx-body p { color: rgba(255,255,255,.85); margin: 0 0 10px; }
.gx-k { text-transform: uppercase; letter-spacing: .1em; font-size: 11px !important; color: #FFB27F !important; }
.gx-people { display: flex; align-items: center; margin-bottom: 12px; } .gx-people .av { border-color: rgba(255,255,255,.9); background: rgba(255,255,255,.18); color: #fff; } .gx-people small { margin-left: 14px; color: rgba(255,255,255,.85); }
.gx-body .row-acts .btn { width: auto; min-width: 220px; }
.gs-side { display: flex; flex-direction: column; gap: 16px; }
.gs-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .gs-kpis .kpi { background: var(--paper); border-radius: 14px; padding: 12px 14px; box-shadow: var(--shadow); } .gs-kpis .kpi b { font-size: 18px; }
.tl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; } .tl li { display: flex; gap: 10px; align-items: center; } .tl b { display: block; font-size: 13px; } .tl small { color: var(--rock); }
.me-hero { position: relative; border-radius: 22px; overflow: hidden; background: #1B2430 var(--ph) center 35% / cover no-repeat; color: #fff; padding: 28px; display: flex; align-items: flex-end; gap: 20px; min-height: 200px; }
.me-hero > *:not(.gx-ov) { position: relative; } .me-hero h1 { font-size: 30px; font-weight: 500; } .me-hero p { margin: 2px 0 8px; color: rgba(255,255,255,.85); }
.me-langs { display: flex; gap: 8px; } .me-langs span { background: rgba(255,255,255,.16); padding: 3px 10px; border-radius: 999px; font-size: 12px; }
.av-up.big > .cam { width: 30px; height: 30px; }
.me-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .me-grid .wide { grid-column: 1 / -1; }
.skill-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.st { display: flex; flex-direction: column; gap: 8px; padding: 14px; border-radius: 14px; background: var(--bg); } .st .ico { width: 22px; height: 22px; color: var(--accent); } .st b { font-size: 12.5px; font-weight: 500; }
.val { display: flex; align-items: center; gap: 14px; padding: 8px 0; } .val .ring { min-width: 0; } .val .ring .rg, .val .ring svg { width: 52px; height: 52px; } .val .ring figcaption { display: none; } .val .ring .rg b { display: none; }
.val small { display: block; color: var(--rock); font-size: 11.5px; } .val b { display: block; font-size: 15px; font-weight: 500; } .val span { font-size: 12px; }
.val-r.warn .rg-v { stroke: var(--warn); } .val-r.bad .rg-v { stroke: var(--bad); }
.trips { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; align-content: start; }
.trip { display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; background: var(--paper); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); transition: transform .15s, box-shadow .15s; }
a.trip:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(16,24,40,.12); } .trip.past { opacity: .7; }
.trip-ph { height: 150px; background: #1B2430 center / cover no-repeat; position: relative; } .trip-ph .pill { position: absolute; left: 12px; top: 12px; }
.trip-b { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 10px; }
.with { display: flex; align-items: center; gap: 8px; margin: 0; } .with .av { margin-right: -4px; } .with .ico { width: 14px; height: 14px; }
/* espace client */
.cspace { display: flex; flex-direction: column; gap: 18px; overflow: auto; min-height: 0; flex: 1; max-width: 1180px; width: 100%; margin: 0 auto; }
.cs-hero, .ph-hero { position: relative; border-radius: 24px; overflow: hidden; background: #1B2430 var(--ph) center 40% / cover no-repeat; color: #fff; padding: 22px 26px; min-height: 260px; display: flex; flex-direction: column; justify-content: space-between; }
.cs-hero > *:not(.gx-ov), .ph-hero > *:not(.gx-ov) { position: relative; }
.cs-top { display: flex; justify-content: space-between; align-items: center; }
.cs-body h1 { font-size: 40px; font-weight: 300; letter-spacing: -.02em; margin: 0; } .cs-next { color: rgba(255,255,255,.88); margin: 4px 0 0; }
.cs-count { position: absolute; right: 0; bottom: 0; text-align: right; } .cs-count b { display: block; font-size: 54px; font-weight: 300; line-height: 1; } .cs-count span { font-size: 12px; opacity: .85; }
.cs-rings { display: flex; gap: 16px; } .cs-rings .ring { min-width: 0; } .cs-rings .rg, .cs-rings svg { width: 58px !important; height: 58px !important; }
.cs-act { display: flex; gap: 8px; align-items: center; margin: 0; padding: 10px 12px; border-radius: 12px; background: var(--bg); font-size: 12.5px; font-weight: 500; } .cs-act .ico { width: 16px; height: 16px; } .cs-act.bad { background: var(--bad-tint); color: var(--bad); }
.portal { max-width: 860px; gap: 16px; }
.ph-steps { list-style: none; margin: 0; padding: 14px 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; background: var(--paper); border-radius: 18px; box-shadow: var(--shadow); }
.ph-steps li { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--rock); position: relative; }
.ph-steps i { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--line-2); font-style: normal; font-weight: 600; font-size: 11.5px; flex: none; }
.ph-steps .done i { background: var(--ink); color: var(--paper); } .ph-steps .cur i { background: var(--accent); color: #fff; box-shadow: 0 0 0 4px var(--accent-soft); } .ph-steps .cur { color: var(--ink); font-weight: 600; }
.ph-info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ph-i { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--paper); border-radius: 16px; box-shadow: var(--shadow); }
.ph-i > .ico { width: 20px; height: 20px; color: var(--accent); flex: none; } .ph-i .av { margin-right: -4px; }
.ph-i small { display: block; color: var(--rock); font-size: 11px; } .ph-i b { font-size: 13px; font-weight: 600; }
.portal .fcs.light .fc { background: var(--paper); color: var(--ink); box-shadow: var(--shadow); } .portal .fcs.light .fc small, .portal .fcs.light .fc em { color: var(--rock); }
.role-client #view, .role-guide #view { padding-top: 8px; }
@media (max-width: 1080px) { .gs-grid, .me-grid { grid-template-columns: 1fr; } }
@media (max-width: 860px) {
  .login2 { grid-template-columns: 1fr; } .lg-photo { display: none; } .lg-side { padding: 24px 20px; }
  .cs-body h1 { font-size: 30px; } .cs-count b { font-size: 38px; } .ph-info { grid-template-columns: 1fr; } .ph-steps { grid-template-columns: repeat(2, 1fr); }
  .gx-next { min-height: 340px; } .gx-body h2 { font-size: 26px; }
}
.lg-p, .lg-g { flex-direction: row; text-align: left; align-items: center; }
.lg-p .av.xxl { width: 56px; height: 56px; font-size: 18px; }
.gs-h .wd, .wd.light { text-transform: none; }
.fcs.light .fc { background: rgba(10,14,22,.45); min-width: 70px; } .fcs.light .fc .ico { color: #fff; }
.lg-p > span.av, .lg-g > span.av, .lg-p > img.av, .lg-g > img.av { flex: none; display: inline-grid; place-items: center; flex-direction: initial; }
.lg-p > span.av { width: 52px; height: 52px; font-size: 17px; }

/* ============ v1.6 — messages, à faire, programme, guide ; corrections mobile ============ */
.chat-pane { display: flex; flex-direction: column; gap: 12px; min-height: 0; flex: 1; height: 100%; }
.chat-pane.solo { max-width: 820px; width: 100%; margin: 0 auto; }
.chat { flex: 1; min-height: 320px; display: flex; flex-direction: column; background: var(--paper); border-radius: var(--r); box-shadow: var(--shadow); overflow: hidden; }
.ch-list { list-style: none; margin: 0; padding: 16px; flex: 1; overflow: auto; display: flex; flex-direction: column; gap: 10px; }
.ch-day { align-self: center; font-size: 11px; color: var(--rock); background: var(--bg); padding: 3px 10px; border-radius: 999px; text-transform: capitalize; }
.bub { display: flex; gap: 8px; align-items: flex-end; max-width: 78%; } .bub > div { background: var(--bg); padding: 9px 12px; border-radius: 16px 16px 16px 4px; }
.bub p { margin: 0; font-size: 13.5px; white-space: pre-wrap; } .bub small { display: block; color: var(--rock); font-size: 10.5px; margin-top: 3px; }
.bub.me { align-self: flex-end; } .bub.me > div { background: var(--accent-tint); border-radius: 16px 16px 4px 16px; }
.ch-empty { color: var(--rock); text-align: center; margin: auto; }
.ch-form { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--line-2); align-items: flex-end; } .ch-form textarea { min-height: 42px; max-height: 140px; resize: none; }
.todo { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.todo a { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 16px; background: var(--paper); box-shadow: var(--shadow); text-decoration: none; color: var(--ink); border-left: 4px solid var(--line); }
.todo a.lv-red { border-left-color: #F04438; } .todo a.lv-yellow { border-left-color: #F5A524; } .todo a.lv-green { border-left-color: #22A55A; }
.todo a > .ico { width: 22px; height: 22px; color: var(--rock); } .todo b { display: block; font-size: 14px; } .todo small { color: var(--rock); }
.io { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 12px; } .bl { margin: 0; padding-left: 18px; font-size: 13px; } .bl li { margin: 3px 0; }
.gear { list-style: none; margin: 0 0 8px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pend { box-shadow: 0 0 0 2px #FDE68A, var(--shadow); } .pend .op { background: var(--bg); } .pend .op .btn { flex: none; }
.panel > h3 .bar { max-width: 120px; }
@media (max-width: 860px) {
  /* corrections mobile vérifiées à 390 px */
  .g-grid { grid-template-columns: minmax(0, 1fr) !important; } .kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .field-app .f-bar { position: fixed; left: 10px; right: 10px; bottom: calc(var(--tab) + 22px + env(safe-area-inset-bottom, 0px)); z-index: 31; border-radius: 18px; box-shadow: 0 10px 30px rgba(16,24,40,.18); border: 1px solid var(--line); }
  .field-app .f-body { padding-bottom: 90px; }
  .cs-count { position: static; text-align: left; margin-top: 10px; display: flex; align-items: baseline; gap: 8px; } .cs-count b { font-size: 34px; }
  .gx-next .fcs { display: none; } .gx-body h2 { font-size: 24px; }
  input, select, textarea { font-size: 16px !important; }
  .btn { min-height: 42px; } .btn.sm { min-height: 36px; } .icon-btn { width: 40px; height: 40px; }
  .cal-wrap .cal-t, .screen-calendar .legend { display: none; } .cal-wrap { display: block; }
  .rings.sm { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; gap: 4px; } .rings.sm .ring .rg, .rings.sm .ring svg { width: 58px; height: 58px; } .rings.sm .ring figcaption { font-size: 10px; }
  .login2 { min-height: 100dvh; height: auto; } .screen-login { height: auto; }
  .screen-departures.has-id .page-head .head-acts, .screen-clients.has-id .page-head .head-acts { position: fixed; left: 10px; right: 10px; bottom: calc(var(--tab) + 22px + env(safe-area-inset-bottom, 0px)); z-index: 29; background: var(--paper); padding: 8px; border-radius: 16px; box-shadow: 0 10px 30px rgba(16,24,40,.18); flex-wrap: nowrap; overflow-x: auto; }
  .screen-departures.has-id .page-head .head-acts .pill { display: none; }
  .screen-departures.has-id #view, .screen.has-id { padding-bottom: 80px; }
  .io, .gear { grid-template-columns: 1fr; } .bub { max-width: 90%; }
  .chat { min-height: 60vh; }
  .tabbar .nav-i span { font-size: 10px; }
}
.gx-next .gx-ov { background: linear-gradient(180deg, rgba(10,14,22,.25) 0%, rgba(10,14,22,.55) 40%, rgba(10,14,22,.88) 100%); }
.gx-body h2, .gx-body p, .cs-body h1, .cs-next, .ph-hero h1 { text-shadow: 0 1px 12px rgba(0,0,0,.35); }

/* ============ v1.7 : capofila, une étape à la fois, décision de la veille, invitations, programme, après la sortie ============ */
.fday .fstep { display: none; } .fday .fstep.show { display: block; animation: fsin .18s ease-out; }
@keyframes fsin { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.f-steps .show a { font-weight: 700; } .f-steps .show i { outline: 2px solid var(--ink); outline-offset: 2px; }
.f-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; padding: 10px 14px; border-top: 1px solid var(--line-2); background: var(--paper); }
.f-nav .btn { justify-content: center; } .f-nav .btn:disabled { opacity: .35; } .f-pos { font-size: 12px; color: var(--rock); font-weight: 600; min-width: 44px; text-align: center; }
.nolead-b, .invited-b { display: flex; gap: 10px; align-items: flex-start; margin: 10px 14px 0; padding: 10px 12px; border-radius: 12px; background: var(--accent-tint); color: var(--ink); font-size: 13px; line-height: 1.4; }
.invited-b { margin: 0; } .nolead-b .ico, .invited-b .ico { width: 18px; height: 18px; flex: none; color: var(--accent-strong); margin-top: 1px; }
.fday.nolead [data-act="check"], .fday.nolead [data-act="attend"], .fday.nolead [data-act="brief"], .fday.nolead [data-act="fStart"], .fday.nolead [data-act="fEnd"], .fday.nolead [data-act="debrief"], .fday.nolead [data-act="signHere"], .fday.nolead [data-act="kitAuto"] { display: none !important; }
.cal td.avl { background: color-mix(in srgb, var(--accent) 12%, transparent); }
.lg-avl { display: inline-block; width: 14px; height: 14px; border-radius: 4px; vertical-align: -2px; background: color-mix(in srgb, var(--accent) 22%, transparent); }
.daydec { display: flex; gap: 12px; align-items: center; padding: 12px 16px; border-radius: 16px; background: var(--paper); box-shadow: var(--shadow); border-left: 5px solid var(--ok); }
.daydec .ico { width: 26px; height: 26px; flex: none; } .daydec b { display: block; font-size: 15px; } .daydec small { color: var(--rock); }
.daydec.dd-go { border-left-color: #1E9E5A; } .daydec.dd-go .ico { color: #1E9E5A; }
.daydec.dd-planB, .daydec.dd-postpone { border-left-color: var(--warn); } .daydec.dd-planB .ico, .daydec.dd-postpone .ico { color: var(--warn); }
.daydec.dd-abort { border-left-color: var(--bad); } .daydec.dd-abort .ico { color: var(--bad); }
.cspace > .daydec { margin: 14px 0 0; }
.itin { list-style: none; margin: 6px 0 8px; padding: 0; display: grid; gap: 10px; }
.itin li { display: flex; gap: 12px; align-items: flex-start; } .itin i { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: 12px; background: var(--accent); color: #fff; }
.itin b { font-size: 13px; } .itin p { margin: 2px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--ink); }
.plist li small + small { display: block; }
.panel.hide { display: none; }
.afters { margin-top: 26px; } .afters > h2 { font-size: 18px; font-weight: 600; margin: 0 0 12px; }
.afters { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; } .afters > h2 { grid-column: 1 / -1; }
.after { border-radius: 20px; overflow: hidden; background: var(--paper); box-shadow: var(--shadow); display: flex; flex-direction: column; }
.af-h { position: relative; min-height: 130px; padding: 14px 16px; display: flex; align-items: flex-end; color: #fff; background: #1B2430 var(--ph) center / cover no-repeat; }
.af-h > div:not(.gx-ov) { position: relative; } .af-h h3 { margin: 6px 0 0; font-size: 18px; font-weight: 600; } .af-h small { color: rgba(255,255,255,.85); }
.af-b { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; } .af-b > p { margin: 0; } .af-b h4 { margin: 8px 0 0; font-size: 13px; }
.stars { font-size: 20px; color: var(--accent); letter-spacing: 2px; } .stars span { color: var(--line); }
.nxs { display: grid; gap: 8px; } .nx { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; background: var(--bg); } .nx b { display: block; font-size: 14px; } .nx small { color: var(--rock); }
.nx .btn { flex: none; }
.stars5 { display: grid; grid-template-columns: 1fr; gap: 6px; } .stars5 .c-l { color: var(--accent); letter-spacing: 2px; font-size: 18px; }
@media (max-width: 860px) {
  .field-app .f-nav { position: fixed; left: 10px; right: 10px; bottom: calc(var(--tab) + 92px + env(safe-area-inset-bottom, 0px)); z-index: 30; border-radius: 16px; box-shadow: 0 8px 24px rgba(16,24,40,.14); border: 1px solid var(--line); padding: 8px 10px; }
  .field-app .f-body { padding-bottom: 170px; }
  .afters { grid-template-columns: minmax(0, 1fr); }
  .nx { flex-wrap: wrap; } .nx .btn { width: 100%; }
}

/* ============ v1.8 : espaces guide et client premium ============ */
.px { max-width: 1180px; margin: 0 auto; width: 100%; display: flex; flex-direction: column; gap: 16px; padding-bottom: 24px; }
.px h1, .px h2 { letter-spacing: -.01em; }
.px-hello { display: flex; align-items: center; gap: 14px; }
.px-hello h1 { margin: 0; font-size: 28px; font-weight: 500; line-height: 1.1; } .px-hello .wd { margin: 0; color: var(--accent-strong); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; } .px-hello .muted { margin: 2px 0 0; font-size: 13px; }
.px-hello .lgo { height: 34px; width: auto; opacity: .9; }
.px-hello .av.xl { width: 58px; height: 58px; font-size: 19px; border: 0; box-shadow: 0 0 0 3px var(--paper), 0 0 0 5px var(--accent-soft); }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--paper); color: var(--ink); box-shadow: var(--shadow); white-space: nowrap; }
.chip.on { background: var(--accent); color: #fff; }
.px-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.px-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.px .panel { margin: 0; border-radius: 20px; }
.px .panel > h3 { display: flex; align-items: center; gap: 8px; } .px .panel > h3 .ico { width: 18px; height: 18px; color: var(--accent-strong); }

/* affiches */
.pstr { position: relative; overflow: hidden; background: #1B2430 center / cover no-repeat; }
.pstr svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.pstr.bg { position: absolute; inset: 0; }
.pstr.thumb { width: 64px; height: 64px; border-radius: 16px; flex: none; }
.pstr-alt { position: absolute; right: 14px; top: 50%; transform: translateY(-80%); font-size: 11px; font-weight: 600; letter-spacing: .08em; color: rgba(255,255,255,.75); }
.pstr.thumb .pstr-alt { display: none; }

/* carte immersive */
.px-card { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 300px; border-radius: 26px; overflow: hidden; color: #fff; text-decoration: none; box-shadow: 0 18px 40px -18px rgba(16,24,40,.55); isolation: isolate; }
.px-card.big { min-height: 380px; } .px-card.hero { min-height: 260px; } .px-card.empty { min-height: 220px; }
.px-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,12,24,.05) 0%, rgba(8,12,24,.12) 35%, rgba(8,12,24,.78) 100%); z-index: 0; }
.px-top, .px-body { position: relative; z-index: 1; }
.px-top { display: flex; align-items: center; gap: 8px; padding: 16px 18px 0; flex-wrap: wrap; }
.px-top .pill { background: rgba(255,255,255,.2); color: #fff; backdrop-filter: blur(8px); } .px-top .pill.ok { background: #fff; color: #1B1F24; } .px-top .pill.ok::before { content: none; }
.px-top .act-ic { margin-left: auto; background: rgba(255,255,255,.18); color: #fff; } .px-top .lgo { height: 30px; filter: brightness(0) invert(1); }
.px-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; }
.px-k { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.px-body h1, .px-body h2 { margin: 0; font-size: 30px; font-weight: 500; line-height: 1.08; text-shadow: 0 2px 14px rgba(0,0,0,.3); }
.px-card.big .px-body h2 { font-size: 34px; }
.px-sub { margin: 0; color: rgba(255,255,255,.88); font-size: 13.5px; }
.px-people { display: flex; align-items: center; margin-top: 6px; } .px-people .av { background: rgba(255,255,255,.92); color: #1B1F24; border-color: transparent; box-shadow: 0 0 0 2px rgba(8,12,24,.35); }
.px-people small { margin-left: 12px; color: rgba(255,255,255,.85); font-size: 12.5px; }
.px-meters { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.px-meters > span { display: grid; grid-template-columns: auto auto; column-gap: 7px; align-items: center; padding: 8px 12px; border-radius: 14px; background: rgba(255,255,255,.14); backdrop-filter: blur(10px); }
.px-meters .ico { width: 16px; height: 16px; grid-row: span 2; } .px-meters b { font-size: 15px; font-weight: 600; line-height: 1; } .px-meters small { font-size: 10.5px; color: rgba(255,255,255,.75); }
.px-meters .warn { box-shadow: inset 0 0 0 1.5px #FBBF24; } .px-meters .warn .ico { color: #FBBF24; }
.px-body .row-acts { margin-top: 12px; gap: 8px; } .px-body .fcs { margin-top: 8px; }
.btn.light { background: rgba(255,255,255,.16); color: #fff; border-color: rgba(255,255,255,.35); backdrop-filter: blur(8px); } .btn.light:hover { background: rgba(255,255,255,.26); }
.px-count { display: flex; align-items: baseline; gap: 8px; margin-top: 8px; } .px-count b { font-size: 54px; font-weight: 300; line-height: .9; } .px-count span { font-size: 13px; color: rgba(255,255,255,.85); }
.px-card .chip { background: rgba(255,255,255,.92); box-shadow: none; }

/* semaine */
.px-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; background: var(--paper); padding: 8px; border-radius: 20px; box-shadow: var(--shadow); }
.wd { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 0 7px; border-radius: 14px; color: var(--rock); text-decoration: none; }
.wd small { font-size: 10.5px; text-transform: capitalize; } .wd b { font-size: 17px; font-weight: 600; color: var(--ink); }
.wd.now { background: var(--ink); } .wd.now small, .wd.now b { color: var(--paper); }
.wd.on:not(.now):hover { background: var(--bg); }
.wd-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); } .wd-dot.none { background: transparent; }
.wd-dot.a-ski, .wd-dot.a-offpiste, .wd-dot.a-heliski, .wd-dot.a-skitrip { background: #3C8FCC; } .wd-dot.a-expedition { background: #6D5BD0; }

/* à faire */
.ptodo { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pt { border-radius: 16px; background: var(--bg); overflow: hidden; }
.pt > a, .pt > div:first-child { display: flex; align-items: center; gap: 12px; padding: 12px 14px; color: var(--ink); text-decoration: none; }
.pt b { display: block; font-size: 13.5px; font-weight: 600; } .pt small { color: var(--rock); font-size: 12px; }
.pt-ic { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; flex: none; background: var(--paper); } .pt-ic .ico { width: 18px; height: 18px; }
.pt.lv-red .pt-ic, .nact.lv-red .pt-ic { background: var(--bad-tint); color: var(--bad); } .pt.lv-yellow .pt-ic, .nact.lv-yellow .pt-ic { background: var(--warn-tint); color: var(--warn); } .pt.lv-green .pt-ic, .nact.lv-green .pt-ic { background: var(--accent-tint); color: var(--accent-strong); }
.pt-a { display: flex; gap: 8px; padding: 0 14px 12px 62px; }
.pt .go, .mt .go { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--paper); flex: none; } .pt .go .ico, .mt .go .ico { width: 12px; height: 12px; }

/* chiffres */
.px-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.px-stats > * { background: var(--paper); border-radius: 18px; padding: 14px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 4px; color: var(--ink); text-decoration: none; }
.px-stats small { color: var(--rock); font-size: 11.5px; line-height: 1.25; } .px-stats b { font-size: 24px; font-weight: 500; line-height: 1; }

/* listes de sorties */
.px-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .px-h h1 { margin: 0; font-size: 26px; font-weight: 500; }
.seg3.sm { grid-template-columns: repeat(2, auto); } .seg3.sm button { padding: 7px 14px; } .seg3 button b { font-weight: 600; margin-left: 4px; color: var(--accent-strong); }
.px-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.mt { display: flex; align-items: center; gap: 14px; padding: 10px; border-radius: 20px; color: var(--ink); text-decoration: none; background: var(--bg); transition: transform .15s; }
.px-list.big .mt { background: var(--paper); box-shadow: var(--shadow); } .px-list.big .pstr.thumb { width: 84px; height: 84px; border-radius: 18px; }
.mt:hover { transform: translateY(-1px); }
.mt b { display: block; font-size: 15px; font-weight: 600; } .mt small { color: var(--rock); font-size: 12.5px; }
.mt-p { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 6px; } .mt-p .bar { width: 90px; }

/* fiche sortie */
.px-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.px-facts.in { margin-bottom: 12px; }
.fact { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 18px; background: var(--paper); box-shadow: var(--shadow); color: var(--ink); text-decoration: none; }
.px-facts.in .fact { background: var(--bg); box-shadow: none; }
.fact > .ico { width: 20px; height: 20px; color: var(--accent-strong); flex: none; margin-top: 2px; }
.fact small { display: block; color: var(--rock); font-size: 11.5px; } .fact b { display: block; font-size: 14px; font-weight: 600; line-height: 1.3; } .fact em { font-style: normal; font-size: 12px; color: var(--accent-strong); font-weight: 600; }
.pps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.pp { display: flex; align-items: center; gap: 12px; padding: 10px 4px; border-bottom: 1px solid var(--line-2); } .pp:last-child { border-bottom: 0; }
.pp .av.lg { margin: 0; } .pp .av .ico { width: 18px; height: 18px; }
.pp b { display: block; font-size: 14px; font-weight: 600; } .pp small { display: block; color: var(--rock); font-size: 12px; }
.pp-m { display: flex; align-items: center; gap: 8px; margin-top: 5px; flex-wrap: wrap; } .pp-m .bar { width: 110px; } .pp-m em { font-style: normal; font-size: 12px; color: var(--rock); } .pp-m .link { margin: 0; font-size: 12px; }
.pp-a { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.icon-btn.bad { color: var(--bad); background: var(--bad-tint); }
.lf { display: inline-flex; gap: 3px; margin-right: 8px; font-size: 11.5px; font-weight: 600; }
.bl.two { columns: 2; column-gap: 24px; } .bl.two li { break-inside: avoid; }
.bar.warn i { background: var(--warn); }

/* client */
.rdy { display: flex; gap: 18px; align-items: center; }
.rdy .ring.big { min-width: 0; } .rdy .ring.big .rg, .rdy .ring.big svg { width: 108px; height: 108px; } .rdy .ring.big .rg b { font-size: 26px; }
.rdy .ring .rg-v { stroke: var(--accent); }
.rdy > .grow > b { font-size: 18px; font-weight: 600; }
.rdy-l { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.rdy-l a { display: grid; grid-template-columns: 18px 76px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 5px 0; color: var(--ink); text-decoration: none; font-size: 13px; }
.rdy-l .ico { width: 16px; height: 16px; color: var(--rock); } .rdy-l em { font-style: normal; font-size: 12px; color: var(--rock); white-space: nowrap; }
.nact { display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: 22px; background: var(--paper); box-shadow: var(--shadow); }
.nact small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--rock); font-weight: 600; } .nact b { display: block; font-size: 15px; font-weight: 600; } .nact em { font-style: normal; font-size: 12.5px; color: var(--rock); }
.nact .pt-ic { width: 44px; height: 44px; border-radius: 14px; background: var(--bg); } .nact.lv-ok .pt-ic { background: #DCF5E7; color: #1E7A48; }
.nact .btn { flex: none; }
.gcard { display: flex; gap: 14px; align-items: center; padding: 8px 0; } .gcard .av.xl { margin: 0; width: 64px; height: 64px; font-size: 20px; border: 0; }
.gcard b { display: block; font-size: 16px; font-weight: 600; } .gcard small { display: block; color: var(--rock); font-size: 12.5px; } .gc-l { display: block; margin: 4px 0; }
.meetc { display: flex; align-items: center; gap: 14px; color: var(--ink); text-decoration: none; }
.meetc .sq-ic { width: 44px; height: 44px; border-radius: 14px; background: var(--accent-tint); color: var(--accent-strong); } .meetc .sq-ic .ico { width: 20px; height: 20px; }
.meetc small { display: block; color: var(--rock); font-size: 11.5px; } .meetc b { display: block; font-size: 14.5px; } .meetc em { font-style: normal; font-size: 12.5px; color: var(--rock); } .meetc .link { margin: 0; white-space: nowrap; }
.ptabs { display: flex; gap: 4px; padding: 5px; background: var(--paper); border-radius: 18px; box-shadow: var(--shadow); overflow-x: auto; scrollbar-width: none; position: sticky; top: 8px; z-index: 5; }
.ptabs::-webkit-scrollbar { display: none; }
.ptabs a { flex: 1 0 auto; display: inline-flex; justify-content: center; align-items: center; gap: 6px; padding: 10px 14px; border-radius: 13px; color: var(--rock); text-decoration: none; font-weight: 600; font-size: 13px; white-space: nowrap; }
.ptabs a[aria-selected="true"] { background: var(--ink); color: var(--paper); }
.ptabs a b { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--accent); color: #fff; font-size: 10.5px; display: inline-grid; place-items: center; }
.ptab-b { display: flex; flex-direction: column; gap: 16px; }
.pay-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; }
.pay-sum small { display: block; color: var(--rock); font-size: 11.5px; } .pay-sum b { font-size: 20px; font-weight: 500; } .pay-sum .neg b { color: var(--bad); }
.schl { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.sch { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line-2); position: relative; } .sch:last-child { border-bottom: 0; }
.sch > i { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--bg); flex: none; } .sch > i .ico { width: 15px; height: 15px; }
.sch.paid > i { background: #DCF5E7; color: #1E7A48; } .sch.late > i { background: var(--bad-tint); color: var(--bad); }
.sch b { display: block; font-size: 14px; } .sch small { color: var(--rock); font-size: 12px; } .sch .grow0 { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.pill.bad { background: var(--bad-tint); color: var(--bad); }
.portal2 .daydec, .cx .daydec { margin: 0; }
.portal2 .reqs .rq-a .btn { white-space: nowrap; }

/* terrain vide */
.f-empty { display: flex; flex-direction: column; gap: 14px; padding: 18px; }
.fe-h { text-align: center; padding: 24px 10px 8px; } .fe-h > .ico { width: 34px; height: 34px; color: var(--accent); } .fe-h h2 { margin: 6px 0 2px; font-size: 20px; font-weight: 600; } .fe-h p { margin: 0; }
.fe-k { margin: 6px 0 -4px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--rock); }
.f-empty .px-card { min-height: 300px; }

@media (max-width: 1080px) { .px-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 860px) {
  .px { gap: 12px; }
  .px-hello h1 { font-size: 24px; } .px-hello .av.xl { width: 50px; height: 50px; font-size: 17px; } .px-hello .lgo { height: 26px; }
  .px-hello .chip { position: static; font-size: 11px; padding: 4px 10px; }
  .px-card { border-radius: 22px; min-height: 280px; } .px-card.big { min-height: 360px; } .px-card.hero { min-height: 230px; }
  .px-body { padding: 14px 16px 16px; } .px-body h1, .px-body h2, .px-card.big .px-body h2 { font-size: 27px; }
  .px-count b { font-size: 46px; }
  .px-body .row-acts { display: grid; grid-template-columns: 1fr 1fr; } .px-body .row-acts .btn { justify-content: center; }
  .px-stats b { font-size: 20px; } .px-stats > * { padding: 12px; }
  .wd b { font-size: 15px; } .px-week { gap: 3px; padding: 6px; }
  .px-facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; } .fact { padding: 12px; gap: 9px; } .fact b { font-size: 13px; }
  .px-facts > a.fact { grid-column: 1 / -1; }
  .rdy { gap: 12px; } .rdy .ring.big .rg, .rdy .ring.big svg { width: 88px; height: 88px; } .rdy .ring.big .rg b { font-size: 21px; }
  .rdy-l a { grid-template-columns: 16px 62px minmax(0, 1fr) auto; gap: 6px; font-size: 12.5px; }
  .nact { flex-wrap: wrap; } .nact .grow { flex: 1 1 60%; } .nact .btn { width: 100%; justify-content: center; }
  .ptabs { top: 4px; border-radius: 16px; } .ptabs a { padding: 9px 12px; font-size: 12.5px; }
  .pt-a { padding-left: 14px; } .pt-a .btn { flex: 1; justify-content: center; }
  .bl.two { columns: 1; }
  .meetc { flex-wrap: wrap; } .meetc .link { margin-left: 58px; }
  .pay-sum b { font-size: 17px; }
  .pp { align-items: flex-start; } .pp-a { flex-direction: column; }
}
.rdy figcaption { display: none; }
.px-greet { margin: 0; color: var(--accent-strong); font-weight: 700; font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; }
.px-shade { background: linear-gradient(180deg, rgba(8,12,24,.08) 0%, rgba(8,12,24,.1) 28%, rgba(8,12,24,.55) 58%, rgba(8,12,24,.9) 100%); }
.px-sub, .px-people small { text-shadow: 0 1px 8px rgba(0,0,0,.45); }
.rdy-l a { grid-template-columns: 18px minmax(0, 1fr) auto; grid-template-areas: "i l v" ". b b"; row-gap: 4px; padding: 6px 0; }
.rdy-l a > .ico { grid-area: i; } .rdy-l a > span { grid-area: l; } .rdy-l a > em { grid-area: v; } .rdy-l a > .bar { grid-area: b; width: 100%; }
.af-h { background: #1B2430; } .af-h > .pstr.bg { z-index: 0; } .af-h > .gx-ov { z-index: 0; }
.gear .bchk { padding: 9px 12px; }
@media (max-width: 860px) { .rdy-l a { grid-template-columns: 16px minmax(0, 1fr) auto; font-size: 12.5px; } }
.af-h > .pstr.bg { position: absolute; inset: 0; } .af-h > div:not(.gx-ov):not(.pstr) { z-index: 1; }
.pstr.bg .pstr-alt { display: none; }
.rdy > .grow { min-width: 0; } .rdy > .grow > b { display: block; }
.rdy-l a > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 860px) { .rdy .ring.big .rg, .rdy .ring.big svg { width: 76px; height: 76px; } .rdy .ring.big .rg b { font-size: 18px; } .rdy > .grow > b { font-size: 16px; } .rdy-l em { font-size: 11.5px; } }
.px-card .chip { color: #1B1F24; }
.rdy-l a { grid-template-areas: "i l l" ". b v"; column-gap: 10px; } .rdy-l a > .bar { align-self: center; }
@media (max-width: 860px) { .meetc .link { display: none; } }
/* v1.8 : les espaces premium défilent dans l’écran plein cadre (bureau) */
@media (min-width: 861px) { .screen > .px { flex: 1; min-height: 0; overflow: auto; padding-right: 4px; } .screen > .px > * { flex: none; } }
@media (min-width: 861px) and (max-width: 1280px) {
  .screen > .today-grid { grid-template-rows: auto minmax(0, 1fr); }
  .today-grid > :nth-child(1) { grid-row: 1 / 3; }
  .today-grid > .col-stack { grid-column: 2; grid-row: 2; overflow: auto; min-height: 0; display: flex; flex-direction: column; gap: 12px; }
}
@media (min-width: 861px) { #nav { min-height: 0; overflow-y: auto; scrollbar-width: none; } #nav::-webkit-scrollbar { display: none; } .today-grid > .col-stack > * { flex: none; } }
@media (min-width: 861px) and (max-height: 780px) { .side { gap: 12px; padding-top: 16px; padding-bottom: 14px; } #nav .nav-i { padding-top: 5px; padding-bottom: 5px; } .side-foot img { width: 76px; margin-bottom: 4px; } }

/* ============ v2.0 : situation en temps réel ============ */
.live { display: flex; flex-direction: column; gap: 16px; }
.mapx { position: relative; border-radius: 16px; overflow: hidden; background: var(--bg); aspect-ratio: 2 / 1; min-height: 220px; }
.mapx .msvg { position: absolute; inset: 0; width: 100%; height: 100%; }
.mapx .lmap { position: absolute; inset: 0; z-index: 1; }
.mapx:not(.tiles-on) .lmap { opacity: 0; } .mapx.tiles-on .lmap { opacity: 1; transition: opacity .3s; }
.m-bg { fill: var(--bg); } .m-route { fill: none; stroke: var(--accent); stroke-width: 3.5; stroke-linejoin: round; stroke-linecap: round; }
.m-track { fill: none; stroke: #1E6FD9; stroke-width: 2.5; stroke-dasharray: 6 6; }
.m-pt { fill: var(--accent); stroke: var(--paper); stroke-width: 2; } .m-pt.on { fill: #1E9E5A; } .m-pt.top { stroke-width: 3; }
.m-lb { font-size: 11px; font-weight: 600; fill: var(--ink); paint-order: stroke; stroke: var(--bg); stroke-width: 3px; }
.m-me { fill: #1E6FD9; stroke: #fff; stroke-width: 3; } .m-me-h { fill: #1E6FD9; opacity: .18; }
.psvg { width: 100%; height: auto; display: block; margin-top: 8px; }
.p-area { fill: var(--accent-tint); } .p-line { fill: none; stroke: var(--accent); stroke-width: 2; } .p-lb { font-size: 10px; fill: var(--rock); font-weight: 600; } .p-ax { font-size: 10px; fill: var(--rock); }
.leaflet-container { font: 500 12px var(--f); background: var(--bg); }
.trk { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.trk-m { display: flex; gap: 12px; align-items: center; } .trk-m small { display: block; font-size: 11px; color: var(--rock); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; } .trk-m b { display: block; font-size: 15px; } .trk-m em { font-style: normal; font-size: 12px; color: var(--rock); }
.trk-m .pt-ic { width: 40px; height: 40px; border-radius: 12px; background: var(--bg); } .trk-m .pt-ic.ok { background: #DDEBFB; color: #1E6FD9; } .trk-m .pt-ic.bad { background: var(--bad-tint); color: var(--bad); }
.trk-s { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .trk-s > div { padding: 10px 12px; border-radius: 12px; background: var(--bg); } .trk-s small { display: block; font-size: 11px; color: var(--rock); } .trk-s b { font-size: 13.5px; } .trk-s em { font-style: normal; font-size: 12px; color: var(--accent-strong); margin-left: 6px; font-weight: 600; }
.stg { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } .stg li { display: flex; gap: 12px; align-items: center; padding: 8px 0; position: relative; }
.stg li:not(:last-child)::after { content: ""; position: absolute; left: 13px; top: 36px; bottom: -8px; width: 2px; background: var(--line); }
.stg i { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 12px; font-weight: 700; background: var(--bg); color: var(--rock); flex: none; z-index: 1; } .stg i .ico { width: 14px; height: 14px; }
.stg .done i { background: #1E9E5A; color: #fff; } .stg .cur i { background: var(--accent); color: #fff; box-shadow: 0 0 0 4px var(--accent-soft); }
.stg b { display: block; font-size: 13.5px; } .stg small { color: var(--rock); font-size: 12px; }
.wx-src { font-size: 12.5px; margin: 0 0 8px; display: flex; gap: 6px; align-items: center; } .wx-src .ico { width: 14px; height: 14px; }
.wx-al { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; gap: 6px; } .wx-al li { display: flex; gap: 8px; align-items: center; padding: 8px 10px; border-radius: 10px; background: var(--bad-tint); color: var(--bad); font-weight: 600; font-size: 12.5px; } .wx-al .ico { width: 15px; height: 15px; flex: none; }
.wxt-w { overflow-x: auto; margin: 0 -4px; } .wxt { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.wxt th, .wxt td { padding: 8px 6px; text-align: right; border-bottom: 1px solid var(--line-2); white-space: nowrap; } .wxt thead th { font-size: 10.5px; color: var(--rock); font-weight: 600; }
.wxt tbody th { text-align: left; white-space: normal; } .wxt tbody th b { display: block; font-size: 12.5px; } .wxt tbody th small { color: var(--rock); font-size: 10.5px; font-weight: 400; }
.wxt tr.al th b { color: var(--bad); }
.wxs { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.wxc { flex: none; display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 64px; padding: 8px 6px; border-radius: 12px; background: var(--bg); font-size: 11px; }
.wxc small { color: var(--rock); text-transform: capitalize; font-size: 10px; } .wxc .ico { width: 18px; height: 18px; } .wxc b { font-size: 14px; } .wxc em { font-style: normal; color: var(--rock); }
.wxc.marginal { background: var(--warn-tint); } .wxc.bad { background: var(--bad-tint); } .wxc.bad b { color: var(--bad); }
.wxp h4 { margin: 14px 0 8px; font-size: 12.5px; }
.dia { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; } .dia li { display: grid; grid-template-columns: 92px 1fr; gap: 10px; } .dia time { font-size: 11.5px; color: var(--rock); font-weight: 600; }
.dia p { margin: 0 0 2px; } .dia small { color: var(--rock); font-size: 11.5px; } .lg-ph { display: block; max-width: 100%; border-radius: 12px; margin: 6px 0; max-height: 260px; object-fit: cover; }
.fview { margin: 10px 14px 0; grid-template-columns: 1fr 1fr !important; } .fview button { padding: 8px; }
.fday.live-mode > .f-steps, .fday.live-mode > .f-body:not(.f-live), .fday.live-mode > .f-nav, .fday.live-mode > .nolead-b { display: none !important; }
.f-live .live .px-grid { grid-template-columns: minmax(0, 1fr); } .f-live { overflow: auto; }
.share-mode .side, .share-mode .top, .share-mode .tabbar { display: none !important; } .share-mode .app { grid-template-columns: 1fr; } .share-mode #view { max-width: 1180px; margin: 0 auto; }
.sharec { display: flex; align-items: center; gap: 14px; } .sharec b { display: block; font-size: 14.5px; } .sharec small { color: var(--rock); font-size: 12.5px; } .sharec .sq-ic { width: 44px; height: 44px; border-radius: 14px; background: var(--accent-tint); color: var(--accent-strong); }
@media (max-width: 860px) { .mapx { aspect-ratio: 4 / 3; } .dia li { grid-template-columns: 1fr; gap: 2px; } .sharec { flex-wrap: wrap; } .sharec .btn { width: 100%; justify-content: center; } .fview { margin: 8px 10px 0; } }
.mapx { isolation: isolate; z-index: 0; }
.share-mode #view { padding-top: 16px; }
@media (max-width: 860px) { .wxt th:nth-child(4), .wxt td:nth-child(4), .wxt th:nth-child(7), .wxt td:nth-child(7) { display: none; } .wxt th, .wxt td { padding: 7px 4px; } }
/* v2.1 : détail des documents manquants */
.miss { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.miss li { font-size: 12px; padding: 3px 8px 3px 20px; position: relative; color: var(--ink); border-radius: 8px; background: var(--warn-tint); }
.miss li::before { content: ""; position: absolute; left: 8px; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--warn); }
.miss li.invalid { background: var(--bad-tint); } .miss li.invalid::before { background: var(--bad); }
.miss li.review { background: var(--accent-tint); } .miss li.review::before { background: var(--accent); }
.gp-sum { margin: 0 0 2px; font-size: 13px; } #gparts .muted.small { margin: 0 0 8px; }
#gparts.flash { animation: flash 1.6s ease-out; } @keyframes flash { 0%, 40% { box-shadow: 0 0 0 3px var(--accent); } 100% { box-shadow: var(--shadow); } }
.pp-m .btn.sm { min-height: 28px; padding: 4px 10px; }
.px-meters > a { display: grid; grid-template-columns: auto auto; column-gap: 7px; align-items: center; padding: 8px 12px; border-radius: 14px; background: rgba(255,255,255,.14); backdrop-filter: blur(10px); color: #fff; text-decoration: none; }
.px-meters > a:hover { background: rgba(255,255,255,.24); } .px-meters > a.warn { box-shadow: inset 0 0 0 1.5px #FBBF24; } .px-meters > a.warn .ico { color: #FBBF24; }
.plist .miss { width: 100%; }
.mt .grow { min-width: 0; } .mt-p .pill { white-space: normal; text-align: left; line-height: 1.3; }

/* ============ v2.2 : en-tête premium, états vides utiles, vues d’ensemble ============ */
.top { gap: 10px; }
.top .ctl { gap: 8px; }
.top .ctl > * { height: 40px; box-sizing: border-box; }
.cmdbtn, .refbtn, .seg-lang, .top .icon-btn { border: 1px solid var(--line); background: var(--paper); box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.top .icon-btn { width: 40px; border-radius: 50%; display: grid; place-items: center; }
.refbtn { padding: 0 14px; font-size: 13px; } .seg-lang { padding: 3px; align-items: center; } .seg-lang button { height: 32px; padding: 0 12px; }
.pole-sw { padding: 3px !important; gap: 2px; }
.pole-sw button { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 7px; height: 32px; padding: 0 12px 0 3px !important; line-height: 1; border-radius: 999px; white-space: nowrap; }
.pole-sw button:first-child { padding-left: 4px !important; }
.pole-sw button b { font-size: 12.5px; font-weight: 600; } .pole-sw button small { font-size: 12px; font-weight: 400; color: var(--rock); opacity: 1; }
.pole-sw button[aria-pressed="true"] small { color: color-mix(in srgb, var(--paper) 70%, transparent); }
.pole-sw .av.ph { width: 26px; height: 26px; margin: 0; border: 2px solid var(--paper); object-fit: cover; font-size: 9px; flex: none; }
.pole-sw button[aria-pressed="true"] .av.ph { border-color: var(--ink); }
.pole-all { display: inline-flex; } .pole-all .av.ph + .av.ph { margin-left: -9px; }
.av { object-fit: cover; }
img.av { background: var(--line-2); }
@media (max-width: 1360px) { .pole-sw button small { display: none; } }
@media (max-width: 1180px) { .pole-sw button b { display: none; } .pole-sw button { padding: 0 3px !important; } }
/* aujourd’hui sans départ */
.t-empty { display: flex; align-items: center; gap: 14px; padding: 12px 16px; border-radius: 16px; background: var(--bg); flex: 1 1 380px; }
.t-empty > .ico { width: 28px; height: 28px; color: var(--accent-strong); flex: none; } .t-empty b { display: block; font-size: 14.5px; } .t-empty small { color: var(--rock); font-size: 12.5px; } .t-empty .btn { margin-left: auto; flex: none; }
.rings.hide { display: none !important; }
.progs { display: flex; flex-direction: column; gap: 10px; padding: 4px 0; }
.pg-lead { display: flex; gap: 10px; align-items: flex-start; margin: 0; } .pg-lead > .ico { width: 22px; height: 22px; color: var(--accent-strong); flex: none; margin-top: 2px; } .pg-lead b { display: block; font-size: 13.5px; } .pg-lead small { color: var(--rock); font-size: 12.5px; }
.pg-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pg-l li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; background: var(--bg); } .pg-l b { display: block; font-size: 13px; } .pg-l small { color: var(--rock); font-size: 11.5px; } .pg-l .btn { flex: none; }
/* vues d’ensemble */
.ovw { display: flex; flex-direction: column; gap: 14px; padding: 4px; overflow: auto; height: 100%; }
.ovw > header { display: flex; gap: 14px; align-items: center; } .ovw > header h2 { margin: 0; font-size: 20px; font-weight: 600; } .ovw > header p { margin: 2px 0 0; font-size: 13px; }
.ovw .kpi-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.ovw .kpi { background: var(--paper); border-radius: 16px; padding: 14px; box-shadow: var(--shadow); } .ovw .kpi small { display: block; color: var(--rock); font-size: 11.5px; } .ovw .kpi b { font-size: 24px; font-weight: 500; }
.ovw .kpi.warn b { color: var(--warn); } .ovw .kpi.bad b { color: var(--bad); }
.ovl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ovl li > a, .ovl .ovt { display: flex; align-items: center; gap: 12px; padding: 10px 6px; border-bottom: 1px solid var(--line-2); color: var(--ink); text-decoration: none; }
.ovl li:last-child > a, .ovl li:last-child .ovt { border-bottom: 0; } .ovl li > a:hover { background: var(--bg); border-radius: 10px; }
.ovl b { display: block; font-size: 13.5px; } .ovl small { display: block; color: var(--rock); font-size: 12px; } .ovl .av { margin: 0; flex: none; } .ovl .av .ico { width: 15px; height: 15px; } .ovl .bar { width: 120px; flex: none; }
.ovl .it-img.sm, .ovl svg.it-img { width: 40px; height: 40px; border-radius: 10px; flex: none; }
.dot.ok { background: #1E9E5A; }
/* client : découvrir */
.disc { background: var(--paper); border-radius: 24px; box-shadow: var(--shadow); padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.disc > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .disc h2 { margin: 4px 0 2px; font-size: 22px; font-weight: 600; } .disc header p { margin: 0; }
.px-k.dark { color: var(--accent-strong); }
.disc-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.dcard2 { border-radius: 18px; overflow: hidden; background: var(--bg); display: flex; flex-direction: column; }
.dcard2 .pstr.dc-ph { height: 110px; } .dc-b { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 3px; align-items: flex-start; } .dc-b b { font-size: 15px; } .dc-b small { color: var(--rock); font-size: 12.5px; } .dc-b small.ok-t { color: var(--ok); } .dc-b .btn, .dc-b .pill { margin-top: 8px; }
/* tout est en ordre */
.allok { background: var(--paper); border-radius: 24px; box-shadow: var(--shadow); padding: 40px 24px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; }
.allok h2 { margin: 10px 0 0; font-size: 22px; font-weight: 600; } .allok p { margin: 0; max-width: 460px; } .allok .row-acts { justify-content: center; margin-top: 14px; }
.ok-c { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: #DCF5E7; color: #1E7A48; } .ok-c .ico { width: 34px; height: 34px; }
.ok-c.soft { background: var(--accent-tint); color: var(--accent-strong); }
/* terrain : autres guides */
.fe-others { display: flex; flex-direction: column; gap: 8px; }
.fe-g { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 16px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; text-align: left; font: inherit; color: var(--ink); }
.fe-g span { flex: 1; } .fe-g b { display: block; font-size: 14px; } .fe-g small { color: var(--rock); font-size: 12.5px; } .fe-g > .ico { width: 14px; height: 14px; color: var(--rock); } .fe-g:hover { border-color: var(--accent); }
.sup-none { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 14px; background: var(--bg); } .sup-none > .ico { width: 24px; height: 24px; color: var(--accent-strong); flex: none; } .sup-none p { margin: 0; }
@media (max-width: 860px) { .t-empty { flex-wrap: wrap; } .t-empty .btn { margin-left: 0; width: 100%; justify-content: center; } .disc { padding: 16px; } .allok { padding: 28px 16px; } }
.top h1 { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 860px) { .top .ctl > * { height: 38px; } .top .icon-btn { width: 38px; } .top .ctl { gap: 6px; flex: none; } }

/* ============ v2.3 — espace client premium : ski (neige, avalanche, kit), aujourd’hui, messages, à faire ============ */
.snowc h3, .kitc h3, .nowc h3 { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; } .snowc h3 .icon-btn { margin-left: auto; }
.snowc { background: linear-gradient(180deg, var(--ski-tint) 0, var(--paper) 120px); }
.sfg { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; margin: 4px 0 12px; }
.sf { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 9px 10px; display: grid; grid-template-columns: 18px 1fr; column-gap: 6px; align-items: center; }
.sf .ico { width: 16px; height: 16px; color: var(--ski); grid-row: span 2; }
.sf small { font-size: 11px; color: var(--rock); line-height: 1.25; } .sf b { font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sf.hi { border-color: var(--ski); background: var(--ski-tint); } .sf.hi b { color: var(--ski); }
.sf.warn { border-color: var(--warn); background: var(--warn-tint); } .sf.warn .ico, .sf.warn b { color: var(--warn); }
.aval { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--bg); margin-bottom: 8px; flex-wrap: wrap; }
.aval > div { flex: 1; min-width: 160px; } .aval b { display: block; font-size: 13.5px; } .aval small { display: block; color: var(--rock); font-size: 12px; }
.aval .dg { width: 34px; height: 34px; font-size: 15px; border-radius: 9px; }
.dg0 { background: var(--line-2); color: var(--rock); border-style: dashed; }
.kit-l { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.kit-l li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--bg); border-radius: 12px; }
.kit-l b { display: block; font-size: 13.5px; } .kit-l small { display: block; color: var(--rock); font-size: 11.5px; }
.kit-l .it-img { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; flex: none; }
.nowc { border: 2px solid var(--accent); background: linear-gradient(180deg, var(--accent-tint) 0, var(--paper) 140px); }
.nowc h3 { color: var(--accent-strong); font-size: 15px; }
.now-it { font-size: 14px; line-height: 1.5; background: var(--paper); border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; }
.nowc .gcard { padding: 4px 0 10px; } .nowc .gcard .btn { flex: none; }
.now-log { border-left: 3px solid var(--accent); padding: 4px 0 4px 12px; margin: 0 0 10px; } .now-log small { color: var(--rock); font-size: 11.5px; } .now-log p { margin: 2px 0 0; }
.msg2 .team-h { flex-direction: column; align-items: stretch; gap: 8px; } .msg2 .team-h .sub { margin: 0; color: var(--rock); font-size: 13px; }
.tms { display: flex; gap: 18px; flex-wrap: wrap; } .tm { display: flex; align-items: center; gap: 10px; }
.tm .av { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; margin: 0; font-size: 15px; } .tm b { display: block; font-size: 14px; } .tm small { display: block; color: var(--rock); font-size: 12px; }
.msg-intro { display: flex; gap: 10px; align-items: center; background: var(--accent-tint); color: var(--ink); border-radius: 14px; padding: 12px 14px; } .msg-intro p { margin: 0; } .msg-intro .ico { color: var(--accent-strong); flex: none; }
.msg2 .msg-intro ~ .chat .ch-empty { display: none; } .msg2 .chat { min-height: 260px; }
.qchips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 10px 12px 4px; border-top: 1px solid var(--line-2); } .qchips small { width: 100%; color: var(--rock); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.msg2 .ch-form { border-top: 0; } .qchips .chipb { padding: 7px 12px; font-size: 12.5px; color: var(--ink); text-align: left; }
.qchips .chipb:hover { border-color: var(--accent); color: var(--accent-strong); }
.tgrp { padding: 0; overflow: hidden; }
.tgrp-h { display: flex; align-items: center; gap: 12px; padding: 12px 14px; text-decoration: none; color: var(--ink); border-bottom: 1px solid var(--line-2); }
.tgrp-h b { display: block; font-size: 15px; } .tgrp-h small { display: block; color: var(--rock); font-size: 12px; } .tgrp-h .px-k { margin: 0; }
.tgrp-h .pstr.thumb { width: 56px; height: 56px; border-radius: 14px; }
.tgrp-l { list-style: none; margin: 0; padding: 6px 8px 8px; display: flex; flex-direction: column; }
.tgrp-l li { display: flex; align-items: center; gap: 12px; padding: 10px 6px; border-bottom: 1px solid var(--line-2); } .tgrp-l li:last-child { border-bottom: 0; }
.tgrp-l b { display: block; font-size: 13.5px; } .tgrp-l small { display: block; color: var(--rock); font-size: 12px; }
.tgrp-l .lv-red .pt-ic { background: var(--bad-tint); color: var(--bad); } .tgrp-l .lv-yellow .pt-ic { background: var(--warn-tint); color: var(--warn); } .tgrp-l .lv-green .pt-ic { background: var(--accent-tint); color: var(--accent-strong); }
.tgrp-a { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; flex: none; max-width: 50%; } .tgrp-a .btn { white-space: nowrap; }
.cx { display: flex; flex-direction: column; gap: 14px; } .cx > * { flex-shrink: 0; }
.disc.again { background: linear-gradient(135deg, var(--paper) 55%, var(--ski-tint)); }
@media (max-width: 860px) {
  .tgrp-l li { flex-wrap: wrap; } .tgrp-a { max-width: none; width: 100%; justify-content: flex-start; padding-left: 48px; }
  .sfg { grid-template-columns: repeat(2, 1fr); } .tms { gap: 12px; } .tm .av { width: 40px; height: 40px; }
  .nowc .gcard { flex-wrap: wrap; } .nowc .gcard .btn { width: 100%; justify-content: center; }
}
.px-col > .panel > h3 > .link.sm { margin: 0 0 0 auto; font-size: 12px; font-weight: 500; } .px-col > .panel > h3:has(.link.sm) { display: flex; align-items: center; gap: 8px; }
@media (max-width: 860px) { .msg2.has .qchips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } .msg2.has .qchips small { display: none; } .msg2.has .qchips .chipb { flex: none; } }
.m-only { display: none; } .d-only > .panel, .m-only > .panel { margin: 0; }
@media (max-width: 860px) { .d-only { display: none; } .m-only { display: block; } }

/* ============ v2.4 — tre scrivanie : Direzione, Polo sci, Polo alpinismo ============ */
body.desk-ski .side .nav-i.on { background: rgba(46,111,176,.24); color: #A9D0F5; } body.desk-ski .side .nav-i.on::before { background: #5B9BD5; }
body.desk-alpine .side .nav-i.on { background: rgba(91,75,196,.28); color: #CBC2FF; } body.desk-alpine .side .nav-i.on::before { background: #8E7FF0; }
body.desk-ski .tabbar .nav-i.on { background: var(--ski-tint); color: var(--ski); } body.desk-alpine .tabbar .nav-i.on { background: var(--alp-tint); color: var(--alp); }
body.desk-ski .top { box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--ski) 40%, transparent); } body.desk-alpine .top { box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--alp) 40%, transparent); }
.dk, .dep-px { display: flex; flex-direction: column; gap: 16px; padding-bottom: 24px; } .dk > *, .dep-px > * { flex-shrink: 0; } .dep-px { gap: 14px; }
.dk-hero { position: relative; overflow: hidden; border-radius: 20px; color: #fff; padding: 14px 18px 16px; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "top top" "main kpis"; gap: 10px 24px; align-items: center; box-shadow: 0 6px 20px rgba(16, 24, 40, .10); }
.dk-hero > .pstr.bg { position: absolute; inset: 0; z-index: 0; } .dk-hero > .pstr.bg .pstr-alt { display: none; }
.dk-ov { position: absolute; inset: 0; z-index: 0; }
.dk-ski .dk-ov { background: linear-gradient(95deg, rgba(6, 22, 42, .96) 0%, rgba(10, 34, 62, .9) 55%, rgba(18, 58, 98, .55) 100%); }
.dk-alpine .dk-ov { background: linear-gradient(95deg, rgba(12, 9, 32, .96) 0%, rgba(22, 17, 54, .9) 55%, rgba(38, 28, 88, .55) 100%); }
.dk-all .dk-ov { background: linear-gradient(95deg, rgba(14, 16, 20, .95) 0%, rgba(14, 16, 20, .86) 55%, rgba(14, 16, 20, .5) 100%); }
.dk-hero > :not(.pstr):not(.dk-ov) { position: relative; z-index: 1; }
.dk-top { grid-area: top; display: flex; align-items: center; gap: 12px; min-width: 0; }
.dk-id { display: flex; align-items: center; gap: 8px; min-width: 0; } .dk-id .av { width: 28px; height: 28px; border: 2px solid rgba(255,255,255,.85); margin: 0; object-fit: cover; background: rgba(255,255,255,.15); color: #fff; font-size: 10px; }
.dk-id > span:last-child { display: flex; align-items: baseline; gap: 8px; min-width: 0; } .dk-avs { display: flex; } .dk-avs .av + .av { margin-left: -9px; }
.dk-id b { font-size: 13px; white-space: nowrap; } .dk-id small { font-size: 12px; color: rgba(255,255,255,.66); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dk-wd { margin-left: auto; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.62); white-space: nowrap; }
.dk-acts { display: flex; gap: 8px; } .dk-acts .btn { padding: 6px 14px; min-height: 32px; font-size: 13px; }
.dk-hero .btn:not(.primary) { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.22); }
.dk-main { grid-area: main; min-width: 0; } .dk-main h1 { font-size: 22px; font-weight: 600; letter-spacing: -.015em; line-height: 1.2; margin: 0 0 4px; }
.dk-lead { margin: 0; color: rgba(255,255,255,.78); font-size: 13px; line-height: 1.45; max-width: 640px; }
.dk-kpis { grid-area: kpis; display: grid; grid-template-columns: repeat(4, minmax(118px, auto)); gap: 0; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.13); border-radius: 14px; backdrop-filter: blur(8px); }
.dkk { display: flex; flex-direction: column; gap: 1px; padding: 9px 14px; color: #fff; text-decoration: none; min-width: 0; border-left: 1px solid rgba(255,255,255,.1); } .dkk:first-child { border-left: 0; border-radius: 14px 0 0 14px; } .dkk:last-child { border-radius: 0 14px 14px 0; }
a.dkk:hover { background: rgba(255,255,255,.08); }
.dkk small { font-size: 10.5px; color: rgba(255,255,255,.66); line-height: 1.2; white-space: nowrap; } .dkk b { font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.2; white-space: nowrap; } .dkk b small { font-size: 12px; color: rgba(255,255,255,.58); font-weight: 500; }
.dkk em { font-style: normal; font-size: 11px; color: rgba(255,255,255,.72); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 170px; } .dkk-warn em { color: #FFD28A; } .dkk-bad b { color: #FFB4AB; }
.dk-sec { display: flex; flex-direction: column; } .dk-sh { display: flex; align-items: baseline; gap: 6px 14px; flex-wrap: wrap; margin: 2px 2px 10px; }
.dk-sh h2 { font-size: 16px; font-weight: 600; display: flex; align-items: center; gap: 8px; } .dk-sh h2 .ico { width: 18px; height: 18px; } .dk-sh p { margin: 0; }
.spts { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; }
.spt { background: var(--paper); border-radius: 16px; box-shadow: var(--shadow); padding: 14px 16px 12px; border-top: 3px solid var(--ski); display: flex; flex-direction: column; gap: 10px; }
.spt header b { display: block; font-size: 14px; } .spt header small { display: block; color: var(--rock); font-size: 12px; }
.spt-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(76px, 1fr)); gap: 8px 12px; } .spt-g small { display: block; font-size: 11px; color: var(--rock); line-height: 1.2; } .spt-g b { font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.spt-g .hi b { color: var(--ski); } .spt-g .warn b { color: var(--warn); } .spt-g > div { background: none; padding: 0; }
.spt footer { display: flex; justify-content: space-between; align-items: center; gap: 8px; border-top: 1px solid var(--line-2); padding-top: 8px; } .spt footer small { color: var(--rock); font-size: 11.5px; } .spt footer a { font-size: 12px; font-weight: 500; }
.dk-grid { display: grid; gap: 16px; align-items: start; } .dk-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.dk-grid.ski { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } .dk-grid.alp { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); } .dk-grid.all { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); }
.panel > h3 > .link.sm, .panel > h3 > .btn.sm { margin: 0 0 0 auto; font-size: 12px; } .panel > h3 > .link.sm { font-weight: 500; }
.skl { display: flex; flex-direction: column; }
.skr { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto auto auto auto; gap: 12px; align-items: center; padding: 10px 8px; border-radius: 12px; text-decoration: none; color: var(--ink); border-bottom: 1px solid var(--line-2); }
.skr:last-child { border-bottom: 0; } .skr:hover { background: var(--bg); }
.skr-x { display: contents; }
.skr-d { display: flex; flex-direction: column; align-items: center; line-height: 1.1; } .skr-d small { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--rock); } .skr-d b { font-size: 20px; font-weight: 600; }
.skr-m { display: flex; align-items: center; gap: 10px; min-width: 0; } .skr-m b { display: block; font-size: 14px; } .skr-m small { display: block; color: var(--rock); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.skr-n { display: inline-flex; align-items: center; gap: 4px; font-variant-numeric: tabular-nums; } .skr-n .ico { width: 14px; height: 14px; color: var(--rock); } .skr-n b { font-size: 14px; } .skr-n small { color: var(--rock); }
.skr-g { display: flex; align-items: center; min-width: 0; } .skr-g .av.miss { cursor: default; }
.skr-k { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--rock); white-space: nowrap; } .skr-k .ico { width: 14px; height: 14px; } .skr-k b { font-weight: 600; } .skr-k.warn { color: var(--warn); } .skr-s { display: flex; align-items: center; gap: 6px; } .skr-w .ico { width: 16px; height: 16px; color: var(--ski); } .skr-w { font-style: normal; display: inline-flex; }
.dxl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.dxl li { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line-2); align-items: flex-start; } .dxl li:last-child { border-bottom: 0; }
.dx-ic { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--bg); color: var(--rock); flex: none; } .dx-ic .ico { width: 16px; height: 16px; }
.dxl .sev1 .dx-ic { background: var(--bad-tint); color: var(--bad); } .dxl .sev2 .dx-ic { background: var(--warn-tint); color: var(--warn); }
.dxl b { display: block; font-size: 13px; line-height: 1.35; } .dxl small { display: block; color: var(--rock); font-size: 12px; margin-top: 2px; }
.dx-a { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 7px; } .dx-a .btn { padding: 4px 10px; font-size: 12px; min-height: 28px; }
.dx-own { display: flex; flex: none; padding-top: 2px; } .dx-own .av { width: 26px; height: 26px; margin: 0; object-fit: cover; } .dx-own .av + .av { margin-left: -8px; }
.dxl .sev1 .dx-own .av { box-shadow: 0 0 0 2px var(--bad); }
.dx-ok { display: flex; align-items: center; gap: 10px; color: var(--rock); } .dx-ok .ico { color: #22A55A; } .dx-ok p { margin: 0; }
.dxp > .link { margin-top: 8px; } .dx-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 0 0 10px; border-bottom: 1px solid var(--line-2); } .dx-top small { color: var(--rock); font-size: 11.5px; }
.kinv, .kpk, .dk-rows { list-style: none; margin: 0; padding: 0; }
.kinv li { display: grid; grid-template-columns: 38px minmax(0, 1fr) 70px; gap: 10px; align-items: center; padding: 6px 0; } .kinv .it-img { width: 38px; height: 38px; border-radius: 10px; }
.kinv b { display: block; font-size: 13px; } .kinv small { display: block; color: var(--rock); font-size: 11.5px; }
.kitd h4 { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--rock); margin: 14px 0 6px; font-weight: 600; }
.kpk li { display: flex; gap: 10px; align-items: center; padding: 6px 0; } .kpk b { display: block; font-size: 12.5px; } .kpk small { display: block; color: var(--rock); font-size: 11.5px; }
.dk-rows li a { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line-2); text-decoration: none; color: var(--ink); } .dk-rows li:last-child a { border-bottom: 0; }
.dk-rows b { display: block; font-size: 13px; } .dk-rows small { display: block; color: var(--rock); font-size: 11.5px; } .dk-rows .amt { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pdot { width: 8px; height: 8px; border-radius: 50%; flex: none; display: inline-block; } .pd-ski { background: var(--ski); } .pd-alpine { background: var(--alp); }
.tws { display: flex; flex-direction: column; gap: 10px; }
.tw { background: var(--paper); border-radius: 16px; box-shadow: var(--shadow); padding: 12px 16px; display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr) 180px; gap: 12px 24px; align-items: center; border-left: 4px solid var(--alp); }
.tw-l { display: flex; flex-direction: column; gap: 12px; min-width: 0; } .tw-p { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.tw-h { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); } .tw-h .pstr.thumb { width: 50px; height: 50px; border-radius: 12px; }
.tw-h b { display: block; font-size: 15px; } .tw-h small { display: block; color: var(--rock); font-size: 12px; }
.tw-f { display: flex; flex-direction: column; gap: 6px; border-left: 1px solid var(--line-2); padding-left: 16px; }
.tw-r { display: flex; align-items: center; gap: 6px; } .tw-r em { font-style: normal; font-size: 12px; font-weight: 600; } .tw-gd { display: flex; }
.ms { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.ms li { position: relative; display: flex; flex-direction: column; gap: 1px; padding: 28px 8px 0 0; min-width: 0; }
.ms li::before { content: ""; position: absolute; top: 10px; left: 12px; right: 0; height: 2px; background: var(--line); } .ms li:last-child::before { display: none; }
.ms li i { position: absolute; top: 0; left: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--paper); border: 2px solid var(--line); display: grid; place-items: center; font-style: normal; font-size: 12px; font-weight: 700; z-index: 1; }
.ms li i .ico { width: 12px; height: 12px; }
.ms .ms-ok i { background: var(--ink); border-color: var(--ink); color: var(--paper); } .ms .ms-ok::before { background: var(--ink); }
.ms .ms-late i { background: var(--bad); border-color: var(--bad); color: #fff; } .ms .ms-warn i { background: var(--warn-tint); border-color: var(--warn); }
.ms b { font-size: 12px; font-weight: 600; } .ms small { font-size: 11px; color: var(--rock); white-space: nowrap; } .ms em { font-style: normal; font-size: 11.5px; color: var(--ink); line-height: 1.3; }
.ms .ms-late em { color: var(--bad); font-weight: 600; } .ms .ms-warn em { color: var(--warn); font-weight: 600; } .ms .ms-todo em { color: var(--rock); }
.msp .ms { padding: 4px 0 2px; }
.mx-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.mx-tabs button { border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 5px 12px; font-size: 12.5px; cursor: pointer; color: var(--ink); } .mx-tabs button small { color: var(--rock); }
.mx-tabs button[aria-selected="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); } .mx-tabs button[aria-selected="true"] small { color: inherit; opacity: .7; }
.mx-w { overflow-x: auto; }
.mx { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 12.5px; }
.mx th, .mx td { padding: 9px 6px; text-align: center; border-bottom: 1px solid var(--line-2); white-space: nowrap; vertical-align: middle; }
.mx thead th { font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--rock); font-weight: 600; }
.mx tbody th { text-align: left; position: sticky; left: 0; background: var(--paper); min-width: 150px; font-weight: 400; z-index: 1; } .mx thead th:first-child { text-align: left; position: sticky; left: 0; background: var(--paper); z-index: 1; }
.mx tbody th a { color: var(--ink); font-weight: 600; font-size: 13px; text-decoration: none; } .mx tbody th small { display: block; color: var(--rock); font-size: 11px; }
.mx .ico { width: 15px; height: 15px; } .mx-ok { color: #1E7A48; } .mx-review { color: var(--warn); font-weight: 700; font-size: 14px; } .mx-invalid { color: var(--bad); font-weight: 700; font-size: 14px; } .mx-missing small { color: var(--warn); font-weight: 600; font-size: 11px; } .mx-na { color: var(--line); }
.mx td.mx-missing { background: color-mix(in srgb, var(--warn-tint) 55%, transparent); } .mx td.mx-invalid { background: color-mix(in srgb, var(--bad-tint) 60%, transparent); }
.mx-pay { text-align: right !important; } .mx-pay b { font-size: 12.5px; } .mx-pay small { color: var(--rock); } .mx-pay.neg b { color: var(--bad); } .mx-act { text-align: right !important; }
.mx-lg { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 11.5px; color: var(--rock); margin: 10px 0 0; } .mx-lg span { margin-left: 10px; display: inline-flex; } .mx-lg span:first-child { margin-left: 0; } .mx-lg .ico { width: 13px; height: 13px; }
:root[data-theme="dark"] .mx-ok { color: #7BD8A0; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .mx-ok { color: #7BD8A0; } }
.pcds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pcd { background: var(--paper); border-radius: 18px; box-shadow: var(--shadow); padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; border-top: 4px solid var(--ski); } .pcd-alpine { border-top-color: var(--alp); }
.pcd header { display: flex; align-items: center; gap: 12px; } .pcd header .av { width: 40px; height: 40px; margin: 0; object-fit: cover; } .pcd header .btn { flex: none; } .pcd header small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--rock); } .pcd header b { display: block; font-size: 16px; }
.pcd-next { display: flex; align-items: center; gap: 12px; background: var(--bg); border-radius: 12px; padding: 8px 12px; text-decoration: none; color: var(--ink); margin: 0; }
.pcd-next small { display: block; color: var(--rock); font-size: 11px; } .pcd-next b { display: block; font-size: 14.5px; } .pcd-next em { font-style: normal; font-weight: 600; font-size: 13px; color: var(--ski); white-space: nowrap; } .pcd-alpine .pcd-next em { color: var(--alp); }
.pcd-m { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; } .pcd-m small { display: block; color: var(--rock); font-size: 11px; line-height: 1.25; } .pcd-m b { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; } .pcd-m b small { display: inline; font-size: 12px; min-height: 0; }
.pcd-m i.hot { display: inline-grid; place-items: center; min-width: 18px; height: 18px; border-radius: 9px; background: var(--bad); color: #fff; font-size: 11px; font-style: normal; margin-left: 6px; vertical-align: 3px; padding: 0 5px; }
.pcd footer { display: flex; justify-content: flex-end; }
.yr-w { display: flex; flex-direction: column; gap: 6px; overflow-x: auto; padding-bottom: 2px; }
.yr-r { display: grid; grid-template-columns: 128px repeat(12, minmax(42px, 1fr)); gap: 4px; align-items: center; min-width: 700px; }
.yr-h span { font-size: 11px; color: var(--rock); text-align: center; text-transform: capitalize; line-height: 1.1; } .yr-h small { display: block; font-size: 9.5px; color: var(--accent-strong); font-weight: 600; }
.yr-l { display: flex; align-items: center; gap: 8px; } .yr-l b { font-size: 13px; } .yr-l .av { width: 24px; height: 24px; margin: 0; object-fit: cover; }
.yr-c { height: 34px; border-radius: 8px; background: var(--line-2); display: flex; align-items: center; justify-content: center; gap: 2px; overflow: hidden; }
.yr-ski .yr-c.on { background: var(--ski-tint); } .yr-alpine .yr-c.on { background: var(--alp-tint); }
.yr-c a { min-width: 20px; height: 21px; border-radius: 6px; color: #fff; font-size: 10.5px; font-weight: 700; display: grid; place-items: center; text-decoration: none; padding: 0 4px; background: var(--ski); } .yr-alpine .yr-c a { background: var(--alp); }
.yr-c i { font-size: 10px; font-style: normal; color: var(--rock); }
.pipe { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; table-layout: fixed; } .pipe th:first-child { width: 36%; } .pipe th, .pipe td { padding: 9px 6px; text-align: center; border-bottom: 1px solid var(--line-2); font-size: 13px; }
.pipe thead th { font-size: 11px; color: var(--rock); font-weight: 600; } .pipe tbody th { text-align: left; font-weight: 600; white-space: nowrap; padding-right: 14px; } .pipe td { min-width: 40px; } .pipe tbody th .av { width: 24px; height: 24px; margin: 0 8px 0 0; vertical-align: middle; object-fit: cover; }
.pipe td.hot { color: var(--accent-strong); font-weight: 700; } .pipe td.z { color: var(--rock); opacity: .55; }
.xnote { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px; font-size: 13px; } .xnote .av { width: 30px; height: 30px; margin: 0; object-fit: cover; }
.xn-ski { background: var(--ski-tint); } .xn-alpine { background: var(--alp-tint); }
.skpl { list-style: none; margin: 0; padding: 0; } .skp { padding: 12px 0; border-bottom: 1px solid var(--line-2); } .skp:last-child { border-bottom: 0; }
.skp-h { display: flex; gap: 10px; align-items: flex-start; } .skp-h .av { margin: 0; flex: none; } .skp-h a { color: var(--ink); text-decoration: none; } .skp-h a b { font-size: 14px; } .skp-h > .grow > small { color: var(--rock); font-size: 12px; }
.skp-l { display: block; margin-top: 3px; font-size: 12px; } .skp-l .ico { width: 13px; height: 13px; vertical-align: -2px; }
.skp-r { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 8px 0 0 40px; font-size: 12.5px; } .skp-r > span { display: inline-flex; gap: 5px; align-items: center; } .skp-r .ico { width: 14px; height: 14px; color: var(--rock); }
.skp .miss { margin-left: 40px; } .skp-a { margin: 8px 0 0 40px; }
.kb-go { display: flex; align-items: center; gap: 10px; } .kb-go small { display: block; color: var(--rock); font-size: 12px; } .kb-go b { font-size: 13.5px; } .kb-go > .ico { width: 22px; height: 22px; color: var(--rock); } .kb-go .dg { width: 32px; height: 32px; font-size: 14px; }
.gl2 { display: flex; align-items: center; gap: 10px; } .gl2 .av { margin: 0; } .gl2 small { display: block; font-size: 12px; } .gl2 a { color: var(--ink); text-decoration: none; }
.ring.r-warn .rg-v { stroke: var(--warn); }
.skm h3 { text-transform: capitalize; }
.ski-dg > .stack, .dep-px .detail-grid > * { min-width: 0; }
@media (max-width: 1280px) {
  .dk-hero { grid-template-columns: 1fr; grid-template-areas: "top" "main" "kpis"; } .dk-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .dk-grid.ski { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); } .dk-grid.alp { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dk-grid.alp > .dxp { grid-column: 1 / -1; }
  .dk-grid.all { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dk-grid.all > .dxp { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .dk-hero { padding: 12px 14px 14px; border-radius: 18px; gap: 10px; } .dk-main h1 { font-size: 19px; } .dk-lead { font-size: 12.5px; }
  .dk-wd { display: none; } .dk-id small { display: none; } .dk-acts { margin-left: auto; } .dk-acts .btn { padding: 5px 12px; min-height: 30px; font-size: 12.5px; }
  .dk-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dkk { border-left: 0; border-top: 1px solid rgba(255,255,255,.1); padding: 8px 12px; } .dkk:nth-child(-n+2) { border-top: 0; } .dkk:nth-child(even) { border-left: 1px solid rgba(255,255,255,.1); } .dkk { border-radius: 0 !important; } .dkk b { font-size: 18px; } .dkk em { max-width: none; }
  .dk-grid.ski, .dk-grid.alp, .dk-grid.all, .pcds { grid-template-columns: minmax(0, 1fr); } .pcds > *, .dk-grid > * { min-width: 0; }
  .pcd header { flex-wrap: wrap; } .pcd header .btn { width: 100%; justify-content: center; } .pcd-m b { white-space: normal; font-size: 16px; }
  .spts { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; scrollbar-width: none; } .spt { scroll-snap-align: start; }
  .skr { grid-template-columns: 42px minmax(0, 1fr); gap: 4px 10px; padding: 10px 4px; }
  .skr-x { display: flex; grid-column: 2; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
  .skr-m .act-ic { display: none; } .skr-m small { white-space: normal; }
  .tw { grid-template-columns: 1fr; } .tw-f { flex-direction: row; flex-wrap: wrap; gap: 10px 16px; border-left: 0; padding-left: 0; } .tw-f .mini { flex: 1; min-width: 110px; }
  .ms { grid-auto-flow: row; grid-auto-columns: auto; gap: 0; }
  .ms li { padding: 1px 0 10px 32px; min-height: 30px; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 0 8px; } .ms li::before { top: 22px; bottom: 0; left: 10px; right: auto; width: 2px; height: auto; } .ms em { flex-basis: 100%; }
  .pcd-m { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .skp-r, .skp .miss, .skp-a { margin-left: 0; }
}

/* spedizione in corso (scrivania alpinismo) e limiti di sicurezza per carte e profili */
.mapx { max-height: 380px; } .psvg { max-height: 150px; }
.lvd > h3 > small { background: var(--alp-tint); color: var(--alp); }
.lvd-g { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(200px, .75fr); gap: 16px; align-items: start; }
.lvd .mapx { aspect-ratio: auto; height: 272px; min-height: 0; } .lvd-map > p { margin: 6px 0 0; }
.lvd .trk { margin-top: 0; gap: 8px; } .lvd .trk-s > div { padding: 8px 10px; } .lvd .lvd-st { display: flex; flex-direction: column; gap: 10px; } .lvd .lvd-st .row-acts { margin: 0; }
.pmini svg { width: 100%; height: 54px; display: block; } .pmini .p-done { fill: none; stroke: var(--ink); stroke-width: 3; }
.pmini-l { display: flex; justify-content: space-between; gap: 8px; font-size: 11px; color: var(--rock); margin-top: 2px; }
.lvd-k { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--rock); font-weight: 600; margin-bottom: 4px; }
.lvd .stg li { padding: 3px 0; gap: 10px; } .lvd .stg i { width: 22px; height: 22px; font-size: 10.5px; } .lvd .stg i .ico { width: 12px; height: 12px; }
.lvd .stg li:not(:last-child)::after { left: 10px; top: 26px; bottom: -3px; } .lvd .stg b { font-size: 12.5px; } .lvd .stg small { font-size: 11px; } .lvd .stg .cur i { box-shadow: 0 0 0 3px var(--accent-soft); }
@media (max-width: 1280px) { .lvd-g { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } .lvd-stg { grid-column: 1 / -1; } .lvd-stg .stg { flex-direction: row; flex-wrap: wrap; gap: 4px 16px; } .lvd .stg li::after { display: none; } }
@media (max-width: 860px) { .lvd-g { grid-template-columns: 1fr; } .lvd .mapx { height: 220px; } .mapx { max-height: 300px; } }

.lvd .stg li .grow { display: flex; align-items: baseline; gap: 6px; min-width: 0; } .lvd .stg li .grow small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lvd .stg li { padding: 2px 0; } .lvd .stg i { width: 20px; height: 20px; } .lvd .stg li:not(:last-child)::after { left: 9px; top: 23px; bottom: -2px; }

/* ============ v2.6 — foto HD, messaggi per scrivania, calendario, riepilogo nuova partenza ============ */
.pstr .pst-img, .cover .pst-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; opacity: 0; transition: opacity .45s ease; }
.pstr .pst-img.on, .cover .pst-img.on { opacity: 1; }
.pstr .pstr-alt, .cover .cv-alt { z-index: 2; } .cover > svg { position: relative; }
.px-card .px-shade, .af-h .gx-ov { z-index: 1; } .px-card > :not(.pstr):not(.px-shade) { position: relative; z-index: 2; }
.px-shade { background: linear-gradient(180deg, rgba(8,12,24,.28) 0%, rgba(8,12,24,.18) 30%, rgba(8,12,24,.6) 62%, rgba(8,12,24,.92) 100%); }
.dk-ski .dk-ov { background: linear-gradient(95deg, rgba(6, 22, 42, .94) 0%, rgba(8, 28, 52, .8) 42%, rgba(10, 34, 62, .42) 75%, rgba(10, 34, 62, .2) 100%); }
.dk-alpine .dk-ov { background: linear-gradient(95deg, rgba(12, 9, 32, .95) 0%, rgba(18, 14, 46, .8) 42%, rgba(24, 18, 60, .42) 75%, rgba(24, 18, 60, .2) 100%); }
.dk-hero > .pstr.bg .pst-img { z-index: 0; }
/* messaggi */
.ib-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .ib-top h3 { margin: 0; } .lp-head .ib-top .btn { width: auto; }
.ib-chips { display: flex; gap: 6px; flex-wrap: wrap; } .ib-chips .chipb { padding: 4px 9px; }
.ibr { align-items: flex-start; } .ibr .lr-t { flex: 1; min-width: 0; } .ibr .lr-t small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ibr.unread .lr-t b { font-weight: 700; } .ibr .lr-m { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex: none; } .ibr .lr-m small { color: var(--rock); font-size: 11px; white-space: nowrap; }
.ib-w { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); display: inline-block; } .ib-p { display: flex; gap: 3px; }
.inb header .row-acts { margin-left: auto; } .inb h2 .ib-desk { font-size: 12px; font-weight: 500; color: var(--rock); background: var(--line-2); padding: 2px 8px; border-radius: 999px; margin-left: 6px; vertical-align: 3px; }
.ib-k { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .ib-k > div { background: var(--paper); border-radius: 14px; padding: 12px 14px; box-shadow: var(--shadow); }
.ib-k small { display: block; color: var(--rock); font-size: 11.5px; } .ib-k b { font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; } .ib-k .hot b { color: var(--accent-strong); }
.ibl { list-style: none; margin: 0; padding: 0; } .ibl a { display: flex; align-items: center; gap: 10px; padding: 10px 4px; border-bottom: 1px solid var(--line-2); text-decoration: none; color: var(--ink); } .ibl li:last-child a { border-bottom: 0; }
.ibl a:hover { background: var(--bg); border-radius: 10px; } .ibl b { display: block; font-size: 13.5px; } .ibl small { display: block; color: var(--rock); font-size: 12px; } .ibl .ib-t { flex: none; white-space: nowrap; } .ibl .av { margin: 0; flex: none; }
/* calendario */
.cal-bn { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; background: var(--paper); box-shadow: var(--shadow); border-left: 4px solid var(--accent); flex-wrap: wrap; }
.cal-bn.cb-ski { border-left-color: var(--ski); } .cal-bn.cb-alpine { border-left-color: var(--alp); } .cal-bn > .ico { width: 20px; height: 20px; color: var(--rock); flex: none; }
.cal-bn b { display: block; font-size: 13.5px; } .cal-bn small { display: block; color: var(--rock); font-size: 12px; }
/* nuova partenza : riepilogo */
.dep-sum { background: var(--bg); border-radius: 16px; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.ds-h { display: flex; align-items: center; gap: 12px; } .ds-h .pstr.thumb { width: 54px; height: 54px; border-radius: 12px; } .ds-h b { display: block; font-size: 15px; } .ds-h small { display: block; color: var(--rock); font-size: 12px; }
.ds-kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px 16px; margin: 0; } .ds-kv dt { font-size: 11px; color: var(--rock); text-transform: uppercase; letter-spacing: .05em; } .ds-kv dd { margin: 2px 0 0; font-size: 13px; font-weight: 500; }
.ds-g { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: 10px; } .ds-g b { font-size: 12.5px; } .ds-avs { display: flex; } .ds-g small { font-size: 12px; }
@media (max-width: 860px) { .ib-k { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; } .ib-k b { font-size: 18px; } .inb header { flex-wrap: wrap; } .inb header .row-acts { margin-left: 0; width: 100%; } }
.cal-wrap { align-items: start; } .calnav .btn[disabled] { opacity: .45; cursor: default; } .bar .cal-new { margin-left: auto; }
@media print { .side, .top, .tabbar, .bar .btn, .bar .info { display: none !important; } .app { display: block; } html, body, .main, #view, .screen { height: auto !important; overflow: visible !important; } .panel { box-shadow: none; break-inside: avoid; } }
.ib-also { display: flex; align-items: center; gap: 6px; margin: 4px 0 0; font-size: 12px; color: var(--alp); } .ib-also .av { width: 20px; height: 20px; margin: 0; object-fit: cover; }

/* ============ v2.7 — app installabile ============ */
.refbtn .rd-s { display: none; }
#ih { position: fixed; left: 12px; right: 12px; bottom: calc(var(--tab) + 30px + env(safe-area-inset-bottom, 0px)); z-index: 40; }
.ih-c { display: flex; align-items: center; gap: 12px; padding: 12px 12px 12px 14px; border-radius: 18px; background: #14171C; color: #fff; box-shadow: 0 12px 32px rgba(0,0,0,.28); }
.ih-c img { width: 40px; height: 40px; border-radius: 10px; flex: none; } .ih-c b { display: block; font-size: 14px; } .ih-c small { display: block; font-size: 12px; color: rgba(255,255,255,.75); line-height: 1.4; }
.ih-c small .ic { width: 15px; height: 15px; vertical-align: -3px; stroke: #fff; } .ih-c .icon-btn { background: rgba(255,255,255,.12); color: #fff; border-color: transparent; flex: none; }
@media (min-width: 861px) { #ih { display: none; } }
@media (max-width: 860px) { .refbtn .rd-l { display: none; } .refbtn .rd-s { display: inline; } .top h1 { font-size: 16px; } }

/* ============ v2.8 — flussi completi ============ */
.bub p { white-space: pre-line; }
.cmp-app { display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--ok, #1f7a4d); margin: 0; }
.cmp-app .ico { width: 16px; height: 16px; flex-shrink: 0; }
.btn.dc-b { color: var(--bad, #b42318); }
.dc-ban { font-size: 12px; color: var(--bad, #b42318); align-self: center; }
.btn.bk-x { color: var(--bad, #b42318); padding-inline: 8px; }
.cx-line { display: flex; gap: 6px; align-items: center; font-size: 13px; margin: 0 0 10px; flex-wrap: wrap; }
.cx-line .ico { width: 16px; height: 16px; }
.panel.cxq { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.panel.cxq .grow { min-width: 0; flex: 1 1 200px; }
.panel.cxq b { display: block; }
.panel.cxq small { color: var(--rock); }
.bc-sum { font-weight: 600; margin: 0; }
.mx-act { white-space: nowrap; }
.cxp .nact { margin: 12px 0; }
@media (min-width: 901px) {
  .dep-px .page-head > .grow { flex: 1 1 360px; min-width: 360px; }
  .dep-px .page-head > .head-acts { margin-left: auto; justify-content: flex-end; }
}
.cxp .px-body .chip { display: inline-flex; width: auto; margin-top: 10px; }

/* ============ v3.0 — devis, factures, banque, reversements, dépenses, conversations, partenaires, rôles, parcours ============ */
.sim { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 999px; border: 1px dashed var(--rock); color: var(--rock); font-size: 10.5px; font-weight: 600; letter-spacing: .02em; white-space: nowrap; vertical-align: 1px; cursor: help; background: none; }
.tblw { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.amt { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pos { color: #1E7A48; font-weight: 600; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .pos { color: #6FD39B; } }
:root[data-theme="dark"] .pos { color: #6FD39B; }

/* finances à onglets */
.fin3 { display: flex; flex-direction: column; gap: 18px; }
.ftabs { display: flex; gap: 4px; padding: 5px; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; overflow-x: auto; scrollbar-width: none; }
.ftabs::-webkit-scrollbar { display: none; }
.ftabs a { flex: 1 0 auto; display: inline-flex; justify-content: center; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 12px; color: var(--rock); text-decoration: none; font-weight: 600; font-size: 13px; white-space: nowrap; }
.ftabs a[aria-selected="true"] { background: var(--ink); color: var(--paper); }
.ftabs a b { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--accent); color: #fff; font-size: 10.5px; display: inline-grid; place-items: center; }
.trs-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-bottom: 12px; } .trs-h h3 { margin: 0; display: flex; align-items: center; gap: 6px; } .trs-h p { margin: 0; flex: 1 1 260px; }
.trs.big > h3 { font-size: 17px; } .trs.big > p { margin-bottom: 14px; }
.trs-k { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.trs-k > div { background: var(--bg); border-radius: 12px; padding: 10px 12px; min-width: 0; }
.trs-k small { display: block; color: var(--rock); font-size: 11.5px; line-height: 1.3; }
.trs-k b { display: block; font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trs-k.sm b { font-size: 16px; } .trs-k.sm { margin: 4px 0 12px; }
.trs-k .ok b { color: #1E7A48; } .trs-k .warn b { color: var(--warn); } .trs-k .bad b { color: var(--bad); }
.trs-k .ok { background: #EAF7F0; } .trs-k .warn { background: var(--warn-tint); } .trs-k .bad { background: var(--bad-tint); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .trs-k .ok { background: #16281F; } :root:not([data-theme="light"]) .trs-k .ok b { color: #6FD39B; } }
:root[data-theme="dark"] .trs-k .ok { background: #16281F; } :root[data-theme="dark"] .trs-k .ok b { color: #6FD39B; }

/* factures */
.invq { list-style: none; margin: 0 0 10px; padding: 0; }
.invq li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 10px 0; border-top: 1px solid var(--line-2); }
.invq li:first-child { border-top: 0; } .invq li small { display: block; color: var(--rock); font-size: 12px; } .invq .pill { min-width: 64px; justify-content: center; }
.pill.it-deposit { background: var(--ski-tint); color: var(--ski); } .pill.it-final { background: var(--accent-tint); color: var(--accent-strong); } .pill.it-credit { background: var(--bad-tint); color: var(--bad); } .pill.it-fee { background: var(--warn-tint); color: var(--warn); }
.inv-t { width: 100%; border-collapse: collapse; font-size: 13px; }
.inv-t th { text-align: left; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--rock); padding: 6px 8px 8px 0; border-bottom: 1px solid var(--line); white-space: nowrap; }
.inv-t td { padding: 9px 8px 9px 0; border-bottom: 1px solid var(--line-2); vertical-align: top; }
.inv-t td small { display: block; color: var(--rock); font-size: 11.5px; }
.inv-t .r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.inv-t tfoot td { font-weight: 700; border-bottom: 0; border-top: 1px solid var(--line); }
.inv-t a { color: var(--ink); font-weight: 600; text-decoration: none; } .inv-t .link { font-weight: 600; }
.invdoc { background: var(--paper); color: var(--ink); border: 1px solid var(--line); border-radius: 14px; padding: 22px 24px; }
.invdoc header { display: flex; justify-content: space-between; gap: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.invdoc header small, .invdoc .inv-to small { display: block; color: var(--rock); font-size: 12px; } .invdoc header .r { text-align: right; } .invdoc h2 { font-size: 18px; }
.invdoc .inv-to { margin: 16px 0; } .invdoc table { width: 100%; border-collapse: collapse; margin: 6px 0 14px; }
.invdoc td { padding: 8px 0; border-bottom: 1px solid var(--line-2); } .invdoc td.r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 12px; } .invdoc tfoot td { font-weight: 700; border-bottom: 0; }
.einv-l { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.einv-l li { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: 10px; background: var(--bg); font-size: 13px; }
.einv-l li .ico { margin-top: 1px; color: var(--rock); } .einv-l li.ok .ico { color: #1E7A48; } .einv-l li.warn { background: var(--warn-tint); } .einv-l li.warn .ico { color: var(--warn); }

/* banque */
.bk-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; } .bk-h h3 { display: flex; align-items: center; gap: 6px; margin: 0; }
.seg3.sm { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 1fr; border-radius: 12px; padding: 3px; } .seg3.sm button { padding: 6px 12px; font-size: 12.5px; } .seg3.sm b { font-weight: 600; margin-left: 4px; opacity: .7; }
.bkl { list-style: none; margin: 8px 0 0; padding: 0; }
.bk { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 6px 14px; align-items: start; padding: 12px 0; border-top: 1px solid var(--line-2); }
.bk:first-child { border-top: 0; } .bk.done { opacity: .72; }
.bk-d { font-size: 12px; color: var(--rock); font-weight: 600; padding-top: 2px; }
.bk-l b { display: block; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; font-weight: 600; word-break: break-word; } .bk-l small { color: var(--rock); font-size: 11.5px; }
.bk-a { font-variant-numeric: tabular-nums; white-space: nowrap; font-size: 15px; }
.bk-s, .bk-m { grid-column: 2 / -1; } .bk-m { display: flex; align-items: center; gap: 6px; font-size: 12.5px; }
.bk-s { display: flex; flex-direction: column; gap: 6px; } .bk-s > .btn { align-self: flex-start; } .bk-s > p { margin: 0; }
.bk-c { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line); }
.bk-c.best { background: var(--accent-tint); border-color: var(--accent-soft); }
.bk-c small { display: block; color: var(--rock); font-size: 11.5px; }
.bk-w { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; } .bk-w i { font-style: normal; font-size: 10.5px; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: var(--paper); color: var(--ink); border: 1px solid var(--line); }

/* reversements */
.pol { list-style: none; margin: 0; padding: 0; }
.pol li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 10px 0; border-top: 1px solid var(--line-2); }
.pol li:first-child { border-top: 0; } .pol li small { display: block; color: var(--rock); font-size: 11.5px; } .pol li .grow { min-width: 160px; }
.pol li.done { opacity: .65; } .pol li.late b.amt { color: var(--bad); }
.pol.sm li { padding: 7px 0; } .pol.sm .amt { font-size: 13px; }

/* dépenses */
.exl { list-style: none; margin: 0; padding: 0; }
.exr { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 0; border-top: 1px solid var(--line-2); }
.exr:first-child { border-top: 0; } .exr .grow { min-width: 180px; } .exr small { display: block; color: var(--rock); font-size: 11.5px; }
.rcpt { width: 44px; height: 44px; border-radius: 10px; flex: none; object-fit: cover; display: grid; place-items: center; background: var(--bg); color: var(--rock); border: 1px solid var(--line); }
.rcpt.ok { background: #EAF7F0; color: #1E7A48; border-color: transparent; } .rcpt.miss { background: var(--bad-tint); color: var(--bad); border-color: transparent; }
.ex-s { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; } .ex-s small { display: inline; }
.rc-up { justify-content: flex-start; gap: 8px; border-style: dashed; min-height: 48px; }
.rcpt-prev { grid-column: 1 / -1; max-height: 180px; max-width: 100%; border-radius: 12px; object-fit: contain; justify-self: start; }

/* devis : liste */
.qk { margin: 14px 0; }
.qlist { display: flex; flex-direction: column; gap: 8px; }
.qrow2 { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto 120px; gap: 6px 16px; align-items: center; padding: 12px 16px; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; color: var(--ink); text-decoration: none; box-shadow: var(--shadow); }
.qrow2:hover { border-color: var(--rock); }
.qrow2 small { display: block; color: var(--rock); font-size: 11.5px; } .qrow2 .grow b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-no b { font-variant-numeric: tabular-nums; font-size: 12.5px; } .q-st { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; } .q-amt { text-align: right; } .q-amt b { font-size: 15px; font-variant-numeric: tabular-nums; }
.pill.qs-sent { background: var(--ski-tint); color: var(--ski); } .pill.qs-accepted { background: #DCF5E7; color: #1E7A48; } .pill.qs-declined { background: var(--bad-tint); color: var(--bad); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .pill.qs-accepted { background: #16281F; color: #6FD39B; } }
:root[data-theme="dark"] .pill.qs-accepted { background: #16281F; color: #6FD39B; }

/* devis : document (agence, client, impression) */
.qdoc { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: 26px 28px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 16px; }
.qdoc header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.qdoc header > div:first-child { display: flex; align-items: center; gap: 10px; } .qdoc header img { height: 34px; width: auto; }
.qdoc header .r { text-align: right; } .qdoc header .r small { display: block; color: var(--rock); font-size: 11.5px; } .qdoc header h2 { font-size: 20px; font-variant-numeric: tabular-nums; }
.qd-to { display: grid; grid-template-columns: 1fr auto; gap: 16px; } .qd-to small { display: block; color: var(--rock); font-size: 11.5px; } .qd-to > div:last-child { text-align: right; }
.qdoc h1 { font-size: 24px; font-weight: 500; letter-spacing: -.015em; margin: 0; }
.qd-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--rock); margin: -8px 0 0; } .qd-sub .ico { width: 15px; height: 15px; }
.qd-t { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.qd-t th { text-align: left; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--rock); padding: 0 8px 8px 0; border-bottom: 1px solid var(--line); }
.qd-t td { padding: 11px 8px 11px 0; border-bottom: 1px solid var(--line-2); vertical-align: top; } .qd-t td small { display: block; color: var(--rock); font-size: 12px; margin-top: 2px; }
.qd-t .r { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.qd-t tr.opt td { color: var(--rock); } .qd-t tr.opt.on td { color: var(--ink); } .qd-t tr.opt td:first-child { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.qd-t tr.opt td:first-child small { flex-basis: 100%; padding-left: 36px; }
.qopt, .qopt-s { width: 28px; height: 28px; border-radius: 8px; display: inline-grid; place-items: center; border: 1.5px solid var(--line); background: var(--paper); color: var(--rock); flex: none; }
.qopt { cursor: pointer; } .qopt:hover { border-color: var(--accent); }
.qopt.on, tr.opt.on .qopt-s { background: var(--accent-btn); border-color: var(--accent-btn); color: var(--on-accent); } .qopt .ico, .qopt-s .ico { width: 15px; height: 15px; }
.qd-att { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; background: var(--ski-tint); color: var(--ink); } .qd-att > .ico { width: 26px; height: 26px; color: var(--ski); } .qd-att small { display: block; color: var(--rock); font-size: 12px; }
.qd-tot { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.qd-tot > div { background: var(--bg); border-radius: 14px; padding: 12px 14px; } .qd-tot > div:first-child { background: var(--ink); color: var(--paper); }
.qd-tot small { display: block; font-size: 11.5px; opacity: .75; } .qd-tot b { display: block; font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; }
.qd-n { margin: 0; padding: 10px 14px; border-left: 3px solid var(--accent); background: var(--accent-tint); border-radius: 0 10px 10px 0; font-size: 13px; }
.qdoc .io { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .qdoc .io ul { margin: 0; padding-left: 18px; font-size: 13px; }
.qd-c { border-top: 1px solid var(--line-2); padding-top: 12px; } .qd-c p { margin: 0 0 6px; }
.qd-sig { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 10px 14px; border: 1px dashed var(--line); border-radius: 12px; } .qd-sig img { max-height: 64px; max-width: 240px; } .qd-sig small { color: var(--rock); }
.qdg { align-items: start; }
.qtl { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; }
.qtl li { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 6px 0; position: relative; color: var(--rock); }
.qtl li i { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--line); background: var(--paper); justify-self: center; position: relative; z-index: 1; }
.qtl li:not(:last-child)::after { content: ""; position: absolute; left: 7px; top: 22px; bottom: -8px; width: 2px; background: var(--line-2); }
.qtl li.on { color: var(--ink); } .qtl li.on i { background: var(--accent); border-color: var(--accent); } .qtl li small { color: var(--rock); font-variant-numeric: tabular-nums; }
.qm td:first-child { max-width: 220px; }

/* devis : vue client */
.qview { max-width: 880px; }
.qacc { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; border: 2px solid var(--accent-soft); }
.qacc .grow b { display: block; font-size: 18px; } .qacc .grow small { display: block; color: var(--rock); font-size: 12.5px; }
.qacc .row-acts { margin: 0; } .qacc .btn.big { width: auto; padding: 0 26px; }
.qacc.ok { border-color: #BFE8D0; } .qacc .ok-c { width: 44px; height: 44px; } .qacc .ok-c .ico { width: 22px; height: 22px; }
.qv-help { text-align: center; }
body.share-mode .qview .portal-banner { display: none; }

/* devis : éditeur */
.sheet-panel.qform { width: min(960px, calc(100vw - 24px)); }
.qed { display: flex; flex-direction: column; gap: 6px; padding: 12px; background: var(--bg); border-radius: 14px; }
.qed[hidden], .qform [data-att][hidden] { display: none; }
.qrow { display: grid; grid-template-columns: minmax(160px, 2.6fr) 54px 82px 82px minmax(110px, 1.3fr) 54px auto 30px; gap: 6px; align-items: center; }
.qrow input, .qrow select { min-height: 34px; padding: 5px 8px; font-size: 13px; }
.qrow.head { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--rock); }
.ql-opt { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; white-space: nowrap; color: var(--rock); }
.qed .row-acts { margin-top: 6px; } .qed .row-acts select { max-width: 280px; min-height: 30px; font-size: 12.5px; }
.qsum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.qsum > div { background: var(--bg); border-radius: 12px; padding: 8px 12px; } .qsum small { display: block; color: var(--rock); font-size: 11px; } .qsum b { font-size: 16px; font-variant-numeric: tabular-nums; }
.qsum > div:first-child { background: var(--ink); color: var(--paper); } .qsum > div:first-child small { color: inherit; opacity: .75; }

/* conversations */
.oncall { display: flex; align-items: center; gap: 10px; padding: 10px 12px; margin: 2px 0 6px; border-radius: 12px; background: var(--accent-tint); }
.oncall > .ico { color: var(--accent-strong); } .oncall b { display: block; font-size: 12.5px; } .oncall small { display: block; color: var(--rock); font-size: 11px; line-height: 1.35; } .oncall .btn { flex: none; }
.ib-sec { margin: 10px 8px 4px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--rock); }
.av.grp { background: var(--alp-tint); color: var(--alp); border-color: transparent; display: inline-grid; place-items: center; } .av.grp .ico { width: 18px; height: 18px; } .av.lg.grp .ico { width: 24px; height: 24px; }
.grp-av { display: flex; margin-top: 6px; } .grp-av > * { margin: 0 0 0 -6px !important; box-shadow: 0 0 0 2px var(--paper); } .grp-av > *:first-child { margin-left: 0 !important; }
.chn { display: inline-grid; place-items: center; width: 15px; height: 15px; border-radius: 4px; margin-right: 4px; vertical-align: -3px; font-style: normal; }
.chn .ico { width: 11px; height: 11px; stroke-width: 2; } .chn.wa { background: #DCF5E7; color: #1E7A48; } .chn.ml { background: var(--ski-tint); color: var(--ski); }
.offh { font-style: normal; font-weight: 600; color: var(--warn); }
.bub.auto > div { background: none; border: 1px dashed var(--line); }
.ch-sel { flex: none; width: auto; min-height: 42px; padding: 0 8px; font-size: 12.5px; border-radius: 12px; }
.ch-note { margin: 0; padding: 8px 14px 12px; color: var(--rock); font-size: 11.5px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.msgw { display: flex; flex-direction: column; gap: 12px; min-height: 0; max-width: 820px; width: 100%; margin: 0 auto; }
.msgw > .chat-pane.solo { max-width: none; }
.hrs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 10px 14px; border-radius: 14px; background: var(--paper); box-shadow: var(--shadow); font-size: 12.5px; }
.hrs > .ico { color: #1E7A48; } .hrs.closed > .ico { color: var(--warn); } .hrs b { display: block; font-size: 13px; } .hrs small { display: block; color: var(--rock); font-size: 11.5px; }
.hrs-wa { display: inline-flex !important; align-items: center; gap: 6px; }
.grpp .gl { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.grpp .gl li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: start; font-size: 12.5px; } .grpp .gl time { color: var(--rock); font-size: 11px; white-space: nowrap; }
small.hot { background: var(--bad) !important; color: #fff !important; }

/* partenaire : espace partagé */
.ph-h .dk-main h1 { font-size: 24px; } .dk-ic { background: rgba(255,255,255,.14) !important; color: #fff; width: 36px; height: 36px; border-radius: 11px; }
.pmini2 { color: var(--ink); text-decoration: none; border-top-color: var(--alp); } .pmini2:hover { box-shadow: 0 0 0 2px var(--line), var(--shadow); }
.pmini2 .pcd-m { grid-template-columns: repeat(4, minmax(0, 1fr)); } .pmini2 header b { display: block; font-size: 15px; }
.pt-t th:not(:first-child), .pt-t td:not(:first-child) { min-width: 104px; }
.pt-t td .pill { margin-bottom: 2px; }
.lockd { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--rock); background: var(--line-2); padding: 2px 8px; border-radius: 999px; white-space: nowrap; } .lockd .ico { width: 12px; height: 12px; }
.ptl { list-style: none; margin: 0; padding: 0; }
.ptl li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 9px 0; border-top: 1px solid var(--line-2); }
.ptl li:first-child { border-top: 0; } .ptl li small { display: block; color: var(--rock); font-size: 11.5px; } .ptl li .grow { min-width: 160px; }
.ptl .pt-ic { width: 30px; height: 30px; border-radius: 9px; background: var(--bg); color: var(--rock); } .ptl .pt-ic .ico { width: 15px; height: 15px; }
.ptl li.done .pt-ic { background: #DCF5E7; color: #1E7A48; } .ptl li.done b { color: var(--rock); font-weight: 500; }
.ptl li.late .pt-ic { background: var(--bad-tint); color: var(--bad); }
.ptl.sm li { padding: 6px 0; }
.ppn h4 { margin: 14px 0 6px; } .pp-k { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.pp-k > div { background: var(--bg); border-radius: 10px; padding: 7px 10px; } .pp-k small { display: block; color: var(--rock); font-size: 10.5px; line-height: 1.25; } .pp-k b { font-size: 16px; }
.pf { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; } .pf .check { font-size: 13px; }

/* rôles, chaîne d’alerte, journal d’incident */
.roles .kv > div { flex-direction: column; gap: 2px; } .roles .kv dt { font-size: 11.5px; } .roles .kv dd { text-align: left; } .roles .kv dd small { display: block; font-weight: 400; color: var(--rock); font-size: 12px; }
.ppn .plist small, .pspace .plist small { display: block; }
.roles h4 { margin: 16px 0 8px; }
.chain { list-style: none; margin: 0 0 10px; padding: 0 0 0 14px; border-left: 2px solid var(--accent-soft); display: flex; flex-direction: column; gap: 8px; }
.chain li { position: relative; } .chain li::before { content: ""; position: absolute; left: -20px; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--paper); }
.chain li b { display: block; font-size: 13px; } .chain li small { display: block; color: var(--rock); font-size: 12px; }
.inc { padding: 12px 0; border-top: 1px solid var(--line-2); } .incp .inc:first-of-type { border-top: 0; padding-top: 0; }
.inc-h { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-bottom: 8px; } .inc-h small { color: var(--rock); flex: 1 1 160px; }
.ilog { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ilog li { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 10px; font-size: 12.5px; padding: 6px 10px; border-radius: 8px; background: var(--bg); }
.ilog time { color: var(--rock); font-variant-numeric: tabular-nums; font-size: 11.5px; padding-top: 1px; }

/* fiche départ : panneaux 3.0 */
.dep3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; margin-top: 18px; }
.dep3 .stack:empty { display: none; }
.dep3 .trs-k, .dep3 .pp-k { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dep3 .trs-k b { font-size: 17px; }
@media (max-width: 1280px) { .dep3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1080px) { .dep3 { grid-template-columns: minmax(0, 1fr); } }

/* guide : facture ; client : virement, devis à valider */
.gi-new { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 14px; border-radius: 14px; background: var(--accent-tint); margin-bottom: 10px; }
.gi-new b { display: block; font-size: 16px; } .gi-new small { display: block; color: var(--rock); font-size: 12px; }
.gip .plist li .btn { flex: none; }
.wire .kv dd { font-variant-numeric: tabular-nums; } .wire .mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; letter-spacing: .03em; color: var(--accent-strong); }
.qcard { display: flex; flex-direction: column; gap: 10px; border: 2px solid var(--accent-soft); }
.qc { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; } .qc small { display: block; color: var(--rock); font-size: 12px; } .qc b { display: block; font-size: 15px; } .qc .pt-ic { background: var(--accent-tint); color: var(--accent-strong); }

/* réglages : profils et modules */
.prof { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.mods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; border: 0; padding: 0; margin: 0; }
.mods legend { margin-bottom: 6px; } .mods .check { align-items: flex-start; } .mods .check b { display: block; font-size: 13px; } .mods .check small { display: block; color: var(--rock); font-size: 11.5px; line-height: 1.35; }

/* parcours 3.0 */
.tour { max-width: 1240px; }
.tour-h { background: var(--ink); color: #fff; border-radius: 24px; padding: 26px 28px; display: flex; flex-direction: column; gap: 8px; }
.tour-h h1 { font-size: clamp(24px, 3.2vw, 34px); font-weight: 500; letter-spacing: -.02em; margin: 0; color: #fff; }
.tour-h .dk-lead { max-width: 760px; font-size: 14px; }
.tour-leg { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.tour-leg span, .tc-st { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.st-real { background: #DCF5E7; color: #1E7A48; } .st-mixed { background: var(--warn-tint); color: var(--warn); }
.tour-h .st-real { background: rgba(111, 211, 155, .18); color: #9BE3BC; } .tour-h .st-mixed { background: rgba(245, 185, 74, .18); color: #F8D57E; }
.tour-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tcard { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; padding: 18px 18px 16px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 10px; }
.tcard header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .tcard header h3 { flex: 1 1 140px; font-size: 15px; } .tcard header > .ico { color: var(--accent-strong); }
.tc-n { width: 26px; height: 26px; border-radius: 50%; background: var(--accent-btn); color: var(--on-accent); display: inline-grid; place-items: center; font-weight: 700; font-size: 12.5px; flex: none; }
.tc-you, .tc-maos { margin: 0; font-size: 13px; line-height: 1.5; } .tc-you small, .tc-maos small { display: block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--rock); margin-bottom: 2px; }
.tc-you { color: var(--rock); font-style: italic; padding-left: 10px; border-left: 3px solid var(--line); } .tc-you small { font-style: normal; }
.tc-maos small { color: var(--accent-strong); }
.tcard .row-acts { margin-top: auto; padding-top: 4px; }
.tour-lim { border-style: dashed; } .tour-lim p { margin: 0; color: var(--rock); }
.tour-ban { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin-bottom: 16px; border-radius: 16px; background: var(--ink); color: #fff; }
.tour-ban > .ico { color: var(--accent); width: 22px; height: 22px; } .tour-ban b { display: block; font-size: 14px; } .tour-ban small { display: block; color: rgba(255,255,255,.72); font-size: 12px; }
.tour-ban .icon-btn { background: transparent; color: #fff; border-color: rgba(255,255,255,.25); flex: none; }
.tour-back { position: fixed; left: calc(var(--side) + 18px); bottom: 18px; z-index: 40; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; border: 0; background: var(--ink); color: var(--paper); font: 600 13px var(--f); box-shadow: 0 10px 30px rgba(16, 24, 40, .25); cursor: pointer; }
.tour-back .ico { color: var(--accent); }
body.role-client .tour-back, body.role-guide .tour-back, body.role-partner .tour-back, body.share-mode .tour-back { left: 18px; }
@media (max-width: 1280px) { .tour-g { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* rôle partenaire et connexion à quatre onglets */
.role-partner .pole-sw, .role-partner #cmdBtn, .role-partner #setBtn, .role-partner #refBtn { display: none !important; }
.role-partner #view { padding-top: 8px; }
.seg3:has(> button:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); } .seg3:has(> button:nth-child(4)) button { padding: 9px 4px; font-size: 12.5px; }

/* impression du devis et des factures */
@media print {
  .side, .top, .tabbar, .tour-back, .back, .head-acts, .qdg > .stack:last-child, .qacc, .qv-help, .portal-banner, .toasts { display: none !important; }
  .app, .main, #view { display: block !important; padding: 0 !important; margin: 0 !important; }
  .detail-grid.wide-left { display: block; } .qdoc { box-shadow: none; border: 0; padding: 0; } body { background: #fff; }
}

/* mobile */
@media (max-width: 860px) {
  .trs-k { grid-template-columns: repeat(2, minmax(0, 1fr)); } .trs-k b { font-size: 17px; }
  .bk { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 4px 10px; } .bk-s, .bk-m { grid-column: 1 / -1; }
  .qrow2 { grid-template-columns: minmax(0, 1fr) auto; padding: 12px 14px; } .qrow2 .q-no { grid-column: 1 / -1; display: flex; gap: 8px; align-items: baseline; } .qrow2 .grow { grid-column: 1 / -1; } .qrow2 .grow b { white-space: normal; }
  .qdoc { padding: 18px 16px; border-radius: 16px; } .qdoc h1 { font-size: 20px; } .qdoc .io { grid-template-columns: 1fr; } .qd-to { grid-template-columns: 1fr; } .qd-to > div:last-child { text-align: left; }
  .qd-t th:nth-child(2), .qd-t td:nth-child(2), .qd-t th:nth-child(3), .qd-t td:nth-child(3) { display: none; }
  .qd-tot b { font-size: 18px; }
  .qacc { flex-direction: column; align-items: stretch; } .qacc .row-acts { flex-direction: column; align-items: stretch; } .qacc .btn.big { width: 100%; }
  .qrow { grid-template-columns: 1fr 1fr 1fr; padding: 8px; background: var(--paper); border-radius: 10px; } .qrow.head { display: none; }
  .qrow input[name=ql_label] { grid-column: 1 / -1; } .qrow select { grid-column: span 2; }
  .qsum { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pmini2 .pcd-m, .pp-k { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf, .mods, .prof { grid-template-columns: 1fr; }
  .tour-g { grid-template-columns: 1fr; } .tour-h { padding: 20px 18px; border-radius: 20px; }
  .tour-back { left: 12px !important; bottom: calc(var(--tab) + 14px + env(safe-area-inset-bottom, 0px)); }
  .ilog li { grid-template-columns: 1fr; gap: 2px; }
  .oncall .btn { display: none; }
  .ch-sel { min-height: 38px; }
  .invdoc { padding: 16px; }
}
/* case à cocher dans les fiches : la case à gauche du texte (corrige l’empilement vertical) */
.check.field { flex-direction: row; align-items: flex-start; gap: 10px; text-align: left; } .check.field input { flex: none; margin-top: 2px; }
.days7 { flex-direction: row !important; flex-wrap: wrap; gap: 4px 16px; } .days7 legend { width: 100%; margin-bottom: 4px; } .days7 .check { min-height: 30px; }
.mods .check input, .pf .check input { flex: none; margin-top: 2px; }
/* v3.0 — mode sombre des pastilles vertes */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .rcpt.ok, :root:not([data-theme="light"]) .ptl li.done .pt-ic, :root:not([data-theme="light"]) .chn.wa, :root:not([data-theme="light"]) .st-real { background: #16281F; color: #6FD39B; } :root:not([data-theme="light"]) .qacc.ok { border-color: #1F4A33; } }
:root[data-theme="dark"] .rcpt.ok, :root[data-theme="dark"] .ptl li.done .pt-ic, :root[data-theme="dark"] .chn.wa, :root[data-theme="dark"] .st-real { background: #16281F; color: #6FD39B; } :root[data-theme="dark"] .qacc.ok { border-color: #1F4A33; }
:root[data-theme="dark"] .tour-h, :root[data-theme="dark"] .tour-ban { background: #23272E; } :root[data-theme="dark"] .qd-tot > div:first-child, :root[data-theme="dark"] .qsum > div:first-child { background: #2A2F36; color: var(--ink); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tour-h, :root:not([data-theme="light"]) .tour-ban { background: #23272E; } :root:not([data-theme="light"]) .qd-tot > div:first-child, :root:not([data-theme="light"]) .qsum > div:first-child { background: #2A2F36; color: var(--ink); } }

/* ============ v3.1 — vetrina, scheda esperienza, prenotazione, regalo, spazio e profilo del cliente ============ */
body.public-mode .side, body.public-mode .top, body.public-mode .tabbar { display: none !important; }
body.public-mode .app { grid-template-columns: 1fr; } body.public-mode #view { max-width: 1240px; margin: 0 auto; padding: 0 24px 40px; }
.pubw { display: flex; flex-direction: column; gap: 0; }
.pub-h { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 18px; padding: 14px 0; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(8px); margin-bottom: 8px; }
.pub-brand { display: flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; } .pub-brand .lgo { height: 34px; width: auto; } .pub-brand b { display: block; font-size: 14px; } .pub-brand small { display: block; color: var(--rock); font-size: 11.5px; }
.pub-h nav { display: flex; gap: 4px; margin-left: auto; } .pub-h nav a, .pub-h nav .linkish { padding: 8px 12px; border-radius: 999px; color: var(--ink); text-decoration: none; font: 500 13.5px var(--f); background: none; border: 0; cursor: pointer; } .pub-h nav a.on { background: var(--ink); color: var(--paper); }
.pub-r { display: flex; align-items: center; gap: 8px; }
.pub-f { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 32px; padding: 18px 0; border-top: 1px solid var(--line); color: var(--rock); font-size: 12px; }
.pstr.pc-ph .pstr-alt, .pstr.dc3-ph .pstr-alt, .pstr.bk-ph .pstr-alt { display: none; }
.sec-h { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 16px; margin: 6px 0 14px; } .sec-h h2 { font-size: 22px; font-weight: 600; letter-spacing: -.015em; } .sec-h small { color: var(--rock); }

/* vetrina */
.cat { gap: 26px; }
.cat-h, .xp-h { position: relative; overflow: hidden; border-radius: 26px; min-height: 340px; display: flex; align-items: flex-end; color: #fff; background: #1B2430; }
.cat-ov { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,14,20,.05) 20%, rgba(10,14,20,.78) 100%); }
.cat-hb, .xp-hb { position: relative; padding: 34px 36px; max-width: 760px; } .cat-hb h1, .xp-hb h1 { font-size: clamp(30px, 4.4vw, 50px); font-weight: 600; letter-spacing: -.025em; line-height: 1.05; margin: 6px 0 10px; color: #fff; } .cat-hb p { color: rgba(255,255,255,.86); font-size: 15px; max-width: 620px; margin: 0; }
.cat-trust { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; } .cat-trust span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.14); backdrop-filter: blur(6px); font-size: 12.5px; font-weight: 500; } .cat-trust .ico { width: 15px; height: 15px; }
.chips2 { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px; } .chips2::-webkit-scrollbar { display: none; }
.chip2 { flex: none; padding: 9px 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); text-decoration: none; font-weight: 600; font-size: 13px; } .chip2.on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.dcards3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
.dcard3 { display: grid; grid-template-columns: 92px minmax(0, 1fr); background: var(--paper); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; color: var(--ink); text-decoration: none; box-shadow: var(--shadow); position: relative; transition: transform .15s, box-shadow .15s; }
.dcard3:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -12px rgba(16,24,40,.25); }
.pstr.dc3-ph { grid-row: 1; grid-column: 1; min-height: 100%; } .dc3-d { grid-row: 1; grid-column: 1; position: relative; z-index: 1; align-self: start; margin: 10px; padding: 6px 8px; border-radius: 12px; background: rgba(255,255,255,.92); color: #1B1F24; text-align: center; width: max-content; } .dc3-d b { display: block; font-size: 15px; line-height: 1.1; } .dc3-d small { display: block; font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: #667085; }
.dc3-b { padding: 12px 14px; display: flex; flex-direction: column; gap: 3px; min-width: 0; } .dc3-b small { color: var(--accent-strong); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; } .dc3-b b { font-size: 15px; } .dc3-b > span { color: var(--rock); font-size: 12.5px; }
.dc3-f { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin-top: 6px; } .dc3-f em { font-style: normal; font-weight: 700; color: var(--ink); font-size: 13.5px; }
.pcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.pcard { position: relative; background: var(--paper); border: 1px solid var(--line); border-radius: 22px; overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; transition: transform .15s, box-shadow .15s; }
.pcard:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -14px rgba(16,24,40,.28); }
.pc-a { position: relative; display: block; aspect-ratio: 16 / 10; } .pstr.pc-ph { position: absolute; inset: 0; }
.pc-top { position: absolute; left: 12px; top: 12px; right: 56px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; z-index: 1; } .pc-top em { font-style: normal; font-size: 11.5px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.92); color: #1B1F24; }
.pc-top .act-ic { background: rgba(255,255,255,.92); }
.icon-btn.fav { color: var(--rock); } .icon-btn.fav.on { color: #fff; background: var(--accent-btn); border-color: var(--accent-btn); } .icon-btn.fav.on .ico { fill: currentColor; }
.pc-fav { position: absolute; right: 12px; top: 12px; z-index: 2; background: rgba(255,255,255,.92); border-color: transparent; }
.pc-b { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; } .pc-b .px-k { margin: 0; font-size: 10.5px; } .pc-b h3 { font-size: 18px; letter-spacing: -.01em; } .pc-b h3 a { color: var(--ink); text-decoration: none; }
.pc-m { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0; color: var(--rock); font-size: 12.5px; } .pc-m span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; } .pc-m .ico { width: 14px; height: 14px; }
.pc-f { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line-2); } .pc-f b { display: block; font-size: 16px; } .pc-f small { color: var(--rock); font-size: 12px; }
.cat-ban { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ban-c { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 18px 20px; border-radius: 22px; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); } .ban-c b { display: block; font-size: 16px; } .ban-c small { display: block; color: var(--rock); }

/* scheda esperienza */
.xp { gap: 18px; } .xp-h { min-height: 420px; } .xp-rv { display: flex; align-items: center; gap: 8px; margin: 0; } .xp-rv small { color: rgba(255,255,255,.8); } .xp-rv .stars i { color: #FFC24B; }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.facts > div { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; } .facts .ico { color: var(--accent-strong); width: 20px; height: 20px; } .facts small { display: block; color: var(--rock); font-size: 11px; } .facts b { display: block; font-size: 13.5px; }
.xp-g { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 20px; align-items: start; }
.xp-pitch { font-size: 15.5px; line-height: 1.6; margin-bottom: 12px; }
.hl { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; } .hl li { display: flex; gap: 10px; align-items: flex-start; } .hl .ico { color: #1E7A48; margin-top: 2px; }
.xp .itin li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 10px 0; border-top: 1px solid var(--line-2); } .xp .itin li:first-child { border-top: 0; } .xp .itin b { color: var(--accent-strong); } .xp .itin li > span { white-space: pre-line; overflow-wrap: anywhere; }
.planb { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; padding: 10px 14px; border-radius: 12px; background: var(--ski-tint); font-size: 13px; } .planb .ico { color: var(--ski); }
.incl { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13.5px; } .incl li { position: relative; padding-left: 24px; } .incl li::before { position: absolute; left: 0; top: 0; font-weight: 700; } .incl.is-yes li::before { content: "✓"; color: #1E7A48; } .incl.is-no li::before { content: "–"; color: var(--rock); } .xp .io { margin-top: 0; } .xp .io h4 { margin-bottom: 10px; }
.gear2 { columns: 2; column-gap: 24px; margin: 0; padding-left: 18px; font-size: 13.5px; } .gear2 li { break-inside: avoid; margin: 3px 0; }
.rvs { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; } .rvs li { padding-top: 12px; border-top: 1px solid var(--line-2); } .rvs li:first-child { border-top: 0; padding-top: 0; }
.rv-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; } .rv-h small { color: var(--rock); } .rv-h .stars { margin-left: auto; } .rvs p { margin: 6px 0 0; font-size: 13.5px; }
.stars i { color: #E8A317; } .stars i .ico { width: 14px; height: 14px; } .stars i:not(.on) { color: var(--line); }
.bookbox { position: sticky; top: 14px; display: flex; flex-direction: column; gap: 12px; border-radius: 22px; border: 1px solid var(--line); }
.bb-p small { display: block; color: var(--rock); font-size: 12px; } .bb-p b { display: block; font-size: 28px; letter-spacing: -.02em; line-height: 1.1; }
.bb-l { margin: 0; font-weight: 600; font-size: 13px; }
.bb-deps { display: flex; flex-direction: column; gap: 8px; }
.bb-d { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); text-decoration: none; } .bb-d:hover { border-color: var(--rock); }
.bb-d.on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); background: var(--accent-tint); } .bb-d.full { opacity: .7; }
.bb-d b { display: block; font-size: 14px; } .bb-d small { display: block; color: var(--rock); font-size: 11.5px; line-height: 1.3; } .bb-dr { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; } .bb-dr em { font-style: normal; font-weight: 700; font-size: 13.5px; }
.bookbox .btn.big { width: 100%; } .bookbox .btn.full { width: 100%; }
.bb-n { margin: -4px 0 0; color: var(--rock); font-size: 12px; text-align: center; }
.bb-x { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-top: 8px; border-top: 1px solid var(--line-2); } .bb-x .icon-btn { width: 34px; height: 34px; }
.bb-t { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 12px; color: var(--rock); } .bb-t li { display: flex; align-items: center; gap: 8px; } .bb-t .ico { width: 15px; height: 15px; color: #1E7A48; }
.pill.st-full { background: var(--bad-tint); color: var(--bad); }

/* prenotazione */
.bkp { gap: 14px; } .bk-t { font-size: clamp(24px, 3vw, 32px); font-weight: 600; letter-spacing: -.02em; margin: 0; }
.bk-g { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.bk-s h3 { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; font-size: 16px; } .bk-s h4 { margin: 14px 0 8px; }
.bk-n { width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: var(--paper); display: inline-grid; place-items: center; font-size: 12.5px; font-weight: 700; flex: none; }
.bk-s .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bk-s > .btn.big { width: 100%; margin-top: 12px; } .bk-s > .btn.big .ico { width: 18px; height: 18px; }
.bk-me { display: flex; align-items: center; gap: 12px; } .bk-me b { display: block; } .bk-me small { color: var(--rock); }
.bk-exists { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 10px; padding: 10px 14px; border-radius: 12px; background: var(--warn-tint); color: var(--warn); font-weight: 500; }
.stepper { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; } .stepper b { font-size: 24px; min-width: 28px; text-align: center; font-variant-numeric: tabular-nums; } .stepper .icon-btn:disabled { opacity: .35; cursor: not-allowed; }
.choices.two { grid-template-columns: repeat(2, minmax(0, 1fr)); } .choices.amts { grid-template-columns: repeat(5, minmax(0, 1fr)); } .choices.amts .choice { padding: 12px 8px; align-items: center; text-align: center; } .choices.amts .choice input { position: static; margin: 0 auto 4px; }
.bk-gift { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 14px; } .bk-gift .field { flex: 1 1 200px; } .bk-gift input { text-transform: uppercase; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.bk-sum { position: sticky; top: 14px; display: flex; flex-direction: column; gap: 8px; border-radius: 22px; } .pstr.bk-ph { height: 140px; border-radius: 16px; margin-bottom: 6px; } .bk-sum h3 { font-size: 18px; } .bk-sum p { margin: 0; } .bk-sum .ico { width: 14px; height: 14px; vertical-align: -2px; color: var(--rock); }
.bk-sum .kv { margin-top: 8px; } .bk-sum .kv .tot { padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); } .bk-sum .kv .tot dt { color: var(--ink); font-weight: 600; } .bk-sum .kv .tot dd { font-size: 22px; }
.bkdone { display: flex; gap: 18px; align-items: flex-start; border: 2px solid #BFE8D0; margin-bottom: 16px; } .bkdone h2 { font-size: 22px; margin-bottom: 4px; } .bkdone .ok-c { width: 56px; height: 56px; flex: none; } .bkdone .ok-c .ico { width: 28px; height: 28px; }
.bkd-l { list-style: none; margin: 10px 0; padding: 0; display: grid; gap: 6px; } .bkd-l li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; } .bkd-l li.is-ok .ico { color: #1E7A48; } .bkd-l li.is-todo .ico { color: var(--warn); }

/* buono regalo */
.gfp { max-width: 1100px; } .gf-h { display: flex; align-items: center; gap: 16px; } .gf-h h1 { font-size: clamp(26px, 3.4vw, 36px); font-weight: 600; letter-spacing: -.02em; margin: 2px 0 4px; } .gf-h p { margin: 0; }
.giftc { border-radius: 24px; padding: 24px 26px; background: linear-gradient(135deg, #1B1F24 0%, #2B2118 55%, #6B3514 100%); color: #fff; box-shadow: 0 20px 40px -20px rgba(16,24,40,.5); }
.giftc.prev { opacity: .96; } .gc-top { display: flex; justify-content: space-between; align-items: center; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.75); } .gc-top .lgo { height: 30px; width: auto; filter: brightness(0) invert(1); }
.gc-a { display: block; font-size: 46px; font-weight: 600; letter-spacing: -.02em; margin: 18px 0 2px; } .gc-to { margin: 0; font-size: 15px; } .gc-m { margin: 8px 0 0; font-style: italic; color: rgba(255,255,255,.85); }
.gc-f { display: flex; gap: 28px; margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.2); } .gc-f small { display: block; font-size: 11px; color: rgba(255,255,255,.7); } .gc-f b { font-size: 14px; }
.gfp > .giftc { max-width: 560px; margin: 10px auto 0; } .row-acts.center, p.center { justify-content: center; text-align: center; }

/* spazio cliente */
.fy { display: flex; flex-direction: column; gap: 16px; margin-top: 6px; }
.qa { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.qa-i { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 8px; border-radius: 18px; background: var(--paper); border: 1px solid var(--line); color: var(--ink); text-decoration: none; font: 600 13px var(--f); cursor: pointer; box-shadow: var(--shadow); } .qa-i .ico { width: 24px; height: 24px; color: var(--accent-strong); } .qa-i:hover { border-color: var(--accent-soft); }
.wl { display: grid; gap: 8px; } .wl-i { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px 14px; border-radius: 16px; background: var(--warn-tint); } .wl-i > .ico { color: var(--warn); } .wl-i b { display: block; } .wl-i small { display: block; color: var(--rock); }
.afters2 { display: flex; flex-direction: column; gap: 14px; margin-top: 8px; } .afters2 > h3 { font-size: 18px; }
.cv { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding: 18px 20px; border-radius: 22px; background: var(--paper); border: 1px solid var(--line); box-shadow: var(--shadow); } .cv h2 { font-size: 20px; margin: 0; } .cv .px-k { margin: 0; }
.cv-k { display: flex; gap: 22px; } .cv-k div { display: flex; flex-direction: column; } .cv-k b { font-size: 22px; font-weight: 600; letter-spacing: -.01em; } .cv-k small { color: var(--rock); font-size: 11.5px; } .cv-k.big { margin-bottom: 12px; }
.pt-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pt-r { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 10px; border-radius: 18px; background: var(--paper); border: 1px solid var(--line); } .pt-r .pstr.thumb { width: 64px; height: 64px; } .pt-r b { display: block; } .pt-r small { color: var(--rock); font-size: 12px; }
.pt-a { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; } .pt-rv { display: block; margin-top: 2px; }
.qc.exp .pt-ic { background: var(--line-2); color: var(--rock); }
.pill.qs-exp { background: var(--line-2); color: var(--rock); } .qexpb { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-bottom: 16px; background: var(--warn-tint); border-color: transparent; } .qexpb > .ico { color: var(--warn); } .qexpb b { display: block; } .qexpb small { color: var(--rock); }
.cprof .px-hello { margin-bottom: 4px; } .cprof .plist li { flex-wrap: nowrap; } .cprof .plist li .grow { min-width: 0; } .cprof .pdl li { flex-wrap: wrap; } .pdl .pt-ic { width: 32px; height: 32px; background: var(--bg); color: var(--rock); }
.tg-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line-2); cursor: pointer; } .tg-row:first-of-type { border-top: 0; } .tg-row b { display: block; font-size: 13.5px; } .tg-row small { display: block; color: var(--rock); font-size: 12px; }
input.sw { appearance: none; -webkit-appearance: none; width: 42px; height: 24px; min-height: 24px; border-radius: 999px; background: var(--line); position: relative; cursor: pointer; flex: none; transition: background .15s; border: 0; padding: 0; }
input.sw::after { content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.2); transition: transform .15s; } input.sw:checked { background: var(--accent-btn); } input.sw:checked::after { transform: translateX(18px); }
.lg-explore { display: flex; align-items: center; gap: 12px; margin: 4px 0 10px; padding: 12px 14px; border-radius: 14px; background: var(--accent-tint); color: var(--ink); text-decoration: none; } .lg-explore > .ico { color: var(--accent-strong); width: 22px; height: 22px; } .lg-explore b { display: block; font-size: 13.5px; } .lg-explore small { display: block; color: var(--rock); font-size: 12px; }

@media (max-width: 1080px) { .xp-g, .bk-g { grid-template-columns: minmax(0, 1fr); } .bookbox, .bk-sum { position: static; } .xp-g > .bookbox { order: -1; } .facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  body.public-mode #view { padding: 0 14px 30px; }
  .pub-h { flex-wrap: wrap; gap: 8px; padding: 10px 0; } .pub-h nav { order: 3; width: 100%; margin-left: 0; overflow-x: auto; } .pub-r { margin-left: auto; } .pub-brand small { display: none; }
  .cat-h, .xp-h { min-height: 300px; border-radius: 20px; } .cat-hb, .xp-hb { padding: 22px 20px; }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .facts > div:last-child { grid-column: 1 / -1; }
  .cat-ban { grid-template-columns: repeat(2, minmax(0, 1fr)); } .qa { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 96px; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 6px; } .qa::-webkit-scrollbar { display: none; } .gear2 { columns: 1; }
  .bk-s .grid2, .choices.two { grid-template-columns: 1fr; } .choices.amts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xp .itin li { grid-template-columns: 1fr; gap: 2px; } .cv-k { gap: 16px; } .pt-a { margin-left: 0; width: 100%; }
  .bkdone { flex-direction: column; }
}
.choices.three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cprof .plist .grow small { display: block; }
@media (max-width: 860px) { .choices.three { grid-template-columns: 1fr; } }
body.public-mode .tour-back { left: 18px; }

/* ============ v3.2 — terrain plein écran : barre propre, testata del giorno, linea dei passi, colonna sicurezza, barra d’azione ============ */
body.field-mode { --fm-night: #12202E; --fm-night-2: #1B2D40; --fm-go: #15803D; --fm-b: #B7791F; --fm-stop: #B42318; }
body.field-mode .side, body.field-mode .top, body.field-mode .tabbar, body.field-mode #ih { display: none !important; }
body.field-mode .app { grid-template-columns: 1fr; }
body.field-mode #view { padding: 0 !important; max-width: none; }
body.field-mode .screen-field { animation: none; }
@media (min-width: 861px) { body.field-mode .screen-field { height: 100%; overflow-y: auto; overflow-x: hidden; display: block; } }
.fm { overflow-x: clip; }
.fm { min-height: 100%; background: var(--bg); display: flex; flex-direction: column; }

.fm-top { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 10px 24px; padding-top: calc(10px + env(safe-area-inset-top, 0px)); background: var(--fm-night); color: #fff; }
.fm-x { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 12px; border-radius: 999px; background: rgba(255,255,255,.1); color: #fff; text-decoration: none; font-weight: 600; font-size: 13.5px; flex: none; }
.fm-x:hover { background: rgba(255,255,255,.18); } .fm-x .ico { width: 18px; height: 18px; }
.fm-tt { font-size: 15px; font-weight: 600; flex: none; }
.fm-me { display: flex; align-items: center; gap: 10px; min-width: 0; } .fm-me b { display: block; font-size: 14px; } .fm-me small { display: block; color: rgba(255,255,255,.6); font-size: 12px; }
.fm-me .av, .fm-chip .av { width: 32px; height: 32px; font-size: 12px; }
.fm-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; min-width: 0; } .fm-chips::-webkit-scrollbar { display: none; }
.fm-chip { display: flex; align-items: center; gap: 8px; padding: 3px 14px 3px 3px; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); background: transparent; color: #fff; font: 500 12.5px var(--f); cursor: pointer; white-space: nowrap; text-align: left; flex: none; }
.fm-chip b { display: block; font-weight: 600; } .fm-chip small { display: block; color: rgba(255,255,255,.6); font-size: 11px; }
.fm-chip.on { background: #fff; color: var(--fm-night); border-color: #fff; } .fm-chip.on small { color: #5B6878; }
.fm-tools { margin-left: auto; display: flex; align-items: center; gap: 8px; flex: none; }
.fm-net { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: rgba(255,255,255,.75); margin-right: 4px; }
.fm-net i { width: 8px; height: 8px; border-radius: 50%; background: #4ADE80; box-shadow: 0 0 0 3px rgba(74,222,128,.22); flex: none; } .fm-net.off i { background: #FBBF24; box-shadow: 0 0 0 3px rgba(251,191,36,.22); }
.fm-tool, .fm-date { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.2); background: transparent; color: #fff; font: 600 12.5px var(--f); cursor: pointer; white-space: nowrap; }
.fm-tool .ico { width: 16px; height: 16px; } .fm-tool.on { background: #FDE68A; color: #3B2A00; border-color: #FDE68A; }
.fm-date em { font-style: normal; font-size: 10.5px; font-weight: 600; padding: 2px 6px; border-radius: 6px; background: rgba(253,230,138,.16); color: #FDE68A; }
.fm-x:focus-visible, .fm-tool:focus-visible, .fm-date:focus-visible, .fm-chip:focus-visible { outline: 2px solid #FDBA74; outline-offset: 2px; }

.fm-day { max-width: 1280px; width: 100%; margin: 0 auto; padding: 20px 24px 0; display: flex; flex-direction: column; gap: 16px; flex: 1 0 auto; }
.fm-hero { position: relative; overflow: hidden; border-radius: 24px; min-height: 250px; color: #fff; display: flex; flex-direction: column; justify-content: space-between; background: var(--fm-night-2); isolation: isolate; }
.fm-hero > .pstr.bg { z-index: -2; }
.fm-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(18,32,46,.2) 0%, rgba(18,32,46,.55) 42%, rgba(18,32,46,.94) 100%); }
.fm-hb { padding: 26px 28px 0; }
.fm-act { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 13px; font-weight: 600; color: rgba(255,255,255,.88); } .fm-act .fm-area { font-weight: 500; color: rgba(255,255,255,.66); }
.fm-act .act-ic { background: rgba(255,255,255,.16); color: #fff; }
.fm-hero h1 { margin: 0; font-size: clamp(26px, 3.2vw, 38px); line-height: 1.08; font-weight: 700; letter-spacing: -.01em; }
.fm-dn { margin: 8px 0 0; font-size: 14px; color: rgba(255,255,255,.78); display: flex; align-items: center; gap: 10px; } .fm-dn span { padding: 1px 8px; border-radius: 6px; background: rgba(255,255,255,.14); font-size: 12px; font-weight: 600; }
.fm-stat { margin: 22px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.16); }
.fm-s { padding: 14px 20px 18px; border-left: 1px solid rgba(255,255,255,.16); min-width: 0; } .fm-s:first-child { border-left: 0; padding-left: 28px; }
.fm-s dt { display: flex; align-items: center; gap: 6px; font-size: 12px; color: rgba(255,255,255,.66); font-weight: 500; } .fm-s dt .ico { width: 14px; height: 14px; }
.fm-s dd { margin: 4px 0 0; } .fm-s b { display: block; font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; } .fm-s small { display: block; font-size: 12px; color: rgba(255,255,255,.72); margin-top: 2px; }
.fm-s.fd-go b { color: #86EFAC; } .fm-s.fd-planB b { color: #FCD34D; } .fm-s.fd-postpone b, .fm-s.fd-abort b, .fm-s.fd-alert b { color: #FCA5A5; } .fm-s.fd-none b { color: #FDBA74; }
.fm-alert { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 16px; border-radius: 14px; background: var(--bad); color: #fff; font-weight: 600; } .fm-alert .ico { width: 20px; height: 20px; }

.fm-rail { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: relative; }
.fm-rail::before, .fm-rail::after { content: ""; position: absolute; top: 19px; left: 10%; right: 10%; height: 3px; border-radius: 3px; background: var(--line); }
.fm-rail::after { right: auto; width: calc(80% * var(--fm-done, 0)); background: var(--accent); }
.fm-rail li { position: relative; z-index: 1; min-width: 0; }
.fm-rail button { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 4px; border: 0; background: none; cursor: pointer; padding: 0 4px 4px; font: inherit; color: var(--ink); text-align: center; border-radius: 12px; }
.fm-rail i { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: 15px; background: var(--paper); border: 2px solid var(--line); color: var(--rock); }
.fm-rail i .ico { width: 18px; height: 18px; }
.fm-rail b { font-size: 13px; font-weight: 600; line-height: 1.25; } .fm-rail small { font-size: 12px; color: var(--rock); font-variant-numeric: tabular-nums; min-height: 18px; }
.fm-rail .fs-done i { background: var(--accent); border-color: var(--accent); color: #fff; }
.fm-rail .fs-cur i { border-color: var(--accent); color: var(--accent-strong); box-shadow: 0 0 0 5px var(--accent-tint); }
.fm-rail .fs-cur small { color: var(--accent-strong); font-weight: 600; }
.fm-rail .fs-skip { opacity: .45; }
.fm-rail .fs-show b { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 2px; }
.fm-rail button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

.fm-tabs { align-self: flex-start; grid-template-columns: repeat(2, auto); background: var(--paper); border: 1px solid var(--line); } .fm-tabs button { display: inline-flex; align-items: center; gap: 6px; padding: 8px 18px; } .fm-tabs .ico { width: 16px; height: 16px; }
.fm-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.fm-card { background: var(--paper); border-radius: 20px; box-shadow: var(--shadow); border: 1px solid var(--line); scroll-margin-top: 80px; }
.fm-card.cur { border-color: var(--accent-soft); }
.fm-card > header { display: flex; gap: 14px; align-items: flex-start; padding: 20px 22px 4px; }
.fm-n { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--paper); font-weight: 700; } .fm-card.done .fm-n { background: var(--accent); color: #fff; } .fm-n .ico { width: 18px; height: 18px; }
.fm-card h2 { margin: 0; font-size: 21px; font-weight: 700; } .fm-card > header p { margin: 4px 0 0; color: var(--rock); font-size: 13.5px; max-width: 64ch; }
.fm-cb { padding: 16px 22px 20px; display: flex; flex-direction: column; gap: 14px; }
.fm-cb .row-acts { margin: 0; } .fm-cb .row-acts:empty { display: none; }
.fm-nav { border-top: 1px solid var(--line-2); padding: 12px 22px; background: none; grid-template-columns: auto 1fr auto; } .fm-nav span { text-align: center; color: var(--rock); font-size: 12.5px; font-weight: 600; } .fm-nav .btn { min-width: 120px; }

.fm-dec { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border-radius: 16px; background: var(--bg); border-left: 5px solid var(--rock); }
.fm-dec b { font-size: 18px; } .fm-dec small { display: block; color: var(--rock); font-size: 12.5px; } .fm-dec p { margin: 6px 0 0; font-size: 13.5px; } .fm-dec .fm-note { font-style: italic; }
.fm-dec-i { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--paper); flex: none; } .fm-dec-i .ico { width: 20px; height: 20px; }
.fm-dec .dg { width: 36px; height: 36px; font-size: 16px; border-radius: 10px; flex: none; }
.fm-dec.fd-go { background: color-mix(in srgb, var(--fm-go) 9%, var(--paper)); border-color: var(--fm-go); } .fm-dec.fd-go .fm-dec-i { color: var(--fm-go); }
.fm-dec.fd-planB { background: color-mix(in srgb, var(--fm-b) 11%, var(--paper)); border-color: var(--fm-b); } .fm-dec.fd-planB .fm-dec-i { color: var(--fm-b); }
.fm-dec.fd-postpone, .fm-dec.fd-abort { background: color-mix(in srgb, var(--fm-stop) 9%, var(--paper)); border-color: var(--fm-stop); } .fm-dec.fd-postpone .fm-dec-i, .fm-dec.fd-abort .fm-dec-i { color: var(--fm-stop); }
.fm-fc { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.fm-fc li { display: flex; gap: 12px; align-items: center; padding: 14px; border-radius: 14px; background: var(--bg); } .fm-fc li > .ico { width: 24px; height: 24px; color: var(--accent-strong); flex: none; } .fm-fc b { display: block; font-size: 15px; } .fm-fc small { color: var(--rock); font-size: 12px; } .fm-fc .dg { width: 28px; height: 28px; flex: none; }
.fm-planb { display: flex; gap: 12px; padding: 14px 16px; border-radius: 14px; border: 1px dashed var(--line); } .fm-planb .ico { width: 20px; height: 20px; color: var(--rock); flex: none; margin-top: 2px; } .fm-planb b { display: block; font-size: 13px; } .fm-planb span { font-size: 13.5px; }

.fm-count { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin: 0; } .fm-count b { font-size: 17px; font-variant-numeric: tabular-nums; } .fm-count span { color: var(--rock); font-size: 13px; }
.fm-ps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.fm-p { display: flex; gap: 12px; align-items: center; padding: 12px; border-radius: 14px; background: var(--bg); border: 1px solid transparent; }
.fm-p.in { background: color-mix(in srgb, var(--fm-go) 8%, var(--paper)); border-color: color-mix(in srgb, var(--fm-go) 28%, transparent); }
.fm-p.out { background: color-mix(in srgb, var(--fm-stop) 7%, var(--paper)); border-color: color-mix(in srgb, var(--fm-stop) 24%, transparent); }
.fm-p b { font-size: 15px; } .fm-p small { display: block; color: var(--rock); font-size: 12.5px; } .fm-p .grow { min-width: 0; }
.fm-party { font-style: normal; font-size: 11.5px; font-weight: 700; padding: 1px 6px; border-radius: 6px; background: var(--ink); color: var(--paper); vertical-align: 2px; }
.fm-p .tg { width: 52px; height: 52px; font-size: 20px; border-radius: 14px; } .fm-p .tg.on { background: var(--fm-go); border-color: var(--fm-go); color: #fff; } .fm-p .tg.no.on { background: var(--fm-stop); border-color: var(--fm-stop); }
.fm-bchks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.fm-bchks .bchk { padding: 16px; font-size: 14.5px; border-radius: 14px; } .fm-bchks .bchk .ico { width: 22px; height: 22px; flex: none; } .fm-bchks small { display: block; font-size: 12px; color: var(--rock); }
.fm-bchks .bchk.on { background: color-mix(in srgb, var(--fm-go) 9%, var(--paper)); border-color: color-mix(in srgb, var(--fm-go) 28%, transparent); } .fm-bchks .bchk.on .ico { color: var(--fm-go); }
.fm-need { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--warn-tint); color: var(--warn); margin: 0; font-size: 13.5px; } .fm-need .ico { width: 18px; height: 18px; flex: none; margin-top: 1px; }
.fm-sum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; } .fm-sum div { padding: 12px; border-radius: 12px; background: var(--bg); } .fm-sum dt { font-size: 12px; color: var(--rock); } .fm-sum dd { margin: 2px 0 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.fm-deb { margin: 0; padding: 12px 16px; border-left: 3px solid var(--accent); background: var(--bg); border-radius: 0 12px 12px 0; font-size: 14px; }

.fm-side { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 80px; }
.fm-side > .panel { margin: 0; }
.fm-box { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 16px; }
.fm-box h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 14px; font-weight: 700; } .fm-box h3 .ico { width: 16px; height: 16px; color: var(--rock); } .fm-box h3 small { color: var(--rock); font-weight: 500; }
.fm-em { border-color: color-mix(in srgb, var(--bad) 40%, var(--line)); } .fm-em h3 .ico { color: var(--bad); }
.fm-tels { display: flex; flex-direction: column; gap: 8px; }
.fm-tel { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--bg); color: var(--ink); text-decoration: none; } .fm-tel > .ico { width: 18px; height: 18px; color: var(--rock); flex: none; } .fm-tel b { display: block; font-size: 13.5px; } .fm-tel small { color: var(--rock); font-size: 12px; font-variant-numeric: tabular-nums; }
.fm-tel.rescue { background: var(--bad); color: #fff; } .fm-tel.rescue .ico, .fm-tel.rescue small { color: rgba(255,255,255,.88); }
.fm-gl { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; } .fm-gl li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line-2); } .fm-gl li:last-child { border-bottom: 0; } .fm-gl b { display: block; font-size: 13.5px; } .fm-gl small { color: var(--rock); font-size: 12px; } .fm-gl .grow { min-width: 0; }
.fm-gl:last-child { margin-bottom: 0; }
.fm-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--line); flex: none; } .fm-dot.in { background: var(--fm-go); } .fm-dot.out { background: var(--fm-stop); }
.fm-live .px-grid { margin: 0; }

.fm-dock { position: sticky; bottom: 0; z-index: 30; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; margin: auto calc(50% - 50vw) 0; padding: 12px calc(50vw - 50%) calc(12px + env(safe-area-inset-bottom, 0px)); background: color-mix(in srgb, var(--paper) 90%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-top: 1px solid var(--line); }
.fm-dock .btn.big { width: auto; min-height: 56px; font-size: 15.5px; padding: 0 22px; border-radius: 16px; gap: 8px; }
.fm-dock .fm-main { width: 100%; justify-content: center; } .fm-dock .btn:disabled { opacity: .45; cursor: not-allowed; }
.fm-dock .sos { min-width: 120px; font-size: 17px; justify-content: center; }
.fm-dock .ico { width: 20px; height: 20px; }
.fm-dock-note { margin: 0; display: flex; align-items: center; gap: 10px; justify-content: center; font-size: 13.5px; color: var(--rock); text-align: center; } .fm-dock-note .ico { flex: none; } .fm-dock-note.is-ok { color: var(--fm-go); font-weight: 600; }

.fm-empty { max-width: 980px; width: 100%; margin: 0 auto; padding: 28px 24px 40px; display: flex; flex-direction: column; gap: 16px; }
.fm-eh { display: flex; gap: 18px; align-items: center; padding: 28px; border-radius: 24px; background: var(--fm-night); color: #fff; } .fm-eh > .ico { width: 48px; height: 48px; padding: 12px; border-radius: 14px; background: rgba(255,255,255,.1); color: #FDBA74; flex: none; } .fm-eh h1 { margin: 0; font-size: 24px; font-weight: 700; } .fm-eh p { margin: 4px 0 0; color: rgba(255,255,255,.75); }
.fm-up { list-style: none; margin: 0; padding: 0; } .fm-up li { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line-2); } .fm-up li:last-child { border: 0; }
.fm-up-d { width: 58px; text-align: center; flex: none; } .fm-up-d b { display: block; font-size: 15px; } .fm-up-d small { color: var(--rock); font-size: 12px; } .fm-up .grow { min-width: 0; } .fm-up .grow b { display: block; } .fm-up .grow small { color: var(--rock); font-size: 12.5px; } .fm-up .btn { width: auto; flex: none; }

.fm.glove { font-size: 16px; }
.fm.glove .fm-dock .btn.big { min-height: 68px; font-size: 18px; }
.fm.glove .fm-p .tg { width: 64px; height: 64px; font-size: 24px; }
.fm.glove .fm-bchks .bchk { padding: 20px; font-size: 17px; }
.fm.glove .fm-card h2 { font-size: 24px; } .fm.glove .fm-p b { font-size: 17px; }
.fm.glove .fm-card, .fm.glove .fm-box, .fm.glove .fm-p, .fm.glove .bchk { border-color: var(--ink); }
.fm.glove .fm-card > header p, .fm.glove .fm-p small, .fm.glove .fm-gl small, .fm.glove .fm-rail small { color: var(--ink); }
.fm.glove .fm-rail i { width: 48px; height: 48px; } .fm.glove .fm-rail::before, .fm.glove .fm-rail::after { top: 23px; }
@media (prefers-reduced-motion: reduce) { .fm * { scroll-behavior: auto !important; } }

@media (max-width: 1080px) { .fm-grid { grid-template-columns: minmax(0, 1fr); } .fm-side { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } .fm-side > .panel { grid-column: 1 / -1; } }
@media (max-width: 860px) {
  .fm-top { padding: 8px 12px; padding-top: calc(8px + env(safe-area-inset-top, 0px)); gap: 8px; min-height: 56px; }
  .fm-x span, .fm-net span, .fm-tool span, .fm-tt, .fm-me small, .fm-chip small, .fm-date em { display: none; }
  .fm-x { width: 40px; padding: 0; justify-content: center; } .fm-tool { width: 36px; padding: 0; justify-content: center; } .fm-net { margin: 0 2px; }
  .fm-day { padding: 12px 12px 0; gap: 12px; }
  .fm-hero { border-radius: 20px; min-height: 0; } .fm-hb { padding: 18px 18px 0; } .fm-hero h1 { font-size: 25px; }
  .fm-stat { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; }
  .fm-s { padding: 12px 16px 14px; } .fm-s:first-child { padding-left: 16px; } .fm-s:nth-child(3) { border-left: 0; } .fm-s:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.16); } .fm-s b { font-size: 16px; }
  .fm-rail i { width: 34px; height: 34px; font-size: 13px; } .fm-rail::before, .fm-rail::after { top: 16px; } .fm-rail b { font-size: 11px; } .fm-rail small { font-size: 10.5px; }
  .fm-side { display: flex; align-items: stretch; }
  .fm-fc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-card > header { padding: 16px 16px 4px; gap: 12px; } .fm-cb { padding: 12px 16px 16px; } .fm-nav { padding: 10px 12px; } .fm-nav .btn { min-width: 0; padding: 0 12px; }
  .fm-card h2 { font-size: 19px; } .fm-card > header .pill { display: none; }
  .fm-dock { padding-top: 10px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); gap: 8px; }
  .fm-dock .btn.big { padding: 0 14px; min-height: 54px; font-size: 15px; }
  .fm-dock .fm-inc { width: 54px; padding: 0; justify-content: center; } .fm-dock .fm-inc span { display: none; }
  .fm-dock .sos { min-width: 86px; }
  .fm-sum { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fm-empty { padding: 16px 12px 32px; } .fm-eh { padding: 20px; gap: 14px; } .fm-eh h1 { font-size: 20px; }
  .fm.glove .fm-rail i { width: 40px; height: 40px; } .fm.glove .fm-rail::before, .fm.glove .fm-rail::after { top: 19px; }
}
body.field-mode .toasts { bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important; }
.fm-p .grow > .small, .fm-p .grow > .warn-t, .fm-p .grow > .ok-t { display: block; margin-top: 3px; }
.fm-dock .fm-main { white-space: normal; line-height: 1.2; text-align: center; }
.fm-tel.rescue, .fm-dock .sos, .fm-alert { background: #D92D20 !important; border-color: #D92D20 !important; color: #fff !important; }
.fm-tel.rescue .ico, .fm-tel.rescue small { color: rgba(255,255,255,.9); }
/* foto delle testate : resta sotto velatura e testo anche quando si carica (prima copriva il titolo della vetrina e delle schede) */
.pstr.bg { z-index: 0; }
.cat-ov { background: linear-gradient(180deg, rgba(10,14,20,.12) 0%, rgba(10,14,20,.35) 45%, rgba(10,14,20,.82) 100%); }
/* Oggi : uscite sul campo */
.fmt-p h3 small { color: var(--rock); font-weight: 500; }
.fmt-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.fmt { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 16px; background: var(--bg); border: 1px solid transparent; }
.fmt.al { border-color: color-mix(in srgb, var(--bad) 45%, transparent); background: color-mix(in srgb, var(--bad) 6%, var(--paper)); }
.fmt.live { border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
.fmt-h { display: flex; align-items: center; gap: 10px; } .fmt-h b { display: block; font-size: 14px; } .fmt-h small { color: var(--rock); font-size: 12px; } .fmt-h .grow { min-width: 0; }
.fmt-dots { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
.fmt-dots li { height: 6px; border-radius: 3px; background: var(--line); } .fmt-dots .fs-done { background: var(--accent); } .fmt-dots .fs-cur { background: var(--accent-soft); } .fmt-dots .fs-skip { background: var(--line-2); }
.fmt-st { margin: 0; font-size: 13px; } .fmt .row-acts { margin: 0; }
.cat-hb, .xp-hb { text-shadow: 0 1px 14px rgba(0, 0, 0, .28); } .cat-hb .cat-trust span { text-shadow: none; }
/* v3.2 — rifiniture telefono : niente colonne strozzate né contenuti tagliati */
.invq li .grow { flex: 1 1 220px; min-width: 0; }
.inv-t { min-width: 560px; } .inv-t td:first-child, .inv-t td:nth-child(2) { white-space: nowrap; }
.cv-k b { white-space: nowrap; }
.cprof .pdl li .grow { flex: 1 1 160px; }
@media (max-width: 860px) {
  .eq-tiles { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
  .qc .grow { flex: 1 1 100%; } .qc > .btn, .qc > .pill { margin-left: 52px; }
  .page-head { flex-wrap: wrap; } .page-head .head-acts { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .fm-up li { display: grid; grid-template-columns: 58px 28px minmax(0, 1fr); row-gap: 8px; } .fm-up li > .btn { grid-column: 3; justify-self: start; }
  .login2 { display: flex; flex-direction: column; } .lg-photo { display: block !important; order: -1; height: 220px; flex: none; }
  .lg-mao { top: 18px; right: 18px; width: 92px; } .lg-claim { left: 20px; right: 20px; bottom: 34px; } .lg-claim p { font-size: 22px; } .lg-claim span { display: none; }
  .lg-side { position: relative; z-index: 1; margin-top: -20px; border-radius: 22px 22px 0 0; background: var(--paper); gap: 18px; }
  .lg-main { justify-content: flex-start; }
}
.fm-empty .row-acts .btn.big { width: auto; padding: 0 22px; }
.field-sheet .btn.em { background: #D92D20 !important; border-color: #D92D20 !important; color: #fff !important; font-weight: 700; } .field-sheet .btn.em .ico { color: #fff; }
@media (max-width: 860px) { .fm-rail b { font-size: 10.5px; letter-spacing: -.01em; } .fm-rail button { padding: 0 1px 4px; } }
.panel.flash, section.flash, [id].flash { animation: flash 1.6s ease-out; }

/* ============ v4.0 — campo definitivo ============ */
.fm-tag { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 7px; background: rgba(255,255,255,.14); font-size: 12px; font-weight: 600; }
.fm-tag .ico { width: 13px; height: 13px; } .fm-tag.sum { background: #FDE68A; color: #3B2A00; }
.fm-dn { flex-wrap: wrap; }
.fm-dva { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 6px 12px; border-radius: 999px; border: 1px dashed var(--rock); background: transparent; color: var(--ink); font: 600 12.5px var(--f); cursor: pointer; }
.fm-dva .ico { width: 15px; height: 15px; } .fm-dva.on { border-style: solid; border-color: var(--fm-go); background: color-mix(in srgb, var(--fm-go) 12%, var(--paper)); color: var(--fm-go); }
.fm-st { grid-template-columns: repeat(3, auto); flex: none; } .fm-st button { padding: 9px 12px; font-size: 12.5px; } .fm-st button[aria-pressed="true"] { background: var(--ink); color: var(--paper); box-shadow: none; }
.fm-p.rest { background: color-mix(in srgb, var(--fm-b) 9%, var(--paper)); border-color: color-mix(in srgb, var(--fm-b) 30%, transparent); }
.fm-turn { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; padding: 14px; border-radius: 14px; background: var(--bg); }
.fm-turn label { display: flex; flex-direction: column; gap: 6px; } .fm-turn label span { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--rock); } .fm-turn label .ico { width: 15px; height: 15px; }
.fm-turn input { font: 700 22px var(--f); padding: 8px 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); min-width: 170px; font-variant-numeric: tabular-nums; }
.fm-turn small { flex-basis: 100%; color: var(--rock); font-size: 12.5px; }
.fm-ci-rule { display: flex; gap: 10px; align-items: flex-start; margin: 0; font-size: 13px; color: var(--rock); } .fm-ci-rule .ico { width: 17px; height: 17px; flex: none; margin-top: 1px; }
.fm-ci { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 16px; border-radius: 16px; background: color-mix(in srgb, var(--fm-go) 8%, var(--paper)); border: 1px solid color-mix(in srgb, var(--fm-go) 25%, transparent); }
.fm-ci small { display: block; color: var(--rock); font-size: 12.5px; } .fm-ci b { display: block; font-size: 19px; margin: 2px 0; font-variant-numeric: tabular-nums; }
.fm-ci.late { background: color-mix(in srgb, var(--fm-stop) 9%, var(--paper)); border-color: color-mix(in srgb, var(--fm-stop) 35%, transparent); } .fm-ci.late b { color: var(--fm-stop); }
.fm-ci .btn { min-height: 48px; padding: 0 20px; }
.fm-pts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; } .fm-pts li { display: grid; grid-template-columns: 22px 52px minmax(0, 1fr); gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line-2); font-size: 13.5px; }
.fm-pts li:last-child { border-bottom: 0; } .fm-pts .ico { width: 17px; height: 17px; color: var(--fm-go); } .fm-pts time { font-weight: 700; font-variant-numeric: tabular-nums; } .fm-pts li.bad .ico, .fm-pts li.bad span { color: var(--fm-stop); }
.danger-t { color: var(--bad) !important; } .danger-t .ico { color: var(--bad); }
.fm-jr ol { list-style: none; margin: 0 0 8px; padding: 0; } .fm-jr li { display: grid; grid-template-columns: 18px 44px minmax(0, 1fr); gap: 8px; align-items: start; padding: 6px 0; font-size: 12.5px; border-bottom: 1px solid var(--line-2); }
.fm-jr li:last-child { border: 0; } .fm-jr li .ico { width: 15px; height: 15px; color: var(--rock); margin-top: 1px; } .fm-jr time { font-weight: 700; font-variant-numeric: tabular-nums; }
.fm-pos { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; align-items: center; padding: 12px; margin-bottom: 10px; border-radius: 12px; background: var(--bg); }
.fm-pos small { grid-column: 1; color: var(--rock); font-size: 11.5px; } .fm-pos b { grid-column: 1; font-size: 15px; font-variant-numeric: tabular-nums; letter-spacing: .01em; } .fm-pos span { grid-column: 1; color: var(--rock); font-size: 12px; }
.fm-pos .btn { grid-column: 2; grid-row: 1 / span 3; }
.fm-pos.big { background: #12202E; color: #fff; } .fm-pos.big b { font-size: 22px; } .fm-pos.big small, .fm-pos.big span { color: rgba(255,255,255,.7); }
.fm-dock.four { grid-template-columns: auto minmax(0, .8fr) minmax(0, 1.2fr) auto; }
.fm-dock .fm-ok { justify-content: center; border-color: color-mix(in srgb, var(--fm-go) 45%, var(--line)); color: var(--fm-go); font-weight: 700; }
.fm-dock .fm-ok .ico { color: var(--fm-go); }
.fm-dock .btn span { overflow: hidden; text-overflow: ellipsis; }
.fm-note-f { position: relative; } .fm-note-f .dict { position: absolute; right: 6px; top: -4px; }
.dict { display: inline-flex; align-items: center; gap: 5px; } .dict .ico { width: 15px; height: 15px; } .dict.on { color: var(--bad); border-color: var(--bad); }
.chks { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.choices.ik { grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); }
.fm-lvs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; } .fm-lvs label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; } .fm-lvs select { font-weight: 500; }
.fm-lv { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 13px; }
.fm-prevw { display: flex; flex-direction: column; gap: 6px; } .fm-prev { margin: 0; padding: 12px 14px; border-left: 3px solid var(--accent); background: var(--bg); border-radius: 0 12px 12px 0; font-size: 14px; }
.fm-alert .btn { margin-left: auto; } .btn.light { background: #fff; color: var(--ink); border-color: #fff; }
.fm-board .fmt-g { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.fm-board { max-width: 1280px; }
.fmt-p h3 .link { margin-left: auto; font-weight: 600; font-size: 13px; }
.fmt-st.small { font-size: 12.5px; color: var(--rock); display: flex; align-items: center; gap: 6px; } .fmt-st.small .ico { width: 14px; height: 14px; }
.fm.glove .fm-dva { padding: 10px 16px; font-size: 15px; } .fm.glove .fm-st button { padding: 14px 16px; font-size: 15px; } .fm.glove .fm-ci .btn { min-height: 60px; font-size: 17px; }
.sos-sheet .em-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; }
@media (max-width: 860px) {
  .fm-dock.four { grid-template-columns: 48px minmax(0, .9fr) minmax(0, 1.2fr) 64px; gap: 6px; } .fm-dock.four .sos .ico, .fm-dock.four .fm-inc span { display: none; } .fm-dock.four .fm-inc { width: 48px; }
  .fm-dock.four .btn.big { padding: 0 8px; font-size: 13.5px; } .fm-dock.four .sos { min-width: 0; }
  .fm-dock.four .fm-main .ico, .fm-dock.four .fm-ok .ico { display: none; }
  .fm-turn input { min-width: 140px; font-size: 20px; }
  .fm-ci .btn { width: 100%; }
  .fm-st button { padding: 9px 8px; font-size: 12px; } .fm-p { flex-wrap: wrap; } .fm-p .fm-st { width: 100%; grid-template-columns: repeat(3, 1fr); }
  .fm-note-f .dict { position: static; align-self: flex-start; margin-top: 4px; }
}
/* ===== v4.0 — prodotto finale: menu a gruppi, accesso reale, pannello di chi presenta ===== */
.nav-sec { margin: 14px 10px 4px; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--side-ink, var(--rock)); opacity: .55; }
.side .nav-i.sm { font-size: 12.5px; padding: 6px 10px; }
.side .nav-i.sm .ico { width: 16px; height: 16px; }
#refBtn, .simnote, .fm-date em:empty, .dk-wd em:empty { display: none !important; }
.pill:empty, small:empty, p.muted:empty, p.note:empty, .muted.small:empty { display: none !important; }
.fm-date.ro { cursor: default; pointer-events: none; }
.lg-form .field input { font-size: 16px; padding: 12px 14px; }
.lg-form .btn.big { width: 100%; justify-content: center; }
.lg-form .err { color: var(--bad); font-size: 13px; margin-top: -4px; }
.lg-form .link, .lg-main > .link { align-self: center; }
.lg-back { align-self: flex-start; font-size: 13px; margin-top: 4px; }
.lg-code { letter-spacing: .5em; font-variant-numeric: tabular-nums; text-align: center; font-size: 22px !important; }
.lg-who { display: flex; align-items: center; gap: 12px; margin: 0 0 4px; padding: 10px 12px; border-radius: 14px; background: var(--bg); }
.lg-who > span { display: flex; flex-direction: column; } .lg-who small { color: var(--rock); font-size: 12px; }
.lg-who .ico { width: 22px; height: 22px; color: var(--accent); }
.lg-roles { display: flex; flex-direction: column; gap: 8px; }
.lg-role { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; text-align: left; font: inherit; color: var(--ink); }
.lg-role:hover, .lg-role:focus-visible { border-color: var(--accent); box-shadow: 0 6px 20px rgba(16,24,40,.08); }
.lg-role .ico { width: 24px; height: 24px; color: var(--accent); flex: none; }
.lg-role > span { display: flex; flex-direction: column; } .lg-role b { font-size: 15px; font-weight: 600; } .lg-role small { color: var(--rock); font-size: 12.5px; }
.lg-sent .btn.big { width: 100%; justify-content: center; }
.lg-hint .ico { width: 15px; height: 15px; vertical-align: -3px; color: var(--accent); }
#ppBtn { position: fixed; right: 14px; bottom: 14px; z-index: 900; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px 7px 9px; border-radius: 999px; border: 1px dashed rgba(255,255,255,.4); background: rgba(20,22,28,.86); color: #fff; font: 600 12px/1 var(--font, inherit); cursor: pointer; backdrop-filter: blur(6px); box-shadow: 0 6px 24px rgba(0,0,0,.25); }
#ppBtn .ico { width: 14px; height: 14px; }
#ppBtn[aria-expanded=true] { background: var(--accent); border-style: solid; border-color: var(--accent); }
#ppBox { position: fixed; right: 14px; bottom: 56px; z-index: 900; width: min(420px, calc(100vw - 28px)); max-height: calc(100vh - 80px); overflow: auto; background: #16181D; color: #E8EAEE; border-radius: 18px; padding: 14px 16px 16px; box-shadow: 0 18px 50px rgba(0,0,0,.35); font-size: 12.5px; }
#ppBox .pp-h { display: grid; grid-template-columns: 1fr auto; gap: 0 8px; align-items: start; margin-bottom: 8px; }
#ppBox .pp-h b { font-size: 14px; } #ppBox .pp-h small { grid-column: 1; color: #9AA0AA; } #ppBox .pp-h .icon-btn { grid-row: 1 / 3; grid-column: 2; color: #fff; background: rgba(255,255,255,.08); }
#ppBox .pp-s { border-top: 1px solid rgba(255,255,255,.08); padding-top: 10px; margin-top: 10px; }
#ppBox h4 { margin: 0 0 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #9AA0AA; font-weight: 600; }
#ppBox .pp-row { display: grid; grid-template-columns: 82px 1fr; gap: 8px; align-items: start; margin: 4px 0; }
#ppBox .pp-row > span { color: #9AA0AA; padding-top: 5px; }
#ppBox .pp-row > div { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
#ppBox .pp-p { border: 1px solid rgba(255,255,255,.14); background: transparent; color: #E8EAEE; border-radius: 999px; padding: 4px 10px; font: inherit; cursor: pointer; }
#ppBox .pp-p:hover { border-color: #FF8A4C; } #ppBox .pp-p.on { background: var(--accent); border-color: var(--accent); color: #fff; }
#ppBox .pp-ms { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 8px; }
#ppBox .pp-m { display: flex; flex-direction: column; gap: 2px; text-align: left; padding: 8px 10px; border-radius: 12px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.03); color: #E8EAEE; font: inherit; cursor: pointer; }
#ppBox .pp-m small { color: #9AA0AA; font-size: 11px; } #ppBox .pp-m.on { border-color: var(--accent); background: rgba(248,80,0,.16); }
#ppBox input[type=date], #ppBox input[type=time] { background: #22252C; color: #fff; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; padding: 4px 6px; font: inherit; color-scheme: dark; }
#ppBox .btn.sm { padding: 4px 10px; font-size: 12px; } #ppBox .btn.ghost { color: #E8EAEE; } #ppBox .link { color: #FF8A4C; }
@media print { #ppBtn, #ppBox { display: none !important; } }
@media (max-width: 640px) { #ppBtn span { display: none; } #ppBtn { padding: 9px; bottom: 76px; } #ppBox { bottom: 120px; } }
.sos-sheet .em-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.sos-sheet .em-row .btn { white-space: normal; line-height: 1.2; min-height: 52px; justify-content: flex-start; text-align: left; overflow-wrap: anywhere; }
.fm-stp { display: inline-flex; align-items: stretch; gap: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--paper); }
.fm-stp .btn { border: 0; border-radius: 0; min-width: 52px; min-height: 48px; font-weight: 600; font-variant-numeric: tabular-nums; background: var(--bg); }
.fm-stp input { width: 86px !important; border: 0 !important; border-radius: 0 !important; text-align: center; font-size: 20px !important; font-weight: 600; font-variant-numeric: tabular-nums; background: transparent; padding: 0 !important; }
.fm-stp input[aria-invalid=true] { color: var(--bad); }
.fm-turn label .fm-stp { display: inline-flex; gap: 0; font-size: inherit; font-weight: inherit; color: var(--ink); }
.fm-turn .fm-stp input { min-width: 0 !important; width: 92px !important; padding: 0 !important; border: 0 !important; font: 700 22px var(--f) !important; background: var(--paper); }
/* ===== v4.0 — Oggi : Da decidere / Da fare ===== */
.pri { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin: 0 0 18px; }
.pri-col { background: var(--paper); border-radius: var(--r, 14px); padding: 16px 16px 10px; box-shadow: var(--shadow-sm, 0 1px 2px rgba(16,24,40,.06)); border: 1px solid var(--line); min-width: 0; }
.pri-dec { border-top: 3px solid var(--accent); }
.pri-col > header { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px 10px; margin-bottom: 10px; }
.pri-col > header h2 { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; margin: 0; }
.pri-col > header h2 .ico { width: 18px; height: 18px; color: var(--accent); }
.pri-do > header h2 .ico { color: var(--rock); }
.pri-n { justify-self: start; min-width: 24px; height: 22px; padding: 0 7px; border-radius: 999px; background: var(--line-2, #EEF0F3); font-size: 12px; font-weight: 700; display: inline-grid; place-items: center; }
.pri-dec .pri-n { background: var(--accent); color: #fff; }
.pri-col > header p { grid-column: 1 / -1; margin: 0; color: var(--rock); font-size: 12.5px; }
.pri-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pi { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.pi:first-child { border-top: 0; }
.pi-k { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--line-2, #EEF0F3); color: var(--rock); }
.pi-k .ico { width: 16px; height: 16px; }
.pi.sev1 .pi-k { background: var(--bad-tint, #FDECEC); color: var(--bad); }
.pi.sev2 .pi-k { background: var(--warn-tint, #FFF4E5); color: var(--warn); }
.pi-b { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pi-t { font-weight: 600; font-size: 13.5px; color: var(--ink); text-decoration: none; line-height: 1.3; }
a.pi-t:hover { color: var(--accent-strong, var(--accent)); text-decoration: underline; }
.pi-b small { color: var(--rock); font-size: 12px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pi-a { display: flex; align-items: center; gap: 6px; }
.pi-a > .btn { white-space: nowrap; }
.pi-own { display: inline-flex; } .pi-own .av { width: 22px; height: 22px; font-size: 9px; margin-left: -6px; border: 2px solid var(--paper); } .pi-own .av:first-child { margin-left: 0; }
.xm { position: relative; } .xm > summary { list-style: none; cursor: pointer; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--rock); background: var(--paper); }
.xm > summary::-webkit-details-marker { display: none; } .xm > summary .ico { width: 16px; height: 16px; }
.xm[open] > summary { border-color: var(--accent); color: var(--accent); }
.xm-p { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 220px; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 32px rgba(16,24,40,.16); padding: 6px; display: flex; flex-direction: column; }
.xm-i { display: flex; align-items: center; gap: 8px; text-align: left; padding: 9px 10px; border-radius: 8px; border: 0; background: none; font: inherit; font-size: 13px; color: var(--ink); text-decoration: none; cursor: pointer; white-space: normal; }
.xm-i:hover, .xm-i:focus-visible { background: var(--accent-tint); }
.xm-i .ico { width: 15px; height: 15px; color: var(--rock); }
.pri-ok { display: flex; align-items: center; gap: 8px; color: var(--ok, #1F8A4C); font-size: 13px; margin: 6px 0 12px; } .pri-ok .ico { width: 16px; height: 16px; }
.pri-more { margin: 6px 0 4px; font-size: 13px; }
.pri-dr { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px; margin: 0 0 6px; border-radius: 12px; background: var(--accent-tint); }
.pri-dr-i { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--accent); color: #fff; } .pri-dr-i .ico { width: 18px; height: 18px; }
.pri-dr .grow { display: flex; flex-direction: column; gap: 1px; min-width: 0; } .pri-dr b { font-size: 13.5px; } .pri-dr small { font-size: 12px; color: var(--ink); } .pri-dr small.muted { color: var(--rock); }
.drs { display: flex; flex-direction: column; gap: 8px; }
.dr { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: var(--paper); }
.dr-h { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; } .dr-h input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--accent); }
.dr-h .grow { display: flex; flex-direction: column; } .dr-h small { color: var(--rock); font-size: 12px; }
.dr-m { margin: 8px 0 0 28px; } .dr-m summary { cursor: pointer; font-size: 12.5px; color: var(--accent-strong, var(--accent)); }
.dr-m input, .dr-m textarea { width: 100%; margin-top: 6px; font: inherit; font-size: 13px; }
@media (max-width: 1100px) { .pri { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .pi { grid-template-columns: 28px minmax(0, 1fr); } .pi-a { grid-column: 2; justify-content: flex-start; flex-wrap: wrap; } .pi-k { width: 28px; height: 28px; } .pri-dr { grid-template-columns: 36px minmax(0, 1fr); } .pri-dr > .btn { grid-column: 2; justify-self: start; } .xm-p { left: 0; right: auto; } }
.pri.one { grid-template-columns: 1fr; gap: 10px; }
.pri.one .pri-dec { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-top-width: 1px; border-left: 3px solid var(--accent); }
.pri.one .pri-dec > header { margin: 0; display: flex; gap: 10px; } .pri.one .pri-dec > header p { display: none; }
.pri.one .pri-dec .pri-n { display: none; } .pri.one .pri-dec .pri-ok { margin: 0; }
@media (min-width: 861px) { .dk-grid.alp, .dk-grid.all { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pri.one .pri-dec > header h2 { white-space: nowrap; }
@media (max-width: 640px) { .pri.one .pri-dec { flex-wrap: wrap; gap: 4px 12px; } }
.dr-m input, .dr-m textarea { box-sizing: border-box; max-width: 100%; display: block; }
.dr { min-width: 0; overflow: hidden; }
/* ===== v4.0 — Vendite e candidature ===== */
.sales-nav { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--paper); border: 1px solid var(--line); margin: 4px 0 14px; }
.sales-nav a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; color: var(--rock); text-decoration: none; font-weight: 600; font-size: 13.5px; }
.sales-nav a:hover { color: var(--ink); background: var(--line-2, #EEF0F3); }
.sales-nav a.on { background: var(--ink); color: var(--paper); }
.sales-nav a b { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 11px; display: inline-grid; place-items: center; }
.ap-intro { display: flex; gap: 6px; align-items: flex-start; margin: 0 0 12px; } .ap-intro .ico { width: 15px; height: 15px; flex: none; margin-top: 2px; color: var(--accent); }
.aplist { display: flex; flex-direction: column; gap: 8px; }
.aprow { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 14px 16px; border-radius: var(--r, 14px); background: var(--paper); border: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.aprow:hover { border-color: var(--accent); box-shadow: 0 6px 20px rgba(16,24,40,.06); }
.aprow .grow { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .aprow small { color: var(--rock); font-size: 12.5px; }
.ap-ck { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; } .ap-st { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; } .ap-st small { font-size: 11.5px; color: var(--rock); }
.pill.ap-new { background: var(--accent-tint); color: var(--accent-strong); } .pill.ap-info { background: var(--warn-tint); color: var(--warn); } .pill.ap-approved { background: var(--ok-tint); color: var(--ink); } .pill.ap-declined { background: var(--line-2, #EEF0F3); color: var(--rock); }
.apc { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.apc li { display: flex; gap: 10px; align-items: flex-start; } .apc li > span { display: flex; flex-direction: column; } .apc small { color: var(--rock); font-size: 12.5px; }
.apc i { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; flex: none; } .apc i .ico { width: 15px; height: 15px; }
.apc li.ok i { background: var(--ok-tint); color: var(--ink); } .apc li.bad i { background: var(--bad-tint); color: var(--bad); } .apc li.warn i { background: var(--warn-tint); color: var(--warn); }
.ap-txt { white-space: pre-line; font-size: 13.5px; line-height: 1.5; margin: 0 0 8px; }
.ap-dec .btn-col { display: flex; flex-direction: column; gap: 8px; } .ap-dec .btn-col .btn { justify-content: center; }
.ap-lead { margin: -6px 0 14px; }
.ap-ok { text-align: center; max-width: 640px; margin: 20px auto; }
.ap-next { text-align: left; margin: 14px auto; padding: 0; list-style: none; counter-reset: s; display: flex; flex-direction: column; gap: 10px; max-width: 460px; }
.ap-next li { counter-increment: s; display: grid; grid-template-columns: 28px 1fr; gap: 0 10px; } .ap-next li::before { content: counter(s); grid-row: span 2; width: 26px; height: 26px; border-radius: 50%; background: var(--accent-tint); color: var(--accent-strong); font-weight: 700; display: grid; place-items: center; font-size: 13px; }
.ap-next small { color: var(--rock); }
.apcard { margin-bottom: 14px; }
@media (max-width: 640px) { .aprow { grid-template-columns: auto minmax(0, 1fr); } .ap-ck, .ap-st { grid-column: 2; justify-content: flex-start; align-items: flex-start; flex-direction: row; } .sales-nav { display: flex; width: 100%; overflow-x: auto; } .sales-nav a { flex: 1; justify-content: center; padding: 7px 8px; } }
.aprow .av { width: 42px; height: 42px; font-size: 13.5px; margin: 0; background: var(--accent-tint); color: var(--accent-strong); border: 0; }
.sales-nav { align-self: flex-start; width: fit-content; max-width: 100%; }
@media (max-width: 640px) { .sales-nav { width: 100%; } }
/* ===== v4.0 — scheda partenza a schede ===== */
.trip-tabs { position: sticky; top: 0; z-index: 5; display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; margin: 4px 0 16px; padding: 4px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 2px 10px rgba(16,24,40,.04); }
.trip-tabs::-webkit-scrollbar { display: none; }
.trip-tabs button { flex: none; display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; padding: 9px 14px; border-radius: 10px; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--rock); cursor: pointer; white-space: nowrap; }
.trip-tabs button:hover { color: var(--ink); background: var(--line-2, #EEF0F3); }
.trip-tabs button.on { background: var(--ink); color: var(--paper); }
.trip-tabs b { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--line-2, #EEF0F3); color: var(--ink); font-size: 11px; display: inline-grid; place-items: center; }
.trip-tabs button.on b { background: rgba(255,255,255,.18); color: var(--paper); } .trip-tabs b.late { background: var(--bad); color: #fff; }
.trip-pane > .panel { margin-bottom: 16px; }
.trip-ov { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.trip-cols { columns: 2 420px; column-gap: 16px; } .trip-cols > .panel { break-inside: avoid; margin: 0 0 16px; display: block; width: 100%; }
.tn-g { display: flex; flex-direction: column; gap: 14px; }
.tn-w > header { display: flex; align-items: center; gap: 10px; padding: 0 0 8px; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.tn-w > header > span:not(.sq-ic):not(.av) { display: flex; flex-direction: column; flex: 1; min-width: 0; } .tn-w > header small { color: var(--rock); font-size: 12px; }
.tn-w > header em { font-style: normal; font-weight: 700; font-size: 12px; min-width: 22px; height: 22px; border-radius: 999px; background: var(--line-2, #EEF0F3); display: grid; place-items: center; padding: 0 6px; }
.tn-w > header .av { width: 30px; height: 30px; margin: 0; }
.tn-w ul { list-style: none; margin: 0; padding: 0; }
.tn-w li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 0; border-top: 1px dashed var(--line); }
.tn-w li:first-child { border-top: 0; }
.tn-n { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--accent-tint); color: var(--accent-strong); font-size: 14px; }
.tn-w li.late .tn-n { background: var(--bad-tint); color: var(--bad); }
.tn-w li .grow { display: flex; flex-direction: column; gap: 1px; min-width: 0; } .tn-t { font-weight: 600; font-size: 13.5px; } .tn-w li small { color: var(--rock); font-size: 12px; }
.tn-w li.late .tn-d { color: var(--bad); font-weight: 600; }
.th { list-style: none; margin: 0; padding: 0; position: relative; }
.th li { display: grid; grid-template-columns: 56px 30px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 8px 0; }
.th li.th-m { display: block; padding: 14px 0 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--rock); font-weight: 600; }
.th-d { font-size: 12px; color: var(--rock); padding-top: 6px; font-variant-numeric: tabular-nums; }
.th li > i { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; background: var(--line-2, #EEF0F3); color: var(--rock); } .th li > i .ico { width: 15px; height: 15px; }
.th li .grow { display: flex; flex-direction: column; gap: 1px; min-width: 0; } .th li b { font-size: 13.5px; font-weight: 600; } .th li .grow small { color: var(--rock); font-size: 12.5px; }
.th-by { color: var(--rock); font-size: 11.5px; padding-top: 6px; white-space: nowrap; }
@media (max-width: 1100px) { .trip-ov { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .trip-cols { columns: 1; } .tn-w li { grid-template-columns: 30px minmax(0, 1fr); } .tn-w li > .btn { grid-column: 2; justify-self: start; } .th li { grid-template-columns: 46px 28px minmax(0, 1fr); } .th-by { grid-column: 3; padding: 0; } .trip-tabs { top: 0; } }
.trip-tabs { position: static; }
.tn-n.ic .ico { width: 16px; height: 16px; }
/* ===== v4.0 — partner ===== */
.dep-tag { display: inline-block; margin-right: 6px; padding: 1px 7px; border-radius: 999px; background: var(--accent-tint); color: var(--accent-strong); font-size: 11px; font-weight: 600; text-decoration: none; }
.tchat .ch-list.sm { max-height: 280px; overflow: auto; list-style: none; margin: 8px 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.tchat .ch-form { display: flex; gap: 8px; align-items: flex-end; } .tchat .ch-form textarea { flex: 1; }
.pnow { margin-bottom: 16px; }
/* ===== v4.0 — guida : disponibilità e compensi ===== */
.ga-k { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 12px; } .ga-k span { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 10px; border-radius: 10px; background: var(--line-2, #EEF0F3); font-size: 12.5px; color: var(--rock); } .ga-k b { font-size: 16px; color: var(--ink); }
.ga-k .on { background: #E6F4EA; } .ga-k .off { background: var(--bad-tint); } .ga-k .as { background: var(--accent-tint); }
.ga-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.ga-h { text-align: center; font-size: 11px; color: var(--rock); font-weight: 600; text-transform: uppercase; padding-bottom: 2px; }
.ga-d { position: relative; aspect-ratio: 1 / .78; min-height: 38px; border-radius: 10px; border: 1px solid var(--line); background: var(--paper); font: inherit; font-size: 13px; font-weight: 600; color: var(--ink); display: grid; place-items: center; cursor: pointer; padding: 0; }
.ga-d em { position: absolute; top: 2px; left: 5px; font-style: normal; font-size: 9.5px; font-weight: 600; color: var(--rock); text-transform: uppercase; }
.ga-d.on { background: #E6F4EA; border-color: #9AD3AE; color: #136C34; } .ga-d.off { background: repeating-linear-gradient(45deg, var(--bad-tint) 0 5px, var(--paper) 5px 10px); border-color: #F3B8B2; color: var(--bad); }
.ga-d.as { background: var(--accent); border-color: var(--accent); color: #fff; cursor: default; } .ga-d.as em { color: rgba(255,255,255,.8); }
.ga-d.as.pole-ski { background: #2E6FB0; border-color: #2E6FB0; } .ga-d.past { opacity: .45; cursor: default; } .ga-d.today { box-shadow: 0 0 0 2px var(--ink); }
button.ga-d:hover { border-color: var(--accent); }
.ga-lg { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; font-size: 12px; color: var(--rock); margin: 10px 0; } .ga-lg i { width: 12px; height: 12px; border-radius: 4px; display: inline-block; margin-right: -6px; border: 1px solid var(--line); }
.ga-lg i.on { background: #E6F4EA; } .ga-lg i.off { background: var(--bad-tint); } .ga-lg i.as { background: var(--accent); border-color: var(--accent); } .ga-lg i.free { background: var(--paper); }
.ga-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; } .ga-dot.on { background: #34A853; } .ga-dot.off { background: var(--bad); }
.ga-r li { align-items: center; gap: 10px; } .ga-r small { color: var(--rock); }
.ge-k { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin: 8px 0 10px; }
.ge-k .kpi { padding: 10px 12px; border-radius: 12px; background: var(--line-2, #EEF0F3); display: flex; flex-direction: column; gap: 2px; } .ge-k .kpi small { color: var(--rock); font-size: 11.5px; } .ge-k .kpi b { font-size: 19px; } .ge-k .kpi span { font-size: 12px; color: var(--rock); }
.ge-k .kpi.hi { background: var(--accent-tint); } .ge-k .kpi.warn { background: var(--warn-tint); }
.ge-l li { align-items: center; gap: 10px; }
.ge-l .grow, .ga-r .grow { display: flex; flex-direction: column; min-width: 0; }
/* ===== v4.0 — proposte di MAOS ===== */
.ai-box { margin: 8px 12px; padding: 12px 14px; border-radius: 14px; background: linear-gradient(180deg, #F4F1FF, var(--paper)); border: 1px solid #DCD3FF; }
.ai-box header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; } .ai-box header .ico { width: 16px; height: 16px; color: #6B4EFF; } .ai-box header b { font-size: 13.5px; } .ai-box header small { color: var(--rock); font-size: 11.5px; margin-left: auto; }
.ai-box .pill { background: #E9E3FF; color: #4B32C3; }
.ai-txt { white-space: pre-line; font-size: 13.5px; line-height: 1.5; margin: 0 0 8px; padding: 10px 12px; border-radius: 10px; background: var(--paper); border: 1px solid var(--line); }
.ai-basis { display: flex; gap: 6px; align-items: flex-start; font-size: 12px; color: var(--rock); margin: 0 0 8px; } .ai-basis .ico { width: 14px; height: 14px; flex: none; margin-top: 1px; color: #6B4EFF; }
.ai-note { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: #F4F1FF; border: 1px solid #DCD3FF; font-size: 13px; margin: 0; } .ai-note .ico { width: 16px; height: 16px; color: #6B4EFF; flex: none; }
.field.ai-f input, .field.ai-f select { border-color: var(--accent) !important; background: var(--accent-tint) !important; }
.field.ai-f .lbl::after { content: " ✦"; color: var(--accent); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .ai-box, :root:not([data-theme="light"]) .ai-note { background: #221D38; border-color: #3B3266; } :root:not([data-theme="light"]) .ai-box .pill { background: #3B3266; color: #D9D0FF; } }
:root[data-theme="dark"] .ai-box, :root[data-theme="dark"] .ai-note { background: #221D38; border-color: #3B3266; } :root[data-theme="dark"] .ai-box .pill { background: #3B3266; color: #D9D0FF; }
@media (max-width: 640px) { .ch-form { flex-wrap: wrap; } .ch-form textarea { flex: 1 1 100%; order: -1; min-height: 44px; } .ch-form .ch-sel { flex: 1; } }
.ga-cal { max-width: 620px; } .ga-d { aspect-ratio: auto; min-height: 42px; }


/* ============ v4.0.1 — robust scrolling + mobile role switch ============ */
.seg3.seg4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.top-brand, .brand img, .lg-brand .lgo { -webkit-touch-callout: none; user-select: none; }
@media (min-width: 861px) {
  #view { overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
  .screen { height: auto; min-height: 100%; }
}
@media (max-width: 860px) {
  html, body { height: auto; min-height: 100%; overflow-x: hidden; overflow-y: auto; }
  .app, .main { min-height: 100dvh; height: auto; }
  #view { min-height: 0; overflow: visible; -webkit-overflow-scrolling: touch; }
  .screen { height: auto; min-height: 0; overflow: visible; }
  .cspace, .gspace, .mine, .me-wrap { overflow: visible; max-height: none; }
  .seg3.seg4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 0.8.4 Geo Studio: la traccia GPX nella scheda (Studio, scheda del cliente, campo) */
.st6-geo { border: 1px solid var(--line); background: var(--paper); border-radius: 16px; padding: 22px; display: flex; flex-direction: column; gap: 14px; margin-bottom: 6px; }
.st6-geo.busy { opacity: .6; pointer-events: none; }
.st6-geo-h h3 { font-size: 20px; letter-spacing: -.02em; margin: 6px 0 6px; }
.st6-geo-h p { margin: 0; color: var(--rock); font-size: 13px; line-height: 1.55; max-width: 68ch; }
.st6-geo-k { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-strong); }
.st6-geo-k svg { width: 15px; height: 15px; }
.st6-geo-none { margin: 0; color: var(--rock); font-size: 13px; }
.st6-geo .mapx { aspect-ratio: 2 / 1; min-height: 240px; max-height: 360px; }
.st6-geo-v { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; border-radius: 12px; padding: 12px 14px; background: var(--accent-tint); color: var(--ink); }
.st6-geo-v.ok { background: color-mix(in srgb, #1E9E5A 12%, var(--paper)); }
.st6-geo-v > svg { width: 20px; height: 20px; color: var(--accent-strong); } .st6-geo-v.ok > svg { color: #1E9E5A; }
.st6-geo-v b { display: block; font-size: 13px; } .st6-geo-v small { display: block; color: var(--rock); font-size: 12px; line-height: 1.45; margin-top: 2px; }
.st6-geo > small { font-size: 11.5px; line-height: 1.5; }
.g-stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.g-stats > div { border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; min-width: 112px; background: var(--paper); }
.g-stats dt { font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rock); }
.g-stats dd { margin: 3px 0 0; font-size: 17px; font-weight: 600; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.g-halo { fill: none; stroke: var(--paper); stroke-width: 7; stroke-linejoin: round; stroke-linecap: round; opacity: .9; }
.g-s circle { fill: #1E9E5A; stroke: var(--paper); stroke-width: 2.5; } .g-e circle { fill: var(--ink); stroke: var(--paper); stroke-width: 2.5; } .g-t circle { fill: var(--paper); stroke: var(--accent); stroke-width: 2.5; }
.g-ax { stroke: var(--line); stroke-width: 1; } .g-grid { stroke: var(--line-2); stroke-width: 1; stroke-dasharray: 3 4; } .g-dot { fill: var(--accent); }
.xp-route .g-stats { margin: 8px 0 12px; } .xp-route .mapx { margin-bottom: 4px; }
@media (max-width: 600px) { .g-psvg .p-lb, .g-psvg .p-ax { font-size: 19px; } .st6-geo { padding: 16px; } .st6-geo-v { grid-template-columns: auto 1fr; } .st6-geo-v .btn { grid-column: 1 / -1; justify-self: start; } .g-stats > div { min-width: 0; flex: 1 1 40%; } }

/* MAOS 0.8.10 — pannello decisionale agenzia: non sostituisce la UI esistente. */
.maos-ops10 {margin-bottom:16px}
.maos-ops10-head {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.maos-ops10-head h3 {margin:3px 0 0}
.maos-ops10-k {font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--rock)}
.maos-ops10 .ovl {margin:0 0 12px;padding:0}
.maos-ops10-nav {display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
@media(max-width:540px){.maos-ops10{margin-bottom:12px}.maos-ops10 .ovl li a{min-height:52px}.maos-ops10-nav>a{flex:1 1 42%;justify-content:center}}

/* MAOS 0.8.11 — Agenzia: contesto operativo unificato + report commerciale */
.maos-hub11 { margin: 0 0 18px; padding: 17px 20px; border-radius: 17px; }
.maos-hub11-bar { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.maos-hub11-over { display:block; font-size:10px; font-weight:700; letter-spacing:.12em; color:var(--rock); }
.maos-hub11-bar h3 { margin:3px 0 0; font-size:18px; font-weight:600; }
.maos-hub11-links { display:flex; flex-wrap:wrap; gap:12px; }
.maos-hub11-links a { color:var(--accent-strong); font-size:12px; font-weight:600; text-decoration:none; }
.maos-hub11-links a:focus-visible,.maos-sales11 a:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.maos-hub11-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:8px; margin-top:14px; }
.maos-hub11-metrics>div { background:var(--bg); border:1px solid var(--line); padding:12px 14px; border-radius:11px; min-width:0; }
.maos-hub11-metrics b { display:block; font-size:22px; font-weight:600; line-height:1.2; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.maos-hub11-metrics small { display:block; font-size:11px; color:var(--rock); line-height:1.4; margin-top:5px; }
.maos-hub11-foot { margin:11px 0 0; color:var(--rock); font-size:11px; line-height:1.5; }
.maos-sales11-tabs { display:flex; gap:8px; margin:14px 0; padding:4px; width:max-content; max-width:100%; background:var(--line-2); border-radius:12px; }
.maos-sales11-tabs button { appearance:none; border:0; border-radius:9px; background:transparent; color:var(--rock); font:inherit; font-size:13px; font-weight:600; cursor:pointer; padding:10px 22px; min-height:40px; }
.maos-sales11-tabs button.on { background:var(--paper); color:var(--ink); box-shadow:var(--shadow); }
.maos-sales11-tabs button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.maos-sales11-tools { display:flex; flex-wrap:wrap; align-items:center; gap:10px; height:auto; padding:10px 0; background:transparent; overflow:visible; }
.maos-sales11-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:18px 0; }
.maos-sales11-kpis article { background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:17px 15px; min-width:0; }
.maos-sales11-kpis small { display:block; font-size:11px; line-height:1.45; color:var(--rock); }
.maos-sales11-kpis b { display:block; margin-top:7px; font-size:clamp(19px,2vw,27px); font-weight:600; line-height:1.15; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.maos-sales11-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:14px; }
.maos-sales11-grid .panel { min-width:0; }
.maos-sales11 .panel h3 { line-height:1.3; }
.maos-sales11-pipe { display:grid; grid-template-columns:1fr; gap:0; margin:10px 0 16px; }
.maos-sales11-pipe div,.maos-sales11-list li { display:flex; justify-content:space-between; align-items:start; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); font-size:12px; }
.maos-sales11-pipe strong,.maos-sales11-list strong { font-variant-numeric:tabular-nums; font-size:13px; }
.maos-sales11-list { list-style:none; padding:0; margin:8px 0 15px; }
.maos-sales11-list a { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; overflow-wrap:anywhere; }
.maos-sales11-warnings { margin-bottom:14px; border-left:3px solid var(--warn); }
.maos-sales11-warnings ul { margin:8px 0 0; padding-left:18px; font-size:12px; line-height:1.6; }
.maos-sales11-tablehead { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.maos-sales11 .pl th.num,.maos-sales11 .pl td.num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.maos-sales11 .pl td:first-child { min-width:180px; max-width:320px; overflow-wrap:anywhere; }
@media (max-width:1100px) { .maos-sales11-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } .maos-sales11-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:700px) { .maos-hub11 {padding:14px;} .maos-hub11-metrics {grid-template-columns:repeat(2,minmax(0,1fr));} .maos-sales11-grid {grid-template-columns:1fr;} .maos-sales11-kpis {grid-template-columns:repeat(2,minmax(0,1fr));} .maos-sales11-kpis article{padding:13px 12px;} .maos-sales11-tabs{width:100%;} .maos-sales11-tabs button{flex:1;padding:11px 8px;} .maos-sales11-tools .field {max-width:100%;} }
@media print { .maos-sales11-tools .btn,.maos-sales11-tabs,.maos-hub11-links { display:none !important; } .maos-sales11-grid,.maos-sales11-kpis { break-inside:avoid; } }

.maos-sales11-caveat {margin:12px 0;padding:10px 14px;border:1px solid var(--warn);border-radius:10px;font-size:12px;line-height:1.5;}

/* RC2.2: block stale Experience Studio drafts after remote writes or CAS rebases. */
.maos-studio-conflict { position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center; overflow-y: auto; padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom)); background: rgba(9, 18, 23, .78); backdrop-filter: blur(5px); }
.maos-studio-conflict-panel { box-sizing: border-box; max-width: 520px; width: 100%; padding: clamp(24px, 5vw, 40px); border-radius: 18px; background: var(--paper, #fff); color: var(--ink, #172324); box-shadow: 0 18px 65px rgba(0,0,0,.24); border: 1px solid var(--line, #ddd); }
.maos-studio-conflict-panel h2 { font-size: clamp(22px, 4vw, 29px); line-height: 1.2; margin: 0 0 16px; }
.maos-studio-conflict-panel p { font-size: 15px; line-height: 1.6; }
.maos-studio-conflict-panel [data-maos-conflict-state] { font-weight: 650; }
.maos-studio-conflict-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 24px; }
.maos-studio-conflict-actions button { min-height: 44px; }
.maos-studio-conflict-actions button:disabled { opacity: .48; cursor: not-allowed; }

/* 0.8.18 RC2.3: programma giornaliero + Geo Studio unificati. */
.st6-locale-note{margin:10px 0 18px;padding:10px 14px;background:var(--bg);border:1px solid var(--line);border-radius:10px;font-size:12px;line-height:1.5;color:var(--rock)}
.st6-program{display:flex;flex-direction:column;gap:14px;min-width:0}
.st6-program-head{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.st6-program-head h3{font-size:20px;letter-spacing:-.02em;margin:2px 0 0}
.st6-program-head>span{font-size:12px;color:var(--rock)}
.st6-program-eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-strong);font-weight:700;margin:0 0 5px}
.st6-program-tabs{display:flex;align-items:stretch;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 2px 8px;max-width:100%}
.st6-program-tab{appearance:none;min-width:136px;max-width:230px;flex:1 0 136px;scroll-snap-align:start;min-height:67px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:12px 13px;cursor:pointer;font:inherit}
.st6-program-tab span{display:block;font-size:13px;font-weight:650}.st6-program-tab small{display:block;font-size:11px;color:var(--rock);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st6-program-tab.on{border:2px solid var(--accent-strong);background:var(--accent-tint);padding:11px 12px}.st6-program-tab:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.st6-program-tab.pending:not(.on){border-style:dashed}.st6-program-help{font-size:12px;line-height:1.65;color:var(--rock);margin:0 0 2px}
.st6-program .st6-geo{margin:0;max-width:100%}.st6-day-focus{display:block;min-width:0;margin:2px 0 10px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:18px;padding:20px}
.st6-day-focus-head{display:flex;justify-content:space-between;align-items:start;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:17px}
.st6-day-focus-head h3{font-size:19px;letter-spacing:-.02em;margin:2px 0 7px}.st6-day-map-state{display:inline-block;font-size:11px;color:var(--rock);line-height:1.4}.st6-day-map-state.warn{color:var(--warn)}.st6-day-map-state.ok{color:#327E5B}.st6-day-progress{font-size:12px;color:var(--rock);font-variant-numeric:tabular-nums}
.st6-day-focus .grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
@media(max-width:720px){.st6-program-tab{flex:0 0 142px;min-width:142px}.st6-day-focus{padding:14px}.st6-day-focus .grid2{grid-template-columns:minmax(0,1fr)}.st6-program-head h3{font-size:18px}}

/* MAOS 0.8.18 RC2.4 — Scalable agency workflows (no new data source) */
.ops19-gpx{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid #428e7e;border-radius:999px;color:#246e61;font-size:10px;font-weight:800;letter-spacing:.09em;white-space:nowrap}
.ops19-c-head,.ops19-settings-head,.ops19-year-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.ops19-c-head h1,.ops19-c-head h2,.ops19-settings h1{margin:2px 0 5px;font-size:clamp(24px,3vw,35px);line-height:1.2}
.ops19-c-head p,.ops19-settings-head p{max-width:62ch;color:var(--muted,#64748b);margin:2px 0 0}
.ops19-metrics,.ops19-guide-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.ops19-metrics>div,.ops19-guide-head>div{padding:16px 20px;background:var(--card,#fff);border:1px solid var(--line,#e5e7eb);border-radius:15px;display:flex;flex-direction:column;gap:5px}
.ops19-metrics b,.ops19-guide-head b{font-size:clamp(21px,2.6vw,31px);font-weight:700}
.ops19-metrics small,.ops19-guide-head small{font-size:12px;color:var(--muted,#64748b)}
.ops19-guide-head{grid-template-columns:repeat(3,minmax(0,1fr)) auto;padding:12px;border:1px solid var(--line,#e5e7eb);border-radius:16px;margin:8px 0}
.ops19-guide-head>div{background:transparent;border:0;padding:8px 12px;margin:0;border-right:1px solid var(--line,#e5e7eb)}
.ops19-guide-head>a{align-self:center}
.ops19-cal-tabs,.ops19-setting-nav{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px;align-items:center}
.ops19-calendar .ops19-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:16px 0}
.ops19-calendar .ops19-day{border:1px solid var(--line,#e5e7eb);border-radius:12px;background:var(--card,#fff);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:9px;min-height:95px;padding:12px;text-align:left;color:inherit}
.ops19-calendar .ops19-day.has{background:color-mix(in srgb,var(--accent,#cd7f46) 7%,var(--card,#fff))}
.ops19-calendar .ops19-day strong{font-size:20px;font-variant-numeric:tabular-nums}
.ops19-calendar .ops19-day small{font-size:10px;color:var(--muted,#64748b)}
.ops19-calendar .ops19-day:focus-visible,.ops19-year-month:focus-visible{outline:3px solid var(--accent,#d28b53);outline-offset:2px}
.ops19-agenda{padding:18px 20px}
.ops19-agenda header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ops19-agenda ul{list-style:none;padding:0;margin:10px 0;max-height:none}
.ops19-agenda li{border-bottom:1px solid var(--line,#e5e7eb)}
.ops19-ag-row{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;padding:13px 4px;min-height:66px}
.ops19-ag-row .grow{min-width:0}
.ops19-ag-row .grow b,.ops19-ag-row .grow small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops19-ag-row small{color:var(--muted,#64748b)}
.ops19-ag-date{display:flex;flex-direction:column;min-width:70px;font-variant-numeric:tabular-nums}
.ops19-roster{overflow:auto;background:var(--card,#fff);border:1px solid var(--line,#e5e7eb);border-radius:16px;overscroll-behavior-inline:contain}
.ops19-roster table{width:100%;min-width:610px;border-collapse:collapse;font-size:12px}
.ops19-roster th,.ops19-roster td{padding:13px 10px;border:1px solid var(--line,#e5e7eb);min-width:62px;text-align:center}
.ops19-roster th:first-child{position:sticky;left:0;background:var(--card,#fff);text-align:left;z-index:1;min-width:135px}
.ops19-roster td.ops19-clash{background:#fff1ea;color:#9a361e}
.ops19-year{padding:20px 22px}
.ops19-year-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:9px;margin:20px 0 12px}
.ops19-year-month{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 9px;background:var(--card,#fff);color:inherit;border:1px solid var(--line,#e5e7eb);border-radius:12px;min-width:0;text-align:left}
.ops19-year-month>b{font-size:12px}
.ops19-year-month>strong{font-size:22px;font-variant-numeric:tabular-nums}
.ops19-year-month>small{font-size:10px;color:var(--muted,#64748b);line-height:1.4}
.ops19-year-bar{width:100%;height:6px;background:var(--line,#e5e7eb);border-radius:9px;overflow:hidden}
.ops19-year-bar i{display:block;height:100%;background:var(--accent,#c88751);border-radius:9px}
.ops19-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:14px;margin:18px 0}
.ops19-field-grid article.panel{padding:20px}
.ops19-field-row,.ops19-manage-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ops19-field-grid article.panel h3{margin:16px 0 8px}
.ops19-field-grid article.panel p{margin:4px 0 17px;color:var(--muted,#64748b)}
.ops19-manage{margin-top:18px;padding:19px}
.ops19-manage h3{margin:3px 0}
.ops19-manage-head small{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--muted,#64748b)}
.ops19-view-toggle{padding:12px 0 24px}
.ops19-settings-head{margin:0 0 20px}
.ops19-settings-form.sheet-panel{position:static;inset:auto;transform:none;width:100%;height:auto;max-height:none;max-width:100%;overflow:visible;box-shadow:none;border:0;background:transparent;padding:0;margin:0;display:block}
.ops19-settings-form .sheet-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-height:none;height:auto;overflow:visible;padding:0}
.ops19-settings-form .sheet-body>h3{grid-column:1/-1;font-size:20px;margin:18px 0 0;padding:12px 0;border-top:1px solid var(--line,#e5e7eb)}
.ops19-settings-form .sheet-body>.grid2,.ops19-settings-form .sheet-body>.ag-set,.ops19-settings-form .sheet-body>.maos-ai-settings,.ops19-settings-form .sheet-body>.panel{grid-column:1/-1}
.ops19-settings-form .sheet-foot{position:sticky;bottom:0;z-index:3;background:var(--bg,#f7f8f9);border-top:1px solid var(--line,#e5e7eb);display:flex;justify-content:flex-end;padding:16px 0;margin-top:20px}
.ops19-setting-nav{position:sticky;top:0;z-index:2;overflow-x:auto;flex-wrap:nowrap;background:var(--bg,#f7f8f9);padding:10px 0;border-bottom:1px solid var(--line,#e5e7eb)}
.ops19-setting-nav a{white-space:nowrap;font-size:12px;text-decoration:none;color:inherit;padding:9px 12px;background:var(--card,#fff);border:1px solid var(--line,#e5e7eb);border-radius:22px}
.ops19-settings-form .sheet-body h3[id]{scroll-margin-top:85px}
@media(max-width:1250px){.ops19-year-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:760px){.ops19-year-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ops19-calendar .ops19-month{gap:4px}.ops19-calendar .ops19-day{min-height:70px;padding:8px 6px}.ops19-calendar .ops19-day strong{font-size:16px}.ops19-calendar .ops19-day small{display:none}.ops19-metrics,.ops19-guide-head{grid-template-columns:repeat(3,minmax(0,1fr))}.ops19-guide-head>a{grid-column:1/-1}.ops19-settings-form .sheet-body{grid-template-columns:1fr}}
@media(max-width:430px){.ops19-year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ops19-metrics>div,.ops19-guide-head>div{padding:10px}.ops19-metrics b,.ops19-guide-head b{font-size:21px}.ops19-calendar .ops19-day{min-height:60px}.ops19-c-head .row-acts{width:100%;justify-content:space-between}.ops19-ag-row{gap:8px}.ops19-ag-date{min-width:58px;font-size:12px}}

.ops19-setting-nav .ops19-nav-jump{background:transparent;color:inherit;border:1px solid var(--line,#ddd);border-radius:9px;padding:9px 12px;cursor:pointer;font:inherit}.ops19-setting-nav .ops19-nav-jump:focus-visible{outline:3px solid #c59263;outline-offset:2px}

/* ===== RC2.5 — Calendar (D3/D4) and Field overview (D2) ===== */
.ops19-c-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 14px}
.ops19-c-bar .ops19-cal-tabs{margin:0}
.ops19-c-nav{align-items:center;gap:8px}
.ops19-c-month{font-size:16px;font-weight:600;min-width:9.5em;text-align:center;text-transform:capitalize}
.ops19-mgrid{background:var(--card,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;overflow:hidden}
.ops19-mhead,.ops19-mbody{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.ops19-wd{padding:9px 8px;font-size:12px;font-weight:600;color:var(--ink-2,#475569);text-transform:capitalize;border-bottom:1px solid var(--line,#e5e7eb);text-align:left}
.ops19-cell{min-height:92px;padding:4px 0 6px;border-right:1px solid var(--line-2,#eef0f3);border-bottom:1px solid var(--line-2,#eef0f3);display:flex;flex-direction:column;gap:2px;min-width:0}
.ops19-cell:nth-child(7n){border-right:0}
.ops19-cell.out{background:var(--bg-2,#f6f7f9)}
.ops19-cell.we{background:color-mix(in srgb,var(--bg-2,#f6f7f9) 55%,var(--card,#fff))}
.ops19-cell.today .ops19-dn{background:var(--accent,#d9480f);color:#fff}
.ops19-cell.sel{box-shadow:inset 0 0 0 2px var(--accent,#d9480f)}
.ops19-dn{align-self:flex-start;margin:0 6px 2px;min-width:28px;min-height:28px;border:0;border-radius:14px;background:transparent;font:inherit;font-size:13px;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}
.ops19-dn:hover,.ops19-dn:focus-visible{background:var(--bg-2,#eef0f3);outline:none}
.ops19-bar{display:block;height:20px;line-height:20px;font-size:11.5px;font-weight:600;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px;margin:0 -1px;background:var(--alp,#3b3f8f)}
.ops19-bar.pole-ski{background:var(--ski,#0b6e8a)} .ops19-bar.pole-alpine{background:var(--alp,#3b3f8f)}
.ops19-bar.s{margin-left:6px;border-top-left-radius:6px;border-bottom-left-radius:6px}
.ops19-bar.e{margin-right:6px;border-top-right-radius:6px;border-bottom-right-radius:6px}
.ops19-bar.cont-l::before{content:'‹ '}
.ops19-bar.cont-r::after{content:' ›';float:right}
.ops19-bar:focus-visible{outline:2px solid #fff;outline-offset:-3px}
.ops19-more{align-self:flex-start;margin:2px 6px 0;border:0;background:transparent;font:inherit;font-size:12px;font-weight:600;color:var(--accent-ink,#9a3412);cursor:pointer;min-height:24px}
.ops19-cal-empty{padding:20px 22px}
.ops19-cal-empty h3{margin:0 0 6px;font-size:17px}
.ops19-cal-empty p{margin:0 0 14px}
.ops19-calendar .ops19-agenda{margin-top:14px}
/* Guides view = original guides × days grid for the selected month; navigation and «Nuova partenza» stay in the single header */
.ops19-team .bar .calnav,.ops19-team .bar .cal-new,.ops19-team .cal-ag{display:none}
.ops19-team .cal-wrap{grid-template-columns:minmax(0,1fr)}
.ops19-team .cal-wrap .cal-t{overflow-x:auto}
@media(max-width:860px){.ops19-team .cal-wrap .cal-t,.screen-calendar .ops19-team .legend{display:block}}
@media(max-width:760px){.ops19-cell{min-height:64px}.ops19-bar{height:16px;line-height:16px;font-size:10px;padding:0 3px}.ops19-wd{padding:7px 4px;font-size:11px}.ops19-c-month{min-width:0}}
@media(max-width:430px){.ops19-bar{font-size:0;height:8px}.ops19-bar.s,.ops19-bar.e{border-radius:4px}.ops19-dn{min-width:24px;min-height:24px;font-size:12px;margin:0 3px 2px}}
.ops19-field-up{margin-top:18px;padding:18px 20px}
.ops19-field-up h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:16px}
.ops19-field-list{list-style:none;margin:0;padding:0}
.ops19-field-list li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-2,#eef0f3)}
.ops19-field-list li:last-child{border-bottom:0}
.ops19-field-date{width:58px;text-align:center;flex:none}.ops19-field-date b{display:block;font-size:15px}.ops19-field-date small{color:var(--rock,#64748b);font-size:12px}
.ops19-field-list .grow{min-width:0}.ops19-field-list .grow b{display:block}.ops19-field-list .grow small{color:var(--muted,#64748b)}
@media(max-width:600px){.ops19-field-list li{display:grid;grid-template-columns:58px 28px minmax(0,1fr);row-gap:8px}.ops19-field-list li>.btn{grid-column:3;justify-self:start}}

/* ===== MAOS Lotto 1 pilot — no extra viewport wrappers ===== */
.screen-today .sh42,.screen-guides:not(.has-id) .sh42-ph,.screen-clients:not(.has-id) .sh42-ph,.screen-calendar .sh42-ph{display:none!important}
.screen-guides:not(.has-id) .sh42,.screen-clients:not(.has-id) .sh42,.screen-calendar .sh42{background:var(--paper);color:var(--ink);padding:20px 24px;border:1px solid var(--line);box-shadow:none}
.screen-guides:not(.has-id) .sh42 *, .screen-clients:not(.has-id) .sh42 *, .screen-calendar .sh42 *{color:inherit}
.l1-today,.l1-guides{max-width:1600px;margin:0 auto}
.l1-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 4px 12px}
.l1-header h1{font-size:clamp(22px,2.3vw,32px);line-height:1.15;margin:6px 0}
.l1-header p{max-width:630px;color:var(--muted);font-size:14px;margin:0}
.l1-header small{font-size:11px;font-weight:700;letter-spacing:.11em}
.l1-main-action{display:flex;flex-wrap:wrap;gap:8px}
.l1-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 16px}
.l1-kpi{font:inherit;display:flex;flex-direction:column;text-align:left;align-items:flex-start;justify-content:center;border:1px solid var(--line);border-radius:14px;background:var(--paper);min-height:90px;padding:14px 20px;cursor:pointer;color:var(--ink);text-decoration:none}
.l1-kpi b{font-size:27px;line-height:1.1;letter-spacing:-.02em}.l1-kpi small{font-size:12px;line-height:1.5;color:var(--muted)}
.l1-kpi.current{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.l1-kpi:focus-visible,.l1-action-group a:focus-visible,.l1-qual-row:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.l1-columns{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(270px,1fr);gap:16px;align-items:start}
.l1-columns>*,.l1-side>*{min-width:0}.l1-side{display:flex;flex-direction:column;gap:12px}
.l1-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:12px}
.l1-section-title h2,.l1-side h2,.l1-guides h2{font-size:17px;margin:0}.l1-section-title small{font-size:12px;color:var(--muted)}
.l1-work,.l1-side .panel,.l1-guides .panel{padding:18px!important}
.l1-action-stack{display:flex;flex-direction:column;gap:9px}
.l1-action-group{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--paper)}
.l1-action-name{display:flex;justify-content:space-between;gap:8px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.l1-action-name b{font-size:13px}.l1-action-name small{font-size:11px;color:var(--muted)}
.l1-action-row{display:flex;align-items:center;gap:12px;padding:10px 0 2px}
.l1-action-row p{margin:4px 0;color:var(--muted);font-size:12px;line-height:1.45}
.l1-action-row small{display:block;color:var(--muted);font-size:11px}
.l1-action-controls{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:5px}
.l1-action-controls .btn{min-height:38px}
.l1-departure{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:11px 0;text-decoration:none;color:inherit;font-size:13px}
.l1-departure span{display:flex;flex-direction:column;gap:4px}.l1-departure small{color:var(--muted);font-size:11px}
.l1-quick a{display:block;padding:10px 0;border-bottom:1px solid var(--line);min-height:44px;color:inherit;text-decoration:none}
.l1-extra{margin:16px 0;background:var(--paper);border:1px solid var(--line);border-radius:12px}
.l1-extra summary{padding:14px 18px;cursor:pointer;font-weight:600;min-height:44px}
.l1-extra-grid{padding:8px 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:12px}
.l1-client-filters{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;scrollbar-width:thin}
.l1-client-filters .btn{white-space:nowrap;min-height:44px}
.l1-qual-row{display:flex;justify-content:space-between;align-items:center;min-height:44px;border-top:1px solid var(--line);text-decoration:none;color:inherit;gap:12px}
.l1-qual-row small{color:var(--muted)}
@media(max-width:900px){.l1-columns{grid-template-columns:minmax(0,1fr)}.l1-header{align-items:flex-start}.l1-header p{max-width:480px}}
@media(max-width:600px){.l1-header{flex-direction:column;padding:10px 0 6px}.l1-main-action{width:100%}.l1-main-action .btn{flex:1;text-align:center}.l1-kpi{min-height:75px;padding:10px}.l1-kpi b{font-size:23px}.l1-kpi small{font-size:11px}.l1-work,.l1-side .panel{padding:12px!important}.l1-action-row{flex-direction:column;align-items:stretch}.l1-action-controls{justify-content:flex-start}.l1-columns{gap:12px}.l1-metrics{gap:6px}.l1-qual-row{flex-direction:column;align-items:flex-start;justify-content:center;padding:8px 0}}

/* MAOS RC2.8 — messaggi: orientamento senza duplicare i fili già in elenco */
.ops28-inbox-summary .ops28-inbox-guide { margin-top: 18px; padding: 18px 20px; border: 1px solid var(--border, #dfe4e8); border-radius: 14px; max-width: 560px; }
.ops28-inbox-summary .ops28-inbox-guide p { margin: 0 0 15px; line-height: 1.6; }
.maos-rc28-status { margin: 0 8px; font-size: .81rem; line-height: 1.35; max-width: 26rem; }
.maos-rc28-status[role="alert"] { color: #b33b35; }
@media (max-width: 600px) {
  .ops28-inbox-summary .ops28-inbox-guide { padding: 14px; }
  .maos-rc28-status { flex-basis: 100%; }
}

/* MAOS RC2.9 — inventario compatto e avvisi economici, senza pannelli duplicati */
.eq29-list { display:block !important; padding:4px 0 !important; }
.eq29-row { display:grid; grid-template-columns:36px minmax(0,1.4fr) minmax(120px,1.4fr) minmax(75px,.8fr) 15px; gap:9px; align-items:center; min-height:68px; padding:10px 12px; border-bottom:1px solid var(--line-2); text-decoration:none; color:var(--ink); }
.eq29-row:hover, .eq29-row:focus-visible, .eq29-row.on {background:var(--line-2); outline-offset:-2px;}
.eq29-icon, .eq29-icon .it-img {width:34px;height:34px;max-width:34px;max-height:34px;object-fit:cover;border-radius:8px;}
.eq29-main,.eq29-meta {min-width:0;display:flex;flex-direction:column;gap:3px;}
.eq29-main b {font-size:13px;overflow-wrap:anywhere;}
.eq29-main small,.eq29-meta small,.eq29-assigned {font-size:11px;color:var(--rock);line-height:1.45;overflow-wrap:anywhere;}
/* RC2.10.1: nella lista stretta a sinistra (290 px) le cinque colonne lasciavano 0 px al nome: righe impilate accanto all'icona */
.eq29-list{container-type:inline-size;}
@container (max-width:560px){
 .eq29-list .eq29-row{grid-template-columns:34px minmax(0,1fr);grid-template-areas:"ic main" "ic meta" "ic asg";column-gap:10px;row-gap:3px;align-items:start;min-height:0;padding:11px 12px;}
 .eq29-list .eq29-icon{grid-area:ic;align-self:center;}
 .eq29-list .eq29-main{grid-area:main;}
 .eq29-list .eq29-meta{grid-area:meta;flex-direction:row;flex-wrap:wrap;gap:2px 8px;align-items:baseline;}
 .eq29-list .eq29-assigned{grid-area:asg;}
 .eq29-list .eq29-row>svg{display:none;}
}
.eq29-state {font-size:11px;font-weight:650;line-height:1.35;}
.eq29-state.warn {color:var(--red, #b74a34);}
.eq29-state.ok {color:var(--good, #356e52);}
.ops29-fin-warning {border-left:3px solid var(--accent); margin:12px 0; padding:16px 18px;}
.ops29-fin-warning h3 {font-size:14px;margin:0 0 8px;}
.ops29-fin-warning ul {padding-left:19px;margin:6px 0 10px;line-height:1.6;font-size:12px;}
.ops29-report-scope {color:var(--rock);font-size:12px;line-height:1.55;margin:10px 0 16px;}
@media(max-width:520px){
 .eq29-row{grid-template-columns:30px minmax(0,1fr) minmax(105px,.95fr);gap:7px;padding:12px 7px;}
 .eq29-icon,.eq29-icon .it-img{width:28px;height:28px;}
 .eq29-assigned,.eq29-row>svg{display:none;}
 .eq29-state{font-size:10.5px;}
 .eq29-meta small{font-size:10px;}
}

/* RC2.10.1: azione in attesa della risposta del server */
[data-act].is-busy { opacity: .6; cursor: progress; pointer-events: none; }

/* RC2.10.1 · posizione del gruppo sulla mappa 3D di Geo Studio nella situazione in tempo reale */
.maos-live-dot{width:18px;height:18px;border-radius:50%;background:#1E6FD9;border:3px solid #fff;box-shadow:0 0 0 6px rgba(30,111,217,.25),0 2px 6px rgba(0,0,0,.35)}
.maos-dep-geo{margin:0 0 12px}
/* RC2.10.1 — Impostazioni: voci della barra di sezione su una riga (prima si stringevano fino a una parola per riga) */
.ops19-setting-nav .ops19-nav-jump{flex:0 0 auto;white-space:nowrap;font-size:13px;padding:8px 12px}
.ops19-settings .sheet-body>.ops-int-sec{grid-column:1/-1;padding:18px 20px}
.ops-int-sec>h3{font-size:20px;margin:0 0 4px}
.ops-int{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:0}
.ops-int-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:16px;align-items:center;padding:13px 0;border-top:1px solid var(--line-2,#eef0f2)}
.ops-int-row:first-child{border-top:0}
.ops-int-row b{display:block;font-size:14px}
.ops-int-row small{display:block;color:var(--rock,#64748b);font-size:12px;line-height:1.45}
.ops-int-row .ops-int-where{font-size:11.5px;margin-top:2px;color:var(--ink,#1c2430);opacity:.72}
.ops-int-st{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
@media(max-width:700px){.ops-int-row{grid-template-columns:minmax(0,1fr) auto;row-gap:8px}.ops-int-st{grid-column:1/2}.ops-int-row>.btn{grid-row:1;grid-column:2}}
.ops19-settings .ops19-setting-nav{margin-top:-10px}
/* RC2.10.1 — import clienti e inviti */
.import025-summary.imp-cli-sum{grid-template-columns:repeat(4,minmax(0,1fr))}
.imp-cli-sum .bad b{color:var(--red,#b74a34)}
.imp-cli-table td:first-child,.imp-cli-table th:first-child{width:42px;color:var(--rock,#64748b)}
.imp-cli-table tr.imp-bad td{background:color-mix(in srgb,var(--red,#b74a34) 6%,transparent)}
.imp-cc{font-weight:600;letter-spacing:.04em}
.imp-invite{display:flex;gap:10px;align-items:flex-start;margin:16px 0 4px;padding:14px 16px;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:var(--card,#fff)}
.imp-invite input{margin-top:3px}
.imp-invite b{display:block;font-size:14px}.imp-invite small{display:block;color:var(--rock,#64748b);font-size:12.5px;line-height:1.45;margin-top:2px}
.inv21-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:7px;vertical-align:middle;background:var(--rock,#94a3b8)}
.inv21-dot.ok{background:var(--good,#356e52)}
.inv21-dot.warn{background:var(--accent,#f85000)}
.inv21-dot.bad{background:var(--red,#b74a34)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.inv21-panel .inv21-st{margin:4px 0 6px}
.inv21-tools{display:flex;gap:16px}
.inv21-list{display:grid;gap:0;max-height:52vh;overflow:auto;border:1px solid var(--line,#e5e7eb);border-radius:12px}
.inv21-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line-2,#eef0f2);margin:0;cursor:pointer;min-height:52px}
.inv21-row:first-child{border-top:0}
.inv21-row input{flex:0 0 auto;width:18px;height:18px;margin:0}
.inv21-who{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.3}
.inv21-who b{font-size:14px;font-weight:600}.inv21-who small{color:var(--rock,#64748b);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv21-row .pill{flex:0 0 auto}
.inv21-page .access021-form input[readonly]{background:var(--line-2,#eef0f2);color:var(--rock,#64748b)}
.inv21-priv{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.5;margin:6px 0 2px}
.inv21-priv input{margin-top:4px;flex:0 0 auto}
.inv21-banner .row-acts{flex-wrap:wrap}
@media(max-width:620px){.import025-summary.imp-cli-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}
.inv21-row input,.imp-invite input,.inv21-priv input{accent-color:var(--accent,#f85000)}
/* RC2.10.2 — import del catalogo di esperienze */
.cat21-list{display:grid;gap:14px;margin:14px 0}
.cat21{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;padding:14px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:var(--card,#fff)}
.cat21.off{opacity:.55}
.cat21-ph{width:220px;height:160px;object-fit:cover;border-radius:10px;background:var(--line-2,#eef0f2);display:flex;align-items:center;justify-content:center}
.cat21-b{min-width:0;display:flex;flex-direction:column;gap:6px}
.cat21-b h3{margin:0;font-size:17px}
.cat21-k{margin:0;font-size:12px;color:var(--rock,#64748b);letter-spacing:.02em}
.cat21-f{margin:0;font-weight:600;font-size:13.5px}
.cat21-rv{list-style:none;margin:4px 0;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--accent,#f85000) 8%,transparent);display:grid;gap:4px}
.cat21-rv li{font-size:12.5px;line-height:1.45;display:flex;gap:6px;align-items:flex-start}
.cat21-rv .ico{flex:0 0 auto;width:14px;height:14px;margin-top:2px;color:var(--accent-strong,#b23a00)}
.cat21 .field{max-width:440px;margin-top:4px}
@media(max-width:700px){.cat21{grid-template-columns:1fr}.cat21-ph{width:100%;height:180px}}

/* RC2.10.2: i paragrafi della descrizione restano paragrafi */
.xp-pitch{white-space:pre-line}
/* RC2.10.3 — Oggi: testata principale (foto, saluto, sintesi, contatori-filtro, prossima partenza, accessi) */
.l1-hero{position:relative;overflow:hidden;border-radius:22px;margin:6px 0 18px;padding:30px 30px 22px;color:#fff;background:#14171c var(--ph) center 38%/cover no-repeat;isolation:isolate;box-shadow:0 18px 40px -24px rgba(10,14,20,.55)}
.l1h-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(12,15,20,.86) 0%,rgba(12,15,20,.62) 46%,rgba(12,15,20,.28) 100%),linear-gradient(0deg,rgba(12,15,20,.55),rgba(12,15,20,0) 55%)}
.l1h-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.l1h-k{margin:0;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ffb48f}
.l1-hero h1{margin:8px 0 6px;font-size:clamp(30px,3.6vw,46px);line-height:1.05;letter-spacing:-.02em;color:#fff}
.l1h-sum{margin:0;max-width:56ch;font-size:16px;line-height:1.5;color:rgba(255,255,255,.88)}
.l1h-acts{display:flex;gap:10px;flex-wrap:wrap}
.l1-hero .btn.l1h-ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.35);backdrop-filter:blur(6px)}
.l1-hero .btn.l1h-ghost:hover{background:rgba(255,255,255,.22)}
.l1h-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:12px;margin-top:26px;align-items:stretch}
.l1-hero .l1-metrics.l1h-kpis{margin:0;gap:10px}
.l1-hero .l1-kpi{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;backdrop-filter:blur(8px);min-height:96px;border-radius:16px}
.l1-hero .l1-kpi b{font-size:34px;color:#fff}.l1-hero .l1-kpi small{color:rgba(255,255,255,.82);font-size:12.5px}
.l1-hero .l1-kpi:hover{background:rgba(255,255,255,.17)}
.l1-hero .l1-kpi.current{background:#fff;border-color:#fff;box-shadow:none;color:var(--ink,#1c2430)}
.l1-hero .l1-kpi.current b{color:var(--ink,#1c2430)}.l1-hero .l1-kpi.current small{color:var(--muted,#64748b)}
.l1-hero .l1-kpi.urgent:not(.current) b{color:#ffb48f}
.l1-hero .l1-kpi.urgent.current b{color:var(--accent-strong,#b23a00)}
.l1h-next{display:flex;flex-direction:column;gap:3px;justify-content:center;padding:14px 18px;border-radius:16px;background:rgba(255,255,255,.94);color:var(--ink,#1c2430);text-decoration:none;min-height:96px;box-sizing:border-box}
.l1h-next small{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-strong,#b23a00)}
.l1h-next b{font-size:17px;line-height:1.25}
.l1h-next span{font-size:13px;color:var(--muted,#64748b)}
.l1h-next .l1h-cd{font-size:20px;font-weight:700;color:var(--ink,#1c2430);letter-spacing:-.01em}
.l1h-next .l1h-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.l1h-next:hover{background:#fff}
.l1h-next.empty b{font-size:15px;color:var(--muted,#64748b)}
.l1h-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.l1h-chips a{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;text-decoration:none;font-size:13px;backdrop-filter:blur(6px)}
.l1h-chips a b{font-weight:700}
.l1h-chips a .ico{width:15px;height:15px}
.l1h-chips a:hover{background:rgba(255,255,255,.22)}
.l1-hero a:focus-visible,.l1-hero button:focus-visible{outline:3px solid #ffb48f;outline-offset:2px}
@media(max-width:980px){.l1h-grid{grid-template-columns:1fr}}
@media(max-width:620px){.l1-hero{padding:22px 16px 16px;border-radius:18px}.l1-hero h1{font-size:30px}.l1h-sum{font-size:15px}.l1-hero .l1-metrics.l1h-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.l1-hero .l1-kpi{min-height:74px;padding:10px 10px}.l1-hero .l1-kpi b{font-size:26px}.l1-hero .l1-kpi small{font-size:11px}.l1h-acts{width:100%}.l1h-acts .btn{flex:1;justify-content:center}}
/* testata di Oggi: le schede chiare restano leggibili anche nel tema scuro */
.l1-hero .l1-kpi.current,.l1-hero .l1-kpi.current b,.l1h-next,.l1h-next b,.l1h-next .l1h-cd{color:#1c2430}
.l1-hero .l1-kpi.current small,.l1h-next span{color:#5b6573}
.l1-hero .l1-kpi.urgent.current b,.l1h-next small{color:#b23a00}
.l1h-next .pill{background:#eef0f2;color:#1c2430}

/* ===== RC2.10.6 — Importa: centro unico ===== */
.imp6{margin-top:16px}
.imp6 .import025-layout{display:block}
.imp6-hub{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;align-items:start}
.imp6-hub-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.imp6-q h2{font-size:22px;letter-spacing:-.02em;margin:0 0 4px}.imp6-q p{margin:0;color:var(--rock);font-size:14px;max-width:70ch}
.imp6-group{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;padding-top:16px;border-top:1px solid var(--line)}
.imp6-group h3{margin:4px 0 0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--rock);font-weight:700}
.imp6-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.imp6-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;text-align:left;padding:14px;border:1px solid var(--line);border-radius:var(--r,14px);background:var(--paper);color:var(--ink);cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}
.imp6-card:hover,.imp6-card:focus-visible{border-color:var(--accent);box-shadow:0 6px 18px rgba(16,24,40,.08);transform:translateY(-1px)}
.imp6-card .sq-ic{width:40px;height:40px}
.imp6-c-t{display:flex;flex-direction:column;gap:4px;min-width:0}.imp6-c-t b{font-size:15px}
.imp6-c-t small{color:var(--rock);font-size:13px;line-height:1.4}.imp6-c-t em{font-style:normal;font-size:11px;letter-spacing:.06em;color:var(--rock);opacity:.85}
.imp6-c-s{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.imp6-n{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.imp6-n b{font-size:18px}.imp6-n small{font-size:11px;color:var(--rock);white-space:nowrap}
.imp6-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:16px}
.imp6-conn,.imp6-hist{border:1px solid var(--line);border-radius:var(--r,14px);background:var(--paper);padding:16px}
.imp6-conn header,.imp6-hist header{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}
.imp6-conn h3,.imp6-hist h3{margin:0;font-size:15px}.imp6-conn header small{color:var(--rock);font-size:12px}
.imp6-conn-g{display:flex;flex-direction:column;gap:10px}
.imp6-cn{border:1px solid var(--line-2,var(--line));border-radius:var(--r-sm,9px);padding:12px;background:var(--bg)}
.imp6-cn-h{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.imp6-cn-h .sq-ic{width:32px;height:32px}.imp6-cn-h b{display:block;font-size:14px}.imp6-cn-h small{color:var(--rock);font-size:12px}
.imp6-cn p{margin:8px 0 8px 42px;font-size:12px;color:var(--rock);min-height:1em}
.imp6-cn-a{margin-left:42px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.imp6-hint{color:var(--rock);font-size:12px}
.imp6-hist table{width:100%;border-collapse:collapse;font-size:12px}.imp6-hist th{text-align:left;color:var(--rock);font-weight:600;padding:6px 6px 6px 0;border-bottom:1px solid var(--line)}
.imp6-hist td{padding:7px 6px 7px 0;border-bottom:1px solid var(--line-2,var(--line));vertical-align:top}.imp6-hist td b{font-weight:600}
.imp6-steps{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r,14px);background:var(--paper);margin-bottom:14px}
.imp6-steps ol{list-style:none;display:flex;gap:6px;margin:0;padding:0;flex:1;min-width:0;flex-wrap:wrap}
.imp6-steps li{display:flex;gap:8px;align-items:center;padding:6px 10px;border-radius:999px;color:var(--rock)}
.imp6-steps li i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:700;border:1px solid var(--line);background:var(--paper)}
.imp6-steps li span{display:flex;flex-direction:column;line-height:1.15}.imp6-steps li b{font-size:13px;color:var(--ink)}.imp6-steps li small{font-size:11px}
.imp6-steps li.on{background:var(--accent-tint)}.imp6-steps li.on i{background:var(--accent-btn);border-color:var(--accent-btn);color:var(--on-accent)}
.imp6-steps li.done i{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.imp6-steps li.skip{opacity:.55}.imp6-steps li.skip b{text-decoration:line-through}
.imp6-back{font-size:13px;white-space:nowrap}.imp6-kind{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-strong)}
.imp6-work{border:1px solid var(--line);border-radius:var(--r,14px);background:var(--paper);padding:22px}
.imp6-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.imp6-opt{text-align:center}.imp6-opt p{max-width:46ch;margin-left:auto;margin-right:auto}.imp6-opt.off{opacity:.92}.imp6-opt.off h3{color:var(--rock)}
.imp6-why{margin:8px 0}
.imp6-tip{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding:10px 12px;border-radius:var(--r-sm,9px);background:var(--accent-tint);font-size:13px}
.imp6-tip .ico{width:16px;height:16px}
.imp6-qgo{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:14px 0 6px}.imp6-qgo .field{min-width:200px}
.imp6-sum{grid-template-columns:repeat(4,minmax(0,1fr))}.imp6-sum .warn b{color:var(--accent-strong)}
.imp6-bkl{max-height:360px;overflow:auto;margin:12px 0}
.imp6-gpx{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column}
.imp6-gpx li{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-2,var(--line))}
.imp6-gpx li .grow{display:flex;flex-direction:column;min-width:0}.imp6-gpx li small{color:var(--rock);font-size:12px}
.imp6-ainote{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;margin-bottom:12px;border-radius:var(--r-sm,9px);background:var(--accent-tint);border:1px solid var(--accent-soft)}
.imp6-ainote p{margin:0;display:flex;flex-direction:column;gap:2px}.imp6-ainote small{color:var(--rock);font-size:12px}.imp6-ainote .ico{width:20px;height:20px;flex:none;margin-top:2px}
@media(max-width:1180px){.imp6-hub{grid-template-columns:1fr}.imp6-side{position:static;display:grid;grid-template-columns:1fr 1fr;align-items:start}}
@media(max-width:760px){.imp6-group{grid-template-columns:1fr;gap:8px}.imp6-side{grid-template-columns:1fr}.imp6-two{grid-template-columns:1fr}.imp6-sum{grid-template-columns:repeat(2,minmax(0,1fr))}.imp6-steps li small{display:none}.imp6-steps li{padding:4px 6px}.imp6-work{padding:16px}.imp6-cn p,.imp6-cn-a{margin-left:0}}
@media(max-width:420px){.imp6-steps li span{display:none}.imp6-steps li.on span{display:flex}.imp6-card{grid-template-columns:auto minmax(0,1fr)}.imp6-c-s{grid-column:2;align-items:flex-start}.imp6-n{align-items:flex-start;flex-direction:row;gap:6px;align-items:baseline}}
/* RC2.10.6: righe a tutta larghezza, più leggibili delle schede strette */
.imp6-group{grid-template-columns:1fr;gap:8px;padding-top:14px}
.imp6-cards{grid-template-columns:1fr;gap:8px}
.imp6-card{grid-template-columns:auto minmax(0,1fr) 120px;align-items:center;padding:12px 14px}
.imp6-c-t small{max-width:68ch}
.imp6-c-s{justify-content:center}
@media(min-width:1500px){.imp6-cards{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.imp6-card{grid-template-columns:auto minmax(0,1fr)}}
/* RC2.10.6: pannelli a larghezza costante, testo leggibile */
.imp6:not(.imp6-hub){max-width:1080px;margin-left:auto;margin-right:auto;width:100%}
.imp6 .imp6-steps,.imp6 .imp6-work{width:100%;box-sizing:border-box}
.imp6 .import025-head p,.imp6 .import025-drop p{font-size:14px;line-height:1.5;color:var(--rock)}
.imp6 .import025-head h2{font-size:21px}
.imp6 .import025-drop small,.imp6 .imp6-opt small{font-size:12px}
.imp6-work > .imp6-cn-a{margin-left:0}
.imp6-work .muted.small{font-size:13px}
