/* Les outils reprennent les couleurs et contrôles du système graphique existant. */
.product-dialog {
  max-width:850px; width:calc(100% - 32px); max-height:90vh;
  border:1px solid var(--line,#dde2d6); border-radius:20px; padding:24px;
  color:var(--ink,#293326); overflow:auto; box-shadow:0 20px 60px #29332620;
}
.product-dialog::backdrop { background:#35472299; }
.product-dialog label,.product-page main label { display:block; margin:12px 0; color:var(--ink,#293326); font-size:14px; font-weight:600; }
.product-dialog :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]),
.product-page main :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]) {
  display:block; width:100%; min-width:0; box-sizing:border-box; margin-top:6px;
  padding:10px 12px; min-height:48px; border:1px solid var(--line-strong,#aeb9a0);
  border-radius:var(--radius-control,12px); background:var(--paper,#fff);
  color:var(--ink,#293326); font:inherit; font-size:16px; font-weight:400; line-height:1.5;
  box-shadow:inset 0 -1px 0 #29332606;
}
.product-dialog textarea,.product-page main textarea { min-height:100px; resize:vertical; }
.product-dialog :is(input,select,textarea):hover:not(:disabled),.product-page main :is(input,select,textarea):hover:not(:disabled) { border-color:#8d9397; }
.product-dialog :is(input,select,textarea):focus-visible,.product-page main :is(input,select,textarea):focus-visible {
  border-color:var(--primary,#526735); outline:3px solid var(--primary,#526735); outline-offset:3px; box-shadow:0 0 0 3px var(--focus-halo,#52673530);
}
.product-dialog :is(input,select,textarea):disabled,.product-page main :is(input,select,textarea):disabled { background:var(--surface-muted,#eef1e9); color:var(--muted,#626b5d); }
.product-dialog input:is([type=checkbox],[type=radio]),.product-page main input:is([type=checkbox],[type=radio]) { width:auto; flex:none; accent-color:var(--primary,#526735); }
.product-dialog button { min-height:46px; max-width:100%; margin:6px 0; white-space:normal; overflow-wrap:anywhere; }
.product-dialog .text-button,.keep-observation { font-size:14px; font-weight:600; }
.product-dialog h2 { color:var(--ink,#293326); }
.product-dialog :is([role=alert],[data-error]) { color:var(--red,#9f3440); }
.product-rows label { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:12px; border-bottom:1px solid var(--line,#dde2d6); }
.product-rows span { display:block; width:100%; font-size:14px; font-weight:400; }
.product-toolbox { margin:18px 0; padding:16px; background:var(--surface-subtle,#fafbf8); border:1px solid var(--line,#dde2d6); border-radius:14px; color:var(--ink,#293326); }
.product-toolbox summary { cursor:pointer; font-weight:600; min-height:44px; padding-block:10px; }
.product-toolbox .button-row { flex-wrap:wrap; gap:8px; padding-top:10px; }
.product-toolbox :is(button,a.button) { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.photo-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.photo-compare>section { min-width:0; }
.photo-compare img { max-width:100%; max-height:50vh; object-fit:contain; }
.product-dialog table { width:100%; overflow-wrap:anywhere; }
.product-dialog td { border-bottom:1px solid var(--line,#dde2d6); padding:8px; vertical-align:top; }
.project-search { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0; }
.project-search input { min-height:44px; padding:10px; flex:1; }
.project-task-list { padding:12px 16px; border:1px solid var(--line,#dde2d6); border-radius:14px; background:var(--surface-subtle,#fafbf8); }
.project-task-heading { display:flex; align-items:center; gap:10px; }
.project-task-list .project-task-heading h2 { margin:0; font-size:16px; line-height:1.4; font-weight:650; }
.project-task-count { padding:2px 7px; border-radius:6px; background:var(--surface-muted,#eef1e9); color:var(--primary-dark,#354722); font-size:12px; font-weight:650; }
.project-task-list ul { list-style:none; padding:0; margin:6px 0 0; }
.project-task-list li { margin:0; display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:12px; }
.project-task-list .project-task-dismiss { display:inline-flex; align-items:center; justify-content:center; width:44px; min-width:44px; height:44px; min-height:44px; padding:0; border:0; background:transparent; box-shadow:none; color:var(--muted,#626b5d); }
.project-task-list .project-task-dismiss svg { flex:none; pointer-events:none; }
.project-task-list .project-task-dismiss:focus-visible { outline:2px solid var(--primary,#4f622c); outline-offset:2px; }
@media(hover:hover) { .project-task-list .project-task-dismiss:hover { background:var(--surface-muted,#eef1e9); box-shadow:none; } }
.project-task-list .project-task-restore { margin-top:8px; padding:0; border:0; background:transparent; min-height:44px; font-size:12px; text-align:left; }
.project-task-feedback { margin:4px 0 0; color:var(--muted,#626b5d); font-size:12px; }
.project-task-feedback:empty { display:none; }
.project-task-list li>a:only-child { grid-column:1/-1; }
.project-task-list li+li { border-top:1px solid var(--line,#dde2d6); }
.project-task-list li a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; padding:8px 0; box-sizing:border-box; font-size:14px; line-height:1.4; font-weight:500; }
.project-task-arrow { flex:none; font-size:18px; }
.project-task-list .project-task-more,.project-task-list .project-task-empty { margin:6px 0 0; color:var(--muted,#626b5d); font-size:12px; line-height:1.4; }
.product-page main { max-width:900px; margin:auto; padding:24px; }
.product-page.product-demo main { max-width:800px; }
@media(max-width:480px) {
  .product-page main { padding:20px; }
  .photo-compare { grid-template-columns:minmax(0,1fr); }
  .product-dialog .button-row { align-items:stretch; }
  .product-dialog .button-row>.button { flex:1 1 100%; }
}


/* The shared dialog reset is transparent; account decisions need an opaque surface. */
.product-dialog{background-color:#fff}

.project-task-list a,.project-task-list a:visited{color:var(--primary-dark,#354722);font-weight:650;text-decoration:none;overflow-wrap:anywhere}
.project-task-list a:hover{text-decoration:underline;text-underline-offset:3px}

/* Dashboard search and filters share the rounded, olive form controls. */
.project-search{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:24px 0;color:var(--primary-dark,#354722);font-size:15px;font-weight:650}
.project-search input,.project-search select{width:100%;min-width:0;min-height:52px;box-sizing:border-box;margin:0;padding:13px 16px;border:1px solid #b6c3a6;border-radius:14px;background-color:#fff;color:#293324;font:inherit;font-size:16px;font-weight:400;line-height:1.5;box-shadow:0 2px 5px #35472205;transition:border-color .15s,box-shadow .15s}
.project-search input[type=search]{padding-left:46px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23536a39' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m16 16 4 4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:21px;background-position:16px center}
.project-search input::placeholder{color:#697363;opacity:1}
.project-search select{appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23536a39' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:20px;background-position:right 16px center}
.project-search input:hover,.project-search select:hover{border-color:#73865c}
.project-search input:focus,.project-search select:focus{border-color:var(--primary,#536a39);outline:2px solid #536a3933;outline-offset:2px;box-shadow:none}

.product-toolbox button[hidden]{display:none!important}

.observation-card{padding:12px 0;border-bottom:1px solid var(--line,#dde2d6);overflow-wrap:anywhere}
.observation-card p{white-space:pre-wrap}
.observation-favorites{display:flex!important;align-items:center;gap:8px}
.observation-favorites input{width:auto}
.keep-observation{display:block;margin-top:8px}
.template-review{margin-top:16px;padding-top:12px;border-top:1px solid var(--line,#dde2d6)}
.template-review[hidden]{display:none}
.human-changes{margin:18px 0;min-width:0}
.human-changes table{table-layout:fixed;border-collapse:collapse;width:100%}
.human-changes th,.human-changes td{text-align:left;vertical-align:top;padding:8px;border-bottom:1px solid var(--line,#dde2d6);overflow-wrap:anywhere;font-size:14px}
.human-changes thead th{color:var(--primary-dark,#354722);background:var(--surface-subtle,#fafbf8)}
.human-changes th:first-child{width:40%}
.product-dialog .button-row{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:480px){.product-dialog{padding:16px}.human-changes th,.human-changes td{padding:6px;font-size:13px}.observation-card .button-row{flex-direction:column;align-items:stretch}.product-dialog input,.product-dialog textarea{box-sizing:border-box;font-size:16px}}

@media(prefers-reduced-motion:reduce){.project-search input,.project-search select{transition:none}}

.product-page main a:not(.button),.product-page main a:not(.button):visited { color:var(--primary-dark,#354722); text-underline-offset:3px; overflow-wrap:anywhere; }
.product-page main a:not(.button):hover { color:var(--primary,#526735); }

/* Keep conditional fields and export controls hidden despite component display rules. */
.product-dialog [hidden] { display:none !important; }
.product-toolbox { min-width:0; }
.draft-actions > .product-toolbox { width:100%; margin:0; }
#location-view .draft-card { min-width:0; overflow-wrap:anywhere; }
#appointments-more[hidden] { display:none !important; }

/* Account conflict labels are untrusted, bounded text, including unbroken names. */
.sync-conflict-comparison h5 { overflow-wrap:anywhere; }
