/* TOVELYA V5.2 — couche visuelle, aucun comportement métier. */
:root{--green:#087344;--green-dark:#064b32;--blue:#205fa8;--lavender:#7043a0;--amber:#ffdf87;--ink:#183d32;--muted:#486158;--background:#edf4eb;--border:#bdd6c5}
body{background:linear-gradient(135deg,#e5f2df 0%,#eef2fa 60%,#ede5f7 100%);color:var(--ink)}
.header{max-width:none;padding:22px max(24px,calc((100vw - 1200px)/2));background:#075837;color:#fff;border:0;box-shadow:0 5px 18px #064c3020}.brand strong,.brand small{color:#fff}.brand strong{font-size:1.6rem;letter-spacing:2.5px}.brand-mark{background:#d9f4b8;color:#075837;box-shadow:none;width:48px;height:50px}.brand-mark>span{color:#087344}.desktop-nav a[aria-current]{color:#e6ffc9;border-color:#cbed9d}.pro-link{border-color:#9cc8b0;background:#ffffff14;color:#fff}.patient-tools a{color:#fff}.header-notifications:has(.nav-unread){color:#503600;background:#ffdf87;border-color:#ffdf87}.header .brand small{opacity:.95}.demo-banner{background:#043d29}.demo-context{background:#e0eadf;border-color:#b4cdb8}.demo-context summary{color:#385347}#shared-connection{background:#e0eaf2;border:1px solid #c1d2df;color:#354e60}
main{max-width:1280px}.welcome{border-left:6px solid #13844d;padding:6px 0 6px 22px;margin:8px 0 30px}.welcome h1{font-size:clamp(1.9rem,3vw,2.8rem)}.welcome .eyebrow{letter-spacing:1.6px}.home-actions{gap:22px}.home-actions .featured{min-height:262px;padding:32px;background:#087344;border:0;box-shadow:0 10px 22px #07583722}.home-actions .priority-1{background:#205fa8;box-shadow:0 10px 22px #205fa824}.home-actions .featured .icon-tile{width:68px;height:68px;background:#ffffff22;border-color:#ffffff55;border-radius:20px;margin-bottom:22px}.home-actions .featured .icon{width:35px;height:35px}.home-actions .featured .card-arrow{width:40px;height:40px;display:grid;place-items:center;background:#ffffff1c;border-radius:50%}.home-actions .featured .card-arrow .icon{width:22px}.home-actions .featured h2{font-size:1.7rem;max-width:none;letter-spacing:-.6px}.home-actions .featured p{font-size:1rem;color:#fff;max-width:420px}.home-actions .action-card:nth-child(3){background:#ffe8ae;border-color:#dcba63}.home-actions .action-card:nth-child(4){background:#e5d5f4;border-color:#bda2d6}.home-actions .action-card:not(.featured){box-shadow:0 4px 12px #193c320b;min-height:128px}.home-actions .action-card:not(.featured) h2{font-size:1.14rem}.home-actions .action-card:not(.featured) p{color:#3f514c}.icon-tile.sand{background:#f6d778;color:#675014}.icon-tile.lavender{background:#cbb1e4;color:#4c2c76}.at-a-glance{background:#e1d3f1;border-color:#bca0d5}.at-a-glance h2{color:#533078}.panel{box-shadow:0 4px 14px #103b2b09}.panel:not(.pickup-card){border-color:#bfd3c5}.page-heading .eyebrow{color:#17653f}
.primary{background:#087344;box-shadow:0 3px 0 #055431}.button:focus-visible,.text-button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #b86d00;outline-offset:4px}.secondary{background:#f2f8ee;border-color:#a0bda9;color:#194c32}.secondary:hover{background:#e1efdb}.status{font-weight:750;font-size:.84rem;border-width:1px}.status-0{background:#d8efdd;border-color:#99c5a8;color:#205f39}.status-1{background:#d9eafa;border-color:#8db5dc;color:#194d84}.status-2{background:#e5d4f4;border-color:#b291d0;color:#59317e}.status-3{background:#117743;border-color:#117743;color:#fff}.status-5{background:#e3e9e5;border-color:#b7c5bd;color:#42574b}.status[data-kind=appointment].status-0{background:#ffedbc;color:#6a4910;border-color:#dabb66}.status[data-kind=appointment].status-1{background:#d3edda;color:#165b31;border-color:#95c6a4}.status[data-kind=appointment].status-2{background:#e0d1f3;color:#583280;border-color:#b498d0}
.timeline{gap:12px}.timeline li{padding-top:7px}.timeline li:nth-child(1){--step:#28834b;--step-light:#d8efdd}.timeline li>span{width:42px;height:42px;font-weight:750}.timeline li:before{top:28px}.timeline li.current>p{font-size:.92rem}.timeline li.current>span{box-shadow:0 0 0 5px var(--step-light)}.followup-card{border-top:4px solid #7043a0}.pharmacy-response{background:#e4f0e5;border-color:#338755}.unread-card,.unread-card .pharmacy-response{background:#fff0bf;border-color:#d7ad42}.unread-badge,.new-badge{background:#ffd15d!important;color:#503500!important;border-color:#c49b34}.nav-unread,.header-notifications .nav-unread{background:#ffdc71;color:#493300;border-color:#ac7d15;min-width:26px;min-height:26px;font-weight:850}.patient-detail:has(.unread-badge) .pharmacy-response{background:#ffe9a5;border-left-color:#c08d17}
.pickup-card{background:#d7efdb;border:2px solid #248451;box-shadow:0 8px 22px #0873441c;padding:30px}.pickup-card h2{color:#08572e;font-size:1.6rem}.pickup-card:before{content:'RETRAIT AU COMPTOIR';display:block;letter-spacing:1.7px;font-size:.72rem;font-weight:800;color:#176b3b;margin-bottom:12px}.pickup-qr{width:240px;padding:4px;border-radius:16px;border:1px solid #bad4c3;box-shadow:0 5px 14px #123b2314}.pickup-code{width:fit-content;max-width:100%;margin:20px auto!important;padding:12px 18px;border:1px dashed #43835a;border-radius:10px;background:#f6fff5;color:#154e2e;font-family:ui-monospace,monospace;letter-spacing:2px;font-size:1.6rem}
.pro-heading{padding:24px 28px;background:#d5e9db;border-radius:22px;border:1px solid #a4c7b1;margin-bottom:20px}.pro-heading h1{font-size:2.2rem}.pro-heading p{color:#285d40}.pro-tools{padding:18px 22px;background:#e6eee7;border:1px solid #bfd1c4;border-radius:18px;gap:16px}.pro-tools>a[href='#retrait']{background:#075837;color:#fff;min-height:54px}.stats-grid{gap:16px;margin:24px 0}.stats-grid .stat-filter{padding:24px!important;min-height:142px;box-shadow:0 5px 12px #143a2712;border:0;color:#fff;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.stats-grid .stat-filter:nth-child(1){background:#087344}.stats-grid .stat-filter:nth-child(2){background:#f2c85e;color:#503800}.stats-grid .stat-filter:nth-child(3){background:#7043a0}.stats-grid .stat-filter:nth-child(4){background:#205fa8}.stats-grid .stat-filter span{color:inherit!important;font-size:.93rem;font-weight:650}.stats-grid .stat-filter strong{font-size:2.8rem!important;line-height:1;color:inherit!important;margin-top:18px}.view-tabs{padding:7px;background:#dbe7dd;border-radius:15px;width:fit-content;max-width:100%;margin:20px 0}.view-tabs button{background:transparent;border-color:transparent;color:#385246;min-height:48px;padding:12px 20px}.view-tabs button[aria-pressed=true]{background:#075837;color:#fff;border-color:#075837;box-shadow:0 3px 8px #183f2920}.view-tabs button[data-pro-lane=progress][aria-pressed=true]{background:#7043a0;border-color:#7043a0}.view-tabs button[data-pro-lane=done][aria-pressed=true]{background:#52645a;border-color:#52645a}.dashboard{background:#edf3ee}.table-header{background:#dbe7df;color:#355342;font-weight:750}.request-row{border-left:5px solid #95b5a2!important;background:#fafff9;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1.1fr)}.request-row[data-kind=appointment]{border-left-color:#4b82b8!important}.request-row[data-kind=question]{border-left-color:#9468b6!important}.request-row[data-finished=true]{background:#eff2ef;border-left-color:#b3beb6!important;box-shadow:none}.request-row>div>strong:first-child{font-size:1.03rem}.request-row .type-label{font-weight:600}.assigned{background:#dfebdf;color:#28573a;padding:10px 12px;border-radius:9px;font-size:.84rem}.request-row[data-finished=true] .assigned{background:#e3e8e3;color:#4b5a50}.unseen-request,.staff-unread{background:#ffe9a4!important;border:1px solid #d6af40!important;border-left:7px solid #c68c0d!important}.urgent-queue:has(.queue-item){background:#ffe5a2;border-color:#cfaa41}.queue-item{background:#fff5d9;border:1px solid #e6c971}.new-badge:before{content:'●';font-size:.65rem;margin-right:7px}.request-row [data-take]{background:#087344;color:#fff;border-color:#087344;min-height:50px}.request-row select[data-status]{font-weight:700;border:2px solid #88ad99;background:#e8f4e9;padding:12px}.request-row select[data-state='1']{background:#e0edfa;border-color:#7ca7d1;color:#194e82}.request-row select[data-state='2']{background:#e8daf5;border-color:#ab87ca;color:#5d3582}.request-row select[data-state='3']{background:#d5efdc;border-color:#3d9660;color:#145831}.request-row select:disabled{background:#e7ece8;color:#526158;border-color:#b5c3ba;opacity:1}.work-actions .text-button{margin-right:16px}.response-link{min-height:48px}.request-row[data-finished=true] .response-link{background:#f6f8f5}
#appointment-form{border-top:6px solid #205fa8;background:#f4f8fe}#appointment-form h2{color:#20558e}#appointment-form .primary{background:#205fa8;box-shadow:0 3px 0 #153f74}#appointment-form #date,#appointment-form #slot{background:#e2edfc;border:2px solid #86a9d0;font-weight:650;min-height:54px}#slot-info,.appointment-slot{background:#dceafb;color:#254e7e;border-color:#94b5d9}.service-card{border-top:4px solid #5588bd;background:#e8f0fa}.mobile-nav{background:#f5fbf3;border-top:2px solid #a7c9b2}.mobile-nav a[aria-current]{background:#d9ecda;border-radius:12px;color:#0a5f36}.footer{border-color:#b8ccbe;color:#486052}
@media(min-width:1100px){body:has(.dashboard) main{max-width:1440px}}
@media(max-width:1000px){.header{padding:18px 24px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pro-tools{flex-wrap:wrap}}
@media(max-width:800px){.request-row{grid-template-columns:1fr}.table-header{display:none}.header{gap:12px}.stats-grid .stat-filter{padding:20px!important;min-height:128px}.pro-heading{padding:22px}.pro-tools{padding:16px}.timeline{gap:8px}.timeline li>p{font-size:.8rem}.home-actions .featured{padding:26px;min-height:240px}.home-actions .featured h2{font-size:1.45rem}.home-actions .featured .icon-tile{width:60px;height:60px}}
@media(max-width:600px){.timeline{gap:0}.timeline li{padding-top:0}.timeline li:before{top:0;left:20px}.timeline li>span{flex-shrink:0}.timeline li>p{font-size:.88rem;margin-left:5px}.view-tabs{width:100%}.view-tabs button{padding:12px;flex:1 1 100px}.pickup-card{padding:24px 16px}.pickup-card h2{font-size:1.35rem}.pro-heading h1{font-size:1.8rem}.request-row{padding:18px 14px}.header{padding:16px}.brand strong{font-size:1.35rem}.brand small{font-size:.68rem}.brand-mark{width:40px;height:44px}.pro-link{font-size:.75rem}.patient-tools{gap:12px}.patient-tools a{font-size:.8rem}.welcome{margin:0 0 22px;padding-left:16px}.welcome .eyebrow{font-size:.67rem}.home-actions .featured{min-height:224px;padding:26px}.home-actions .featured h2{font-size:1.5rem}.home-actions .featured .icon-tile{width:60px;height:60px;margin-bottom:18px}.home-actions .featured p{font-size:.9rem}.home-actions .action-card:not(.featured){padding:20px;min-height:122px}.home-actions .action-card:not(.featured) h2{font-size:1.05rem}.stats-grid{gap:10px}.stats-grid .stat-filter{padding:17px!important;min-height:130px}.stats-grid .stat-filter span{font-size:.83rem}.stats-grid .stat-filter strong{font-size:2.4rem!important}.pro-tools{align-items:stretch}.pro-tools>a{width:100%}.pro-tools label{min-width:0;width:100%}.pickup-code{font-size:1.35rem;padding:12px}#shared-connection{font-size:.72rem}.header-notifications:has(.nav-unread){padding:8px}main{padding-inline:16px}.page-heading h1{overflow-wrap:anywhere}.notification-list h2{overflow-wrap:anywhere}.button{white-space:normal}}
@media(prefers-reduced-motion:no-preference){.home-actions .featured:hover{transform:translateY(-3px);box-shadow:0 14px 25px #123f2d25}}
/* Finitions mobiles V5.2 : divulgation et espacement seulement. */
.connection-disclosure>summary{display:none}
@media(max-width:600px){
 .connection-disclosure{margin:8px 16px 0}
 .connection-disclosure>summary{display:flex;align-items:center;gap:7px;min-height:44px;padding:8px 0;font-size:.74rem;font-weight:500;color:var(--muted);list-style:none}
 .connection-disclosure>summary::-webkit-details-marker{display:none}
 .connection-disclosure>summary:after{content:'▾';font-size:.8rem}
 .connection-disclosure[open]>summary:after{content:'▴'}
 .connection-disclosure>summary:focus-visible{outline:3px solid #b86d00;outline-offset:3px;border-radius:6px}
 .connection-disclosure #shared-connection{margin:0 0 8px}
 main:has(.followup-card),main:has(.patient-detail){padding-top:18px}
 main:has(.followup-card) .page-heading{margin-bottom:16px}
 main:has(.followup-card) .view-tabs{margin:14px 0}
 .followup-list:has(.followup-card){gap:16px}
 .followup-card,.patient-detail{padding:16px}
 .followup-card .record-head{gap:10px}
 .followup-card .timeline,main:has(.patient-detail)>.timeline{margin-top:20px}
 .followup-card .timeline li,main:has(.patient-detail)>.timeline li{min-height:60px}
 .followup-card .timeline li>p,main:has(.patient-detail)>.timeline li>p{margin-bottom:12px}
 .followup-card .pharmacy-response,.patient-detail .pharmacy-response{padding:14px;margin-top:16px}
 main:has(.patient-detail)>.back{margin-bottom:16px}
 main:has(.patient-detail)>.stored-document{padding:16px;margin-bottom:16px}
 main:has(.patient-detail)>.stored-document h2{margin-bottom:14px}
 main:has(.patient-detail)>.stored-document p{margin-bottom:10px}
 main:has(.patient-detail)>.pickup-card{margin-top:16px;padding:20px 16px}
}
