.outils-intro{padding-bottom:38px}
.outils-intro h1{max-width:940px;font-size:clamp(43px,6.5vw,76px)}
.outils-section{padding:24px 0 92px}
.outils-wrap{max-width:1120px}
.outils-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:24px}
.outils-heading h2{font-size:clamp(30px,4vw,46px);margin:7px 0 0}
.outils-heading>p{max-width:360px;margin:0;color:var(--muted);font-size:14px}

/* Onglets inspirés de la barre d'outils de la maquette */
.outil-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}
.outil-tab{position:relative;display:flex;min-width:0;min-height:144px;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:13px 8px 17px;border:0;background:transparent;color:var(--ink);cursor:pointer;transition:background-color .18s ease,color .18s ease}
.outil-tab::after{position:absolute;right:0;bottom:-1px;left:0;height:4px;background:var(--coral);content:"";transform:scaleX(0);transform-origin:center;transition:transform .18s ease}
.outil-tab:hover{background:#f8f3ee}
.outil-tab:focus-visible{z-index:1;outline:3px solid #cd5a3d66;outline-offset:-4px}
.outil-tab.is-selected::after{transform:scaleX(1)}
.outil-tab-number{color:var(--coral-dark);font-size:10px;font-weight:700;letter-spacing:.12em;line-height:1}
.outil-tab svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
.outil-tab-label{max-width:100%;font-size:14px;font-weight:600;line-height:1.2;text-align:center}
.outil-panels{padding-top:22px}
.outil-panel{min-height:185px;padding:25px 30px;background:var(--white);border:1px solid var(--line);border-radius:5px;animation:outil-panel-in .22s ease both}
.outil-panel[hidden]{display:none}
.outil-panel:focus-visible{outline:3px solid #cd5a3d55;outline-offset:3px}
.outil-panel h3{margin:12px 0 8px;font-size:clamp(25px,3vw,32px)}
.outil-panel p{max-width:760px;margin:0 0 17px;font-size:15px;line-height:1.7}
.outil-panel .btn{min-height:46px}
.outil-status{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;background:#e8eee7;color:#4e6952;font-size:11px;font-weight:700}
.outil-status-soon{background:#f1ece6;color:#72675d}
.checklist-app{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
.checklist-summary{margin-bottom:20px}
.checklist-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;font-size:13px}
.checklist-summary strong{font-size:14px}
.checklist-summary span{color:var(--coral-dark);font-weight:700}
.checklist-summary progress{display:block;width:100%;height:9px;overflow:hidden;border:0;border-radius:99px;background:#eee8e1;accent-color:var(--coral)}
.checklist-summary progress::-webkit-progress-bar{background:#eee8e1;border-radius:99px}
.checklist-summary progress::-webkit-progress-value{background:var(--coral);border-radius:99px;transition:width .2s ease}
.checklist-summary progress::-moz-progress-bar{background:var(--coral);border-radius:99px}
.checklist-add{padding:17px;background:#f8f5f1;border:1px solid var(--line);border-radius:4px}
.checklist-add-label{display:block;margin-bottom:9px;font-size:13px;font-weight:700}
.checklist-add-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,.6fr) auto;gap:9px}
.checklist-add input,.checklist-add select,.checklist-edit input{width:100%;min-height:45px;padding:9px 11px;border:1px solid #d9d0c7;border-radius:2px;background:#fffefa;color:var(--ink);font:inherit;font-size:13px}
.checklist-add input:focus-visible,.checklist-add select:focus-visible,.checklist-edit input:focus-visible{outline:3px solid #cd5a3d55;outline-offset:1px}
.checklist-add .btn{min-height:45px;font-size:10px}
.checklist-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;color:var(--muted);font-size:11px}
.checklist-tools{display:flex;align-items:center;gap:16px}
.checklist-download{min-height:38px;padding:0 13px;border:1px solid var(--coral);background:var(--coral);color:#fff;border-radius:3px;font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.checklist-download:hover{background:var(--coral-dark);border-color:var(--coral-dark)}
.checklist-download:focus-visible,.checklist-reset:focus-visible{outline:3px solid #cd5a3d55;outline-offset:3px}
.checklist-download-hint{margin:-6px 0 13px;font-size:11px}
.checklist-reset{padding:6px 0;border:0;background:transparent;color:var(--coral-dark);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.checklist-group{margin-top:10px;border:1px solid var(--line);background:#fffefa}
.checklist-group summary{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:54px;padding:12px 15px;cursor:pointer;list-style:none;font-size:14px;font-weight:700}
.checklist-group summary::-webkit-details-marker{display:none}
.checklist-group summary::after{content:"+";color:var(--coral-dark);font-size:20px;font-weight:400}
.checklist-group[open] summary::after{content:"−"}
.checklist-group summary:focus-visible{outline:3px solid #cd5a3d55;outline-offset:-3px}
.checklist-group-count{margin-left:auto;color:var(--muted);font-size:11px;font-weight:500;white-space:nowrap}
.checklist-task-list{margin:0;padding:0 15px 8px;list-style:none}
.checklist-task{display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:48px;border-top:1px solid #f0ebe5}
.checklist-task input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--coral);cursor:pointer}
.checklist-task-label{font-size:13px;line-height:1.4}
.checklist-task.is-complete .checklist-task-label{color:#88827b;text-decoration:line-through}
.checklist-action{padding:5px 2px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:11px;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.checklist-action:hover,.checklist-action:focus-visible{color:var(--coral-dark)}
.checklist-edit{display:flex;grid-column:2/-1;gap:7px;align-items:center}
.checklist-edit input{min-width:0;min-height:38px}
.checklist-empty{padding:15px;color:var(--muted);font-size:12px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.guest-app{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
.guest-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:20px}
.guest-stats>div{display:flex;min-height:70px;flex-direction:column;justify-content:center;gap:4px;padding:10px 12px;background:#f8f5f1;border:1px solid var(--line)}
.guest-stats span{color:var(--muted);font-size:10px;line-height:1.35}
.guest-stats strong{font-size:20px;font-weight:600}
.guest-form{padding:17px;background:#f8f5f1;border:1px solid var(--line);border-radius:4px}
.guest-form-title{display:block;margin-bottom:12px;font-size:14px}
.guest-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.guest-companions{display:grid;grid-template-columns:1fr 1fr;gap:5px 9px;min-width:0;margin:0;padding:5px 9px 8px;border:1px solid #d9d0c7}
.guest-companions legend{padding:0 4px;color:var(--ink);font-size:11px;font-weight:700}
.guest-companions label{font-size:10px}
.guest-companions input{min-height:35px;padding:5px 8px}
.guest-form-grid label,.guest-list-tools label{display:grid;gap:5px;color:var(--ink);font-size:11px;font-weight:700}
.guest-form-grid input,.guest-form-grid select,.guest-list-tools input,.guest-list-tools select{width:100%;min-width:0;min-height:42px;padding:8px 10px;border:1px solid #d9d0c7;border-radius:2px;background:#fffefa;color:var(--ink);font:inherit;font-size:12px;font-weight:400}
.guest-form-grid input:focus-visible,.guest-form-grid select:focus-visible,.guest-list-tools input:focus-visible,.guest-list-tools select:focus-visible{outline:3px solid #cd5a3d55;outline-offset:1px}
.guest-form-actions{display:flex;align-items:center;gap:14px;margin-top:12px}
.guest-form-actions .btn{min-height:42px;font-size:10px}
.guest-cancel{padding:6px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:11px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.guest-list-tools{display:grid;grid-template-columns:minmax(170px,1.3fr) repeat(3,minmax(120px,.8fr)) auto;align-items:end;gap:9px;margin:20px 0 12px}
.guest-search-label input{font-weight:400!important}
.guest-export-actions{display:flex;gap:7px}
.guest-export{min-height:40px;padding:0 11px;border:1px solid var(--coral);background:transparent;border-radius:2px;color:var(--coral-dark);font:inherit;font-size:10px;font-weight:700;white-space:nowrap;cursor:pointer}
.guest-export:hover{background:var(--coral);color:white}
.guest-export:focus-visible,.guest-row-action:focus-visible,.guest-cancel:focus-visible{outline:3px solid #cd5a3d55;outline-offset:2px}
.guest-table-wrap{overflow-x:auto;border:1px solid var(--line);background:#fffefa}
.guest-table{width:100%;border-collapse:collapse;text-align:left}
.guest-table th,.guest-table td{padding:10px 11px;border-bottom:1px solid #eee8e1;font-size:11px;vertical-align:middle}
.guest-table th{background:#f8f5f1;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em}
.guest-table tr:last-child td{border-bottom:0}
.guest-name-cell{font-weight:700;white-space:nowrap}
.guest-status-badge{display:inline-block;padding:4px 7px;background:#f1ece6;border-radius:20px;color:#72675d;font-size:10px;white-space:nowrap}
.guest-status-cell[data-status="Confirmée"] .guest-status-badge{background:#e8eee7;color:#4e6952}
.guest-status-cell[data-status="Absent"] .guest-status-badge{background:#f5e6e1;color:#8d4b3b}
.guest-status-cell[data-status="Invitation envoyée"] .guest-status-badge{background:#e8eef2;color:#4d6573}
.guest-actions-cell{white-space:nowrap}
.guest-row-action{padding:4px 5px;border:0;background:transparent;color:var(--coral-dark);font:inherit;font-size:10px;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.guest-empty{margin:14px 0 0;padding:14px;background:#f8f5f1;color:var(--muted);font-size:12px;text-align:center}
.guest-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;color:var(--muted);font-size:11px}
.guest-pagination>div{display:flex;align-items:center;gap:12px}
.guest-pagination button{min-height:34px;padding:0 11px;border:1px solid var(--line);background:#fffefa;color:var(--ink);font:inherit;font-size:11px;cursor:pointer}
.guest-pagination button:hover:not(:disabled){border-color:var(--coral);color:var(--coral-dark)}
.guest-pagination button:disabled{opacity:.45;cursor:not-allowed}
.guest-pagination button:focus-visible{outline:3px solid #cd5a3d55;outline-offset:2px}
.guest-local-note{margin:12px 0 0!important;font-size:10px!important}
.outils-note{margin:20px 0 0;color:var(--muted);font-size:13px}
.outils-cta{padding:47px 0;background:#efe6de}
.outils-cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:25px}
.outils-cta h2{font-size:clamp(30px,4vw,43px);margin:7px 0}
.outils-cta p{margin:0;max-width:600px}
.outils-cta .btn{flex:0 0 auto}
@keyframes outil-panel-in{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:760px){
  .outils-intro{padding:38px 0 25px}
  .outils-intro h1{font-size:clamp(39px,10.5vw,54px);margin:13px 0}
  .outils-intro p{font-size:15px}
  .outils-section{padding:18px 0 62px}
  .outils-heading{display:grid;gap:8px;margin-bottom:18px}
  .outils-heading>p{font-size:13px}
  .outil-tabs{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#d4c7bb transparent}
  .outil-tab{flex:0 0 116px;min-height:125px;scroll-snap-align:start;gap:6px;padding:11px 7px 15px}
  .outil-tab svg{width:36px;height:36px}
  .outil-tab-label{font-size:12px}
  .outil-panels{padding-top:15px}
  .outil-panel{min-height:0;padding:21px 18px}
  .outil-panel p{font-size:14px}
  .outil-panel .btn{width:100%;padding:0 10px;font-size:10px}
  .checklist-add{padding:13px}
  .checklist-add-row{grid-template-columns:1fr 1fr}
  .checklist-add-row input{grid-column:1/-1}
  .checklist-add-row .btn{grid-column:1/-1;width:100%}
  .checklist-toolbar{align-items:flex-start;flex-direction:column;gap:9px}
  .checklist-tools{flex-wrap:wrap;gap:12px}
  .checklist-task{grid-template-columns:20px minmax(0,1fr) auto;gap:8px;padding:5px 0}
  .checklist-task-label{font-size:12px}
  .checklist-task .checklist-action:last-child{grid-column:3}
  .checklist-edit{grid-column:2/-1;flex-wrap:wrap}
  .checklist-edit input{flex:1 1 100%}
  .guest-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .guest-stats>div:first-child{grid-column:1/-1}
  .guest-form{padding:13px}
  .guest-form-grid{grid-template-columns:1fr 1fr}
  .guest-form-grid label:first-child,.guest-phone-field,.guest-companions{grid-column:1/-1}
  .guest-form-actions .btn{width:auto;min-width:175px}
  .guest-list-tools{grid-template-columns:1fr 1fr}
  .guest-search-label{grid-column:1/-1}
  .guest-export-actions{grid-column:1/-1}
  .guest-export{flex:1}
  .guest-table{min-width:0}
  .guest-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .guest-table tbody tr{display:grid;grid-template-columns:1fr 1fr;padding:9px 10px;border-bottom:1px solid var(--line)}
  .guest-table tbody tr:last-child{border-bottom:0}
  .guest-table td{display:flex;justify-content:space-between;gap:8px;padding:5px 1px;border:0;font-size:11px;white-space:normal}
  .guest-table td::before{content:attr(data-label);color:var(--muted);font-size:10px}
  .guest-table .guest-name-cell{grid-column:1/-1;justify-content:flex-start;font-size:14px}
  .guest-table .guest-name-cell::before{display:none}
  .guest-table .guest-actions-cell{grid-column:1/-1;justify-content:flex-end;border-top:1px solid #eee8e1;margin-top:4px;padding-top:8px}
  .guest-table .guest-actions-cell::before{display:none}
  .guest-table .guest-status-cell{align-items:center}
  .guest-pagination{align-items:flex-start;flex-direction:column;gap:8px}
  .outils-cta{padding:36px 0}
  .outils-cta .wrap{display:grid}
  .outils-cta .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.outil-tab,.outil-tab::after{transition:none}.outil-panel{animation:none}}

@media print{
  @page{size:auto;margin:15mm}
  html,body{min-height:0!important;background:#fff!important}
  body *{visibility:hidden!important}
  .is-checklist-printing #outil-panel-04,.is-checklist-printing #outil-panel-04 *{visibility:visible!important}
  .is-checklist-printing #outil-panel-04{position:absolute!important;inset:0 auto auto 0!important;display:block!important;width:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;background:#fff!important;box-shadow:none!important;color:#222!important}
  .is-checklist-printing #outil-panel-04 h3{margin:9px 0;font-size:24pt}
  .is-checklist-printing #outil-panel-04>p{max-width:none;margin:0 0 14px;font-size:10pt}
  .is-checklist-printing .checklist-app{margin-top:12px;padding-top:12px}
  .is-checklist-printing .checklist-add,.is-checklist-printing .checklist-toolbar,.is-checklist-printing .checklist-download-hint,.is-checklist-printing .checklist-action{display:none!important}
  .is-checklist-printing .checklist-summary{margin-bottom:12px}
  .is-checklist-printing .checklist-group{break-inside:avoid;margin-top:7px;border-color:#bbb}
  .is-checklist-printing .checklist-group summary{min-height:0;padding:8px 10px;font-size:11pt}
  .is-checklist-printing .checklist-group summary::after{display:none}
  .is-checklist-printing .checklist-task-list{padding:0 10px 4px}
  .is-checklist-printing .checklist-task{min-height:30px;grid-template-columns:16px minmax(0,1fr);gap:7px}
  .is-checklist-printing .checklist-task-label{font-size:9.5pt;color:#222!important;text-decoration:none!important}
  .is-checklist-printing .checklist-task input[type="checkbox"]{width:13px;height:13px;appearance:none;border:1px solid #555;border-radius:2px;background:#fff}
  .is-checklist-printing .checklist-task input[type="checkbox"]:checked{appearance:auto;accent-color:#555}
  .is-guest-printing #outil-panel-02,.is-guest-printing #outil-panel-02 *{visibility:visible!important}
  .is-guest-printing #outil-panel-02{position:absolute!important;inset:0 auto auto 0!important;display:block!important;width:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;background:#fff!important}
  .is-guest-printing #outil-panel-02>p{max-width:none;font-size:10pt}
  .is-guest-printing .guest-form,.is-guest-printing .guest-list-tools,.is-guest-printing .guest-actions-cell,.is-guest-printing .guest-local-note,.is-guest-printing .guest-pagination{display:none!important}
  .is-guest-printing .guest-stats{display:flex!important;flex-wrap:nowrap!important;gap:4px;margin:0 0 10px}
  .is-guest-printing .guest-stats>div{flex:1 1 0;min-width:0;min-height:38px;gap:1px;padding:4px 5px;white-space:nowrap}
  .is-guest-printing .guest-stats span{overflow:hidden;font-size:6pt;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
  .is-guest-printing .guest-stats strong{font-size:10pt;line-height:1.15}
  .is-guest-printing .guest-table-wrap{overflow:visible;border:0}
  .is-guest-printing .guest-table{display:table!important;width:100%;min-width:0;table-layout:fixed;border-collapse:collapse}
  .is-guest-printing .guest-table thead{position:static;width:auto;height:auto;overflow:visible;clip:auto;display:table-header-group!important}
  .is-guest-printing .guest-table tbody{display:table-row-group!important}
  .is-guest-printing .guest-table tbody tr{display:table-row!important;break-inside:avoid;border-bottom:1px solid #bbb}
  .is-guest-printing .guest-table th,.is-guest-printing .guest-table td{display:table-cell!important;padding:3px 4px;border:1px solid #bbb;font-size:7.5pt;line-height:1.15;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .is-guest-printing .guest-table th{background:#f2eee8!important;color:#222;font-size:7pt}
  .is-guest-printing .guest-table th:nth-child(1),.is-guest-printing .guest-table td:nth-child(1){width:20%}
  .is-guest-printing .guest-table th:nth-child(2),.is-guest-printing .guest-table td:nth-child(2){width:16%}
  .is-guest-printing .guest-table th:nth-child(3),.is-guest-printing .guest-table td:nth-child(3){width:13%}
  .is-guest-printing .guest-table th:nth-child(4),.is-guest-printing .guest-table td:nth-child(4){width:13%}
  .is-guest-printing .guest-table th:nth-child(5),.is-guest-printing .guest-table td:nth-child(5),.is-guest-printing .guest-table th:nth-child(6),.is-guest-printing .guest-table td:nth-child(6){width:8%;text-align:center}
  .is-guest-printing .guest-table th:nth-child(7),.is-guest-printing .guest-table td:nth-child(7){width:22%}
  .is-guest-printing .guest-table td::before{display:none!important;content:none!important}
  .is-guest-printing .guest-table .guest-name-cell{display:table-cell!important;grid-column:auto;justify-content:initial;white-space:normal;font-size:8pt}
  .is-guest-printing .guest-table .guest-name-cell::before{display:none!important}
  .is-guest-printing .guest-status-badge{padding:0;background:none!important;color:#222!important;font-size:8pt;white-space:normal}
}
