:root {
  color-scheme: light;
  --ink: #10233f;
  --muted: #5d6e82;
  --line: #d5e0ea;
  --line-strong: #afc3d4;
  --blue: #0050a4;
  --blue-bright: #005bab;
  --cyan: #00a9e0;
  --red: #d92d42;
  --orange: #dc7900;
  --green: #16805d;
  --paper: #ffffff;
  --soft: #f2f6f9;
  --lime: #b7f34a;
  --yellow: #ffe45e;
  --highlighter-blue: #63d7ff;
  --pink: #ff72b6;
  --purple: #bd8bff;
  --shadow: 0 3px 12px #003b7810;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: #eef3f7; }
body { margin: 0; min-height: 100vh; background: #f4f7fa; color: var(--ink); font-size: 16px; line-height: 1.45; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .5; }
.hidden { display: none !important; }

/* Connexion : même logique visuelle que ZebraDLC */
.auth-gate {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px 16px;
  background: radial-gradient(circle at 50% 10%, #ddecff 0, #f7fbff 42%, #eaf2f9 100%);
}
.login-card {
  width: min(100%, 430px);
  padding: 26px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: 0 22px 70px #12315a24;
}
.brand-logo { display: block; object-fit: contain; background: #fff; }
.brand-logo--login { width: 150px; height: 150px; margin: 0 auto 16px; border-radius: 50%; box-shadow: 0 12px 32px #075bcc24; }
.brand-logo--header { width: 50px; height: 50px; flex: 0 0 50px; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 3px 12px #002d642d; }
.login-card .eyebrow, .login-card h1 { text-align: center; }
.login-card h1 { margin: 3px 0 20px; font-size: 1.72rem; line-height: 1.12; letter-spacing: -.025em; }
.login-card > label:not(.remember-row) { display: grid; gap: 7px; margin: 14px 0; color: #53677c; font-size: .875rem; font-weight: 750; }
.login-card input {
  width: 100%;
  min-height: 52px;
  padding: 0 13px;
  border: 1px solid #bdcddd;
  border-radius: 11px;
  outline: none;
  background: #fff;
  color: var(--ink);
}
.login-card input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px #075bcc18; }
.password-field { position: relative; }
.password-field input { padding-right: 92px; }
.password-field button {
  position: absolute;
  top: 7px;
  right: 7px;
  bottom: 7px;
  margin: 0;
  padding: 0 11px;
  border: 0;
  border-radius: 8px;
  background: #edf5fd;
  color: #0752aa;
  font-size: .8rem;
  font-weight: 850;
}
.remember-row {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 12px 0 18px;
  color: var(--ink);
  font-weight: 500;
}
.remember-row input { width: 20px; min-height: 20px; margin: 2px 0 0; accent-color: var(--blue); flex: 0 0 auto; }
.remember-row span { display: grid; gap: 2px; }
.remember-row strong { font-size: .875rem; }
.remember-row small { color: var(--muted); font-size: .76rem; line-height: 1.35; }
.login-error { min-height: 1.4em; margin: 12px 0 0; text-align: center; color: var(--red); font-size: .875rem; }
.setup-note { margin: -6px 0 17px; text-align: center; color: var(--muted); font-size: .875rem; }
.setup-card .secondary { margin-top: 9px; }

/* Éléments communs */
.eyebrow { margin: 0; color: #0061ad; font-size: .76rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.primary, .button--primary, .button--accent {
  min-height: 44px;
  padding: 10px 16px;
  border: 0;
  border-bottom: 3px solid #003f82;
  border-radius: 8px;
  background: var(--blue-bright);
  color: #fff;
  font-weight: 850;
}
.primary:active, .button--primary:active, .button--accent:active { transform: translateY(1px); border-bottom-width: 2px; }
.secondary, .button--secondary {
  min-height: 44px;
  padding: 9px 15px;
  border: 1px solid #9ec8e4;
  border-radius: 8px;
  background: #eef6fc;
  color: #004f98;
  font-weight: 800;
}
.wide { width: 100%; }
.button {
  min-height: 44px;
  padding: 9px 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 8px;
  font-weight: 800;
}
.button--small { min-height: 38px; padding: 7px 11px; font-size: .875rem; }
.button--ghost { border: 0; background: transparent; color: #00519c; }
.button--danger { border: 1px solid #efc7cb; background: #fff3f4; color: #a42935; }

/* Coque applicative */
#appView { min-height: 100vh; padding-bottom: 92px; }
.app-head {
  min-height: 76px;
  padding: env(safe-area-inset-top) 16px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: sticky;
  top: 0;
  z-index: 20;
  border: 0;
  background: linear-gradient(105deg, #003f86 0%, #005cab 72%, #00a9e0 160%);
  box-shadow: 0 3px 14px #003b7830;
}
.brand { min-width: 0; display: flex; align-items: center; gap: 11px; }
.brand-copy { min-width: 0; display: grid; }
.brand strong { color: #fff; font-size: 1.08rem; letter-spacing: -.01em; }
.store-select {
  width: min(52vw, 230px);
  padding: 0 18px 0 0;
  border: 0;
  outline: none;
  background: transparent;
  color: #dceeff;
  font-size: .78rem;
  font-weight: 650;
}
.store-select option { color: var(--ink); }
.head-actions { display: flex; gap: 7px; }
.install-app-action { white-space: nowrap; }
.icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  font-size: 1.15rem;
  font-weight: 900;
}
.ghost { border: 1px solid #ffffff65; background: #ffffff12; color: #fff; }
.install-dialog { width: min(92vw, 430px); padding: 0; border: 0; border-radius: 16px; background: transparent; box-shadow: 0 22px 70px #001b3f55; }
.install-dialog::backdrop { background: #00152da8; backdrop-filter: blur(4px); }
.install-dialog-card { position: relative; padding: 30px; display: grid; justify-items: center; gap: 10px; border-top: 6px solid var(--cyan); border-radius: 16px; background: #fff; text-align: center; }
.install-dialog-card h2, .install-dialog-card p { margin: 0; }
.install-dialog-card > p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }
.install-dialog-card .modal-close { position: absolute; top: 10px; right: 10px; }
.install-dialog-card .button { margin-top: 8px; }
.brand-logo--install { width: 112px; height: 112px; border-radius: 50%; box-shadow: 0 12px 25px #0050a430; }
.account-data, .sync-state { display: none; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 4px #b7f34a20; }
.sidebar-foot.is-saving .status-dot { background: var(--yellow); }
.sidebar-foot.is-error .status-dot { background: #ff6673; }

#content { max-width: 720px; margin: 0 auto; padding: 20px 16px 28px; outline: none; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.page-head h1 { margin: 3px 0 0; font-size: 1.72rem; line-height: 1.12; letter-spacing: -.025em; }
.page-head p:not(.eyebrow) { max-width: 680px; margin: 8px 0 0; color: var(--muted); font-size: .9rem; }
.page-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.bottom-nav {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 30;
  height: 78px;
  padding: 7px max(7px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(7px, env(safe-area-inset-left));
  display: flex;
  overflow-x: hidden;
  border-top: 3px solid var(--cyan);
  background: #fff;
  box-shadow: 0 -4px 15px #003b7818;
}
.nav-item {
  flex: 1 1 16.666%;
  position: relative;
  min-width: 0;
  border: 0;
  background: transparent;
  color: #637487;
  font-size: .7rem;
  font-weight: 750;
}
.nav-item span { display: block; margin-bottom: 2px; font-size: 1.25rem; line-height: 1; }
.nav-item.active { color: var(--blue-bright); }
.nav-item.active::before { content: ""; position: absolute; top: -9px; left: 50%; width: 28px; height: 4px; transform: translateX(-50%); border-radius: 0 0 3px 3px; background: var(--blue-bright); }

/* Cartes et hiérarchie des pages */
.stats-grid { margin: 0 0 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.stat-card {
  min-height: 112px;
  padding: 17px;
  border: 1px solid #d6e0e9;
  border-top: 5px solid var(--blue);
  border-radius: 9px;
  background: #fff;
  box-shadow: none;
}
.stat-card strong { display: block; margin-top: 8px; font-size: clamp(1.65rem, 7vw, 2.2rem); line-height: 1; letter-spacing: -.04em; overflow-wrap: anywhere; }
.stat-card span { color: var(--muted); font-size: .8rem; font-weight: 700; line-height: 1.25; }
.stat-card--lime { border-top-color: var(--green); }
.stat-card--blue { border-top-color: var(--blue-bright); }
.stat-card--pink { border-top-color: var(--red); }
.stat-card--orange { border-top-color: var(--orange); }

.panel { overflow: hidden; margin-top: 14px; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: none; }
.panel + .panel { margin-top: 14px; }
.panel-head { padding: 15px 14px 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 2px solid #dfe7ee; }
.panel-head h2, .panel-head h3 { margin: 0; font-size: 1.06rem; font-weight: 850; }
.panel-head p { margin: 4px 0 0; color: var(--muted); font-size: .84rem; }
.panel-body { padding: 14px; }
.step-title { display: flex; align-items: center; gap: 11px; }
.step-number { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px; border-radius: 7px; background: var(--blue-bright); color: #fff; font-size: .78rem; font-weight: 900; }

.field { display: grid; gap: 6px; margin: 0 0 14px; color: #53677c; font-size: .875rem; font-weight: 750; }
.field input, .field select, .input {
  min-height: 46px;
  width: 100%;
  padding: 9px 11px;
  border: 1px solid #b9cad8;
  border-radius: 8px;
  outline: none;
  background: #fff;
  color: var(--ink);
}
.field input:focus, .field select:focus, .input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px #075bcc18; }
.form-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.form-grid .field { margin: 0; }
.segmented { display: flex; padding: 4px; border: 1px solid #b9cad8; border-radius: 9px; background: #eef3f7; }
.segmented button { flex: 1; min-height: 39px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-weight: 850; }
.segmented button.active { background: var(--blue-bright); color: #fff; box-shadow: none; }

.collaborator-grid { display: grid; gap: 8px; }
.collaborator-card {
  position: relative;
  min-width: 0;
  padding: 14px;
  border: 1px solid #d6e0e9;
  border-left: 6px solid var(--blue-bright);
  border-radius: 9px;
  background: #fff;
}
.collaborator-card.is-inactive { opacity: .58; }
.collaborator-identity {
  margin: 12px 0 8px;
  padding-right: 84px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
}
.collaborator-identity span {
  min-width: 0;
  padding: 8px 9px;
  display: grid;
  gap: 2px;
  border: 1px solid #d6e0e9;
  border-radius: 7px;
  background: #f8fbfd;
}
.collaborator-identity small { color: var(--muted); font-size: .72rem; font-weight: 750; }
.collaborator-identity strong { overflow: hidden; text-overflow: ellipsis; font-size: .95rem; }
.collaborator-card p { margin: 0; color: var(--muted); font-size: .84rem; }
.collaborator-card .card-actions { position: absolute; top: 10px; right: 10px; }
.card-meta { margin-top: 13px; display: flex; gap: 7px; flex-wrap: wrap; }
.badge { min-height: 26px; padding: 4px 8px; display: inline-flex; align-items: center; border-radius: 5px; background: #edf3f7; color: #34536e; font-size: .76rem; font-weight: 850; }
.badge--dark { background: #e8f3fb; color: #004f98; }
.badge--lime { background: #e7f6ef; color: #116644; }
.badge--warning { background: #fff0d2; color: #8a5300; }
.badge--danger { background: #fff0f2; color: #b91d35; }
.badge--blue { background: #e8f3fb; color: #00519c; }
.badge--pink { background: #fff0f6; color: #a62261; }

.selection-card {
  padding: 12px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border: 1px solid #d6e0e9;
  border-radius: 8px;
  background: #fff;
}
.selection-card.is-selected { border-color: var(--blue); background: #f4f9fe; box-shadow: inset 5px 0 0 var(--blue); }
.selection-card input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--blue); }
.selection-card strong, .selection-card small { display: block; }
.selection-card small { margin-top: 2px; color: var(--muted); font-size: .78rem; line-height: 1.35; }
.selection-card select { grid-column: 2; width: 100%; min-height: 42px; padding: 7px 9px; border: 1px solid #b9cad8; border-radius: 7px; background: #fff; }
.grouping-notice { margin-top: 14px; }
.grouping-builder { margin-top: 14px; overflow: hidden; border: 1px solid #b9cad8; border-radius: 9px; background: #f8fbfd; }
.grouping-head { padding: 12px 13px; display: grid; gap: 2px; border-bottom: 1px solid #d6e0e9; background: #eef6fc; }
.grouping-head strong { color: var(--blue); }
.grouping-head span { color: var(--muted); font-size: .82rem; }
.grouping-grid { display: grid; gap: 0; }
.grouping-row { padding: 10px 12px; display: grid; grid-template-columns: minmax(0, 1fr) 125px; align-items: center; gap: 10px; border-bottom: 1px solid #e3ebf1; }
.grouping-row:last-child { border-bottom: 0; }
.grouping-row strong, .grouping-row small { display: block; }
.grouping-row small { color: var(--muted); font-size: .76rem; }
.grouping-row select { min-height: 40px; width: 100%; padding: 6px 8px; border: 1px solid #b9cad8; border-radius: 7px; background: #fff; }

.unit-grid { display: grid; gap: 9px; }
.unit-card { padding: 14px; border: 1px solid #d6e0e9; border-left: 8px solid var(--unit-color, var(--yellow)); border-radius: 9px; background: #fff; }
.unit-card h3 { margin: 0 0 3px; font-size: 1rem; }
.unit-card > p { margin: 0 0 14px; color: var(--muted); font-size: .82rem; }
.unit-fields { display: grid; grid-template-columns: 1fr; gap: 9px; }
.unit-fields .field { margin: 0; }
.duration-fieldset { min-width: 0; margin: 0; padding: 9px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; border: 1px solid #b9cad8; border-radius: 8px; }
.duration-fieldset legend { padding: 0 5px; color: #53677c; font-size: .78rem; font-weight: 800; }
.duration-fieldset label { display: grid; gap: 4px; color: var(--muted); font-size: .76rem; font-weight: 750; }
.duration-fieldset input { min-height: 42px; width: 100%; padding: 7px 9px; border: 1px solid #b9cad8; border-radius: 7px; background: #fff; color: var(--ink); }
.capacity-hint { margin: 10px 0 0 !important; padding: 8px 10px; border-radius: 7px; background: #f4f7fa; color: var(--muted); font-size: .8rem !important; }
.capacity-hint strong { color: var(--ink); }
.palette { margin-top: 13px; display: flex; flex-wrap: wrap; gap: 8px; }
.color-swatch { width: 31px; height: 31px; padding: 0; border: 2px solid #fff; border-radius: 7px; background: var(--swatch); box-shadow: 0 0 0 1px var(--line-strong); }
.color-swatch.active { box-shadow: 0 0 0 3px var(--blue); }

.drop-zone { position: relative; min-height: 155px; padding: 22px; display: grid; place-items: center; text-align: center; border: 2px dashed #8db8d8; border-radius: 8px; background: #f8fbfd; }
.compact-drop { min-height: 82px; padding: 14px 18px; }
.compact-drop > div { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.compact-drop strong { margin: 0; }
.drop-zone.is-dragging { border-color: var(--blue); background: #eaf4ff; }
.drop-zone strong { display: block; margin-bottom: 6px; color: var(--blue); }
.drop-zone span { color: var(--muted); font-size: .875rem; }
.drop-zone input { position: absolute; opacity: 0; pointer-events: none; }
.import-summary { margin-top: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.import-summary div { padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; }
.import-summary strong { display: block; color: var(--blue); font-size: 1.2rem; }
.import-summary span { color: var(--muted); font-size: .76rem; }
.roll-split-summary { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 7px; }
.roll-split-summary span { padding: 6px 9px; border-radius: 6px; background: #e8f3fb; color: #00519c; font-size: .8rem; }
.roll-split-summary span.is-excluded { background: #fff0d2; color: #8a5300; }
.roll-review-table { margin-top: 12px; }
.roll-review-table { max-height: 48vh; overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
.roll-review-table table { min-width: 640px; }
.roll-review-table thead { position: sticky; top: 0; z-index: 2; background: #edf4f9; }
.roll-review-table td:nth-child(2) { min-width: 230px; }
.compact-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.import-summary .estimate-total { border-color: #8db8d8; background: #edf7ff; }
.estimate-breakdown { margin-top: 8px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.estimate-breakdown span { padding: 8px 10px; border-radius: 7px; background: #eef3f7; color: var(--muted); font-size: .78rem; }
.estimate-breakdown b { display: block; color: var(--ink); font-size: .75rem; }
.estimate-note { margin: 7px 2px 0; color: var(--muted); font-size: .73rem; }

/* Caisse */
.cash-summary { margin-bottom: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cash-summary > div { padding: 13px 15px; display: grid; gap: 3px; border: 1px solid var(--line); border-top: 4px solid var(--cyan); border-radius: 9px; background: #fff; }
.cash-summary span, .cash-assignment label > span, .cash-add label > span { color: var(--muted); font-size: .76rem; font-weight: 750; }
.cash-summary strong { font-size: 1.05rem; }
.cash-register-strip { margin: -3px 0 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.cash-register-strip span { padding: 6px 9px; border: 1px solid #c9dce8; border-radius: 999px; background: #fff; color: #31506d; font-size: .76rem; font-weight: 800; }
.cash-add { margin-bottom: 12px; padding: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 9px; border: 1px solid #9fc7df; border-radius: 10px; background: #f3faff; }
.cash-add label, .cash-assignment label { min-width: 0; display: grid; gap: 5px; }
.cash-add select, .cash-add input, .cash-assignment select, .cash-assignment input { width: 100%; min-height: 42px; padding: 7px 9px; border: 1px solid #b9cad8; border-radius: 7px; background: #fff; color: var(--ink); }
.cash-list { padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow); }
.cash-list-head { margin-bottom: 10px; display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.cash-list-head h2, .cash-list-head p { margin: 0; }
.cash-list-head strong { color: var(--blue); }
.cash-assignment { padding: 10px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 9px; border-top: 1px solid var(--line); }
.cash-person { min-width: 0; display: grid; grid-template-columns: 38px 1fr; align-items: end; gap: 8px; }
.cash-person .person-avatar { width: 38px; height: 42px; }
.cash-assignment label small { color: var(--blue); font-size: .7rem; font-weight: 750; }
.cash-note { margin: 10px 2px 0; padding: 10px 12px; border-left: 4px solid var(--lime); border-radius: 0 7px 7px 0; background: #f5faec; color: var(--muted); font-size: .8rem; }
.report-cash { margin: 12px 0; padding: 12px; border: 1px solid #b9d1df; border-radius: 8px; background: #f8fbfd; break-inside: avoid; }
.report-cash header p, .report-cash header h3 { margin: 0; }
.report-cash header p { color: var(--blue); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.report-cash > div { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 7px; }
.report-cash > div span { padding: 6px 8px; border-radius: 6px; background: #e8f3fb; color: #31506d; font-size: .78rem; }

@media (max-width: 640px) {
  .estimate-breakdown { grid-template-columns: 1fr; }
  .estimate-breakdown b { display: inline; margin-right: 4px; }
}

/* Équipe du jour */
.team-essentials { margin-bottom: 10px; padding: 11px 14px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.compact-field { min-width: 180px; margin: 0; }
.capacity-rule { margin-left: auto; padding: 9px 13px; display: grid; border-left: 4px solid var(--lime); border-radius: 0 8px 8px 0; background: #f5faec; }
.capacity-rule strong { color: #244900; font-size: .88rem; }
.capacity-rule span { color: var(--muted); font-size: .76rem; }
.day-settings { border-color: #b8d5e7; background: linear-gradient(135deg, #f8fcff 0%, #fff 72%); }
.day-settings-collapsible { padding: 0; overflow: hidden; }
.day-settings-collapsible summary { padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.day-settings-collapsible summary::-webkit-details-marker { display: none; }
.day-settings-collapsible summary h2, .day-settings-collapsible summary p { margin: 0; }
.day-settings-collapsible summary h2 { font-size: .95rem; }
.day-settings-collapsible summary p { margin-top: 2px; color: var(--muted); font-size: .76rem; }
.day-settings-collapsible summary > span { padding: 7px 11px; border-radius: 7px; background: #e8f3fb; color: var(--blue); font-size: .76rem; font-weight: 900; }
.day-settings-collapsible .hide-label, .day-settings-collapsible[open] .show-label { display: none; }
.day-settings-collapsible[open] .hide-label { display: inline-block; }
.day-settings-content { padding: 0 14px 14px; border-top: 1px solid var(--line); }
.day-settings-content .day-settings-grid { padding-top: 12px; }
.day-settings-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.day-settings-grid .field { margin: 0; }
.day-rule-summary { margin-top: 12px; padding: 10px 12px; display: flex; align-items: center; gap: 10px; border-left: 4px solid var(--blue); border-radius: 0 8px 8px 0; background: #eaf5fb; }
.day-rule-summary strong { color: var(--blue); white-space: nowrap; }
.day-rule-summary span { color: var(--muted); font-size: .82rem; }
.setup-step { margin-bottom: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 5px 18px #133f5a0a; }
.step-heading { margin-bottom: 15px; display: flex; align-items: center; gap: 11px; }
.step-heading > span { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 32px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 900; }
.step-heading h2, .step-heading p { margin: 0; }
.step-heading h2 { color: var(--ink); font-size: 1.05rem; }
.step-heading p { margin-top: 2px; color: var(--muted); font-size: .82rem; }
.step-heading--plain { margin-bottom: 12px; }
.step-actions { margin-left: auto; display: flex; flex-wrap: wrap; gap: 5px; }
.text-button { padding: 7px 9px; border: 0; border-radius: 7px; background: transparent; color: var(--blue); font-weight: 800; }
.text-button:hover { background: #edf6fc; }
.interim-button { padding: 8px 12px; border: 1px solid #df9a3f; border-radius: 8px; background: #fff7e9; color: #824b05; font-weight: 900; }
.interim-button:hover { background: #ffedcc; }
.selection-count { padding: 7px 10px; border-radius: 999px; background: #e8f3fb; color: var(--blue); font-size: .78rem; font-weight: 850; white-space: nowrap; }
.roster-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }
.roster-person { min-width: 0; padding: 10px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; border: 1px solid #d5e0e8; border-radius: 10px; background: #f8fafc; color: var(--ink); text-align: left; transition: border-color .15s, box-shadow .15s, background .15s; }
.roster-person:hover { border-color: #8ab6d7; background: #f2f8fc; }
.roster-person.is-selected { border-color: var(--blue); background: #edf7fd; box-shadow: inset 0 0 0 1px var(--blue); }
.roster-person.is-interim { border-style: dashed; border-color: #df9a3f; }
.roster-person.is-interim.is-selected { border-style: solid; border-color: #c87509; background: #fff7e9; box-shadow: inset 0 0 0 1px #c87509; }
.roster-person strong, .roster-person small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.roster-person strong { font-size: .88rem; }
.roster-person small { margin-top: 2px; color: var(--muted); font-size: .72rem; }
.person-avatar { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px; border-radius: 9px; background: #dcecf7; color: var(--blue); font-size: .76rem; font-weight: 950; }
.roster-person.is-selected .person-avatar { background: var(--blue); color: #fff; }
.roster-person.is-interim .person-avatar, .selected-person-card.is-interim .person-avatar { background: #ffe2b1; color: #824b05; }
.roster-person.is-interim.is-selected .person-avatar { background: #c87509; color: #fff; }
.roster-check { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #e5edf3; color: var(--muted); font-weight: 950; }
.roster-person.is-selected .roster-check { background: var(--lime); color: #173b00; }
.phase-config-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.phase-config-card { padding: 14px; border: 1px solid #cad8e3; border-top: 5px solid var(--blue); border-radius: 11px; background: #f9fbfd; }
.phase-config-card.phase-after { border-top-color: #df9a3f; }
.phase-config-card > header { margin-bottom: 12px; display: flex; align-items: center; gap: 9px; }
.phase-config-card h3, .phase-config-card p { margin: 0; }
.phase-config-card h3 { font-size: .98rem; }
.phase-config-card p { margin-top: 2px; color: var(--muted); font-size: .76rem; }
.phase-icon { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px; border-radius: 9px; background: #dcecf7; color: var(--blue); font-size: .72rem; font-weight: 950; }
.phase-after .phase-icon { background: #ffe8c4; color: #824b05; }
.phase-mode-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.mode-card { min-height: 76px; padding: 12px; display: grid; align-content: center; gap: 3px; border: 1px solid #ccd9e3; border-radius: 10px; background: #f8fafc; color: var(--ink); text-align: left; }
.mode-card strong { font-size: .95rem; }
.mode-card small { color: var(--muted); }
.mode-card.active { border-color: var(--blue); background: #eaf5fc; box-shadow: inset 0 0 0 1px var(--blue); }
.phase-team-count { margin: 9px 0 0; padding: 9px 11px; border: 1px dashed #aabfce; border-radius: 9px; background: #fff; }
.phase-team-count input { min-height: 38px; }
.selected-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 10px; }
.selected-person-card { overflow: hidden; border: 1px solid #d5e0e8; border-radius: 11px; background: #fbfcfd; }
.selected-person-card.is-interim { border-color: #e1b777; }
.selected-person-card header { padding: 12px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; border-bottom: 1px solid #e5ebf0; background: #fff; }
.selected-person-card h3, .selected-person-card p { margin: 0; }
.selected-person-card h3 { font-size: .92rem; }
.selected-person-card p { margin-top: 2px; color: var(--muted); font-size: .74rem; }
.interim-badge { margin-left: 5px; padding: 3px 6px; border-radius: 999px; background: #fff0d5; color: #824b05; font-size: .65rem; vertical-align: middle; }
.remove-person { width: 30px; height: 30px; color: #8b3445; font-size: 1.2rem; }
.selected-card-controls { padding: 10px 12px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.selected-card-field { display: grid; gap: 4px; }
.selected-card-field > span, .hour-grid label > span { color: var(--muted); font-size: .7rem; font-weight: 800; }
.selected-card-field select { width: 100%; min-height: 39px; padding: 6px 8px; border: 1px solid #b9cad8; border-radius: 7px; background: #fff; }
.phase-membership { min-height: 39px; align-content: center; padding: 6px 9px; border: 1px solid #d8e3ea; border-radius: 7px; background: #f1f6f9; }
.phase-membership strong { color: var(--blue); font-size: .82rem; }
.phase-membership.is-empty { border-style: dashed; background: #fafafa; }
.phase-membership.is-empty strong { color: var(--muted); }
.hour-grid { padding: 10px 12px 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.hour-grid label { min-width: 0; display: grid; gap: 4px; }
.hours-input { position: relative; }
.hours-input input { width: 100%; min-height: 42px; padding: 7px 31px 7px 8px; border: 1px solid #b9cad8; border-radius: 7px; background: #fff; font-weight: 800; }
.hours-input small { position: absolute; right: 9px; top: 50%; transform: translateY(-50%); color: var(--blue); font-weight: 850; }
.selected-person-card footer { padding: 8px 12px; display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid #e5ebf0; background: #f2f7fa; color: var(--muted); font-size: .75rem; }
.selected-person-card footer strong { color: var(--ink); }
.team-preview { padding-bottom: 12px; }
.phase-preview-block + .phase-preview-block { margin-top: 14px; padding-top: 14px; border-top: 1px solid #dbe4eb; }
.phase-preview-block > h3 { margin: 0 0 8px; color: var(--muted); font-size: .82rem; }
.phase-empty { padding: 11px 12px; border: 1px dashed #cbd8e1; border-radius: 8px; color: var(--muted); font-size: .82rem; background: #fafcfd; }
.team-preview-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 10px; }
.team-preview-card { min-width: 0; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 10px 14px; overflow: hidden; border: 1px solid #d6e0e9; border-left: 7px solid var(--unit-color); border-radius: 9px; background: #fff; }
.team-preview-card > div:first-child { min-width: 0; }
.team-preview-card h3, .team-preview-card p { margin: 0; }
.team-preview-card h3 { font-size: .88rem; }
.team-preview-card p { margin-top: 3px; overflow-wrap: anywhere; color: var(--muted); font-size: .72rem; line-height: 1.35; }
.team-preview-card .palette { max-width: 184px; margin: 0; justify-content: flex-end; flex-wrap: wrap; }

.compact-hours-step { padding-bottom: 12px; }
.group-hours-phase + .group-hours-phase { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.group-hours-phase > header { margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.group-hours-phase > header h3 { margin: 0; font-size: .9rem; }
.group-hours-phase > header span { color: var(--muted); font-size: .75rem; }
.group-hours-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 8px; }
.group-hours-card { min-width: 0; padding: 12px; border: 1px solid #d5e0e8; border-radius: 10px; background: #f9fbfd; }
.group-hours-card > header { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.group-hours-card h3 { margin: 2px 0 0; font-size: .9rem; }
.group-hours-card header > strong { padding: 4px 7px; border-radius: 999px; background: #e8f3fb; color: var(--blue); font-size: .7rem; white-space: nowrap; }
.group-mode { color: var(--muted); font-size: .64rem; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; }
.group-hours-card > p { min-height: 2.2em; margin: 7px 0 10px; overflow-wrap: anywhere; color: var(--muted); font-size: .72rem; line-height: 1.35; }
.group-hours-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 7px; }
.group-hours-fields label { display: grid; gap: 4px; color: var(--muted); font-size: .7rem; font-weight: 800; }
.aggregate-hours-row { padding: 12px; display: grid; grid-template-columns: minmax(150px, .8fr) minmax(360px, 2fr) minmax(160px, .8fr); align-items: center; gap: 14px; border: 1px solid #cad9e4; border-radius: 10px; background: #f9fbfd; }
.aggregate-summary { min-width: 0; display: grid; gap: 2px; }
.aggregate-summary > span { color: var(--blue); font-size: .68rem; font-weight: 900; text-transform: uppercase; }
.aggregate-summary > strong { font-size: .92rem; }
.aggregate-summary > small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; text-transform: capitalize; }
.aggregate-hours-fields { display: grid; grid-template-columns: repeat(3, minmax(105px, 1fr)); gap: 8px; }
.aggregate-hours-fields label { min-width: 0; display: grid; gap: 3px; color: var(--muted); font-size: .7rem; font-weight: 800; }
.aggregate-hours-fields em { color: var(--muted); font-size: .63rem; font-style: normal; font-weight: 650; text-align: center; }
.aggregate-rule { padding-left: 12px; display: grid; gap: 3px; border-left: 3px solid var(--lime); }
.aggregate-rule strong { color: #2c5700; font-size: .8rem; }
.aggregate-rule span { color: var(--muted); font-size: .68rem; line-height: 1.3; }
.planned-team-summary { min-width: 190px; display: grid; }
.planned-team-summary strong { font-size: .86rem; }
.planned-team-summary span { color: var(--muted); font-size: .72rem; }
.weekly-required { margin-bottom: 10px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #e2b761; border-radius: 10px; background: #fff9ed; }
.weekly-required > div { display: grid; gap: 2px; }
.weekly-required span { color: var(--muted); font-size: .78rem; }
.modal-intro { margin: 0 0 16px; color: var(--muted); }
.interim-modal-note { padding: 12px 13px; display: grid; gap: 3px; border-left: 4px solid #df9a3f; border-radius: 0 8px 8px 0; background: #fff7e9; }
.interim-modal-note strong { color: #704000; }
.interim-modal-note span { color: var(--muted); font-size: .82rem; }
.setup-savebar, .dispatch-bar { position: sticky; bottom: 88px; z-index: 12; margin: 14px 0 0; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #8eb9d8; border-radius: 10px; background: #f8fcffed; box-shadow: 0 10px 35px #003b7820; backdrop-filter: blur(10px); }
.setup-savebar span { color: var(--muted); font-weight: 750; }

/* Planification courte */
.planning-status { margin-bottom: 14px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #e4bd78; border-radius: 10px; background: #fffaf0; }
.planning-status > div { display: flex; align-items: center; gap: 10px; }
.planning-status.is-ready { border-color: #9ed8c4; background: #f2fbf7; }
.status-icon { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px; border-radius: 8px; background: #ffe7b9; color: #815000; font-weight: 950; }
.planning-status.is-ready .status-icon { background: #d9f3e7; color: #116644; }
.planning-status p, .planning-status strong, .planning-status small { display: block; margin: 0; }
.planning-status small { color: var(--muted); }
.planning-workspace { margin-top: 0; }
.dispatch-bar { bottom: 88px; }
.dispatch-bar > div { display: grid; }
.dispatch-bar span { color: var(--muted); font-size: .8rem; }
.dispatch-stats { margin: 0 0 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.dispatch-stats span { padding: 8px 11px; border-radius: 7px; background: #edf4f9; color: var(--muted); font-size: .82rem; }
.dispatch-stats strong { color: var(--ink); }
.remaining-time { margin: 16px 0; padding: 14px; border: 1px solid #b5d7c8; border-radius: 10px; background: #f3fbf7; break-inside: avoid; }
.remaining-time header p, .remaining-time header h3 { margin: 0; }
.remaining-time header p { color: #167052; font-size: .72rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.remaining-time header h3 { margin-top: 2px; font-size: 1rem; }
.remaining-time-total { margin-top: 10px; padding: 10px 12px; display: flex; justify-content: space-between; gap: 12px; border: 1px solid #cce4d8; border-radius: 7px; background: #fff; color: var(--muted); font-size: .8rem; }
.remaining-time-total strong { color: #116644; }
.remaining-time--compact { margin-bottom: 14px; }

/* Étiquettes de rolls */
.labels-result { margin-top: 26px; }
.roll-label-grid { margin-top: 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.label-sheet { display: contents; }
.roll-label { position: relative; min-height: 178px; padding: 18px; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 2px solid #163452; border-radius: 8px; text-align: center; background: #fff; break-inside: avoid; }
.label-color { position: absolute; top: 0; right: 0; left: 0; height: 17px; background: var(--label-color); border-bottom: 1px solid #163452; }
.label-roll { font-size: 1.22rem; letter-spacing: .12em; }
.label-person { margin-top: 12px; font-size: 2rem; font-weight: 950; line-height: 1.05; }
.label-time { margin-top: 9px; font-size: 1.35rem; font-weight: 850; }
.label-segment, .label-annotation { margin-top: 16px; font-size: 1.75rem; font-weight: 950; line-height: 1.12; }
.label-annotation { max-width: 100%; overflow-wrap: anywhere; }
.label-annotation.is-unassigned, .roll-label.is-unassigned { color: #a32235; border-color: #a32235; }

.notice { padding: 13px 14px; display: flex; align-items: flex-start; gap: 10px; border: 1px solid #e4bd78; border-radius: 8px; background: #fffaf0; color: #744c0d; }
.notice--info { border-color: #9ec8e4; background: #eef6fc; color: #064f83; }
.notice--success { border-color: #9ed8c4; background: #f2fbf7; color: #116644; }
.notice strong { display: block; }
.notice p { margin: 3px 0 0; font-size: .84rem; }
.empty-state { min-height: 190px; padding: 26px; display: grid; place-items: center; text-align: center; border: 1px dashed var(--line-strong); border-radius: 8px; background: #fff; }
.empty-state h3 { margin: 0 0 6px; }
.empty-state p { max-width: 540px; margin: 0 0 16px; color: var(--muted); }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 11px 9px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
th { color: var(--muted); font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; }
td { font-size: .875rem; }
tbody tr:last-child td { border-bottom: 0; }
td input, td select { min-height: 40px; width: 100%; padding: 6px 8px; border: 1px solid #b9cad8; border-radius: 7px; background: #fff; }

.schedule-grid { display: grid; gap: 10px; }
.schedule-card { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.schedule-card h3 { margin: 0; padding: 13px 13px 0; color: var(--blue); }
.schedule-card > p { margin: 3px 0 10px; padding: 0 13px; color: var(--muted); font-size: .82rem; }
.task-list { display: grid; gap: 8px; }
.task-row { padding: 12px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.task-row input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--blue); }
.task-row strong, .task-row small { display: block; }
.task-row small { color: var(--muted); font-size: .78rem; }
.task-row > :nth-child(3), .task-row > :nth-child(4) { grid-column: 2; }
.role-list { display: flex; flex-wrap: wrap; gap: 8px; }
.role-chip { min-height: 34px; padding: 5px 7px 5px 10px; display: inline-flex; align-items: center; gap: 7px; border-radius: 6px; background: #e8f3fb; color: #004f98; font-size: .82rem; font-weight: 850; }
.role-chip button { width: 23px; height: 23px; border: 0; border-radius: 5px; background: #fff; color: var(--muted); }

.result-toolbar { margin: 24px 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.result-toolbar h2 { margin: 0; }
.result-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.print-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.print-actions small { flex-basis: 100%; color: var(--muted); text-align: right; }
.organization-report { display: none; color: #10233a; background: #fff; }
.report-head { padding-bottom: 14px; display: flex; justify-content: space-between; gap: 18px; border-bottom: 3px solid #0a5c91; }
.report-head p, .report-head h1, .report-head span { margin: 0; }
.report-head p { color: #0a5c91; font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.report-head h1 { margin: 3px 0; font-size: 1.55rem; }
.report-head > div:first-child > span { color: #52667a; }
.report-rule { max-width: 58%; padding: 10px 12px; display: grid; align-content: center; gap: 3px; border-radius: 8px; background: #edf6fb; text-align: right; }
.report-rule span { color: #52667a; font-size: .75rem; }
.report-summary { margin: 14px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.report-summary div { padding: 10px; border: 1px solid #cadae5; border-radius: 8px; background: #f8fbfd; }
.report-summary span, .report-summary strong { display: block; }
.report-summary span { color: #607487; font-size: .72rem; }
.report-summary strong { margin-top: 2px; font-size: 1rem; }
.planning-audit { margin: 12px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; break-inside: avoid; }
.planning-audit > div { padding: 10px 12px; display: grid; gap: 2px; border: 1px solid #b9d1df; border-radius: 8px; background: #f5fbff; }
.planning-audit span { color: #52667a; font-size: .75rem; }
.planning-audit strong { color: #0a5c91; font-size: 1rem; }
.report-axis { margin-top: 16px; break-inside: avoid; }
.report-axis > header { margin-bottom: 7px; padding: 8px 10px; display: flex; align-items: center; justify-content: space-between; border-left: 5px solid #0a5c91; background: #eef6fa; }
.report-axis header p, .report-axis header h3, .report-axis header span, .report-axis header strong { margin: 0; }
.report-axis header p { color: #0a5c91; font-size: .75rem; font-weight: 900; text-transform: uppercase; }
.report-axis header h3 { font-size: 1rem; }
.report-axis header > div:last-child { display: grid; text-align: right; }
.report-axis header span { color: #607487; font-size: .68rem; }
.report-axis table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.report-axis th, .report-axis td { padding: 7px; border: 1px solid #cadae5; vertical-align: top; text-align: left; }
.report-axis th { background: #f3f7fa; color: #405669; font-size: .68rem; text-transform: uppercase; }
.report-axis td { font-size: .76rem; }
.report-axis th:nth-child(1) { width: 15%; }
.report-axis th:nth-child(2) { width: 18%; }
.report-axis th:nth-child(3) { width: 43%; }
.report-axis th:nth-child(4) { width: 12%; }
.report-axis th:nth-child(5) { width: 12%; }
.report-unit-color { width: 8px; height: 8px; margin-right: 5px; display: inline-block; border: 1px solid #20384b; border-radius: 50%; background: var(--report-color); print-color-adjust: exact; -webkit-print-color-adjust: exact; }
.report-rolls { margin: 0; padding: 0; display: grid; gap: 3px; list-style: none; }
.report-rolls li { display: flex; justify-content: space-between; gap: 8px; }
.report-rolls span, .report-empty { color: #52667a; }
.report-footer { margin-top: 18px; padding-top: 9px; display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid #aebfca; color: #52667a; font-size: .7rem; }
.report-footer strong { color: #10233a; }

.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.dashboard-card { min-height: 190px; padding: 22px; display: grid; grid-template-columns: 54px 1fr auto; grid-template-rows: 1fr auto; gap: 14px; border: 1px solid var(--line); border-top: 5px solid var(--card-accent); border-radius: 14px; background: #fff; color: var(--ink); text-align: left; box-shadow: var(--shadow); transition: transform .18s ease, box-shadow .18s ease; }
.dashboard-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px #003b7818; }
.dashboard-card--blue { --card-accent: var(--blue-bright); }
.dashboard-card--lime { --card-accent: var(--lime); }
.dashboard-card--orange { --card-accent: var(--orange); }
.dashboard-card--dark { --card-accent: var(--ink); }
.dashboard-card--cyan { --card-accent: var(--cyan); }
.dashboard-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 12px; background: color-mix(in srgb, var(--card-accent) 16%, white); color: var(--blue); font-size: 1.7rem; }
.dashboard-copy { display: grid; align-content: start; gap: 7px; }
.dashboard-copy strong { font-size: 1.28rem; }
.dashboard-copy small { max-width: 360px; color: var(--muted); font-size: .85rem; line-height: 1.45; }
.dashboard-meta { grid-column: 1 / 3; align-self: end; color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.dashboard-arrow { grid-column: 3; grid-row: 1 / 3; align-self: end; color: var(--card-accent); font-size: 1.5rem; font-weight: 900; }

.workflow-panel { padding: 10px; display: grid; gap: 8px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow); }
.workflow-step { min-height: 82px; padding: 13px; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 1px solid #d7e3ed; border-radius: 11px; background: #f8fbfd; color: var(--ink); text-align: left; }
.workflow-step > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #e4f2fc; color: var(--blue); font-weight: 950; }
.workflow-step > div { display: grid; gap: 2px; }
.workflow-step strong { font-size: 1rem; }
.workflow-step small { color: var(--muted); }
.workflow-step em { color: var(--blue); font-size: .78rem; font-style: normal; font-weight: 850; }
.workflow-step--primary { border-color: #0064b6; background: linear-gradient(105deg, #004f9f, #0070bc); color: #fff; }
.workflow-step--primary > span { background: #fff; color: var(--blue); }
.workflow-step--primary small, .workflow-step--primary em { color: #e0f4ff; }
.quick-tools { margin-top: 12px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.quick-tools button { min-height: 96px; padding: 13px; display: grid; align-content: center; gap: 2px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); text-align: left; }
.quick-tools button > span { color: var(--blue); font-size: 1.15rem; }
.quick-tools small { color: var(--muted); }
.more-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.more-grid button, .install-wide { min-height: 82px; padding: 15px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); text-align: left; box-shadow: var(--shadow); }
.more-grid button > span, .install-wide > span { color: var(--blue); font-size: 1.35rem; font-weight: 900; }
.more-grid button > div, .install-wide > div { display: grid; gap: 3px; }
.more-grid small, .install-wide small { color: var(--muted); }
.more-grid b { color: var(--blue); }
.install-wide { width: 100%; margin-top: 10px; border-color: #a8d3ea; background: #eef8ff; }
.pace-presets { margin-top: 14px; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.pace-presets > span { margin-right: 4px; color: var(--muted); font-size: .78rem; font-weight: 800; }
.pace-presets button { min-width: 44px; min-height: 38px; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; color: var(--ink); font-weight: 850; }
.pace-presets button.active { border-color: var(--blue); background: var(--blue); color: #fff; }
.preview-details { padding: 0; overflow: hidden; }
.preview-details > summary { padding: 15px 17px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.preview-details > summary::-webkit-details-marker { display: none; }
.preview-details > summary h2, .preview-details > summary p { margin: 0; }
.preview-details > summary p { margin-top: 3px; color: var(--muted); font-size: .8rem; }
.preview-details > summary > span { color: var(--blue); font-size: .8rem; font-weight: 900; }
.preview-details[open] > summary > span { font-size: 0; }
.preview-details[open] > summary > span::after { content: "Masquer"; font-size: .8rem; }
.preview-details-body { padding: 0 17px 15px; border-top: 1px solid var(--line); }

.document-gateway { min-height: 520px; padding: 42px; display: grid; place-items: center; align-content: center; gap: 12px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, #fff 35%, #edf7ff); text-align: center; box-shadow: var(--shadow); }
.document-gateway h2, .document-gateway p { margin: 0; }
.document-gateway p { max-width: 580px; color: var(--muted); }
.gateway-mark { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 18px; background: var(--blue); color: #fff; font-size: 2rem; box-shadow: 0 12px 24px #0050a430; }
.document-types { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.document-types span { padding: 7px 10px; border-radius: 999px; background: #eaf5ff; color: var(--blue); font-size: .78rem; font-weight: 800; }
.gateway-drop { width: min(100%, 620px); min-height: 130px; margin-top: 8px; display: grid; place-items: center; align-content: center; gap: 5px; }
.document-gateway > small { color: var(--muted); }

.stock-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.stock-control-panel { margin-bottom: 14px; padding: 18px; display: grid; grid-template-columns: minmax(240px, 1fr) auto auto; align-items: center; gap: 20px; border: 1px solid var(--line); border-top: 4px solid var(--orange); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.stock-control-panel h2, .stock-control-panel p { margin: 0; }
.stock-control-panel > div:first-child > p:last-child { margin-top: 5px; color: var(--muted); font-size: .82rem; }
.stock-duration { display: grid; gap: 5px; color: var(--muted); font-size: .72rem; font-weight: 800; }
.stock-duration > span:last-child { display: flex; align-items: center; gap: 7px; }
.stock-duration input { width: 80px; min-height: 42px; padding: 8px; border: 1px solid var(--line-strong); border-radius: 8px; font: inherit; }
.stock-duration strong { color: var(--ink); }
.stock-total { min-width: 165px; padding: 12px 15px; display: grid; gap: 2px; border-radius: 10px; background: #fff5e9; }
.stock-total span, .stock-total small { color: var(--muted); font-size: .7rem; }
.stock-total strong { color: #8a4100; font-size: 1.05rem; }
.stock-category-manager { margin-bottom: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.stock-category-manager > summary { padding: 13px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.stock-category-manager > summary::-webkit-details-marker { display: none; }
.stock-category-manager > summary > div { display: grid; gap: 2px; }
.stock-category-manager > summary strong { color: var(--ink); }
.stock-category-manager > summary span { color: var(--muted); font-size: .75rem; }
.stock-category-manager > summary b { color: var(--blue); font-size: .78rem; }
.stock-category-manager[open] > summary b { font-size: 0; }
.stock-category-manager[open] > summary b::after { content: "Masquer"; font-size: .78rem; }
.stock-category-manager-body { padding: 14px 16px 16px; border-top: 1px solid var(--line); }
.stock-category-manager-body > small { display: block; margin-top: 10px; color: var(--muted); }
.stock-category-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; }
.stock-category-add label, .stock-category-row label { display: grid; gap: 4px; color: var(--muted); font-size: .7rem; font-weight: 850; }
.stock-category-add input, .stock-category-row input { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-weight: 800; text-transform: uppercase; }
.stock-category-list { margin-top: 12px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 8px; }
.stock-category-row { padding: 9px; display: grid; grid-template-columns: minmax(0, 1fr) auto 38px; align-items: end; gap: 7px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.stock-category-row .button, .stock-category-row .icon-button { min-height: 38px; }
.stock-counter-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.stock-counter-card { padding: 14px; display: grid; gap: 10px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: var(--shadow); }
.stock-counter-card > div:first-child { display: flex; align-items: baseline; justify-content: space-between; }
.stock-counter-card > div:first-child span, .stock-counter-card small { color: var(--muted); font-size: .7rem; }
.stock-counter-card > div:first-child strong { color: var(--blue); font-size: 1rem; }
.stock-stepper { display: grid; grid-template-columns: 38px 1fr 38px; gap: 5px; }
.stock-stepper button, .stock-stepper input { min-height: 38px; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-weight: 900; text-align: center; }
.stock-stepper button { cursor: pointer; color: var(--blue); font-size: 1.1rem; }
.stock-stepper button:hover { background: #edf7ff; }
.stock-open-bar { position: sticky; bottom: 12px; z-index: 3; margin: 16px 0; padding: 13px 15px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #86b8dd; border-radius: 12px; background: #f5fbffed; box-shadow: 0 10px 28px #003b7820; backdrop-filter: blur(8px); }
.stock-open-bar > div { display: grid; gap: 2px; }
.stock-open-bar span { color: var(--muted); font-size: .75rem; }
.stock-annotations { margin-top: 16px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.stock-annotations summary { padding: 14px 16px; cursor: pointer; color: var(--blue); font-weight: 850; }
.stock-annotations .stock-grid { padding: 0 14px 14px; }
.stock-plan-summary { padding: 14px; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(260px, 2fr) auto; align-items: center; gap: 14px; border: 1px solid #9bc3df; border-radius: 10px; background: #f5fbff; }
.stock-plan-summary > div:first-child { display: grid; gap: 3px; }
.stock-plan-summary span { color: var(--muted); font-size: .75rem; }
.stock-plan-groups { display: flex; flex-wrap: wrap; gap: 6px; }
.stock-plan-groups span { padding: 5px 8px; border-radius: 999px; background: #fff; border: 1px solid var(--line); }
.priority-filter { margin-top: 12px; padding: 13px 15px; display: grid; grid-template-columns: 1fr minmax(180px, 260px); align-items: center; gap: 14px; border: 1px solid #d3df93; border-radius: 10px; background: #fbffe7; }
.priority-filter h3, .priority-filter p { margin: 0; }
.priority-filter h3 { font-size: .96rem; }
.priority-filter div > span { color: var(--muted); font-size: .75rem; }
.priority-filter label { display: grid; gap: 4px; color: var(--muted); font-size: .7rem; font-weight: 850; }
.priority-filter select { min-height: 42px; padding: 8px 10px; border: 1px solid #b4c665; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-weight: 800; }
.priority-filter--multiple { grid-template-columns: minmax(220px, .8fr) minmax(320px, 1.4fr); }
.priority-picker { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.priority-chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.priority-chip { min-height: 38px; padding: 6px 10px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid #b4c665; border-radius: 999px; background: #fff; color: var(--ink); font: inherit; font-weight: 800; cursor: pointer; }
.priority-chip b { width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; background: var(--blue); color: #fff; font-size: .72rem; }
.priority-chip.is-selected { border-color: var(--blue); background: #edf7ff; color: var(--blue); }
.label-stock-group { color: #7b4300; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.stock-card { padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.stock-card header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.stock-card h2 { margin: 0; font-size: 1.05rem; }
.stock-card header > strong { color: var(--blue); }
.stock-card > p { color: var(--muted); }
.stock-rolls { margin-top: 13px; display: grid; gap: 6px; }
.stock-rolls span { padding: 9px 10px; display: flex; justify-content: space-between; border-radius: 7px; background: var(--surface); }

.report-folder { margin-bottom: 16px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.report-folder > header { padding: 17px 18px; display: flex; align-items: center; gap: 12px; background: #edf6fb; }
.report-folder > header div { flex: 1; }
.report-folder header p, .report-folder header h2 { margin: 0; }
.report-folder header p { color: var(--muted); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.report-folder header h2 { margin-top: 2px; font-size: 1.08rem; }
.folder-icon { color: var(--blue); font-size: 1.7rem; }
.report-file-list { display: grid; }
.report-file { padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid var(--line); }
.report-file > div:first-child { display: grid; gap: 3px; }
.report-file span, .report-file small { color: var(--muted); }
.report-file > div:last-child { display: flex; align-items: center; gap: 7px; }
.danger { color: #a4162a; }
.report-viewer { padding: 18px; }
.report-viewer .organization-report { display: block; }
.push-week { display: flex; align-items: center; gap: 14px; }
.push-week > span { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 12px; background: var(--blue); color: #fff; font-size: 1.1rem; font-weight: 900; }
.push-record footer { padding: 14px 18px; display: flex; justify-content: flex-end; border-top: 1px solid var(--line); }

.year-picker { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .78rem; font-weight: 800; }
.year-picker input { width: 105px; min-height: 42px; padding: 8px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; }
.week-folder-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 9px; }
.week-folder { position: relative; min-height: 116px; padding: 14px; display: grid; align-content: start; gap: 3px; overflow: hidden; border: 1px solid var(--line); border-top: 4px solid #b8c8d4; border-radius: 10px; background: #fff; color: var(--ink); text-align: left; box-shadow: var(--shadow); }
.week-folder:hover { border-color: var(--blue-bright); }
.week-folder.is-saved { border-top-color: var(--lime); }
.week-folder.is-current { box-shadow: inset 0 0 0 2px var(--blue), var(--shadow); }
.week-folder-icon { color: var(--blue); font-size: 1.35rem; }
.week-folder strong { margin-top: 3px; font-size: 1.05rem; }
.week-folder small { color: var(--muted); }
.week-folder em { position: absolute; top: 8px; right: 8px; padding: 3px 6px; border-radius: 999px; background: #e8f3fb; color: var(--blue); font-size: .58rem; font-style: normal; font-weight: 900; text-transform: uppercase; }
.weekly-editor { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.weekly-editor-head { padding: 17px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); background: #edf6fb; }
.weekly-editor-head h2, .weekly-editor-head p { margin: 0; }
.weekly-editor-head h2 { font-size: 1.05rem; }
.weekly-editor-head p { margin-top: 3px; color: var(--muted); font-size: .8rem; }
.weekly-editor-head > span { color: var(--blue); font-weight: 900; }
.weekly-people { padding: 12px; display: grid; gap: 8px; }
.weekly-team-group { padding: 10px; display: grid; gap: 8px; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfd; }
.weekly-team-group > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--blue); }
.weekly-team-group > header span { color: var(--muted); font-size: .78rem; }
.weekly-team-group > p { margin: 4px; color: var(--muted); }
.weekly-team-group--morning { border-left: 4px solid var(--orange); }
.weekly-team-group--afternoon { border-left: 4px solid var(--blue); }
.weekly-person { min-width: 0; padding: 10px; display: grid; grid-template-columns: auto auto minmax(150px, 1fr) minmax(390px, 1.7fr) minmax(125px, .55fr); align-items: center; gap: 9px; opacity: .62; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfd; }
.weekly-person.is-planned { opacity: 1; border-color: #9fc4dd; background: #f6fbff; }
.weekly-check { width: 19px; height: 19px; accent-color: var(--blue); }
.weekly-identity { min-width: 0; display: grid; }
.weekly-person strong, .weekly-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-person small { color: var(--muted); }
.weekly-schedule-fields { min-width: 0; display: grid; grid-template-columns: minmax(170px, 1fr) repeat(2, minmax(94px, .45fr)); gap: 7px; align-items: end; }
.weekly-schedule-fields select, .weekly-schedule-fields input, .weekly-temp-card input, .weekly-temp-card select, .interim-count-control input { min-width: 0; width: 100%; min-height: 40px; padding: 7px; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; }
.weekly-time { display: grid; gap: 2px; }
.weekly-time span { color: var(--muted); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.weekly-rest { display: grid; gap: 2px; color: var(--muted); font-size: .7rem; font-weight: 800; }
.weekly-rest select { min-height: 40px; padding: 7px; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; color: var(--ink); }
.weekly-interims { border-top: 1px solid var(--line); background: #fffaf2; }
.weekly-interims > header { padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.weekly-interims h2, .weekly-interims p { margin: 0; }
.weekly-interims h2 { font-size: 1rem; }
.weekly-interims p { margin-top: 2px; color: var(--muted); font-size: .78rem; }
.interim-count-control { display: flex; align-items: center; gap: 7px; }
.interim-count-control input { width: 72px; }
.weekly-temp-grid { padding: 0 12px 12px; display: grid; gap: 8px; }
.weekly-temp-card { padding: 10px; display: grid; grid-template-columns: auto minmax(120px, .7fr) 90px minmax(390px, 1.7fr) minmax(125px, .55fr); align-items: end; gap: 9px; border: 1px solid #e4bd78; border-radius: 9px; background: #fff; }
.weekly-temp-card .field { margin: 0; }
.interim-avatar { align-self: center; background: #fff0d5; color: #87520b; }
.weekly-no-interim { padding: 12px; text-align: center; border: 1px dashed #dfbf86; border-radius: 8px; background: #fff; }
.weekly-editor > footer { padding: 13px 18px; display: flex; justify-content: flex-end; border-top: 1px solid var(--line); background: #f8fbfd; }

.push-record { margin-bottom: 16px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.push-record > header { padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg, #edf7ff, #f9fcff); }
.push-record h2 { margin: 4px 0 0; font-size: 1.05rem; }
.push-record table { width: 100%; border-collapse: collapse; }
.push-record th, .push-record td { padding: 12px 18px; border-bottom: 1px solid var(--line); text-align: left; }
.push-record tbody tr:last-child td { border-bottom: 0; }
.push-totals { display: flex; gap: 8px; }
.push-totals span { min-width: 92px; padding: 9px 12px; display: grid; border-radius: 8px; background: #fff; color: var(--muted); font-size: .75rem; text-align: center; box-shadow: inset 0 0 0 1px var(--line); }
.push-totals strong { color: var(--ink); font-size: 1.12rem; }
.push-empty { min-height: 260px; }
.assignment-list { display: grid; gap: 14px; }
.excluded-summary { overflow: hidden; margin: 12px 0; border: 1px solid #e4bd78; border-radius: 9px; background: #fffaf0; }
.annotation-grid { display: grid; gap: 8px; }
.annotation-card { padding: 11px 12px; border: 1px solid #ecd09e; border-radius: 8px; background: #fff; }
.annotation-card > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.annotation-card > div > strong { font-size: .86rem; }
.annotation-card p { margin: 8px 0 0; color: var(--muted); font-size: .82rem; font-weight: 750; letter-spacing: .04em; }
.assignment-sheet { --sheet-color: var(--yellow); overflow: hidden; break-inside: avoid; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.sheet-strip { height: 12px; background: var(--sheet-color); }
.sheet-head { padding: 16px 15px 14px; display: flex; flex-direction: column; gap: 13px; }
.sheet-head h3 { margin: 0; font-size: 1.35rem; letter-spacing: -.03em; }
.sheet-head p { margin: 4px 0 0; color: var(--muted); }
.sheet-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; text-align: left; }
.sheet-kpis div { padding: 9px; border-radius: 7px; background: #f4f7fa; }
.sheet-kpis strong { display: block; font-size: 1.15rem; }
.sheet-kpis span { color: var(--muted); font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; }
.sheet-body { padding: 0 15px 15px; }
.sheet-foot { padding: 13px 15px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; border-top: 1px solid var(--line); background: #f5f8fa; font-size: .82rem; }
.roll-code { min-width: 55px; padding: 5px 8px; display: inline-flex; justify-content: center; border-radius: 6px; background: var(--blue); color: #fff; font-weight: 900; letter-spacing: .08em; }
.progress { width: 100%; height: 9px; overflow: hidden; border-radius: 99px; background: #e8edf2; }
.progress span { display: block; width: min(100%, var(--value)); height: 100%; background: var(--sheet-color); }
.progress.is-over span { background: var(--red); }

.modal { width: min(94vw, 1100px); max-height: 90vh; overflow: auto; padding: 0; border: 0; border-radius: 10px; box-shadow: 0 30px 90px #06172d48; }
.modal::backdrop { background: #041121a8; }
.modal-card { padding: 18px; }
.modal-head { margin-bottom: 18px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.modal-head h2 { margin: 3px 0 0; font-size: 1.45rem; }
.modal-close { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 1.25rem; }
.modal-actions { margin-top: 20px; display: flex; justify-content: flex-end; gap: 8px; }
.toast-region { position: fixed; right: 16px; bottom: 92px; left: 16px; z-index: 100; display: grid; gap: 8px; pointer-events: none; }
.toast { max-width: 500px; margin: auto; padding: 13px 15px; border-radius: 7px; background: #003f86; color: #fff; box-shadow: 0 12px 40px #0004; animation: toast-in .2s ease; font-weight: 750; }
.toast.is-error { background: #a32235; }
@keyframes toast-in { from { transform: translateY(8px); opacity: 0; } }

@media (min-width: 620px) {
  .form-grid, .form-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .unit-fields { grid-template-columns: minmax(0, 1fr) minmax(250px, .8fr); }
  .sheet-head { flex-direction: row; align-items: flex-start; justify-content: space-between; }
  .sheet-kpis { min-width: 300px; text-align: right; }
  .task-row { grid-template-columns: auto minmax(220px, 1fr) 150px auto; }
  .task-row > :nth-child(3), .task-row > :nth-child(4) { grid-column: auto; }
}

@media (min-width: 760px) {
  #content { padding-top: 30px; }
  .bottom-nav { right: auto; left: 50%; width: 700px; transform: translateX(-50%); border: 1px solid var(--line); border-top: 3px solid var(--cyan); border-radius: 16px 16px 0 0; }
  .stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .stat-card { min-height: 102px; }
  .collaborator-grid, .unit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .import-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 1000px) {
  #appView { min-height: 100vh; padding: 0 0 0 250px; }
  #appView .app-head {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: 250px;
    min-height: 100vh;
    padding: 24px 18px;
    display: block;
    background: linear-gradient(165deg, #003f86 0%, #005cab 67%, #00a9e0 150%);
  }
  #appView .brand { align-items: flex-start; }
  #appView .brand-copy { padding-top: 3px; }
  #appView .store-select { width: 155px; max-width: 155px; line-height: 1.3; }
  #appView .account-data {
    position: absolute;
    right: 18px;
    bottom: 78px;
    left: 18px;
    padding: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid #ffffff35;
    border-radius: 8px;
    color: #fff;
    background: #ffffff10;
  }
  .account-data > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 7px; background: #fff; color: var(--blue); font-weight: 900; }
  .account-data > div { min-width: 0; display: grid; }
  .account-data strong { overflow: hidden; text-overflow: ellipsis; font-size: .82rem; }
  .account-data small { color: #dceeff; font-size: .72rem; text-transform: capitalize; }
  #appView .sync-state { position: absolute; right: 18px; bottom: 58px; left: 18px; display: flex; align-items: center; gap: 8px; color: #dceeff; font-size: .72rem; }
  #appView .head-actions { position: absolute; right: 18px; bottom: 16px; left: 18px; display: grid; grid-template-columns: repeat(3, 1fr); }
  #appView .head-actions .icon { width: 100%; }
  #appView .bottom-nav {
    position: fixed;
    top: 105px;
    bottom: auto;
    left: 0;
    width: 250px;
    height: auto;
    padding: 16px 12px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    transform: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  #appView .nav-item {
    min-height: 50px;
    padding: 0 13px;
    display: grid;
    grid-template-columns: 30px 1fr;
    align-items: center;
    border-radius: 8px;
    text-align: left;
    color: #dceeff;
    font-size: .84rem;
  }
  #appView .nav-item span { margin: 0; font-size: 1.25rem; }
  #appView .nav-item.active { color: #fff; background: #ffffff1c; }
  #appView .nav-item.active::before { top: 10px; bottom: 10px; left: 0; width: 4px; height: auto; transform: none; border-radius: 0 4px 4px 0; background: #38c5f1; }
  #content { max-width: 1320px; margin: 0; padding: 36px 42px 52px; }
  .form-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .grouping-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grouping-row:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
  .collaborator-grid, .unit-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .schedule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .assignment-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cash-add { grid-template-columns: minmax(150px, 1.1fr) 120px minmax(190px, 1.4fr) 110px 110px auto; }
  .cash-assignment { grid-template-columns: minmax(150px, 1.1fr) 120px minmax(220px, 1.5fr) 110px 150px 38px; }
}

@media (max-width: 619px) {
  .page-head { align-items: flex-start; flex-direction: column; }
  .page-actions { width: 100%; }
  .page-actions .button { flex: 1; }
  .panel-head { align-items: flex-start; flex-direction: column; }
  .panel-head > .button { width: 100%; }
  .result-toolbar { align-items: flex-start; flex-direction: column; }
  .result-actions, .print-actions { width: 100%; }
  .result-toolbar .button { width: 100%; }
  .print-actions small { text-align: left; }
  .modal-actions { display: grid; grid-template-columns: 1fr; }
  .team-essentials { align-items: stretch; flex-direction: column; }
  .team-essentials > * { width: 100%; }
  .capacity-rule { margin-left: 0; }
  .day-settings-grid { grid-template-columns: 1fr; }
  .day-rule-summary { align-items: flex-start; flex-direction: column; }
  .setup-step { padding: 14px; }
  .step-heading { align-items: flex-start; flex-wrap: wrap; }
  .step-actions { width: 100%; margin-left: 43px; }
  .selection-count { margin-left: auto; }
  .phase-config-grid { grid-template-columns: 1fr; }
  .phase-mode-grid { grid-template-columns: 1fr; }
  .selected-team-grid { grid-template-columns: 1fr; }
  .hour-grid { grid-template-columns: 1fr; }
  .selected-card-controls { grid-template-columns: 1fr; }
  .selected-person-card footer { align-items: flex-start; flex-direction: column; }
  .setup-savebar, .dispatch-bar { bottom: 82px; align-items: stretch; flex-direction: column; }
  .setup-savebar .button, .dispatch-bar .button { width: 100%; }
  .planning-status { align-items: stretch; flex-direction: column; }
  .planning-status .button { width: 100%; }
  .roll-label-grid { grid-template-columns: 1fr; }
  .push-record > header, .push-totals { align-items: stretch; flex-direction: column; }
  .dashboard-grid, .stock-grid, .stock-control-panel, .stock-plan-summary, .priority-filter { grid-template-columns: 1fr; }
  .priority-picker, .priority-chips { justify-content: flex-start; }
  .planning-audit { grid-template-columns: 1fr; }
  .stock-category-add { grid-template-columns: 1fr; }
  .stock-category-add .button { width: 100%; }
  .stock-category-list { grid-template-columns: 1fr; }
  .stock-category-row { grid-template-columns: minmax(0, 1fr) 38px; }
  .stock-category-row .button { grid-column: 1 / -1; grid-row: 2; }
  .stock-category-row .icon-button { grid-column: 2; grid-row: 1; }
  .stock-open-bar { align-items: stretch; flex-direction: column; }
  .dashboard-card { min-height: 160px; }
  .workflow-step { min-height: 74px; grid-template-columns: 38px minmax(0, 1fr); }
  .workflow-step > span { width: 34px; height: 34px; }
  .workflow-step > em { grid-column: 2; }
  .quick-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-tools button { min-height: 86px; }
  .more-grid { grid-template-columns: 1fr; }
  .document-gateway { min-height: 430px; padding: 24px 16px; }
  .report-file { align-items: flex-start; flex-direction: column; }
  .report-file > div:last-child { width: 100%; }
  .report-file .button { flex: 1; }
  .team-preview-card { grid-template-columns: 1fr; }
  .team-preview-card .palette { max-width: none; justify-content: flex-start; }
  .weekly-people { grid-template-columns: 1fr; }
  .weekly-person { grid-template-columns: auto minmax(0, 1fr); }
  .weekly-check { grid-column: 1; }
  .weekly-person .person-avatar { grid-column: 2; }
  .weekly-identity, .weekly-schedule-fields, .weekly-rest { grid-column: 1 / -1; }
  .weekly-schedule-fields { grid-template-columns: 1fr 1fr; }
  .weekly-schedule-fields select { grid-column: 1 / -1; }
  .weekly-interims > header { align-items: stretch; flex-direction: column; }
  .weekly-temp-card { grid-template-columns: auto 1fr; }
  .weekly-temp-card .weekly-schedule-fields, .weekly-temp-card .weekly-rest { grid-column: 1 / -1; }
  .remaining-time-total { flex-direction: column; }
  .aggregate-hours-row { grid-template-columns: 1fr; }
  .aggregate-hours-fields { grid-template-columns: 1fr; }
  .aggregate-rule { padding: 10px 0 0; border-top: 3px solid var(--lime); border-left: 0; }
  .weekly-required { align-items: stretch; flex-direction: column; }
  .cash-summary, .cash-add { grid-template-columns: 1fr; }
  .cash-assignment { grid-template-columns: 1fr 1fr; }
  .cash-person { grid-column: 1 / -1; }
  .cash-assignment .icon-button { align-self: end; justify-self: end; }
}

@media (max-width: 390px) {
  #content { padding-right: 13px; padding-left: 13px; }
  .nav-item { font-size: .62rem; }
  .stat-card { min-height: 100px; padding: 14px; }
  .stat-card strong { font-size: 1.65rem; }
  .stat-card span { font-size: .74rem; }
  .collaborator-identity { padding-right: 0; grid-template-columns: 1fr; }
}

@media print {
  @page { size: A4 portrait; margin: 8mm; }
  body { background: #fff; }
  .app-head, .bottom-nav, .page-head, .stats-grid, .panel, .result-toolbar, .toast-region, .planning-status, .dispatch-bar, .dispatch-stats, .notice { display: none !important; }
  #appView, #content { display: block; max-width: none; padding: 0; margin: 0; }
  .labels-result { margin: 0; }
  .roll-label-grid { margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 5mm; }
  .roll-label { height: 62mm; min-height: 62mm; border-radius: 0; page-break-inside: avoid; }
  .label-color { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  body.print-report .roll-label-grid { display: none !important; }
  body.print-report .organization-report { display: block !important; }
  body.print-labels .organization-report { display: none !important; }
  body.print-labels .roll-label-grid { display: block; }
  body.print-labels .label-sheet {
    width: 100%;
    height: 200mm;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-rows: repeat(5, minmax(0, 1fr));
    gap: 1.5mm;
    break-after: page;
    page-break-after: always;
  }
  body.print-labels .label-sheet:last-child { break-after: auto; page-break-after: auto; }
  body.print-labels .roll-label { height: auto; min-height: 0; padding: 4mm 1.5mm 1.5mm; border-width: .35mm; }
  body.print-labels .label-color { height: 3mm; }
  body.print-labels .label-roll { font-size: 7.5pt; letter-spacing: .06em; }
  body.print-labels .label-person { margin-top: 2mm; font-size: 10pt; line-height: 1; }
  body.print-labels .label-time { margin-top: 1.5mm; font-size: 8.5pt; }
  body.print-labels .label-segment,
  body.print-labels .label-annotation { margin-top: 2mm; font-size: 10.5pt; line-height: 1.05; }
  body.print-labels .label-stock-group { font-size: 6.5pt; }
  body.print-zebra .labels-result > :not(.roll-label-grid) { display: none !important; }
  body.print-zebra .roll-label-grid { width: 70mm; display: block; }
  body.print-zebra .roll-label {
    width: 70mm;
    height: 50mm;
    min-height: 50mm;
    margin: 0;
    padding: 5mm 3mm 3mm;
    border: .4mm solid #000;
    border-radius: 0;
    break-after: page;
    page-break-after: always;
    page-break-inside: avoid;
    box-shadow: none;
  }
  body.print-zebra .roll-label:last-child { break-after: auto; page-break-after: auto; }
  body.print-zebra .label-color { height: 4mm; border-bottom: .3mm solid #000; }
  body.print-zebra .label-roll { font-size: 13pt; letter-spacing: .08em; }
  body.print-zebra .label-person { margin-top: 3mm; font-size: 19pt; line-height: 1; }
  body.print-zebra .label-time { margin-top: 2.5mm; font-size: 14pt; }
  body.print-zebra .label-segment,
  body.print-zebra .label-annotation { margin-top: 3mm; font-size: 19pt; line-height: 1.05; }
  body.print-report { font-size: 11px; }
  body.print-report .report-axis { break-inside: auto; }
  body.print-report .report-axis tr { break-inside: avoid; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
