:root { --muted: #696960; --rule-faint:#eae9e2; }
body { line-height:1.5; }
button,a,input,select,textarea { touch-action:manipulation; }
button:focus-visible,a:focus-visible,[tabindex="0"]:focus-visible { outline:3px solid #8b6536; outline-offset:3px; }
button:hover { filter:brightness(.97); }
button:disabled { opacity:.55; cursor:not-allowed; }
input,textarea,select { min-width:0; max-width:100%; }
#dc-main { min-width:0!important; padding-top:28px!important; }
#dc-main:focus { outline:none; }
#dc-aside { min-height:100vh; }
.local-banner { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; background:#e9efe7; border:1px solid #cbd7c8; padding:12px 16px; border-radius:12px; margin-bottom:26px; font-size:12px; color:#354d3b; }
.local-banner strong { font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.help { font-size:13px; color:#606358; line-height:1.6; }
.error-box { padding:16px; border:1px solid #b65440; border-radius:12px; color:#843a28; background:#fff2ec; margin:16px 0; }
.empty-state { padding:36px 24px; text-align:center; color:#606358; font-size:14px; }
.sample-banner { border-left:3px solid #ac8551; padding:10px 16px; font-size:13px; background:#f4ecdF; color:#65543c; }
.choice { min-height:44px; flex:0 0 auto; padding:0 12px; white-space:nowrap; border:1px solid var(--rule); border-radius:10px; background:var(--bg-field); color:var(--ink-soft); cursor:pointer; }
.choice[aria-pressed="true"] { background:#e4eee4; color:#24432c; border-color:#416949; font-weight:700; }
.toast { max-width:calc(100vw - 32px); width:max-content; text-align:center; }
[role="dialog"] { max-height:calc(100dvh - 32px); overflow:auto; }
#dc-main [role="button"]:hover { background:#edf2e9!important; }
@media (max-width:900px) {
 .app-shell { align-content:flex-start!important; }
 #dc-aside { flex-basis:100%!important; min-height:0!important; min-width:0!important; height:auto!important; max-height:none!important; position:static!important; align-self:flex-start!important; padding:12px 16px!important; gap:8px!important; }
 #dc-aside > div:first-child img { width:40px!important; height:40px!important; flex-basis:40px!important; }
 #dc-aside nav { flex-direction:row!important; overflow-x:auto; gap:4px!important; }
 #dc-aside nav button { flex-shrink:0; white-space:nowrap; min-height:44px!important; }
 #dc-aside .session-panel { flex:0 0 auto; min-height:0!important; margin-top:0!important; flex-direction:row!important; align-items:center; justify-content:space-between; padding-top:7px!important; gap:10px!important; }
 #dc-aside .session-panel > div { padding:0!important; }
 #dc-aside .session-panel > button { min-height:38px!important; padding:0 14px!important; flex:0 0 auto; }
 #dc-main { padding:20px 16px 40px!important; flex-basis:100%!important; }
}
.visits-screen,.visits-screen > section,.visits-table { min-width:0; max-width:100%; }
.visit-primary-grid > * { min-width:0; }
.visit-primary-grid sc-raw-select,.visit-primary-grid input { display:block; width:100%; min-width:0; max-width:100%; }
@media (min-width:601px) and (max-width:1100px) {
 .visit-primary-grid { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)!important; }
}
@media (max-width:600px) {
 #dc-main section { padding:20px 16px!important; }
 /* le moteur DC réécrit les styles inline avec une espace après « : » — les deux formes doivent être ciblées */
 #dc-main [style*="grid-template-columns:repeat(auto-fit"],
 #dc-main [style*="grid-template-columns: repeat(auto-fit"] { grid-template-columns:minmax(0,1fr)!important; }
 #dc-main [style*="grid-template-columns:2fr 1.1fr"],
 #dc-main [style*="grid-template-columns: 2fr 1.1fr"],
 #dc-main [style*="grid-template-columns:minmax(220px"],
 #dc-main [style*="grid-template-columns: minmax(220px"] { grid-template-columns:minmax(0,1fr)!important; }
 #dc-main [style*="grid-column:span 2"],
 #dc-main [style*="grid-column: span 2"] { grid-column:auto!important; }
 #dc-main [style*="font-size:32px"],
 #dc-main [style*="font-size: 32px"] { font-size:28px!important; line-height:1.15; }
 #dc-main [style*="display:grid"],
 #dc-main [style*="display: grid"] { max-width:100%; }
 #dc-main [style*="overflow-x:auto"],
 #dc-main [style*="overflow-x: auto"] { max-width:100%; }
 #dc-main input, #dc-main select, #dc-main textarea { font-size:16px!important; }
 .local-banner { margin-bottom:20px; }
 [role="dialog"] { width:100%!important; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
@media(max-width:600px) {
 .record-header { display:none!important; }
 .record-card { min-width:0!important; grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important; gap:12px!important; padding:20px 16px!important; border-bottom:1px solid #d7ded2!important; }
 .record-card > span { white-space:normal!important; overflow-wrap:anywhere; }
 .record-card > span > span { white-space:normal!important; }
 .record-card > span:first-child { grid-column:1/-1; font-size:18px; color:var(--accent); }
 .record-card > span::before { content:attr(data-label); display:block; font-size:10px; font-weight:500; letter-spacing:.04em; text-transform:uppercase; color:#696960; margin-bottom:4px; }
}
.filters { margin-bottom:18px; }
.filters summary { cursor:pointer; min-height:46px; padding:12px 16px; border:1px solid var(--rule); border-radius:12px; background:#fff; color:var(--accent); font-weight:600; font-size:14px; }
.filters[open] summary { margin-bottom:12px; }
.edit-actions { display:flex; gap:12px; flex-wrap:wrap; }
.toast { animation:none!important; white-space:normal; overflow-wrap:anywhere; }

.local-settings { max-width:1000px; }
.local-settings h1 { font-family:var(--font-display); font-size:32px; font-weight:400; }
.local-panel { background:white; border:1px solid var(--rule); border-radius:16px; padding:24px; margin:18px 0; min-width:0; overflow-wrap:anywhere; }
.local-panel h2 { font-family:var(--font-display); font-size:23px; font-weight:400; margin:0 0 14px; }
.local-panel h3 { font-size:17px; margin:0; }
.local-panel button,.local-button,.local-actions button { min-height:44px; padding:9px 15px; border:1px solid var(--rule); border-radius:10px; background:var(--bg-field); color:var(--accent-deep); cursor:pointer; font-size:14px; }
.local-panel label { display:flex; flex-direction:column; gap:8px; font-weight:600; font-size:14px; }
.local-panel input { min-height:46px; padding:8px 12px; border:1px solid var(--rule); border-radius:10px; background:var(--bg-field); }
.local-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.local-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:12px 0; }
.local-item { padding:18px 0; border-top:1px solid var(--rule); }
.local-panel .local-link { display:block; text-align:left; margin:8px 0; width:100%; overflow-wrap:anywhere; }
@media(max-width:600px) { .local-grid { grid-template-columns:minmax(0,1fr); } .local-actions button { flex:1 1 auto; } }

/* Finalisation : champs longs, historiques et formulaires Responsable. */
#dc-main { overflow-wrap:anywhere; }
.local-panel textarea { width:100%; min-height:100px; border:1px solid var(--rule); border-radius:10px; padding:12px; background:var(--bg-field); font:inherit; resize:vertical; }
.local-panel select { min-height:44px; padding:8px 12px; border:1px solid var(--rule); border-radius:10px; background:var(--bg-field); }
@media(max-width:600px) {
 #dc-main [style*="display: flex"] > div { min-width:0; }
 #dc-main [style*="display: grid"] > div { min-width:0; }
 .record-card > span:last-child { grid-column:1/-1; }
 .record-card button { min-height:44px!important; }
 .record-card .help { white-space:normal; }
}
