:root{--brand-blue:#2563eb;--brand-ink:#111827;--brand-paper:#fff}
.logo,.mark{background:transparent!important;padding:0!important;border-radius:0!important;display:inline-flex!important;align-items:center;justify-content:center;letter-spacing:normal!important;vertical-align:middle}.logo img,.mark img{width:100%;height:100%;display:block}.brand .mark{height:43px;width:43px}.brand small{color:#94a3b8}aside{background:#101522;color:#fff}nav button.active{background:#2563eb}aside nav button{color:#cbd5e1}aside nav button:hover{background:#1e293b}aside nav button.active:hover{background:#2563eb}
.hero-visual{transform:none;border:1px solid #e2e8f0;background:#f1f5fb}.product-window{transform:none;box-shadow:0 20px 55px #0f172a14}.floating-note{transform:none}.mock-sidebar{background:#111827}.mock-logo img{height:24px;width:24px}.mock-welcome>span{color:#93b4fc}.mock-stats>div:first-child{background:#2563eb;color:#fff}.chart>span{background:#c8d9ff}.chart>span:nth-child(4){background:#2563eb}.floating-note .check{background:#eff6ff;color:#2563eb}.button,.primary{background:#2563eb}.button:hover,.primary:hover{background:#1d4ed8}.button.light{background:#fff;color:#111827}.button.light:hover{background:#eff6ff}.last-call{background:#101522}.last-call h2 em{color:#93b4fc}.last-call .eyebrow{color:#bfdbfe}em{font-family:inherit;font-style:normal;font-weight:inherit;color:#2563eb}.workflow em{color:#2563eb}.project-mark{color:#2563eb}.brand-bottom .dot{color:#2563eb}.brand .mark>span{display:none}.footer-brand>span{color:#2563eb}.hero h1{font-weight:650}.project{background:#f1f5fb}.manifesto{background:#f7f9fc}.brand-bottom{color:inherit}.feature{background:#fff}.feature h3{font-weight:600}.document-art{transform:none}.feature-tag{color:#2563eb}.day-active{background:#2563eb!important}.showcase .showcase-hero{background:#eff6ff}.showcase .primary{background:#2563eb;color:white}.showcase{background:#fff}.showcase a{color:#2563eb}

/* Les trois plans : symbole ouvert et motif architectural. */
.brand .mark{width:42px;height:42px}.logo{width:32px;height:32px}.brand{letter-spacing:-.6px}.project-mark img{display:block;width:min(100%,280px);height:auto;margin:auto}.brand-bottom .dot{display:none}.mock-logo img{width:25px;height:25px}.footer-brand>span{display:none}
aside nav button{display:flex;align-items:center;gap:13px}aside nav button svg{width:20px;height:20px;flex-shrink:0}
.receipt-image{display:block;width:100%;height:auto;max-height:65vh;object-fit:contain;margin:20px 0}.receipt-pdf{width:100%;height:55vh;border:1px solid #e2e8f0;margin:20px 0}#receipt-form{max-width:750px}#receipt-preview{margin:15px 0}.receipt-confirm{display:flex;gap:12px;align-items:center;line-height:1.5;margin:22px 0}.receipt-confirm input{width:18px;height:18px;flex-shrink:0}#receipt-status{font-size:13px;margin:15px 0}#receipt-form>button{margin:8px 12px 12px 0}
.sales-filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:20px 0}.sales-filters>div{flex:1;min-width:140px}.sales-filters label{margin-top:0}.sales-filters input{padding:10px}.sales-filters button{margin-bottom:1px}
.finance-chart{margin:25px 0;padding:20px;border:1px solid #e2e8f0;border-radius:12px}.chart-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;margin:18px 0}.chart-legend span{padding-left:8px}.finance-bars{display:flex;gap:15px;height:190px;border-bottom:1px solid #e2e8f0;margin-bottom:20px}.finance-bar-group{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;text-align:center;gap:8px}.finance-bar-pair{height:155px;display:flex;align-items:flex-end;justify-content:center;gap:5px}.finance-bar{width:30%;max-width:45px;border-radius:4px 4px 0 0}.finance-bar-group small{font-size:10px;padding-bottom:8px}.finance-table-wrap{overflow:auto;margin:18px 0}.finance-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}.finance-table th{background:#f1f5f9;font-weight:600}.finance-table td,.finance-table th{padding:12px;border-bottom:1px solid #e2e8f0}#modules>.calendar-views{width:fit-content;flex-wrap:wrap}#modules>h3{margin-top:25px}
aside .brand{font-size:17px;white-space:nowrap}aside .brand small{font-size:10px}.calendar-event strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.confirmation-yes{background:#dcfce7!important;border-color:#15803d!important;color:#166534!important}.confirmation-no{background:#fee2e2!important;border-color:#dc2626!important;color:#991b1b!important}.confirmation-badge{display:inline-block;border-radius:20px;padding:6px 10px;font-size:12px;margin:8px 0;font-weight:600}.confirmation-badge.yes{background:#dcfce7;color:#166534}.confirmation-badge.no{background:#fee2e2;color:#991b1b}.message-preview{padding:20px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;margin:20px 0}.message-preview p{white-space:pre-wrap;font-size:14px;margin-top:12px}.reminder-actions{flex-wrap:wrap}.calendar-event .confirmation-caption{font-size:9px;font-weight:650}.client-card>button{margin:6px 6px 4px 0}.calendar-event:has(.confirmation-caption) span:not(.confirmation-caption){display:none}
.calendar-views{display:flex;gap:3px;padding:3px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc}.calendar-views button{font-size:12px;padding:8px 12px;border:0}.month-frame{overflow:auto;border:1px solid #e2e8f0;border-radius:12px;margin-top:16px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));min-width:780px}.month-weekday{text-align:center;padding:12px;background:#f8fafc;font-size:11px;text-transform:uppercase;color:#64748b;border-bottom:1px solid #e2e8f0}.month-cell{min-height:115px;padding:7px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;min-width:0}.month-cell:nth-child(7n){border-right:0}.month-cell.outside-month{background:#f8fafc;color:#94a3b8}.month-cell-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.month-day-number,.month-add,.month-more{border:0;background:none;color:inherit;padding:5px 7px;border-radius:5px;font-size:12px}.month-today .month-day-number{background:#2563eb;color:white}.month-add{color:#64748b;font-size:16px}.month-day-number:hover,.month-add:hover{background:#dbeafe;color:#1d4ed8}.month-event{width:100%;display:block;border:0;border-left:2px solid #2563eb;background:#dbeafe;color:#1e40af;border-radius:3px;margin:3px 0;padding:5px;font-size:10px;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.month-event.is-complete{background:#e2e8f0;color:#475569;border-color:#64748b}.month-more{font-size:10px;color:#2563eb}.calendar-toolbar input{font-size:11px;width:145px}
.calendar-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:20px 0 12px}.calendar-toolbar h3{margin:0;margin-right:auto}.calendar-controls{display:flex;gap:6px}.calendar-toolbar input{width:155px;padding:8px;font-size:12px}.calendar-help{font-size:12px;margin-bottom:16px}.calendar-frame{height:615px;overflow:auto;border:1px solid #e2e8f0;border-radius:12px;background:white;position:relative}.calendar-grid{min-width:840px;display:grid;grid-template-columns:65px repeat(7,minmax(105px,1fr));grid-template-rows:72px 1344px}.calendar-corner,.calendar-day-header{position:sticky;top:0;z-index:4;background:#fff;border-bottom:1px solid #e2e8f0;text-align:center;padding:12px;color:#64748b}.calendar-corner{font-size:10px;left:0;z-index:6;padding:28px 5px}.calendar-day-header{border-left:1px solid #eef2f7;display:flex;align-items:center;flex-direction:column;gap:7px}.calendar-day-header span{font-size:11px;text-transform:uppercase}.calendar-day-header strong{font-size:22px;font-weight:550;color:#111827}.calendar-day-header.is-today strong{background:#2563eb;color:white;border-radius:50%;width:33px;height:33px;display:grid;place-items:center;margin-top:-4px}.calendar-hours{position:sticky;left:0;z-index:3;background:white;color:#64748b}.calendar-hours>div{height:56px;font-size:10px;text-align:right;padding:7px 10px 0 0;border-bottom:1px solid #f1f5f9}.calendar-day{position:relative;border-left:1px solid #e2e8f0}.calendar-slot{display:block;width:100%;height:56px;border:0;border-bottom:1px solid #e2e8f0;background:linear-gradient(to bottom,transparent 49%,#f4f6fa 49%,#f4f6fa 50%,transparent 50%);border-radius:0;padding:0}.calendar-slot:hover{background:#eff6ff}.calendar-slot:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.calendar-event{position:absolute;left:4px;right:4px;width:calc(100% - 8px);border:0;border-left:3px solid #2563eb;border-radius:5px;padding:5px 6px;text-align:left;background:#dbeafe;color:#1e40af;overflow:hidden;z-index:2}.calendar-event:hover{background:#bfdbfe}.calendar-event strong{display:block;font-size:11px;line-height:1.35}.calendar-event span{display:block;font-size:9px;margin-top:4px;line-height:1.3}.calendar-event.is-complete{background:#e2e8f0;color:#475569;border-color:#64748b}.calendar-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;color:#64748b;margin-top:14px}.calendar-legend span:first-child{color:#2563eb}@media(max-width:700px){.calendar-frame{height:540px}.calendar-toolbar h3{width:100%;font-size:15px}.calendar-toolbar{gap:10px}.calendar-toolbar .secondary{font-size:12px;padding:9px}.calendar-help{line-height:1.7}aside nav button{gap:8px}aside nav button svg{width:18px;height:18px}}

/* Daily home */
.home-head{margin-top:0;flex-wrap:wrap;gap:12px}.home-stats{margin:22px 0}.home-stats .stat small{display:block;margin-top:10px;line-height:1.5;color:#64748b}.home-actions{margin:24px 0}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.home-panel{padding:24px;border:1px solid #dce5f2;border-radius:18px;background:#fff;min-width:0}.home-panel h3{margin:0 0 18px}.home-row{display:flex;justify-content:space-between;gap:18px;padding:17px 0;border-top:1px solid #edf1f7}.home-row p{margin:7px 0;color:#64748b}.home-time{color:#2563eb;padding-top:4px}.home-link{border:0;background:transparent;color:#183963;font-weight:700;text-align:left;padding:0;cursor:pointer;font-size:15px}.home-link:hover{text-decoration:underline}.home-empty{color:#64748b;line-height:1.7;padding:14px 0}.home-feed{margin-top:22px}.home-timeline{list-style:none;margin:0;padding:0}.home-timeline li{display:flex;gap:20px;border-left:2px solid #dbeafe;padding:14px 0 14px 20px;line-height:1.5}.home-timeline time{color:#2563eb;font-weight:600;flex-shrink:0}@media(max-width:1000px){.home-grid{grid-template-columns:1fr}.home-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.home-stats{grid-template-columns:1fr}.home-panel{padding:18px}}

/* A warmer workspace: cream, eucalyptus and apricot. */
body:has(.shell){background:#f7f6f2;color:#283f3b}
.shell{grid-template-columns:238px minmax(0,1fr)}
.shell aside{background:#eeefe7;color:#314a44;padding:30px 20px;gap:26px;border-right:1px solid #e0e4da}
.shell aside .brand{font-size:17px;letter-spacing:-.7px}.shell .brand small{color:#687b70;letter-spacing:1px;font-size:10px;margin-top:12px}.shell .logo img{filter:brightness(0) saturate(100%) invert(28%) sepia(16%) saturate(1257%) hue-rotate(113deg) brightness(93%) contrast(88%)}
.shell nav{gap:5px}.shell aside nav button{color:#52665f;padding:11px 13px;border-radius:13px;font-size:13px;line-height:1.4;transition:background .15s,color .15s}.shell aside nav button svg{width:19px;height:19px}.shell aside nav button:hover{background:#e0e6d9;color:#254c40}.shell aside nav button.active,.shell aside nav button.active:hover{background:#315e50;color:#fff;box-shadow:0 4px 12px #315e5015}
.shell aside footer{color:#687b70;font-size:11px}.shell aside footer a{color:#315e50!important}
.shell main{padding:28px 34px;max-width:1550px}.shell header{border-bottom:0;padding-bottom:18px;color:#718078;font-size:12px}.shell header .tag{background:#e9eee3;color:#526a52}
.shell .hero{position:relative;isolation:isolate;overflow:hidden;padding:30px 32px;margin:0 0 26px;border:1px solid #e9e8dd;border-radius:26px;background:linear-gradient(110deg,#e8eee2 0%,#f0f0e4 60%,#f8e7d7 100%);min-height:155px}.shell .hero:after{content:'';position:absolute;z-index:-1;width:190px;height:190px;border:28px solid #ffffff38;border-radius:50%;right:-35px;top:-72px}.shell .hero h1{font-size:clamp(27px,3vw,38px);font-weight:650;letter-spacing:-1.3px;line-height:1.18;margin:9px 0 12px;color:#29493d}.shell .hero p{margin:0;color:#5b7063;max-width:590px;font-size:14px}.shell .eyebrow{color:#657b62;letter-spacing:1.5px;font-size:10px}.shell h2,.shell h3{color:#304c41;letter-spacing:-.45px}.shell h2{font-size:21px}.shell p{color:#63756b}
.shell .board{border:0;background:transparent;padding:0}.shell .stat,.shell .card,.shell .client-card,.shell .home-panel,.shell .roadmap{border:1px solid #e5e8df;border-radius:20px;box-shadow:0 3px 15px #283f3b03;background:#fffefa}.shell .stat{padding:23px}.shell .stat span{color:#536c60;font-size:12px}.shell .stat strong{color:#294b3e;font-size:29px;font-weight:650;letter-spacing:-1px}.shell .stat small{color:#65796b;line-height:1.5}.shell .home-stats{gap:14px}.shell .home-stats .stat:nth-child(1){background:#e8efdf;border-color:#e2e9d9}.shell .home-stats .stat:nth-child(2){background:#f8e9d9;border-color:#f0e1d1}.shell .home-stats .stat:nth-child(3){background:#e7eeeb;border-color:#dce6df}.shell .home-stats .stat:nth-child(4){background:#eeeaf4;border-color:#e5e0ec}.shell .home-head .tag{background:#eeeee5;color:#586d5c}.shell .home-panel{padding:26px}.shell .home-grid{gap:20px}.shell .home-panel h3{font-size:17px;margin-bottom:16px}.shell .home-empty{padding:12px 0 20px;line-height:1.8;max-width:440px}.shell .home-row{border-color:#ebeee6}.shell .home-time,.shell .home-link,.shell .home-timeline time{color:#315e50}.shell .home-timeline li{border-color:#d3dfce}.shell .home-feed{margin-top:20px}.shell .home-actions{justify-content:flex-start;margin:22px 0 26px}
.shell .primary,dialog .primary{background:#315e50;border:1px solid transparent;border-radius:12px;box-shadow:0 3px 8px #315e5010;padding:12px 17px;transition:background .15s}.shell .primary:hover,dialog .primary:hover{background:#244c40}.shell .secondary,dialog .secondary{background:#fffefa;color:#3e5a4c;border-color:#dfe5d9;border-radius:12px;padding:11px 15px}.shell .secondary:hover,dialog .secondary:hover{background:#f0f3ea;border-color:#bdcdb8}.shell .tag{background:#edf1e7;color:#4d6c4e}.shell .notice{background:#edf1e6;color:#53684d;border-radius:14px;padding:16px 19px;line-height:1.8}.shell .avatar{background:#edf1e5;color:#41644c;border-radius:16px}.shell .column{background:#eeefe8;border-radius:17px}.shell .task{border-color:#e4e8df;border-radius:14px}.shell .cardfoot button{color:#315e50}
.shell input,.shell select,.shell textarea,dialog input,dialog select,dialog textarea{border-color:#d9e1d4;background:#fffefa;border-radius:11px;color:#30473b;padding:12px}.shell input:focus,.shell select:focus,.shell textarea:focus,dialog input:focus,dialog select:focus,dialog textarea:focus{outline:2px solid #82a28a;outline-offset:2px}.shell button:focus-visible,.shell a:focus-visible{outline:3px solid #71977c;outline-offset:3px}dialog{border-color:#e1e6dc;background:#fffefa;border-radius:24px;color:#30473b;box-shadow:0 25px 100px #233e382b}dialog::backdrop{background:#243b3655;backdrop-filter:blur(3px)}
.shell .calendar-views{background:#eaece4;border-color:#e1e5db;border-radius:13px}.shell .calendar-views .secondary{background:transparent;border:0}.shell .calendar-frame,.shell .month-frame{border-color:#dfe5d9;border-radius:18px}.shell .calendar-day-header.is-today strong,.shell .month-today .month-day-number{background:#315e50}.shell .calendar-event,.shell .month-event{background:#e3ecdc;color:#315e50;border-left-color:#66875c;border-radius:7px}.shell .calendar-event:hover{background:#d6e5cc}.shell .calendar-slot:hover{background:#eff4e8}.shell .calendar-legend span:first-child{color:#315e50}.shell .finance-chart{background:#fffefa;border-color:#e1e6da;border-radius:18px}.shell .finance-table th{background:#eaf0e4;color:#3c5746}.shell .finance-table td,.shell .finance-table th{border-color:#e5eadd;padding:14px}.shell .bottom{color:#718272;margin-top:30px}
@media(min-width:1200px){.shell .home-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.shell .home-grid{grid-template-columns:1.15fr 1fr}}
@media(max-width:1050px){.shell{grid-template-columns:205px minmax(0,1fr)}.shell main{padding:24px}.shell aside{padding:27px 16px}.shell aside .brand{font-size:15px}.shell .hero{padding:26px}.shell .home-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.shell{display:block}.shell aside{padding:18px;border-right:0;border-bottom:1px solid #dce2d3;gap:18px}.shell nav{gap:6px}.shell aside nav button{flex-shrink:0;padding:10px 13px}.shell main{padding:20px 16px}.shell .hero{padding:25px 22px;border-radius:22px;min-height:0}.shell .home-panel{padding:21px}.shell .home-stats{gap:10px}.shell .stat{padding:17px}.shell .stat strong{font-size:25px}.shell header{gap:10px;flex-wrap:wrap}.shell .home-grid{grid-template-columns:1fr}.shell .home-actions{flex-wrap:wrap}.shell .home-actions button{flex:1;white-space:nowrap}.shell .home-head{align-items:flex-start;gap:13px}.shell .home-head .tag{font-size:11px}}
@media(prefers-reduced-motion:reduce){.shell *{transition:none!important}}

.followup-procedure{margin:24px 0}.followup-procedure summary, .home-panel details summary{cursor:pointer;font-weight:600;color:#315e50}.followup-procedure ol{padding-left:22px;line-height:1.9;color:#536c60}.followup-procedure li{margin:10px 0}.followup-actions{justify-content:flex-start;flex-wrap:wrap;margin-bottom:20px}.home-panel details p{white-space:pre-wrap;border-top:1px solid #e3e8dc;padding-top:12px;font-size:13px}

.shell .nav-group{border:0;padding:0;margin:2px 0}.shell .nav-group summary{cursor:pointer;padding:12px 13px;color:#52665f;font-size:13px;list-style:revert}.shell .nav-group>button{width:100%;padding-left:22px}.shell .nav-group:has(button.active)>summary{color:#315e50;font-weight:700}.next-actions{margin:0 0 22px}.next-actions .actions{justify-content:flex-start;flex-wrap:wrap;margin:10px 0 0}.dossier-contact,.dossier-section{margin:22px 0}.dossier-section .client-card{margin-top:14px}.dossier-contact p{white-space:pre-wrap}@media(max-width:700px){.shell .nav-group{flex-shrink:0}.shell .nav-group[open]{min-width:170px}.shell .nav-group summary{white-space:nowrap}}

.billing-form{max-width:780px}.billing-form>button{margin-top:20px}#print-document p{white-space:pre-wrap}@media print{#print-document{font-size:11pt}#print-document h1{font-size:26pt}#print-document table{white-space:normal}#print-document p{color:#111;line-height:1.45}#print-document h2{margin-top:18px;color:#111}.shell{display:none!important}}

.salon-presets{justify-content:flex-start;flex-wrap:wrap}.salon-today{margin-bottom:22px;background:#f8ece6!important}.salon-today .actions{justify-content:flex-start;flex-wrap:wrap}.salon-today p{margin:12px 0}

.nail-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-top:20px}.nail-gallery img{display:block;width:100%;height:180px;object-fit:cover;border-radius:16px}.nail-gallery article{min-width:0}.nail-gallery p{font-size:12px}

.shell main{align-self:start;margin:0 auto}

.stock-nav-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:auto;border-radius:20px;background:#b94e39;color:white;font-size:11px;font-weight:700}.stock-nav-badge[hidden]{display:none}.stock-alert-banner{border:1px solid #e7c4b9;border-radius:18px;background:#fff0e8;padding:22px;margin:22px 0;color:#833f30}.stock-alert-banner p{color:#833f30}.stock-alert-banner button{margin:5px 10px 0 0}.stock-state{display:inline-block;font-size:12px;padding:6px 11px;border-radius:20px;margin-bottom:16px;font-weight:600}.stock-state.out{background:#fbe3df;color:#922f2b}.stock-state.low{background:#fff0cc;color:#78551b}.stock-state.ok{background:#e7efdd;color:#416445}.stock-product>strong{font-size:22px;color:#315e50}.stock-actions{justify-content:flex-start;flex-wrap:wrap}.stock-reorder{font-weight:650}.stock-dialog{width:min(1000px,96vw);max-height:90vh;overflow:auto}

/* Secondary navigation appears above the page content. */
.shell aside .nav-section-button{font:inherit;font-size:13px;cursor:pointer;width:100%;border:0;text-align:left;background:transparent}.shell aside .nav-section-button.active{background:#315e50;color:#fff}.section-subnav{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:4px 0 22px;padding:12px 16px;background:#fffefa;border:1px solid #e0e6da;border-radius:17px}.section-subnav-title{font-size:12px;font-weight:700;color:#627663;padding:0 4px}.section-tabs{display:flex;flex-wrap:wrap;gap:7px}.section-tab{background:transparent;border:0;color:#52665f;padding:10px 15px;border-radius:11px;font-size:13px;cursor:pointer}.section-tab:hover{background:#edf1e6}.section-tab.active{background:#315e50;color:white}.section-tab:focus-visible{outline:3px solid #71977c;outline-offset:3px}@media(max-width:700px){.section-subnav{gap:10px;padding:12px}.section-subnav-title{width:100%}.section-tabs{flex-wrap:nowrap;width:100%;overflow-x:auto;padding-bottom:3px}.section-tab{white-space:nowrap;flex-shrink:0}.shell aside .nav-section-button{width:auto}}

.appointment-services{padding:18px;border:1px solid #dfe6d8;border-radius:15px;background:#f2f5ed;margin:22px 0}.appointment-services h3{margin-bottom:15px}.appointment-services>button{margin-top:12px}.appointment-service-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:13px;font-size:13px}.appointment-service-row button{font-size:12px}.appointment-service-total{font-weight:650;color:#315e50!important}.hours-form{max-width:900px}.hours-row{border:1px solid #dfe6d8;border-radius:16px;padding:18px;margin:16px 0;background:#fffefa}.hours-row legend{font-weight:650;color:#315e50;padding:0 8px}.hours-row>.receipt-confirm{margin:0 0 10px}.hours-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.hours-pair label{font-size:12px}.hours-pair input{grid-row:2}.calendar-slot.is-closed{background:repeating-linear-gradient(135deg,#f0f0eb,#f0f0eb 5px,#e8eae3 5px,#e8eae3 6px);opacity:.7}.calendar-slot.is-closed:hover{opacity:1}@media(max-width:540px){.appointment-service-row{align-items:flex-start}.hours-row{padding:12px}.hours-pair{gap:8px}}

.message-body{white-space:pre-wrap;line-height:1.8}fieldset{border:1px solid #dfe6d8;border-radius:14px;margin:20px 0;padding:14px}fieldset>.receipt-confirm{margin:12px 0}


.mobile-dock,.mobile-top{display:none}
@media screen and (max-width:700px){
 html,body{max-width:100%;overflow-x:clip}.shell{display:block}.shell aside{display:none}.shell main{padding:0 16px calc(100px + env(safe-area-inset-bottom));min-width:0}
 .mobile-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;color:#315e50}.mobile-top strong{font-size:17px}.mobile-top button{border:1px solid #dce4d8;background:#fffefa;border-radius:20px;padding:10px 12px;font-size:12px;min-height:44px}
 .shell header{padding:4px 0 14px;font-size:11px}.shell .hero{padding:22px 20px;margin:14px 0 20px;border-radius:24px}.shell .hero h1{font-size:29px;line-height:1.12;letter-spacing:-1px}.shell .hero p{font-size:13px;line-height:1.6}.shell .hero .eyebrow{font-size:10px}
 .mobile-dock{position:fixed;bottom:0;left:0;right:0;z-index:80;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:#fffefa;box-shadow:0 -5px 25px #284a3710;border-top:1px solid #dfe6d8}
 .mobile-dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:52px;padding:6px 2px;border:0;border-radius:15px;background:transparent;color:#6b7d70;font-size:10px}.mobile-dock button span:first-child{font-size:23px;line-height:24px}.mobile-dock button.active{background:#e6eede;color:#315e50;font-weight:700}
 .shell .client-grid,.shell .home-grid,.shell .form-grid,.shell .columns{grid-template-columns:minmax(0,1fr)!important}.shell .home-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shell .stat{padding:16px 13px}.shell .stat strong{font-size:23px}.shell .home-panel,.shell .client-card{padding:20px;border-radius:22px;min-width:0}
 .shell button,.shell input,.shell select{min-height:44px}.shell input,.shell select,.shell textarea{font-size:16px;max-width:100%;min-width:0}.shell .actions,.shell .toolbar,.shell .filters{flex-wrap:wrap;gap:9px}.shell .actions button{flex:1 1 auto}.shell .section-subnav{padding:10px;gap:8px;border-radius:16px}.shell .section-tabs{overflow-x:auto}.shell .section-tab{min-height:44px;padding:10px 13px}.shell .board{min-width:0}.shell .calendar-frame,.shell .month-frame{overflow:auto;max-width:100%}.shell .finance-table{display:block;overflow-x:auto;max-width:100%}.shell .bottom{margin-bottom:18px}
 dialog{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);padding:20px;border-radius:24px;overflow:auto}.mobile-menu{width:calc(100vw - 24px);margin:auto auto calc(90px + env(safe-area-inset-bottom));background:#fffefa;border:1px solid #dce4d8}.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.mobile-menu-head h2{margin:0;color:#315e50}.mobile-menu-head button{min-height:44px}.mobile-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-menu-grid button{min-height:64px;text-align:left;background:#edf2e7;border:0;border-radius:17px;padding:16px;color:#315e50;font-weight:600}.mobile-menu::backdrop{background:#243b3666;backdrop-filter:blur(4px)}
}

.invoice-line{background:#f6f8f0}.invoice-line-grid{display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,1fr) minmax(100px,1fr) minmax(120px,1fr);gap:12px;align-items:center}.invoice-line-grid label{margin:0}.invoice-line-grid input,.invoice-line-grid select{min-width:0}.invoice-totals{padding:20px;background:#e8efdf;border-radius:16px;font-weight:700;margin:20px 0;color:#315e50}.invoice-preview-dialog{width:min(1100px,96vw)}.invoice-preview{background:white;padding:25px;color:#1f332c}.invoice-preview table{white-space:normal}.invoice-preview td{overflow-wrap:anywhere}.invoice-preview p{white-space:pre-wrap}.invoice-preview-dialog>.actions{position:sticky;bottom:0;background:#fffefa;padding:15px;margin:0}.invoice-document-number{font-weight:700}
@media(max-width:700px){.invoice-line-grid{grid-template-columns:minmax(85px,.8fr) minmax(110px,1.2fr);gap:10px}.invoice-line{padding:12px}.invoice-preview{padding:10px}.invoice-preview-dialog{padding:12px}.invoice-preview .finance-table-wrap{overflow:auto}}
@media print{.mobile-dock,.mobile-top,dialog,#toast{display:none!important}#print-document{display:block!important;color:#111!important;overflow:visible!important;font-size:10pt}#print-document .finance-table-wrap{overflow:visible}#print-document table{width:100%;border-collapse:collapse;table-layout:auto;white-space:normal;font-size:9pt}#print-document th,#print-document td{padding:7px;border:1px solid #ddd;overflow-wrap:anywhere;vertical-align:top}#print-document thead{display:table-header-group}#print-document tr{break-inside:avoid}#print-document h1,#print-document h2{break-after:avoid}#print-document p{white-space:pre-wrap}@page{size:A4;margin:14mm}}

.invoice-running-number{display:none}@media print{.invoice-running-number{display:block;position:fixed;bottom:-9mm;right:0;font-size:8pt;color:#555}}

.invoice-editor-dialog{width:min(960px,96vw);max-height:90vh;overflow:auto}.invoice-line-grid input,.invoice-line-grid select{width:100%}@media(max-width:700px){.invoice-editor-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}}
/* 0.41 — mise en page des factures, devis et avoirs (aperçu, impression A4, mobile) */
.invoice-frame{display:block;width:100%;border:0;margin:0}.invoice-frame>tbody,.invoice-frame>tbody>tr,.invoice-frame>tbody>tr>td{display:block;width:auto;border:0;padding:0}.invoice-frame>tfoot{display:none}
.invoice-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap}.invoice-seller{flex:1 1 300px;min-width:0}.invoice-seller h2{margin:0 0 4px;font-size:1.05rem}.invoice-seller p{margin:2px 0}.invoice-title{text-align:right;flex:0 1 auto}.invoice-title h1{margin:0}.invoice-title p{margin:2px 0}
.invoice-parties{display:flex;gap:24px;margin:16px 0;flex-wrap:wrap}.invoice-buyer,.invoice-meta{flex:1 1 260px;min-width:0}.invoice-buyer h3{margin:0 0 4px;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.invoice-buyer p{margin:0 0 8px}
.invoice-meta dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0}.invoice-meta dt{font-weight:600}.invoice-meta dd{margin:0;overflow-wrap:anywhere}
.invoice-table-wrap{overflow-x:auto;max-width:100%}.finance-table .num,.invoice-lines-table td.num{text-align:right;white-space:nowrap}
.invoice-totals-block{margin:12px 0 0 auto;max-width:420px}.invoice-totals-block p{margin:3px 0;text-align:right}.invoice-grand-total{font-size:1.15rem;font-weight:700}.invoice-mentions{margin-top:14px;font-size:.92em}.invoice-mentions p{margin:4px 0}
.quote-status{display:flex;flex-direction:column;gap:4px;margin-top:8px}.client-billing{margin:10px 0;padding:8px 10px;border:1px solid rgba(0,0,0,.12);border-radius:10px}.client-billing summary{cursor:pointer;font-weight:600}
@media (max-width:600px){
 .invoice-preview{padding:12px!important}.invoice-title{text-align:left}.invoice-head{gap:8px}
 .invoice-preview .invoice-lines-table thead,.invoice-preview .invoice-statement-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .invoice-preview .invoice-lines-table,.invoice-preview .invoice-lines-table tbody,.invoice-preview .invoice-lines-table tr,.invoice-preview .invoice-lines-table td{display:block;width:auto!important;min-width:0!important}
 .invoice-preview .invoice-lines-table tr{border:1px solid #e3e3e8;border-radius:10px;padding:6px 10px;margin:0 0 8px}
 .invoice-preview .invoice-lines-table td{display:flex;justify-content:space-between;gap:12px;border:0!important;padding:3px 0!important;text-align:right;white-space:normal;overflow-wrap:normal;word-break:normal}
 .invoice-preview .invoice-lines-table td::before{content:attr(data-label);font-weight:600;text-align:left;color:#555}
 .invoice-preview .invoice-lines-table td:first-child{display:block;text-align:left;font-weight:600}.invoice-preview .invoice-lines-table td:first-child::before{content:none}
 .invoice-preview .invoice-table-wrap{overflow-x:visible}.invoice-totals-block{max-width:none}
}
@media print{
 @page{size:A4;margin:12mm 12mm 12mm 12mm}
 html,body{width:auto!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;display:block!important}
 body>#print-document,#print-document{position:static!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important;box-shadow:none!important;border:0!important;float:none!important;grid-column:auto!important}
 #print-document .invoice-frame{display:table!important;width:100%!important;border-collapse:collapse;table-layout:fixed}
 #print-document .invoice-frame>tbody{display:table-row-group}#print-document .invoice-frame>tbody>tr{display:table-row;break-inside:auto}#print-document .invoice-frame>tbody>tr>td{display:table-cell;border:0!important;padding:0!important}
 #print-document .invoice-frame>tfoot{display:table-footer-group}#print-document .invoice-frame>tfoot td{border:0!important;padding:4mm 0 0!important;text-align:right}
 #print-document .invoice-running-number{display:block!important;position:static!important;font-size:8pt;color:#555}
 #print-document .invoice-table-wrap{overflow:visible!important}#print-document .finance-table .num{white-space:nowrap}
 #print-document .invoice-head h1{font-size:20pt}#print-document .invoice-seller h2{margin-top:0}
 #print-document .invoice-lines-table td,#print-document .invoice-lines-table th{overflow-wrap:normal;word-break:normal;hyphens:auto}
 #print-document .invoice-lines-table td:first-child{overflow-wrap:anywhere}
 #print-document .invoice-totals-block,#print-document .invoice-mentions{break-inside:avoid}
}
@media(max-width:700px){.section-tabs{flex-wrap:wrap!important;overflow-x:visible!important}.section-tabs button{flex:1 1 auto;min-width:0;white-space:normal}}
@media print{#print-document .invoice-table-wrap{padding:0 1px 0 0;overflow:visible!important}#print-document .finance-table{width:100%!important;max-width:100%;box-sizing:border-box}}
