:root { --ink:#1a2c3f; --muted:#596979; --line:#d9e0e7; --blue:#1b6ec2; }
.stats-results td.stats-highlight-maximum,.stats-results .stats-highlight-maximum { background-color:#dcfce7; color:#166534; font-weight:700; }
.stats-results div.stats-highlight-maximum > dt { color:#166534; }
* { box-sizing:border-box; }
html,body { font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; color:var(--ink); background:#f5f7fa; margin:0; min-width:0; max-width:100%; }
a { color:#006bb7; }
h1 { font-size:clamp(1.65rem,4vw,2.2rem); font-weight:700; margin:0 0 .8rem; }
h2 { font-size:1.25rem; font-weight:650; margin:0 0 .8rem; }
h1:focus { outline:none; }
p { line-height:1.6; }
.muted { color:var(--muted); font-size:.9rem; }
.eyebrow { color:var(--blue); font-size:.75rem; font-weight:700; letter-spacing:.08em; margin:0 0 .5rem; }
.page-header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1.5rem; }
.page-header p { margin-bottom:0; }
.card { display:flex; flex-direction:column; gap:.5rem; padding:clamp(1.1rem,3vw,1.7rem); border:1px solid var(--line); border-radius:.85rem; background:white; box-shadow:0 .2rem .8rem #1a2c3f08; min-width:0; overflow-wrap:anywhere; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:1.25rem; margin:1.5rem 0; }
.card .btn { align-self:flex-start; }
.auth-card { max-width:34rem; margin:clamp(1rem,5vh,4rem) auto; }
.auth-card form { display:grid; gap:.7rem; margin:1rem 0; }
.auth-card button { margin-top:.7rem; }
.badge-status { display:inline-block; align-self:flex-start; font-size:.8rem; font-weight:600; padding:.45rem .7rem; border-radius:.4rem; background:#eaf1f8; color:#345473; margin:.4rem 0; }
.notice { background:#edf4fc; border:1px solid #c6dcf3; border-radius:.6rem; padding:1rem; margin:.8rem 0 1.25rem; line-height:1.6; overflow-wrap:anywhere; }
.notice.danger { background:#fff0f0; color:#8a2222; border-color:#efc5c5; }
.notice.success { background:#edf8f0; color:#225d37; border-color:#badbc3; }
.edit-panel { margin-bottom:1.5rem; scroll-margin-top:1rem; }
form,fieldset { min-width:0; }
fieldset { border:0; padding:0; margin:0; }
fieldset:disabled { opacity:.65; }
label { display:block; font-weight:600; font-size:.9rem; margin:.65rem 0 .4rem; }
input:not([type=checkbox]),select { display:block; width:100%; min-height:44px; padding:.6rem .75rem; border:1px solid #aab7c4; border-radius:.4rem; background:#fff; color:var(--ink); font-size:1rem; }
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid #258cfb; outline-offset:3px; }
.check { display:flex; align-items:center; gap:.7rem; min-height:44px; font-weight:400; }
input[type=checkbox] { width:1.25rem; height:1.25rem; flex-shrink:0; }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:.75rem 1.2rem; }
.form-grid .wide { grid-column:1/-1; }
.permissions { padding:1rem; margin:1rem 0; border:1px solid var(--line); border-radius:.6rem; }
.permissions legend { font-size:1rem; font-weight:600; }
.actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1rem; }
.secondary-actions { border-top:1px solid var(--line); padding-top:1rem; }
.btn,button { min-height:44px; white-space:normal; }
.btn-primary { background:var(--blue); border-color:#1861ac; }
.btn { display:inline-flex; justify-content:center; align-items:center; padding:.6rem 1rem; }
dl { margin:.75rem 0; } dt { font-size:.8rem; color:var(--muted); font-weight:400; } dd { margin:.25rem 0 1rem; font-size:.9rem; }
.sidebar a:not(.skip-link) { display:block; color:white; text-decoration:none; padding:.8rem; border-radius:.45rem; margin:.2rem 0; min-height:44px; }
.sidebar a.active,.sidebar a:hover { background:#ffffff22; }
.nav-identity { color:#fff; padding:.7rem .8rem 1rem; font-size:.9rem; overflow-wrap:anywhere; border-bottom:1px solid #ffffff25; }
.nav-identity small { color:#d9e0e7; }
.nav-section { color:#d9e0e7; font-size:.75rem; font-weight:700; padding:.8rem; margin:1rem 0 .25rem; border-top:1px solid #ffffff25; }
.sql-identity { border-top:1px solid var(--line); padding-top:1rem; }
.sql-identity h3 { font-size:1rem; font-weight:650; }
.source-binding-card { min-width:0; }
.binding-actions { display:flex; flex-wrap:wrap; gap:.5rem; padding:.75rem 0; }
.configuration-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.6rem; margin:1.25rem 0; }
.configuration-step { border:1px solid var(--line); border-radius:.6rem; padding:.75rem; background:white; color:var(--ink); text-align:left; }
.configuration-step span { display:inline-flex; align-items:center; justify-content:center; width:1.6rem; height:1.6rem; border-radius:50%; background:var(--wash); margin-right:.5rem; }
.configuration-step.selected { border-color:var(--blue); background:#edf5ff; font-weight:650; }
.configuration-options { margin:1rem 0; border-top:1px solid var(--line); padding-top:1rem; }
.configuration-options summary { cursor:pointer; padding:.6rem 0; }
.configuration-options[open] summary { margin-bottom:.75rem; }
.configuration-content [hidden] { display:none!important; }
.nav-maintenance { color:#d9e0e7; margin:.5rem .8rem; }
.nav-maintenance summary { cursor:pointer; padding:.75rem 0; }
@media(max-width:767px) { .configuration-steps { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.nav-logout { background:transparent; color:#fff; border:1px solid #ffffff55; border-radius:.45rem; padding:.7rem .8rem; margin:1.25rem .8rem; }
.validation-message,.validation-errors { color:#a32626; }
.invalid { border-color:#b32929!important; }
.blazor-error-boundary { background:#fff0f0; color:#8a2222; padding:1rem; }
@media(max-width:479px) { .actions .btn { flex:1 1 auto; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }
/* Statistique Commerce : tableau complet accessible sur les petits écrans. */
.stats-results { min-width: 0; }
.stats-results-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem .75rem; }
.stats-results-heading h2 { margin: 0; }
.stats-results-heading p { flex: 1 1 220px; margin: 0; font-size: .85rem; }
.stats-table-scroll { max-width: 100%; overflow-x: auto; }
.stats-table { min-width: 1000px; margin-bottom: 0; table-layout: fixed; font-size: .875rem; }
.stats-table th:first-child { width: 95px; }
.stats-table th:nth-child(3) { width: 145px; }
.stats-table th button { background: transparent; color: inherit; border: 0; padding: 0; text-align: left; font-weight: 700; }
.stats-table th input { min-width: 0; width: 100%; padding: .5rem .25rem; font-size: .8rem; }
.stats-table td { overflow-wrap: anywhere; }
.stats-table-tools { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: end; gap: .65rem; margin: .5rem 0; }
.stats-table-tools > div { min-width: 0; }
.stats-table-tools label { margin: 0 0 .3rem; }
.stats-table-tools input, .stats-table-tools > .btn { height: 44px; }
.stats-table-tools > .btn { align-self: end; margin: 0; white-space: nowrap; }
@media(max-width:767px) { .stats-table-tools { grid-template-columns: repeat(2,minmax(0,1fr)); } .stats-table-tools > div { grid-column: 1 / -1; } .stats-table-tools > .btn { padding: .5rem .25rem; font-size: .85rem; } }
.stats-filter-card { padding: 1rem 1.2rem; margin-bottom: .75rem; }
.stats-filter-card .stats-stores { margin: 0 0 .5rem; }
.stats-stores summary { font-size: .9rem; }
.stats-store-options { display: flex; flex-wrap: wrap; column-gap: 1rem; }
.stats-store-options .check { min-height: 44px; margin: 0; font-size: .9rem; }
.stats-selection-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.stats-selection-actions .btn { padding: .35rem .65rem; font-size: .8rem; flex: 0 1 auto; }
.stats-period-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(60px,.65fr); gap: .6rem; max-width: 540px; }
.stats-period-grid > div { min-width: 0; }
.stats-period-grid label { margin: 0 0 .2rem; font-size: .85rem; }
.stats-period-grid input { min-width: 0; padding: .45rem .5rem; font-size: .9rem; }
.stats-extra-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; margin-top: .5rem; }
.stats-article-filters { flex: 1; min-width: 0; }
.stats-article-filters summary { padding: .65rem 0; font-size: .9rem; cursor: pointer; }
.stats-article-filters[open] { flex-basis: 100%; }
@media(max-width:479px) { .stats-filter-card { padding: .85rem; } .stats-period-grid { gap: .4rem; } .stats-period-grid input { padding: .45rem .3rem; font-size: .85rem; } }
.stats-pagination { align-items: center; margin-top: 1rem; }
.nav-account { margin-top: 1.2rem; border-top: 1px solid #ffffff25; color: #d9e0e7; }
.nav-account > summary { padding: .8rem; font-weight: 600; cursor: pointer; }
.nav-account .nav-identity { margin: 0; padding: .5rem .8rem; border: 0; }
.nav-account .nav-logout { margin: .5rem .8rem 1rem; }
.nav-links .nav-group { margin:.3rem 0; color:#eef2ff; border-radius:.55rem; }
.nav-links .nav-group > summary { display:flex; align-items:center; gap:.7rem; min-height:48px; padding:.8rem; border-radius:.55rem; font-weight:600; list-style:none; cursor:pointer; }
.nav-links .nav-group > summary::-webkit-details-marker { display:none; }
.nav-links .nav-group > summary::after { content:""; width:.45rem; height:.45rem; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg); margin-left:auto; flex-shrink:0; transition:transform .16s ease; }
.nav-links .nav-group[open] > summary::after { transform:rotate(45deg); }
.nav-links .nav-group > summary:hover,.nav-links .nav-group.current-category > summary { background:#ffffff12; color:#fff; }
.nav-links .nav-group > summary svg { flex-shrink:0; opacity:.85; }
.nav-links .nav-group-content { margin:.15rem 0 .5rem 1.35rem; padding-left:.35rem; border-left:1px solid #ffffff35; }
.sidebar .nav-links .nav-group-content a { font-size:.9rem; padding:.65rem .8rem; line-height:1.45; }
.sidebar .nav-links a.active { background:#ffffff29; color:#fff; font-weight:650; box-shadow:inset 3px 0 0 #a8d4ff; }
.nav-links .nav-account { margin-top:.9rem; border-top:1px solid #ffffff25; padding-top:.6rem; }
.nav-links .nav-group[open] > .nav-group-content { animation:nav-appear .16s ease-out; }
@keyframes nav-appear { from { opacity:0; transform:translateY(-3px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .nav-links .nav-group[open] > .nav-group-content { animation:none; } .nav-links .nav-group > summary::after { transition:none; } }
.shops-page-header { margin-bottom: 1.5rem; }
.shops-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,440px),1fr)); gap: 1.25rem; }
.shop-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); border-radius: 1rem; background: white; box-shadow: 0 .25rem 1.2rem #1a2c3f08; overflow: hidden; }
.shop-card-header { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem; padding: 1.4rem; background: linear-gradient(120deg,#edf5ff,#f7fbff); border-bottom: 1px solid #e2ebf5; }
.shop-card-header > div:nth-child(2) { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.shop-symbol { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: .8rem; color: #1861ac; background: white; box-shadow: 0 .15rem .6rem #1a2c3f0a; }
.shop-symbol svg { width: 32px; height: 32px; }
.shop-client { margin: 0 0 .2rem; font-size: .8rem; color: var(--muted); }
.shop-card-header h2 { margin: 0; font-size: 1.4rem; }
.shop-state { font-size: .75rem; padding: .35rem .6rem; border: 1px solid #c6d8eb; border-radius: 2rem; color: #345473; background: white; }
.shop-card-body { display: grid; flex: 1; align-content: start; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; padding: 1.4rem; overflow-wrap: anywhere; }
.shop-caption { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: .45rem; }
.shop-card-body p { margin: 0 0 .25rem; font-size: .95rem; }
.shop-contact a { text-decoration: none; }
.shop-notice, .shop-card-body > .notice { grid-column: 1 / -1; }
.shop-card-body > .notice { margin: .25rem 0 0; }
.shop-card-footer { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; padding: 1rem 1.4rem; border-top: 1px solid #eef1f5; }
.shop-card-footer small { flex-basis: 100%; font-size: .75rem; }
.shop-technical { margin: 1rem 0; }
.shop-technical summary { padding: .8rem 0; cursor: pointer; }
@media(max-width:479px) { .shop-card-header, .shop-card-body { padding: 1rem; } .shop-card-body { grid-template-columns: 1fr; } .shop-card-footer { padding: 1rem; } .shop-state { margin-left: 0; } .shop-card-footer .btn { flex: 1 1 auto; } }
