:root{--navy:#102e4a;--navy-2:#173c5e;--blue:#1677ff;--blue-soft:#eaf3ff;--bg:#f5f8fc;--surface:#fff;--text:#183047;--muted:#6f8192;--line:#dde6ee;--green:#15966a;--green-soft:#e8f8f1;--orange:#c87418;--orange-soft:#fff4e5;--red:#c84b4b;--red-soft:#ffeded;--purple:#7655d7;--shadow:0 12px 35px rgba(25,55,82,.07);--radius:17px}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.45}button,input,select,textarea{font:inherit}a{color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:265px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--navy),#0c263e);padding:25px 18px;color:#dce8f2;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:linear-gradient(145deg,#1686ff,#54b7ff);color:#fff;font-weight:900;font-size:.78rem;box-shadow:0 8px 20px #1686ff3d}.brand strong{font-size:1.06rem;color:var(--navy);font-style:normal}.brand em{font-style:normal;color:var(--blue)}.brand-sidebar strong{color:#fff}.brand-sidebar em{color:#70b8ff}.account-card{margin:27px 0 19px;padding:14px;border:1px solid #31506d;border-radius:13px;background:#163957}.account-card span,.account-card small{display:block}.account-card span{font-size:.86rem;font-weight:750;color:#fff}.account-card small{font-size:.73rem;color:#9fb9cf;margin-top:3px}.main-nav{display:grid;gap:5px}.main-nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;text-decoration:none;color:#b7cada;font-size:.88rem;font-weight:550}.main-nav a:hover,.main-nav a.active{background:#24577f;color:#fff}.nav-icon{width:20px;text-align:center}.sidebar-footer{margin-top:auto;padding:14px 7px 0;border-top:1px solid #24445f;display:flex;justify-content:space-between;gap:10px;font-size:.7rem;color:#8da9bf}.sidebar-footer a{text-decoration:none;color:#bed3e4}.app-main{min-width:0}.topbar{height:73px;padding:0 30px;background:#ffffffd9;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;position:sticky;top:0;z-index:20}.topbar-title{display:none}.user-chip{margin-left:auto;text-align:right}.user-chip span,.user-chip small{display:block}.user-chip span{font-size:.84rem;font-weight:750}.user-chip small{font-size:.7rem;color:var(--muted)}.icon-button{border:0;background:transparent;cursor:pointer}.menu-toggle{display:none;font-size:1.3rem}.page-content{max-width:1450px;margin:0 auto;padding:31px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px}.page-heading h1{font-size:1.85rem;line-height:1.2;margin:5px 0 7px;letter-spacing:-.025em}.page-heading p{margin:0;color:var(--muted);font-size:.9rem}.eyebrow{font-size:.68rem;font-weight:850;letter-spacing:.12em;color:var(--blue)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;border-radius:10px;border:1px solid transparent;text-decoration:none;font-size:.82rem;font-weight:750;cursor:pointer}.button-primary{background:var(--blue);color:#fff;box-shadow:0 7px 18px #1677ff2b}.button-primary:hover{background:#086ae7}.button-secondary{background:#fff;border-color:var(--line);color:var(--text)}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.kpi-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:21px;box-shadow:var(--shadow)}.kpi-card:after{content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-21px;bottom:-28px;background:currentColor;opacity:.08}.kpi-card span,.kpi-card strong{display:block}.kpi-card span{font-size:.78rem;color:var(--muted)}.kpi-card strong{margin-top:8px;font-size:1.55rem;letter-spacing:-.03em}.tone-blue{color:var(--blue)}.tone-green{color:var(--green)}.tone-purple{color:var(--purple)}.tone-orange{color:var(--orange)}.kpi-card strong{color:var(--text)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:21px}.panel-spaced{margin-top:20px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:17px}.panel-head h2,.form-title h2{font-size:1rem;margin:0 0 3px}.panel-head p,.form-title p{font-size:.78rem;color:var(--muted);margin:0}.panel-head>a{font-size:.76rem;color:var(--blue);font-weight:750;text-decoration:none}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:20px}.list-stack{display:grid}.company-row{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:12px 3px;border-bottom:1px solid #edf2f6;text-decoration:none}.company-row:last-child{border-bottom:0}.company-row strong,.company-row small{display:block}.company-row strong{font-size:.84rem}.company-row small{font-size:.71rem;color:var(--muted);margin-top:3px}.avatar{width:37px;height:37px;border-radius:11px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-size:.7rem;font-weight:850}.badge{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;font-size:.67rem;font-weight:750}.badge-active{background:var(--green-soft);color:var(--green)}.badge-pending{background:var(--orange-soft);color:var(--orange)}.badge-suspended{background:var(--red-soft);color:var(--red)}.badge-archived{background:#eef1f4;color:#687583}.bar-chart{display:grid;gap:17px}.bar-item>div:first-child{display:flex;justify-content:space-between;font-size:.78rem;margin-bottom:7px}.bar-track{height:8px;background:#edf2f6;border-radius:99px;overflow:hidden}.bar-track i{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,var(--blue),#70bdff);border-radius:99px}.table-panel{padding:0;overflow:hidden}.table-responsive{overflow:auto}table{border-collapse:collapse;width:100%}th,td{padding:14px 17px;text-align:left;border-bottom:1px solid #edf2f6;white-space:nowrap;font-size:.79rem}th{background:#f9fbfd;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.045em}tbody tr:last-child td{border-bottom:0}td small{display:block;color:var(--muted);font-size:.69rem;margin-top:3px}.identity-cell{display:flex;align-items:center;gap:10px}.row-link,.text-button{color:var(--blue);font-size:.74rem;font-weight:750;text-decoration:none}.text-button{border:0;background:transparent;padding:2px;cursor:pointer}.partner-state{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700}.partner-state i{width:7px;height:7px;border-radius:50%}.partner-state.on{color:var(--green)}.partner-state.on i{background:var(--green)}.partner-state.off{color:var(--muted)}.partner-state.off i{background:#a7b3bd}.filter-bar{display:grid;grid-template-columns:minmax(240px,1fr) 180px 180px auto;gap:10px;margin-bottom:15px}.search-field{position:relative}.search-field span{position:absolute;left:13px;top:10px;color:var(--muted)}.search-field input{padding-left:36px}input,select,textarea{width:100%;min-height:43px;padding:9px 11px;border:1px solid #d7e1ea;border-radius:9px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#70adfa;box-shadow:0 0 0 3px #1677ff12}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:22px;margin-bottom:20px}.form-grid .full{grid-column:1/-1}.field{display:grid;gap:6px;align-content:start}.field>span{font-size:.73rem;font-weight:700;color:#40566b}.actions-end{align-content:end}.form-title{padding-bottom:13px;border-bottom:1px solid var(--line)}.form-separator{font-size:.75rem;font-weight:800;color:var(--blue);text-transform:uppercase;letter-spacing:.06em;padding:9px 0 4px;border-bottom:1px solid var(--line)}.form-actions{display:flex;justify-content:flex-end;padding-top:5px}.input-suffix{position:relative}.input-suffix>span{position:absolute;right:12px;top:11px;color:var(--muted);font-size:.8rem}.input-suffix input{padding-right:32px}.switch-field{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid var(--line);border-radius:12px}.switch-field input{position:absolute;opacity:0;pointer-events:none}.switch{position:relative;flex:0 0 42px;width:42px;height:24px;background:#bdc8d1;border-radius:99px;transition:.2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0002;transition:.2s}.switch-field input:checked+.switch{background:var(--green)}.switch-field input:checked+.switch:after{transform:translateX(18px)}.switch-field strong,.switch-field small{display:block}.switch-field strong{font-size:.78rem}.switch-field small{font-size:.69rem;color:var(--muted);margin-top:2px}.alert{padding:13px 15px;border-radius:11px;margin-bottom:17px;font-size:.8rem;border:1px solid transparent}.alert-success{background:var(--green-soft);border-color:#c9edde;color:#147854}.alert-error{background:var(--red-soft);border-color:#ffd2d2;color:#a43a3a}.alert-warning{background:var(--orange-soft);border-color:#ffe1b8;color:#98601e}.hidden{display:none!important}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs button{border:0;background:transparent;padding:11px 14px;color:var(--muted);font-size:.78rem;font-weight:750;cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--blue);border-color:var(--blue)}.tabs button span{background:#eaf0f5;padding:2px 6px;border-radius:99px;font-size:.63rem}.tab-pane{display:none}.tab-pane.active{display:block}.heading-status{display:flex;gap:10px;align-items:center}.back-link{display:block;color:var(--muted);font-size:.72rem;text-decoration:none;margin-bottom:12px}.inset-form{border:1px dashed #cddae5;box-shadow:none;background:#f9fbfd;margin:0 0 17px}.inline-actions{display:flex;gap:9px;align-items:center}.inline-actions form{margin:0}.details-cell{max-width:420px;overflow:hidden;text-overflow:ellipsis}.empty-state{text-align:center;padding:46px 20px;color:var(--muted)}.empty-state>span{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 10px;border-radius:12px;background:var(--blue-soft);color:var(--blue);font-weight:850}.empty-state h3,.empty-state h1{color:var(--text);margin:12px 0 4px}.empty-state p{margin:0 0 15px}.empty-state.compact{padding:25px}.empty-inline{text-align:center;padding:28px;color:var(--muted)}.page-empty{margin-top:10vh}.onboarding-card{display:flex;align-items:flex-start;gap:15px}.onboarding-card h2{margin:0 0 5px;font-size:1rem}.onboarding-card p{margin:0 0 16px;color:var(--muted);font-size:.8rem}.onboarding-icon{display:grid;place-items:center;flex:0 0 43px;height:43px;border-radius:13px;background:var(--green-soft);color:var(--green);font-weight:900}.coming-list{display:grid}.coming-list span{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf2f6;font-size:.77rem}.coming-list span:last-child{border:0}.coming-list b{color:var(--blue)}.narrow-panel{max-width:700px}.completion-pill,.version-large{background:var(--green-soft);color:var(--green);padding:8px 11px;border-radius:99px;font-size:.72rem;font-weight:750}.version-large{background:var(--blue-soft);color:var(--blue);font-size:.9rem}.settings-form{max-width:900px}.timeline{display:grid;gap:18px;position:relative;padding-left:20px}.timeline:before{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:2px;background:#dbe7f0}.release{position:relative}.release-marker{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--blue);border:3px solid var(--bg);left:-22px;top:24px}.release-head{display:flex;justify-content:space-between;gap:20px}.release-head h2{font-size:1.05rem;margin:8px 0}.release-head time{color:var(--muted);font-size:.72rem}.version-pill{display:inline-flex;padding:5px 9px;border-radius:99px;background:var(--blue-soft);color:var(--blue);font-size:.66rem;font-weight:800}.release-notes h3{font-size:.76rem;margin:12px 0 4px}.release-notes p{color:var(--muted);font-size:.79rem;margin:0}.release details{margin-top:14px}.release summary{font-size:.75rem;font-weight:750;cursor:pointer}.auth-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 15% 10%,#1e5982 0,transparent 32%),linear-gradient(145deg,#0b253b,#123c5d)}.auth-card{width:min(440px,100%);background:#fff;border-radius:22px;padding:32px;box-shadow:0 30px 90px #0019}.auth-card.install-card{width:min(740px,100%)}.auth-card>.version-pill{margin-top:24px}.auth-card h1{font-size:1.55rem;margin:12px 0 5px}.auth-card>p{color:var(--muted);font-size:.82rem;margin:0 0 22px}.stack-form{display:grid;gap:15px}.stack-form .button{width:100%;margin-top:3px}.auth-help{text-align:center!important;font-size:.7rem!important;margin:18px 0 0!important}.auth-card .form-grid{padding:0;margin:0}.sidebar-backdrop{display:none}
@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.filter-bar{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;left:0;transform:translateX(-100%);width:265px;transition:transform .22s ease}.app-shell.sidebar-open .sidebar{transform:translateX(0)}.app-shell.sidebar-open~.sidebar-backdrop{display:block;position:fixed;inset:0;background:#071b2c88;z-index:25}.topbar{height:65px;padding:0 16px}.menu-toggle{display:block}.topbar-title{display:block;margin-left:12px}.topbar-title small,.topbar-title strong{display:block}.topbar-title small{font-size:.61rem;color:var(--muted)}.topbar-title strong{font-size:.82rem}.user-chip small{display:none}.page-content{padding:21px 14px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:1.55rem}.page-heading>.button,.page-heading>button{width:100%}.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.kpi-card{padding:16px}.kpi-card strong{font-size:1.25rem}.form-grid{grid-template-columns:1fr;padding:17px}.form-grid .full{grid-column:auto}.filter-bar{grid-template-columns:1fr}.search-field{grid-column:auto}.heading-status{flex-wrap:wrap}.tabs{overflow-x:auto}.tabs button{white-space:nowrap}.panel{padding:17px}.table-panel{padding:0}.auth-card{padding:25px 20px}.release-head{display:block}.release-head time{display:block;margin-bottom:12px}.onboarding-card{display:block}.onboarding-icon{margin-bottom:12px}}
@media(max-width:430px){.kpi-grid{grid-template-columns:1fr}.user-chip span{font-size:.72rem}.button{width:100%}.form-actions{display:block}.inline-actions{display:grid;justify-items:start}}

/* Version 0.2.0 — CRM et catalogue */
.coming-list a{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf2f6;font-size:.77rem;text-decoration:none}.contact-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.8fr);gap:20px}.note-form{display:grid;gap:10px}.note-form .button{justify-self:end}.notes-list{display:grid;margin-top:15px}.notes-list article{padding:13px 0;border-top:1px solid #edf2f6}.notes-list p{font-size:.78rem;margin:0 0 6px}.notes-list small{color:var(--muted);font-size:.67rem}.badge-contact-new{background:var(--blue-soft);color:var(--blue)}.badge-contact-contacted,.badge-contact-appointment{background:var(--orange-soft);color:var(--orange)}.badge-contact-quote_sent{background:#eeeaff;color:var(--purple)}.badge-contact-won,.badge-contact-customer{background:var(--green-soft);color:var(--green)}.badge-contact-lost{background:var(--red-soft);color:var(--red)}.catalog-tools{display:grid;grid-template-columns:minmax(360px,.7fr) 1.3fr;gap:15px;margin-bottom:15px}.category-form{display:grid;grid-template-columns:1fr 44px auto;gap:9px;align-items:end;padding:14px}.category-form input[type=color]{padding:3px;height:43px}.category-chips{display:flex;gap:7px;align-content:flex-start;align-items:center;flex-wrap:wrap}.category-chips span,.category-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:99px;background:color-mix(in srgb,var(--chip) 12%,white);color:var(--chip);font-size:.69rem;font-weight:750}.category-chips b{display:grid;place-items:center;min-width:18px;height:18px;border-radius:99px;background:#fff}.category-badge{--chip:var(--cat);background:color-mix(in srgb,var(--cat) 12%,white);color:var(--cat)}.catalog-filter{grid-template-columns:minmax(260px,1fr) 220px auto}.field textarea{resize:vertical;min-height:85px}
@media(max-width:980px){.contact-layout,.catalog-tools{grid-template-columns:1fr}}
@media(max-width:760px){.catalog-filter,.category-form{grid-template-columns:1fr}.category-form input[type=color]{width:100%}}
.heading-actions{display:flex;gap:9px;align-items:center}.heading-actions form{margin:0}@media(max-width:760px){.heading-actions{width:100%;display:grid}.heading-actions .button{width:100%}}

/* Version 0.4.0 — Facturation */

/* Version 0.6.2 — Suivi terrain complet */
.field-tools{display:grid;grid-template-columns:1fr 1.35fr;gap:14px;padding:18px 22px;border-top:1px solid var(--line);background:#f7fafc}.time-card,.photo-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:white}.time-card h3,.photo-card h3{margin:0 0 11px}.time-card p{font-size:.75rem}.finish-time-form{display:flex;gap:7px;flex-wrap:wrap}.finish-time-form input{min-width:170px;flex:1}.photo-form{display:grid;grid-template-columns:120px minmax(160px,1fr);gap:8px}.photo-form input[name=caption],.photo-form .button{grid-column:1/-1}.today-photos,.project-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.today-photos a,.project-photos a{position:relative;overflow:hidden;border-radius:9px;background:#e8eef5;aspect-ratio:1;text-decoration:none}.today-photos img,.project-photos img{width:100%;height:100%;object-fit:cover}.today-photos span{position:absolute;left:5px;bottom:5px;padding:3px 6px;border-radius:99px;background:#102e4adc;color:#fff;font-size:.58rem}.daily-checklist{border-top:1px solid var(--line);background:#f8fbf9}.daily-checklist summary{display:flex;justify-content:space-between;padding:16px 22px;cursor:pointer;font-size:.77rem;font-weight:850}.daily-checklist summary b{color:var(--green);font-size:.68rem}.checklist-form{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 22px 20px}.checklist-form label{display:flex;align-items:center;gap:8px;padding:10px;border-radius:9px;background:#fff;border:1px solid var(--line);font-size:.72rem}.checklist-form input[type=checkbox]{width:auto;min-height:auto}.checklist-form textarea,.checklist-form .button{grid-column:1/-1}.field-followup{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:18px;margin-top:20px}.project-photos{grid-template-columns:repeat(3,minmax(0,1fr))}.project-photos a{display:block}.project-photos span{position:absolute;inset:auto 0 0;padding:7px;background:linear-gradient(transparent,#102e4add);color:#fff}.project-photos b,.project-photos small{display:block;font-size:.61rem}.time-entry-list,.checklist-history{display:grid;gap:10px}.time-entry-list article,.checklist-history article{display:grid;gap:7px;padding:11px;border:1px solid var(--line);border-radius:10px}.time-entry-list small{display:block;color:var(--muted);font-size:.66rem;margin-top:4px}.time-validation{display:grid;grid-template-columns:1fr auto auto;gap:6px}.checklist-history article{grid-template-columns:1fr auto}.checklist-history p{grid-column:1/-1;margin:0;font-size:.7rem}
.today-heading{align-items:center}.today-count{padding:9px 13px;border-radius:99px;background:#fff3d7;color:#8a5700;font-size:.72rem;font-weight:850}.today-list{display:grid;gap:18px}.today-card{padding:0;overflow:hidden;border:2px solid transparent}.today-card.is-today{border-color:#84d5af}.today-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 22px;background:linear-gradient(135deg,#f8fbff,#eef9f4)}.today-card header small{display:block;margin:8px 0 3px;color:var(--muted);font-size:.66rem}.today-card header h2{margin:0 0 3px}.today-card header p{margin:0;color:var(--muted);font-size:.74rem}.today-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:17px 22px;border-bottom:1px solid var(--line)}.today-facts div{display:grid;gap:4px}.today-facts .wide{grid-column:1/-1}.today-facts span{font-size:.64rem;color:var(--muted);font-weight:750;text-transform:uppercase}.today-facts strong{font-size:.76rem;line-height:1.5}.today-tasks{padding:18px 22px}.today-tasks>h3{margin:0 0 11px}.today-task{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-top:1px solid var(--line)}.today-task>div{display:grid;gap:5px}.today-task strong{font-size:.83rem}.today-task small,.today-task p{margin:0;color:var(--muted);font-size:.69rem}.today-task-actions{display:flex;gap:7px;flex-wrap:wrap}.today-task-actions .button{min-height:38px;padding:8px 11px}.button-warning{background:#fff0d8;color:#a65b00;border:1px solid #f1c77d}.button:disabled{opacity:.48;cursor:not-allowed}.daily-report{border-top:1px solid var(--line);background:#fbfcfe}.daily-report summary{display:flex;justify-content:space-between;gap:12px;padding:16px 22px;cursor:pointer;font-size:.77rem;font-weight:850}.daily-report summary b{color:var(--blue);font-size:.68rem}.daily-report .form-grid{margin:0;border:0;border-radius:0;box-shadow:none;padding:5px 22px 22px}.daily-reports-panel{margin-top:20px}.daily-report-list{display:grid;gap:12px}.daily-report-list>article{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.daily-report-list header{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.daily-report-list header span,.daily-report-list>article>small{color:var(--muted);font-size:.67rem}.report-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.report-fields>div{padding:10px;border-radius:9px;background:#f2f6fa}.report-fields b{font-size:.68rem}.report-fields p{margin:5px 0 0;font-size:.72rem}.report-fields .report-alert{background:#ffebe5;color:#8e321b}.report-fields .report-supply{background:#fff4d7;color:#78520a}
.project-filter{grid-template-columns:minmax(220px,320px) auto}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-card{display:grid;gap:10px;text-decoration:none;color:inherit;margin:0}.project-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(20,53,82,.13)}.project-card-head,.project-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-card>small,.project-card p,.project-card footer{color:var(--muted);font-size:.72rem}.project-card h2{margin:0}.project-progress{display:flex;align-items:center;gap:10px}.project-progress>span{display:block;overflow:hidden;flex:1;height:8px;border-radius:99px;background:#e8eef5}.project-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1677ff,#4bc0a4)}.project-progress b{font-size:.72rem}.project-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.project-summary article{display:grid;gap:7px;margin:0}.project-summary span,.project-summary small{font-size:.68rem;color:var(--muted)}.project-summary strong{font-size:1rem}.project-settings{margin-bottom:20px}.project-admin-grid,.project-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.team-assignment,.compact-form{display:grid;gap:12px;margin:0}.check-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.78rem}.check-row input{width:auto;min-height:auto}.task-list{display:grid}.task-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.task-row h3{margin:7px 0 3px;font-size:.85rem}.task-row p,.task-row small{color:var(--muted);font-size:.68rem}.task-row form{min-width:145px}.badge-project-preparation,.badge-task-todo{background:#edf2f7;color:#54677a}.badge-project-scheduled{background:var(--blue-soft);color:var(--blue)}.badge-project-in_progress,.badge-task-in_progress{background:#fff0d8;color:#b96300}.badge-project-paused,.badge-task-blocked{background:var(--red-soft);color:var(--red)}.badge-project-completed,.badge-task-done{background:var(--green-soft);color:var(--green)}.badge-project-cancelled{background:#edf0f3;color:#67717d}@media(max-width:1050px){.project-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.project-grid,.project-admin-grid,.project-detail-grid,.project-summary{grid-template-columns:1fr}.task-row{align-items:flex-start;flex-direction:column}.task-row form{width:100%}}
.fraud-filter{grid-template-columns:repeat(4,minmax(150px,1fr)) auto}.fraud-list{display:grid;gap:15px}.fraud-card{border-left:5px solid #d3dde6}.fraud-card.severity-critical{border-left-color:#a91d3a}.fraud-card.severity-high{border-left-color:#e25531}.fraud-card.severity-medium{border-left-color:#e6a21a}.fraud-card.severity-low{border-left-color:#4d91d9}.fraud-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.fraud-card-head h2{font-size:1rem;margin:10px 0 3px}.fraud-card-head p{font-size:.73rem;color:var(--muted);margin:0}.badge-fraud-critical{background:#ffe5eb;color:#a91d3a}.badge-fraud-high{background:#ffebe5;color:#b53d20}.badge-fraud-medium{background:#fff2ce;color:#94620b}.badge-fraud-low{background:#e8f3ff;color:#276cae}.badge-open{background:var(--red-soft);color:var(--red)}.badge-reviewing{background:var(--orange-soft);color:var(--orange)}.badge-resolved{background:var(--green-soft);color:var(--green)}.badge-dismissed{background:#eef1f4;color:#687583}.fraud-decision{display:grid;grid-template-columns:190px minmax(260px,1fr) auto;gap:10px;margin-top:15px}.fraud-history{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.fraud-history p{font-size:.73rem}.proof-details pre{white-space:pre-wrap;word-break:break-word;background:#f7f9fb;border-radius:9px;padding:12px;font-size:.7rem}@media(max-width:900px){.fraud-filter,.fraud-decision{grid-template-columns:1fr}.fraud-card-head{display:block}.fraud-card-head .button{margin-top:12px;width:100%}}
.contents-form{display:contents}.embedded-form{padding:0;margin:0;box-shadow:none;border:0}.link-tabs a{padding:11px 14px;color:var(--muted);font-size:.78rem;font-weight:750;text-decoration:none;border-bottom:2px solid transparent}.link-tabs a.active{color:var(--blue);border-color:var(--blue)}.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.template-card{display:grid;gap:13px}.template-card textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem}.mini-check{font-size:.72rem;color:var(--muted);display:flex;align-items:center;gap:6px}.mini-check input{width:auto;min-height:auto}.api-key-alert{display:grid;gap:7px}.api-key-alert code{display:block;padding:12px;background:#fff;border:1px solid #f1d09e;border-radius:8px;overflow-wrap:anywhere;user-select:all}.api-key-alert small{color:inherit}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.padded-head{padding:20px 20px 0}.badge-mail-sent,.badge-lead-accepted{background:var(--green-soft);color:var(--green)}.badge-mail-pending,.badge-mail-processing,.badge-lead-duplicate{background:var(--orange-soft);color:var(--orange)}.badge-mail-failed,.badge-lead-rejected,.danger{color:var(--red)}code{overflow-wrap:anywhere}@media(max-width:900px){.template-grid,.journal-grid{grid-template-columns:1fr}}
.heading-actions,.document-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.document-actions form{margin:0}.action-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.action-forms .form-grid{margin:0}.subsection{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.subsection h3{font-size:.85rem;margin:0 0 8px}.subsection p{font-size:.76rem;margin:6px 0}.subsection a{color:var(--blue);font-weight:750}.badge-invoice-draft{background:#eef1f4;color:#687583}.badge-invoice-issued,.badge-invoice-sent{background:var(--blue-soft);color:var(--blue)}.badge-invoice-partial,.badge-invoice-overdue{background:var(--orange-soft);color:var(--orange)}.badge-invoice-paid{background:var(--green-soft);color:var(--green)}.badge-invoice-cancelled{background:var(--red-soft);color:var(--red)}
@media(max-width:760px){.action-forms{grid-template-columns:1fr}.heading-actions{width:100%}.heading-actions .button{flex:1}.document-actions .button{flex:1}.table-responsive{margin-left:-4px;margin-right:-4px}}
.quote-filter{grid-template-columns:minmax(260px,1fr) 200px auto}.badge-quote-draft{background:#eef1f4;color:#687583}.badge-quote-sent{background:var(--blue-soft);color:var(--blue)}.badge-quote-viewed{background:#eeeaff;color:var(--purple)}.badge-quote-accepted{background:var(--green-soft);color:var(--green)}.badge-quote-refused,.badge-quote-cancelled,.badge-quote-expired{background:var(--red-soft);color:var(--red)}.badge-quote-invoiced{background:var(--orange-soft);color:var(--orange)}.quote-editor{display:grid;gap:20px}.quote-editor>.panel{margin-bottom:0}.quote-items-panel{padding:0;overflow:hidden}.quote-items-panel>.panel-head{padding:21px 21px 0}.quote-items{display:grid}.quote-item-row{display:grid;grid-template-columns:180px minmax(260px,1.7fr) 90px 90px 115px 100px 95px 110px 35px;gap:9px;align-items:end;padding:16px 20px;border-top:1px solid #edf2f6}.quote-item-row .field>span,.line-total>span{font-size:.65rem}.description-field textarea{min-height:43px;height:43px}.line-total{display:grid;gap:6px}.line-total strong{display:flex;align-items:center;min-height:43px;font-size:.78rem}.remove-line{width:32px;height:40px;border:0;border-radius:9px;background:var(--red-soft);color:var(--red);font-size:1.25rem;cursor:pointer}.quote-editor-bottom{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px}.live-totals,.totals-box{display:grid;gap:8px}.live-totals span,.totals-box span,.live-totals strong,.totals-box strong{display:flex;justify-content:space-between;gap:30px}.live-totals span,.totals-box span{font-size:.78rem}.live-totals>strong,.totals-box>strong{padding-top:10px;border-top:1px solid var(--line);font-size:1rem}.live-totals .button{margin-top:8px}.issue-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px;border-radius:14px;background:#eaf3ff;border:1px solid #cfe3ff}.issue-bar strong,.issue-bar small{display:block}.issue-bar strong{font-size:.84rem}.issue-bar small{font-size:.7rem;color:var(--muted);margin-top:3px}.document-actions{display:flex;justify-content:flex-end;gap:9px;margin-bottom:17px}.document-actions form{margin:0}.quote-detail-grid{display:grid;grid-template-columns:minmax(0,1.8fr) 330px;gap:20px}.document-heading{display:flex;justify-content:space-between;gap:35px;align-items:flex-start;margin-bottom:25px}.document-heading.compact{padding-bottom:18px;border-bottom:1px solid var(--line)}.document-heading h1,.document-heading h2{margin:5px 0}.document-heading p{color:var(--muted);font-size:.78rem}.document-heading small{font-size:.66rem;color:var(--muted);font-weight:750}.quote-lines th,.quote-lines td{white-space:normal}.document-bottom{display:grid;grid-template-columns:1fr 300px;gap:30px;padding-top:22px}.signed-box{display:flex;justify-content:space-between;gap:15px;margin-top:20px;padding:14px;border-radius:11px;background:var(--green-soft);color:var(--green);font-size:.76rem}.event-list{display:grid}.event-list article{display:grid;grid-template-columns:12px 1fr;gap:9px;padding:10px 0;border-bottom:1px solid #edf2f6}.event-list i{width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--blue)}.event-list strong,.event-list small{display:block}.event-list strong{font-size:.75rem}.event-list small{font-size:.65rem;color:var(--muted);margin-top:3px}.public-quote-page{background:#edf3f8}.public-quote-shell{width:min(1050px,calc(100% - 28px));margin:25px auto 60px}.public-quote-header{display:flex;justify-content:space-between;align-items:center;padding:18px 23px;background:#102e4a;color:#fff;border-radius:17px 17px 0 0}.public-quote-header .brand strong{color:#fff}.public-quote-header>div:last-child{text-align:right}.public-quote-header>div:last-child strong,.public-quote-header>div:last-child small{display:block}.public-quote-header small{font-size:.7rem;color:#b9cede}.public-document{background:#fff;padding:38px;border-radius:0 0 17px 17px;box-shadow:var(--shadow)}.document-customer{min-width:250px;padding:15px;border-radius:12px;background:#f5f8fc}.document-customer strong,.document-customer span,.document-customer small{display:block}.document-customer strong{margin:4px 0;font-size:.85rem}.document-customer span{font-size:.73rem;color:var(--muted)}.document-intro{font-size:.82rem;color:#4a5e71;margin:0 0 24px}.public-actions{display:flex;justify-content:flex-end;margin-top:25px}.signature-panel,.signature-success,.signature-refused{background:#fff;border-radius:17px;padding:27px;margin-top:18px;box-shadow:var(--shadow)}.signature-panel>h2,.signature-success h2,.signature-refused h2{margin:0 0 5px}.signature-panel>p,.signature-success p,.signature-refused p{color:var(--muted);font-size:.8rem;margin-top:0}.signature-panel form{display:grid;gap:15px}.signature-label{display:grid;gap:6px;font-size:.73rem;font-weight:700}.signature-label canvas{width:100%;height:170px;border:1px dashed #aebdca;border-radius:11px;background:#fbfdff;touch-action:none}.signature-label .text-button{justify-self:start}.accept-check{display:flex;align-items:flex-start;gap:9px;font-size:.75rem}.accept-check input{width:auto;min-height:auto;margin-top:3px}.signature-actions{display:flex;justify-content:flex-end}.refuse-form{margin-top:13px!important}.danger{color:var(--red)}.signature-success{display:flex;align-items:center;gap:15px;background:var(--green-soft);color:var(--green)}.signature-success>span{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:#fff;font-weight:900}.signature-success p{margin:0}.signature-refused{background:var(--red-soft);color:var(--red)}
@media(max-width:1250px){.quote-item-row{grid-template-columns:150px minmax(220px,1fr) repeat(3,90px) 90px 90px}.quote-item-row .product-picker,.quote-item-row .description-field{grid-column:span 2}.quote-item-row .line-total{grid-column:span 2}.quote-item-row .remove-line{align-self:end}}
@media(max-width:900px){.quote-detail-grid,.quote-editor-bottom{grid-template-columns:1fr}.quote-item-row{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-item-row .product-picker,.quote-item-row .description-field{grid-column:1/-1}.quote-item-row .line-total{grid-column:auto}.document-bottom{grid-template-columns:1fr}.document-heading{display:grid}.document-customer{min-width:0}}
@media(max-width:760px){.quote-filter{grid-template-columns:1fr}.document-actions{display:grid}.quote-item-row{grid-template-columns:1fr 1fr;padding:15px}.issue-bar{display:grid}.public-quote-shell{width:min(100% - 16px,1050px);margin:8px auto 30px}.public-quote-header{padding:15px}.public-document{padding:20px 15px}.public-quote-header>div:last-child{display:none}.signature-panel{padding:20px 15px}.signed-box{display:grid}}
@media(max-width:760px){.today-heading{display:flex}.today-count{display:none}.today-card>header{display:grid;padding:17px}.today-card>header .button{width:100%}.today-facts,.report-fields{grid-template-columns:1fr;padding-left:17px;padding-right:17px}.today-facts .wide{grid-column:auto}.today-tasks{padding:17px}.today-task{align-items:stretch;flex-direction:column}.today-task-actions{display:grid;grid-template-columns:repeat(3,1fr)}.today-task-actions .button{width:100%;font-size:.67rem}.daily-report summary{padding:15px 17px}.daily-report .form-grid{padding:4px 17px 18px}}
@media(max-width:950px){.field-followup{grid-template-columns:1fr}.field-tools{grid-template-columns:1fr}}@media(max-width:760px){.field-tools{padding:15px 17px}.photo-form,.checklist-form{grid-template-columns:1fr}.photo-form input[name=caption],.photo-form .button,.checklist-form textarea,.checklist-form .button{grid-column:auto}.daily-checklist summary{padding:15px 17px}.checklist-form{padding:0 17px 18px}.today-photos{grid-template-columns:repeat(3,1fr)}.project-photos{grid-template-columns:repeat(2,1fr)}.time-validation{grid-template-columns:1fr}.finish-time-form{display:grid}.finish-time-form input{min-width:0}}
.origin-badge{display:inline-flex;align-items:center;gap:4px;width:max-content;max-width:100%;padding:6px 10px;border:1px solid transparent;border-radius:99px;font-size:.68rem;font-weight:850;line-height:1.2;white-space:nowrap;box-shadow:0 2px 7px #1020300d}.origin-website{background:#ff9f1c;color:#542d00;border-color:#ee8b00}.origin-phone{background:#a7e7bd;color:#135b31;border-color:#74ce95}.origin-call_tracking{background:#22c878;color:#063f25;border-color:#12aa61}.origin-manual{background:#74b9ff;color:#083b72;border-color:#4a9fec}.origin-recommendation{background:#eadfff;color:#62408f;border-color:#d7c3fa}.origin-partner{background:#ffe0a8;color:#77500b;border-color:#f4c56c}.origin-other{background:#edf1f4;color:#64717d;border-color:#dbe2e8}.locked-origin-field{align-content:center;gap:6px}.locked-origin-field>span{font-size:.72rem;font-weight:750}.locked-origin-field>small{display:block;color:var(--muted);font-size:.66rem;line-height:1.4}.attribution-merge{margin-bottom:20px}.attribution-merge>summary{cursor:pointer;font-size:.86rem;font-weight:800}.attribution-merge[open]>summary{margin-bottom:18px}.attribution-filter{grid-template-columns:minmax(220px,1fr) 210px 220px auto}.attribution-admin-form{border-color:#bcd8f8}.attribution-admin-form .form-title p{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.proof-details{margin-top:7px;max-width:440px}.proof-details summary{cursor:pointer;color:var(--blue);font-size:.68rem;font-weight:750}.proof-details small{display:block;white-space:normal;overflow-wrap:anywhere;margin-top:5px}@media(max-width:900px){.attribution-filter{grid-template-columns:1fr 1fr}.attribution-filter .button{grid-column:1/-1}}@media(max-width:600px){.attribution-filter{grid-template-columns:1fr}.attribution-filter .button{grid-column:auto}}

/* Version 0.7.0 — planning et PWA */
.planning-form{margin-bottom:20px}.calendar-panel{padding:0;overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid var(--line)}.calendar-toolbar>div{text-align:center}.calendar-toolbar strong,.calendar-toolbar a{display:block}.calendar-toolbar strong{font-size:1.05rem}.calendar-toolbar>div a{font-size:.68rem;color:var(--blue);font-weight:750;text-decoration:none;margin-top:2px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#f6f9fc;border-bottom:1px solid var(--line)}.calendar-weekdays span{text-align:center;padding:10px;color:var(--muted);font-size:.65rem;font-weight:850;text-transform:uppercase}.calendar-day{min-width:0;min-height:155px;padding:9px;border-right:1px solid #e7edf2;border-bottom:1px solid #e7edf2;background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#f8fafc;color:#9aa8b4}.calendar-day.today{background:#f1f7ff;box-shadow:inset 0 0 0 2px #65a9ff}.calendar-day>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.calendar-day>header b{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;font-size:.72rem}.calendar-day.today>header b{background:var(--blue);color:#fff}.calendar-day>header small{display:none}.calendar-items{display:grid;gap:5px}.calendar-item{display:grid;min-width:0;padding:7px 8px;border-radius:8px;background:#eaf3ff;border-left:3px solid var(--blue);text-decoration:none}.calendar-item small{font-size:.52rem;font-weight:850;color:#52708b}.calendar-item strong,.calendar-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-item strong{font-size:.66rem}.calendar-item span{font-size:.58rem;color:var(--muted)}.calendar-item.project{background:#e9f8f1;border-color:var(--green)}.calendar-item.type-visit{background:#fff3df;border-color:#ec941d}.calendar-item.type-intervention{background:#f0eaff;border-color:var(--purple)}.calendar-item.status-completed{opacity:.62}.calendar-item.status-cancelled{opacity:.45;text-decoration:line-through}.planning-delete{text-align:right;margin-top:14px}.pwa-install-button{position:fixed;right:18px;bottom:18px;z-index:80;border:0;border-radius:99px;padding:12px 18px;background:#102e4a;color:#fff;font-weight:800;box-shadow:0 12px 32px #102e4a44;cursor:pointer}.pwa-update{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:14px;width:min(520px,calc(100% - 28px));padding:13px 14px 13px 18px;border-radius:14px;background:#102e4a;color:#fff;box-shadow:0 18px 45px #0015;font-size:.78rem}.pwa-update span{flex:1}
@media(max-width:760px){.calendar-panel{background:transparent;border:0;box-shadow:none;overflow:visible}.calendar-toolbar{padding:12px 0;border:0}.calendar-toolbar .button{width:auto;padding:8px;font-size:.68rem}.calendar-weekdays{display:none}.calendar-grid{display:grid;grid-template-columns:1fr;gap:9px}.calendar-day{min-height:0;border:1px solid var(--line)!important;border-radius:12px;padding:12px}.calendar-day.outside{display:none}.calendar-day>header small{display:block}.calendar-day:not(.today) .calendar-items:empty{display:none}.calendar-day:not(.today):has(.calendar-items:empty){display:none}.calendar-item{padding:10px}.calendar-item strong{font-size:.75rem}.calendar-item span{font-size:.65rem}.pwa-update{display:grid}.pwa-update .button{width:100%}.pwa-install-button{left:14px;right:14px;width:calc(100% - 28px)}}

/* Correctif devis public : identité entreprise, composition et signature */
.public-quote-page{min-height:100vh;background:radial-gradient(circle at 12% 0,#dbeeff 0,transparent 28%),linear-gradient(180deg,#edf4fa,#f7f9fc);padding:1px 0 45px}.public-quote-shell{width:min(1080px,calc(100% - 32px));margin:28px auto}.public-company-header{min-height:92px;padding:19px 28px;background:linear-gradient(135deg,#0d2a45,#174e78);border-radius:20px 20px 0 0;box-shadow:0 18px 45px #102e4a22}.public-company-brand{display:flex;align-items:center;gap:14px}.public-company-mark{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;background:linear-gradient(145deg,#1686ff,#55bdff);color:#fff;font-weight:900;letter-spacing:.04em;box-shadow:0 10px 24px #001d}.public-company-brand strong{display:block;color:#fff;font-size:1.15rem}.public-company-brand small{display:block;margin-top:2px}.public-company-contact{text-align:right}.public-company-contact strong,.public-company-contact small{display:block}.public-document{padding:40px 42px;border:1px solid #dbe6ef;border-top:0;border-radius:0 0 20px 20px;box-shadow:0 20px 55px #173c5e12}.public-document-title h1{font-size:2rem;line-height:1.15;margin:10px 0 9px}.document-customer{border:1px solid #dce8f1;background:linear-gradient(145deg,#f8fbfe,#edf5fb);padding:18px 20px}.public-quote-table{border:1px solid #dce5ed;border-radius:14px;overflow:auto}.public-quote-table table{min-width:720px}.public-quote-table th{background:#102e4a;color:#dceaf5;padding:14px 17px}.public-quote-table td{padding:17px}.public-quote-table tbody tr:nth-child(even){background:#f8fbfd}.public-document-notes h3{font-size:.82rem;margin:0 0 6px}.public-document-notes p{font-size:.76rem;color:var(--muted)}.public-totals{padding:19px 21px;border-radius:14px;background:#f3f8fc;border:1px solid #dbe7f0}.public-totals>strong{font-size:1.08rem;color:#0f6fd8}.public-totals small{padding-top:7px;color:var(--muted)}.public-signature-panel{padding:31px 34px;border:1px solid #dbe6ef;box-shadow:0 20px 55px #173c5e12}.signature-heading{display:flex;align-items:center;gap:13px;padding-bottom:19px;margin-bottom:2px;border-bottom:1px solid #e4ebf1}.signature-heading h2{margin:0 0 3px}.signature-heading p{margin:0;color:var(--muted);font-size:.78rem}.signature-step{display:grid;place-items:center;flex:0 0 43px;height:43px;border-radius:13px;background:linear-gradient(145deg,#1677ff,#37a0ff);color:#fff;font-weight:900;font-size:1.15rem}.signature-field{display:grid;gap:8px}.signature-field-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.signature-field-head>span{font-size:.73rem;font-weight:750;color:#40566b}.signature-field canvas{display:block;width:100%;height:190px;border:2px solid #a8bfd2;border-radius:14px;background-color:#fff;background-image:linear-gradient(#edf3f7 1px,transparent 1px);background-size:100% 38px;touch-action:none;cursor:crosshair;box-shadow:inset 0 2px 8px #1830470a}.signature-field canvas.has-signature{border-color:#36a67b;box-shadow:0 0 0 4px #36a67b16}.signature-field canvas.signature-error{border-color:var(--red);box-shadow:0 0 0 4px #c84b4b18}.signature-field>small{color:var(--muted);font-size:.68rem}.accept-check{padding:14px 15px;border-radius:11px;background:#f3f8fc;border:1px solid #dce7ef;align-items:center}.accept-check input{width:20px;height:20px;accent-color:var(--blue);flex:0 0 auto}.signature-submit{min-width:260px}.refuse-form{text-align:right;border-top:1px solid #edf1f4;padding-top:13px}
@media(max-width:760px){.public-quote-page{padding-bottom:20px}.public-quote-shell{width:min(100% - 16px,1080px);margin:8px auto}.public-company-header{min-height:78px;padding:14px 16px}.public-company-mark{width:44px;height:44px}.public-company-contact{display:none}.public-document{padding:23px 16px}.public-document-title h1{font-size:1.55rem}.public-signature-panel{padding:23px 16px}.signature-heading{align-items:flex-start}.signature-field-head{align-items:flex-start;flex-direction:column}.signature-field canvas{height:170px}.signature-actions,.signature-submit{width:100%}.document-bottom{gap:18px}}

/* Version 0.7.1 — météo chantier */
.planning-heading-actions,.weather-actions,.weather-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.planning-heading-actions form,.weather-actions form{margin:0}.project-weather{margin:20px 0;overflow:hidden}.project-weather .panel-head{align-items:flex-start}.weather-days{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px;overflow-x:auto;padding:4px 2px 12px}.weather-day{border:1px solid #dfe8f2;border-top:5px solid #6c7f93;border-radius:15px;padding:14px;background:#fff;min-width:170px}.weather-day.favourable{border-top-color:#21a366;background:#f1fcf6}.weather-day.watch{border-top-color:#f0a51a;background:#fff9eb}.weather-day.unfavourable{border-top-color:#df4b4b;background:#fff3f3}.weather-day header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.weather-day header>span{font-size:27px}.weather-day header div{display:flex;flex-direction:column}.weather-day header small{color:#65768a;font-weight:700}.weather-day>b{display:block;font-size:18px;margin-bottom:10px}.weather-day dl{margin:0;display:grid;gap:5px}.weather-day dl div{display:flex;justify-content:space-between;gap:8px;font-size:12px}.weather-day dt{color:#65768a}.weather-day dd{margin:0;font-weight:700}.weather-level,.calendar-weather{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}.weather-level.favourable,.calendar-weather.favourable{background:#bcebd0;color:#075a31}.weather-level.watch,.calendar-weather.watch{background:#ffe09a;color:#744600}.weather-level.unfavourable,.calendar-weather.unfavourable{background:#ffc6c6;color:#851f1f}.weather-legend{margin:10px 0 16px}.weather-legend small{color:#65768a}.weather-meta{border-top:1px solid #e4ebf3;padding-top:12px;color:#65768a;font-size:12px}.weather-threshold-help{display:flex;flex-direction:column;justify-content:center;padding:12px 14px;border-radius:12px;background:#eef6ff;color:#214465}.weather-threshold-help small{margin-top:4px;line-height:1.45}.calendar-item .calendar-weather{padding:2px 6px;margin-left:3px}.calendar-item.project>small{display:flex;align-items:center;flex-wrap:wrap;gap:3px}
@media(max-width:900px){.weather-days{grid-template-columns:repeat(2,minmax(170px,1fr))}}
@media(max-width:720px){.planning-heading-actions{width:100%}.planning-heading-actions .button{width:100%}.planning-heading-actions form{flex:1}.weather-actions{width:100%}.weather-actions form{flex:1}.weather-actions .button{width:100%}.weather-days{display:flex}.weather-day{min-width:210px}.project-weather .panel-head{display:block}}
