:root{--blue:#087cf0;--red:#f4473a;--ink:#142238;--muted:#6d7988;--line:#e0e6ec}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Arial,sans-serif}a{color:inherit;text-decoration:none}.auth{min-height:100vh;padding:40px 18px;display:grid;place-items:center;background:#f2f6fb}.auth-card{width:min(610px,100%);padding:42px;border:1px solid var(--line);border-radius:24px;background:white;box-shadow:0 25px 70px #18345214}.auth-card.compact{width:min(480px,100%)}.brand{display:block;margin-bottom:28px;color:var(--blue);font:italic 30px Georgia}.brand span{color:var(--red);font-size:16px}.auth-card>small,.app main header small,.welcome small,.coming small{color:var(--red);font-size:10px;font-weight:800;letter-spacing:.13em}.auth-card h1{margin:10px 0;color:var(--blue);font:38px Georgia}.auth-card>p{color:var(--muted);font-size:14px;line-height:1.55}form{margin-top:25px;display:grid;grid-template-columns:1fr 1fr;gap:15px}label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700}input{width:100%;padding:13px;border:1px solid #d9e1e9;border-radius:9px;outline:0}input:focus{border-color:var(--blue)}fieldset{grid-column:1/-1;padding:0;border:0}legend{margin-bottom:9px;font-size:11px;font-weight:700}.choice{margin-bottom:8px;padding:12px;display:grid;grid-template-columns:20px 1fr;align-items:center;border:1px solid var(--line);border-radius:10px}.choice input{width:auto}.choice span{display:grid;grid-template-columns:1fr auto;gap:4px}.choice em{color:var(--blue);font-size:10px;font-style:normal}.choice small{grid-column:1/-1;color:var(--muted);font-weight:400}.choice.locked{padding-left:34px;background:#f6f7f8;color:#78828d}.submit{grid-column:1/-1;padding:15px;border:0;border-radius:10px;background:var(--red);color:white;font-weight:800}.error{padding:11px;border-radius:8px;background:#fff0ee;color:#b63e35;font-size:11px}.switch{text-align:center!important;font-size:11px!important}.switch a{color:var(--blue);font-weight:800}.app{min-height:100vh;display:grid;grid-template-columns:220px 1fr;background:#f2f5f8}.app aside{padding:27px 18px;display:flex;flex-direction:column;background:white;border-right:1px solid var(--line)}.app aside nav{display:grid;gap:6px}.app aside nav a{padding:12px;border-radius:8px;color:#677485;font-size:11px}.app aside nav .active{background:#eaf3ff;color:var(--blue);font-weight:800}.app aside nav .locked{opacity:.5}.app aside>a:last-child{margin-top:auto;color:#7b8692;font-size:10px}.app main{padding:40px;max-width:1100px;width:100%;margin:auto}.app main>header{display:flex;justify-content:space-between;align-items:center}.app main h1{margin:5px 0;color:var(--blue);font:35px Georgia}.plan-pill{padding:8px 12px;border-radius:16px;background:#eaf6ed;color:#3f8050;font-size:10px;font-weight:800}.welcome,.coming{margin-top:28px;padding:28px;display:flex;align-items:center;justify-content:space-between;border-radius:17px;background:var(--ink);color:white}.welcome h2,.coming h2{margin:8px 0;font:27px Georgia}.welcome p,.coming p{margin:0;color:#c7d0dc;font-size:12px}.welcome>b{font:38px Georgia;color:#75baff}.cards{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.cards article{padding:19px;display:grid;grid-template-columns:35px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;background:white}.cards article>span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eaf3ff;color:var(--blue);font-weight:800}.cards h3{margin:0 0 5px;font-size:13px}.cards p{margin:0;color:var(--muted);font-size:10px}.cards button{padding:8px 10px;border:0;border-radius:7px;background:var(--blue);color:white;font-size:9px;font-weight:800}.cards .disabled{opacity:.55}.coming{background:white;color:var(--ink);border:1px solid var(--line)}.coming p{color:var(--muted)}.coming>span{padding:9px 12px;border-radius:15px;background:#fff0e4;color:#a86427;font-size:9px;font-weight:800}@media(max-width:720px){.auth-card{padding:28px 20px}form{grid-template-columns:1fr}.auth-card h1{font-size:31px}.app{grid-template-columns:1fr}.app aside{display:none}.app main{padding:25px 16px}.cards{grid-template-columns:1fr}.welcome,.coming{align-items:flex-start;gap:18px}.coming{flex-direction:column}}
.brand{width:155px!important;height:78px!important;display:block!important;overflow:hidden!important;background:transparent url('https://heygarcon.fr/logo-hey-garcon.svg') center/contain no-repeat!important;font-size:0!important}.brand span{display:none!important}

.card-action{padding:9px 12px;border-radius:7px;background:var(--blue);color:#fff;font-size:9px;font-weight:800;text-align:center}.cards .disabled .card-action{background:#8693a1}.app aside nav a{transition:background .16s,color .16s,transform .16s}.app aside nav a:hover{background:#f0f6fd;color:var(--blue);transform:translateX(2px)}
#pwa-install{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:1000;width:min(350px,calc(100vw - 36px));padding:0;border:1px solid #ffffff35;border-radius:16px;background:#142238;color:#fff;box-shadow:0 18px 45px #14223852;overflow:hidden}.pwa-install-action{width:100%;padding:14px 48px 14px 16px;display:grid;grid-template-columns:42px 1fr;gap:2px 12px;align-items:center;border:0;background:transparent;color:#fff;text-align:left;cursor:pointer}.pwa-install-action>span{grid-row:1/3;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#ffffff14;font-size:22px}.pwa-install-action>b{font-size:13px}.pwa-install-action>small{color:#c6d0dd;font-size:9px;line-height:1.35}.pwa-install-close{position:absolute;top:8px;right:8px;width:32px;height:32px;padding:0;display:grid;place-items:center;border:1px solid #ffffff22;border-radius:9px;background:#ffffff10;color:#fff;font:24px/1 Arial;cursor:pointer}.pwa-install-close:hover{background:#ffffff24}.pwa-install-close:focus-visible,.pwa-install-action:focus-visible{outline:2px solid #75baff;outline-offset:-3px}
.dashboard-live{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.dashboard-live>a{padding:17px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:13px;background:#fff;transition:transform .16s,box-shadow .16s}.dashboard-live>a:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(24,52,82,.08)}.dashboard-live>a>span{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:#edf3f8;font-size:20px}.dashboard-live div{display:flex;align-items:baseline;gap:7px}.dashboard-live strong{font:27px Georgia;color:var(--blue)}.dashboard-live small{color:var(--muted);font-size:10px}.dashboard-live b{color:var(--blue);font-size:9px}.dashboard-live .has-new{border-color:#f2b9b4;background:#fff8f7}.dashboard-live .has-new>span{background:#ffe6e3}.dashboard-live .has-new strong{color:var(--red)}
@media(max-width:720px){.dashboard-live{grid-template-columns:1fr}.dashboard-live>a{grid-template-columns:42px 1fr}.dashboard-live b{grid-column:2}}

/* Authentification et diagnostic V34 */
.auth-card .single-form{grid-template-columns:1fr}.forgot-link{grid-column:1/-1;margin-top:-5px;color:var(--blue);font-size:10px;font-weight:800;text-align:right}.auth-action{display:inline-flex;margin-top:8px;padding:11px 14px;border-radius:9px;background:#eaf3ff;color:var(--blue);font-size:10px;font-weight:800}.error a{color:#873027;font-weight:900;text-decoration:underline}.health-summary{padding:25px 28px;display:flex;align-items:center;justify-content:space-between;border:1px solid #bee2c8;border-radius:17px;background:#effaf2}.health-summary.attention{border-color:#efd1a8;background:#fff8ea}.health-summary small{color:#3a7b4b;font-size:9px;font-weight:900;letter-spacing:.13em}.health-summary.attention small{color:#a36720}.health-summary h2{margin:7px 0;font:27px Georgia}.health-summary p{margin:0;color:var(--muted);font-size:11px}.health-summary>strong{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#48a663;color:#fff;font-size:20px}.health-summary.attention>strong{background:#d5963f}.health-checks{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.health-checks article{padding:18px;display:flex;align-items:flex-start;gap:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.health-checks article>span{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:9px;background:#e8f6ec;color:#347646;font-weight:900}.health-checks article.failed>span{background:#fff0e1;color:#a76522}.health-checks h3{margin:1px 0 5px;font-size:12px}.health-checks p{margin:0;color:var(--muted);font-size:9px;line-height:1.45}.health-help{margin-top:14px;padding:21px;border:1px solid var(--line);border-radius:13px;background:#fff}.health-help h2{margin:0 0 7px;font-size:15px}.health-help p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}.health-help code{padding:2px 5px;border-radius:4px;background:#eef3f7;color:#325675}
@media(max-width:720px){.health-checks{grid-template-columns:1fr}.health-summary{align-items:flex-start;gap:15px}.health-summary h2{font-size:23px}}

.subpage{min-height:100vh;background:#f2f5f8}.subpage-head{min-height:96px;padding:18px max(20px,calc((100vw - 1050px)/2));display:flex;align-items:center;gap:40px;background:#fff;border-bottom:1px solid var(--line)}.subpage-head>a{padding:10px 13px;border-radius:8px;background:#edf4fb;color:#32618f;font-size:10px;font-weight:800}.subpage-head small{color:var(--red);font-size:9px;font-weight:800;letter-spacing:.14em}.subpage-head h1{margin:5px 0 0;color:var(--blue);font:30px Georgia}.subpage-main{max-width:1050px;margin:26px auto;padding:0 18px}.success{margin-bottom:14px;padding:13px;border-radius:9px;background:#e8f6ec;color:#347646;font-size:11px;font-weight:700}.settings-card{padding:24px;display:grid;grid-template-columns:minmax(220px,.7fr) 1fr;gap:35px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(24,52,82,.05)}.settings-card h2{margin:0 0 7px;font-size:18px}.settings-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.settings-card form{margin:0;display:grid;grid-template-columns:1fr;gap:14px}.settings-card label{color:#405268}.primary-action{display:inline-flex;align-items:center;justify-content:center;padding:13px 17px;border:0;border-radius:9px;background:var(--blue);color:#fff;font-size:10px;font-weight:800}.current-logo{padding:14px;display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.current-logo img{width:120px;height:70px;object-fit:contain}.current-logo label{flex-direction:row;align-items:center;font-size:9px}.current-logo input{width:auto}

.table-add{margin-bottom:16px}.table-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.table-card{padding:16px;display:flex;gap:18px;align-items:center;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(24,52,82,.05)}.table-card.inactive{opacity:.58}.table-card>img{width:118px;height:118px;padding:7px;border:1px solid #e3e9ef;border-radius:10px;background:#fff}.table-card-body{flex:1;min-width:0}.table-card-body>small{color:#45a05c;font-size:8px;font-weight:800;letter-spacing:.1em}.table-card form{margin:7px 0 9px;display:grid;grid-template-columns:1fr;gap:8px}.table-card input{padding:10px;font-weight:800}.table-actions{display:flex;flex-wrap:wrap;gap:5px}.table-actions button{padding:7px 9px;border:0;border-radius:6px;background:#edf4fb;color:#2e5c8a;font-size:8px;font-weight:800}.open-menu{color:var(--blue);font-size:9px;font-weight:800}.empty-orders{min-height:400px;padding:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px solid var(--line);border-radius:18px;background:#fff}.empty-orders>span{width:60px;height:60px;display:grid;place-items:center;border-radius:18px;background:#eaf3ff;font-size:26px}.empty-orders h2{margin:18px 0 7px;font:27px Georgia;color:var(--blue)}.empty-orders p{margin:0 0 20px;color:var(--muted);font-size:12px}.empty-orders .primary-action{max-width:220px}

@media(max-width:760px){.subpage-head{gap:16px}.settings-card{grid-template-columns:1fr;gap:20px}.table-list{grid-template-columns:1fr}.table-card{align-items:flex-start}.table-card>img{width:92px;height:92px}}

.qr-print-area{width:132px;flex:0 0 132px;padding:9px 8px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #e1e8ef;border-radius:12px;background:#fff}.qr-print-area img.qr-code-image{width:112px;height:112px;display:block}.qr-print-area strong{margin-top:7px;color:var(--ink);font-size:13px}.qr-print-area small{margin-top:3px;color:var(--muted);font-size:6px}.qr-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.print-qr{padding:8px 10px;border:0;border-radius:7px;background:var(--blue);color:#fff;font-size:8px;font-weight:800;cursor:pointer}.qr-restaurant-brand{width:100%;min-height:29px;margin:0 0 7px;display:flex;align-items:center;justify-content:center}.qr-restaurant-brand img{width:auto!important;height:auto!important;max-width:92px!important;max-height:27px!important;object-fit:contain}.qr-restaurant-brand span{max-width:100%;color:#142238;font-size:8px;font-weight:900;line-height:1.1;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qr-download-choice[hidden]{display:none}.qr-download-choice{position:fixed;z-index:10000;inset:0;padding:20px;display:flex;align-items:center;justify-content:center;background:rgba(15,28,48,.62);backdrop-filter:blur(5px)}.qr-download-choice-card{width:min(430px,100%);padding:28px;border-radius:22px;background:#fff;box-shadow:0 28px 80px rgba(15,28,48,.28);display:grid;gap:12px;text-align:center}.qr-download-choice-card small{color:var(--coral);font-weight:900;letter-spacing:.15em}.qr-download-choice-card h2{margin:0;color:var(--ink);font-size:25px}.qr-download-choice-card p{margin:0 0 8px;color:var(--muted);font-size:14px}.qr-download-choice-card button{width:100%;min-height:48px;border-radius:11px;font-weight:900;cursor:pointer}.qr-only-choice{border:2px solid var(--blue);background:#fff;color:var(--blue)}.qr-choice-cancel{border:0;background:transparent;color:var(--muted)}
.table-toolbar{margin:0 0 16px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #cfe1f4;border-radius:13px;background:#eef6ff}.table-toolbar>div{display:flex;flex-direction:column;gap:3px}.table-toolbar strong{font-size:12px}.table-toolbar small{color:var(--muted);font-size:9px}.print-all-qr{padding:11px 15px;border:0;border-radius:9px;background:var(--blue);color:#fff;font-size:10px;font-weight:800;cursor:pointer;box-shadow:0 5px 14px rgba(8,124,240,.18)}
@media(max-width:760px){.qr-print-area{width:105px;flex-basis:105px}.qr-print-area img.qr-code-image{width:88px;height:88px}.qr-print-area strong{font-size:11px}.qr-restaurant-brand img{max-width:78px!important}}
#qr-print-root{display:none}
@media print{
  @page{size:A4 portrait;margin:12mm}
  body.printing-qr{margin:0!important;background:#fff!important}
  body.printing-qr>*:not(#qr-print-root){display:none!important}
  body.printing-qr #qr-print-root{display:block!important;width:100%!important}
  body.printing-qr .qr-print-sheet{width:100%!important;max-height:250mm!important;margin:0!important;overflow:hidden!important;background:#fff!important}
  body.printing-qr .qr-print-sheet+.qr-print-sheet{break-before:page!important;page-break-before:always!important}
  body.printing-qr .qr-print-single{height:245mm!important;padding:8mm 0 0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important}
  body.printing-qr .qr-print-area{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:flex!important;flex:0 0 auto!important;align-items:center!important;border:0!important;border-radius:0!important;background:#fff!important}
  body.printing-qr .qr-print-area img.qr-code-image{width:70mm!important;height:70mm!important;max-width:70mm!important;object-fit:contain!important}
  body.printing-qr .qr-print-area strong{margin-top:8mm!important;color:#142238!important;font-size:26pt!important;line-height:1.15!important}
  body.printing-qr .qr-print-area small{margin-top:3mm!important;color:#6d7988!important;font-size:11pt!important}
  body.printing-qr .qr-print-grid{min-height:235mm!important;padding:8mm 3mm!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:105mm!important;align-content:start!important;gap:10mm 8mm!important}
  body.printing-qr .qr-print-grid .qr-print-area{height:105mm!important;justify-content:flex-start!important}
  body.printing-qr .qr-print-grid .qr-print-area img.qr-code-image{width:52mm!important;height:52mm!important;max-width:52mm!important}
  body.printing-qr .qr-print-grid .qr-print-area strong{margin-top:4mm!important;font-size:19pt!important}
  body.printing-qr .qr-print-grid .qr-print-area small{margin-top:2mm!important;font-size:9pt!important}
}
.qr-print-area img.qr-code-image{width:112px!important;height:112px!important;max-width:112px!important;object-fit:contain!important}
.theme-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.theme-picker legend{grid-column:1/-1}.theme-choice{position:relative;padding:15px;display:flex!important;flex-direction:row!important;align-items:center;gap:10px;border:2px solid #e3e9ef;border-radius:14px;background:#fff;cursor:pointer}.theme-choice:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,124,240,.09)}.theme-choice input{width:auto}.theme-choice span{display:grid;grid-template-columns:34px 1fr;column-gap:10px;align-items:center}.theme-choice i{grid-row:1/3;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,#f7f4ef 50%,#f05750 50%);border:1px solid #dce3ea}.theme-choice b{font-size:11px}.theme-choice small{color:var(--muted);font-size:8px}.theme-choice.elegant i{background:linear-gradient(135deg,#101214 50%,#f05750 50%);border-color:#25282c}.theme-choice.modern i{background:linear-gradient(135deg,#ffffff 50%,#FF4D2E 50%);border-color:#0A0A0A}
@media(max-width:520px){.theme-picker{grid-template-columns:1fr}}
.restaurant-links-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.restaurant-links-fields label{min-width:0}.restaurant-links-fields label>small{margin-top:2px;color:var(--muted);font-size:8px;line-height:1.4}
@media(max-width:620px){.restaurant-links-fields{grid-template-columns:1fr}}

/* Commandes et demandes en direct V13 */
.live-page .subpage-main{max-width:1180px}.live-head{max-width:none}.live-head-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.live-head-actions>span{display:flex;align-items:center;gap:6px;color:#687789;font-size:9px;font-weight:700}.live-head-actions>span i{width:7px;height:7px;border-radius:50%;background:#3dad5b;box-shadow:0 0 0 4px #e5f6e9}.live-head-actions button,.live-head-actions>a{padding:9px 11px;border:1px solid #dce5ee;border-radius:8px;background:#fff;color:#38546f;font-size:9px;font-weight:800;cursor:pointer}.live-head-actions button.enabled{border-color:#b9dfc2;background:#eaf7ed;color:#347646}
.live-summary{margin-bottom:15px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.live-summary article{padding:15px 18px;display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.live-summary article>span{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#edf3f8;font-size:19px}.live-summary article div{display:flex;align-items:baseline;gap:7px}.live-summary strong{font:26px Georgia;color:var(--blue)}.live-summary small{color:var(--muted);font-size:10px}.live-summary .has-new{border-color:#f2b9b4;background:#fff8f7;box-shadow:0 7px 20px rgba(244,71,58,.08)}.live-summary .has-new>span{background:#ffe6e3}.live-summary .has-new strong{color:var(--red)}
.live-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:15px;align-items:start}.live-columns>section{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(24,52,82,.05)}.live-columns>section>header{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.live-columns header small{color:var(--red);font-size:8px;font-weight:800;letter-spacing:.12em}.live-columns h2{margin:5px 0 0;font-size:17px}.live-columns>section>header>b{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#eef5fc;color:var(--blue);font-size:10px}.live-card{padding:15px;border:1px solid #e0e8ef;border-radius:13px;background:#fff}.live-card.status-new{border-left:4px solid var(--red);box-shadow:0 6px 16px rgba(244,71,58,.07)}.live-card.status-accepted{border-left:4px solid #e3a743;background:#fffcf6}.live-card form{margin:0;display:block}.live-card form button{padding:9px 11px;border:0;border-radius:8px;background:var(--blue);color:#fff;font-size:8px;font-weight:800;cursor:pointer}.status-accepted form button{background:#2f9150}
@media(max-width:850px){.live-head{flex-wrap:wrap}.live-head-actions{width:100%;margin:0;flex-wrap:wrap}.live-columns{grid-template-columns:1fr}.live-summary{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.live-summary{grid-template-columns:1fr}.live-head-actions>span{width:100%;margin-bottom:3px}.live-head-actions button,.live-head-actions>a{flex:1;text-align:center}.live-page .subpage-main{padding:0 10px}.live-columns>section>header{padding:15px}.live-card{padding:13px}}


/* Administration responsive V23 */
.admin-user{padding:0;display:block;overflow:hidden}.admin-user-top{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid #e7edf2;background:linear-gradient(135deg,#fff,#f9fbfd)}.admin-user-identity{min-width:0}.admin-user-identity>div{min-width:0}.admin-user-identity h3,.admin-user-identity p,.admin-user-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-meta{padding:0;display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:7px;border:0}.admin-user-meta span,.admin-user-meta b,.admin-user-meta em{padding:6px 8px;border-radius:999px;background:#f0f4f7;color:#687789;font-size:8px;white-space:nowrap}.admin-user-meta b{background:#fff0ee;color:#b53e35}.admin-user-meta em{background:#eaf7ed;color:#428055}.admin-user .access-form{margin:0;padding:15px 20px 19px;display:grid;grid-template-columns:1.05fr 1.05fr 1fr 1fr;gap:11px;align-items:stretch;background:#fff}.access-control,.access-actions{min-width:0;padding:12px;display:grid;grid-template-rows:auto 44px auto;gap:7px;border:1px solid #e1e8ef;border-radius:11px;background:#f8fafc}.access-control>label:first-child,.access-actions>small{color:#536477;font-size:8px;font-weight:800}.access-control select,.access-control input[type=date]{width:100%;height:44px;margin:0;padding:0 11px;border:1px solid #d6e0e8;border-radius:8px;background:#fff;color:var(--ink);font-size:10px;outline:0}.access-control select:focus,.access-control input[type=date]:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,124,240,.08)}.access-control>small{align-self:end;color:#8a96a3;font-size:7px;line-height:1.25}.access-status .account-switch{height:44px;margin:0;padding:0 3px;display:flex!important;align-items:center;gap:9px}.access-status .account-switch span{flex:0 0 34px}.access-status .account-switch b{font-size:9px}.access-actions{grid-template-rows:auto 44px auto}.access-actions button{width:100%;height:44px;padding:0 14px;align-self:center;border:0;border-radius:8px;background:var(--blue);color:#fff;font-size:9px;font-weight:800;white-space:nowrap;cursor:pointer;box-shadow:0 6px 14px rgba(8,124,240,.18)}.access-actions::after{content:"Les changements sont immédiats";align-self:end;color:#8a96a3;font-size:7px}.admin-users>header input{height:42px}
@media(max-width:1100px){.admin-page .subpage-main{max-width:900px}.admin-user .access-form{grid-template-columns:1fr 1fr}.admin-user-top{align-items:flex-start}.admin-user-meta{max-width:45%}}
@media(max-width:700px){.admin-user-top{align-items:stretch;flex-direction:column}.admin-user-meta{max-width:none;justify-content:flex-start}.admin-user .access-form{padding:12px;grid-template-columns:1fr}.admin-summary{grid-template-columns:1fr}.admin-summary article{min-height:82px}.access-control,.access-actions{padding:11px}}

/* Administration des comptes V14 */
.admin-page .subpage-main{max-width:1180px}.admin-head .admin-logout{margin-left:auto;background:#fff0ee;color:#ae4139}.admin-summary{margin-bottom:15px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-summary article{padding:20px;display:grid;grid-template-columns:1fr auto;gap:5px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 7px 20px rgba(24,52,82,.05)}.admin-summary small{align-self:center;color:var(--red);font-size:8px;font-weight:800;letter-spacing:.12em}.admin-summary strong{grid-row:1/3;grid-column:2;font:34px Georgia;color:var(--blue)}.admin-summary span{color:var(--muted);font-size:9px}
.admin-users{overflow:hidden;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 8px 25px rgba(24,52,82,.05)}.admin-users>header{padding:20px 22px;display:flex;align-items:end;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line)}.admin-users header small{color:var(--red);font-size:8px;font-weight:800;letter-spacing:.12em}.admin-users h2{margin:5px 0 0;font-size:18px}.admin-users header label{width:min(280px,40%);color:var(--muted);font-size:9px}.admin-users header input{margin-top:6px;background:#f8fafc}.admin-user-list{padding:12px;display:grid;gap:10px}.admin-user{padding:16px;display:grid;grid-template-columns:minmax(220px,.75fr) 1.55fr;gap:15px;border:1px solid #e1e8ef;border-radius:14px;background:#fff}.admin-user[hidden]{display:none}.admin-user-identity{display:flex;align-items:center;gap:12px}.admin-user-identity>span{width:45px;height:45px;flex:0 0 45px;display:grid;place-items:center;border-radius:13px;background:#eaf3ff;color:var(--blue);font:22px Georgia}.admin-user-identity h3{margin:0 0 4px;font-size:13px}.admin-user-identity h3 em{margin-left:5px;padding:4px 6px;border-radius:999px;background:#15243a;color:#fff;font-size:6px;font-style:normal;letter-spacing:.08em}.admin-user-identity p{margin:0 0 5px;color:var(--muted);font-size:9px}.admin-user-identity strong{font-size:10px}.admin-user form{margin:0;display:grid;grid-template-columns:1fr 1fr 1.05fr auto;gap:9px;align-items:end}.admin-user form label{color:#536477;font-size:8px}.admin-user form select,.admin-user form input[type=date]{height:40px;padding:9px;border:1px solid #d9e2ea;border-radius:8px;background:#fff;font-size:9px}.admin-user form label>small{color:#9099a4;font-size:7px}.admin-user form>button{height:40px;padding:0 12px;border:0;border-radius:8px;background:var(--blue);color:#fff;font-size:8px;font-weight:800;white-space:nowrap;cursor:pointer}.account-switch{height:40px;display:grid!important;grid-template-columns:auto 1fr;align-content:center;column-gap:7px;cursor:pointer}.account-switch input{position:absolute;opacity:0;pointer-events:none}.account-switch span{grid-row:1/3;width:34px;height:19px;padding:2px;display:block;border-radius:999px;background:#c6cdd4;transition:background .18s}.account-switch span::after{content:"";width:15px;height:15px;display:block;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:transform .18s}.account-switch input:checked+span{background:#43a760}.account-switch input:checked+span::after{transform:translateX(15px)}.account-switch b{font-size:8px}.account-switch input:disabled+span{opacity:.6}.admin-user-meta{grid-column:1/-1;padding-top:9px;display:flex;gap:13px;border-top:1px solid #edf0f3;color:#84909d;font-size:8px}.admin-user-meta b{color:#b53e35}.admin-user-meta em{color:#428055;font-style:normal;font-weight:800}
@media(max-width:900px){.admin-user{grid-template-columns:1fr}.admin-user form{grid-template-columns:1fr 1fr}.admin-user form>button{grid-column:1/-1}.admin-user-meta{grid-column:1}.admin-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:600px){.admin-head{flex-wrap:wrap}.admin-head .admin-logout{margin-left:0}.admin-summary{grid-template-columns:1fr}.admin-users>header{align-items:stretch;flex-direction:column}.admin-users header label{width:100%}.admin-user form{grid-template-columns:1fr}.admin-user form>button{grid-column:1}.admin-user-list{padding:8px}.admin-user{padding:13px}}

/* Correctif final Administration V24 — priorité après les anciens styles */
.admin-page .subpage-main{max-width:1260px}.admin-users>header{padding:25px 28px}.admin-users h2{font-size:24px}.admin-users header small{font-size:10px}.admin-users header label{width:min(340px,42%);font-size:11px}.admin-users header input{height:48px;padding:0 15px;font-size:13px}.admin-user-list{padding:16px;gap:14px}.admin-user{padding:0;display:block;overflow:hidden;border-radius:16px;box-shadow:0 5px 18px rgba(24,52,82,.05)}.admin-user-top{padding:22px 25px;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid #dfe7ee;background:linear-gradient(135deg,#fff,#f6f9fc)}.admin-user-identity{display:flex;align-items:center;gap:15px;min-width:0}.admin-user-identity>span{width:58px;height:58px;flex:0 0 58px;border-radius:15px;font-size:27px}.admin-user-identity>div{min-width:0}.admin-user-identity h3{margin:0 0 5px;font-size:18px}.admin-user-identity h3 em{font-size:8px}.admin-user-identity p{margin:0 0 6px;font-size:12px}.admin-user-identity strong{font-size:13px}.admin-user-identity h3,.admin-user-identity p,.admin-user-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-meta{padding:0;display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;border:0}.admin-user-meta span,.admin-user-meta b,.admin-user-meta em{padding:8px 10px;border-radius:999px;background:#edf2f6;color:#586a7d;font-size:10px;white-space:nowrap}.admin-user-meta b{background:#fff0ee;color:#b53e35}.admin-user-meta em{background:#e7f6eb;color:#347849}.admin-user .access-form{margin:0;padding:20px 25px 25px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:stretch;background:#fff}.admin-user .access-control,.admin-user .access-actions{min-width:0;min-height:128px;padding:17px;display:grid;grid-template-rows:auto 50px auto;gap:9px;border:1px solid #dce5ed;border-radius:13px;background:#f7f9fb}.admin-user .access-control>label:first-child,.admin-user .access-actions>small{color:#3f5369;font-size:11px;font-weight:800}.admin-user .access-control select,.admin-user .access-control input[type=date]{width:100%;height:50px;margin:0;padding:0 14px;border:1px solid #cedae4;border-radius:9px;background:#fff;color:var(--ink);font-size:14px}.admin-user .access-control>small{align-self:end;color:#788696;font-size:10px;line-height:1.3}.admin-user .access-status .account-switch{height:50px;margin:0;padding:0 5px;display:flex!important;align-items:center;gap:12px}.admin-user .access-status .account-switch span{width:44px;height:24px;flex:0 0 44px;padding:3px}.admin-user .access-status .account-switch span::after{width:18px;height:18px}.admin-user .access-status .account-switch input:checked+span::after{transform:translateX(20px)}.admin-user .access-status .account-switch b{font-size:13px}.admin-user .access-actions{grid-template-rows:auto 50px auto}.admin-user .access-actions button{width:100%;height:50px;padding:0 16px;border:0;border-radius:9px;background:var(--blue);color:#fff;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 7px 16px rgba(8,124,240,.2)}.admin-user .access-actions::after{content:"Les changements sont immédiats";align-self:end;color:#788696;font-size:10px}.admin-summary article{min-height:105px}.admin-summary small{font-size:10px}.admin-summary span{font-size:11px}.admin-summary strong{font-size:38px}
@media(max-width:900px){.admin-page .subpage-main{max-width:760px}.admin-user-top{align-items:flex-start;flex-direction:column}.admin-user-meta{justify-content:flex-start}.admin-user .access-form{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.admin-user .access-form{padding:14px;grid-template-columns:1fr}.admin-user-top{padding:18px}.admin-users>header{padding:20px;align-items:stretch;flex-direction:column}.admin-users header label{width:100%}.admin-user-list{padding:9px}.admin-summary{grid-template-columns:1fr}.admin-user .access-control,.admin-user .access-actions{min-height:116px}}

/* Statut administrateur protégé V25 */
.admin-protected{height:50px;padding:0 12px;display:flex;align-items:center;gap:10px;border:1px solid #b9d7f3;border-radius:9px;background:#eaf4ff;color:#215f98}.admin-protected span{font-size:20px}.admin-protected b{font-size:12px;line-height:1.2}

/* Suppression sécurisée du compte restaurateur V26 */
.danger-card{margin-top:22px;padding:24px;display:grid;grid-template-columns:minmax(220px,.7fr) 1fr;gap:35px;border:1px solid #f0c2bd;border-radius:16px;background:#fff8f7;box-shadow:0 8px 24px rgba(174,55,45,.05)}.danger-card>div>small{color:#b83e34;font-size:9px;font-weight:900;letter-spacing:.13em}.danger-card h2{margin:8px 0 7px;color:#842e28;font-size:18px}.danger-card p{margin:0;color:#815e5b;font-size:11px;line-height:1.55}.danger-card form{margin:0;display:grid;grid-template-columns:1fr;gap:14px}.danger-card label{color:#694541}.danger-card label b{color:#a52f26}.danger-card input{background:#fff}.danger-action{padding:13px 17px;border:0;border-radius:9px;background:#c83d32;color:#fff;font-size:10px;font-weight:900;cursor:pointer}.danger-action:hover{background:#aa3028}.danger-card.protected{grid-template-columns:1fr;background:#f8fafc;border-color:#dce4eb}.danger-card.protected>div>small{color:#547089}.danger-card.protected h2{color:var(--ink)}.danger-card.protected p{color:var(--muted)}
@media(max-width:760px){.danger-card{grid-template-columns:1fr;gap:20px}}

/* Demandes prédéfinies V83 */
.request-preset-settings{margin-top:22px;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(24,52,82,.05)}.request-preset-settings>header small{color:var(--red);font-size:9px;font-weight:900;letter-spacing:.13em}.request-preset-settings h2{margin:7px 0;font-size:18px}.request-preset-settings>header p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.request-preset-settings>.success,.request-preset-settings>.error{margin-top:14px;margin-bottom:0}.request-preset-list{margin-top:17px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.request-preset-list article{min-height:64px;padding:10px 11px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #dfe7ee;border-radius:11px;background:#f8fafc}.request-preset-list article.hidden-preset{border-style:dashed;background:#f1f3f5;opacity:.72}.request-preset-list article>span{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:#eaf3ff;font-size:19px}.request-preset-list article>div{min-width:0;display:grid;gap:4px}.request-preset-list article strong{font-size:10px;line-height:1.35}.request-preset-list article small{color:#748496;font-size:7px;font-weight:800}.request-preset-list form{margin:0;display:block}.request-preset-list button{padding:7px 9px;border:0;border-radius:7px;font-size:7px;font-weight:900;cursor:pointer}.request-preset-list .toggle-preset{background:#eaf4ff;color:#176cba}.request-preset-list .delete-preset{background:#fff0ee;color:#b94238}.request-preset-add{margin-top:14px;padding:13px;display:grid;grid-template-columns:150px minmax(0,1fr) auto;align-items:end;gap:10px;border:1px solid #cfe1f2;border-radius:12px;background:#f2f8fe}.request-preset-add label{min-width:0}.request-preset-add input{background:#fff}.request-preset-add .primary-action{min-height:43px;white-space:nowrap;cursor:pointer}.request-icon-picker{position:relative}.request-icon-picker>summary{height:43px;padding:7px 11px;display:flex;align-items:center;gap:9px;border:1px solid #d7e1e9;border-radius:9px;background:#fff;color:#33495e;cursor:pointer;list-style:none}.request-icon-picker>summary::-webkit-details-marker{display:none}.request-icon-picker>summary span{font-size:21px}.request-icon-picker>summary b{font-size:9px}.request-icon-picker>div{position:absolute;z-index:20;left:0;top:49px;width:270px;padding:10px;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;border:1px solid #d4e1ec;border-radius:12px;background:#fff;box-shadow:0 14px 35px rgba(24,52,82,.18)}.request-icon-picker button{width:34px;height:34px;padding:0;display:grid;place-items:center;border:1px solid #e0e7ed;border-radius:8px;background:#f8fafc;font-size:18px;cursor:pointer}.request-icon-picker button:hover,.request-icon-picker button.selected{border-color:var(--blue);background:#eaf5ff}
@media(max-width:700px){.request-preset-list{grid-template-columns:1fr}.request-preset-add{grid-template-columns:1fr}.request-preset-add .primary-action{grid-column:1}.request-icon-picker>div{width:min(270px,calc(100vw - 70px))}}
.live-card form button.is-updating{opacity:.68;cursor:wait;box-shadow:none}

/* Fermeture des accès temporaires d'une table V27 */
.table-card .reset-access-form{margin:0 0 10px;display:block}.table-card .reset-access-form button{width:100%;padding:8px 10px;border:1px solid #efc9a8;border-radius:7px;background:#fff7ed;color:#9a551c;font-size:8px;font-weight:800;cursor:pointer}


/* Abonnements et Stripe V37 */
.billing-page .subpage-main{max-width:1180px}.billing-message{margin-bottom:16px;padding:15px 18px;border:1px solid #d6e2ec;border-radius:12px;background:#fff;color:#4f6174;font-size:12px}.billing-message.success{border-color:#b9dec3;background:#effaf2;color:#2d7041}.billing-message.warning{border-color:#f0cf9d;background:#fff8ec;color:#8a5a16}.billing-hero{margin-bottom:18px;padding:25px 28px;display:flex;align-items:center;justify-content:space-between;gap:25px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#fff,#f4f8fc);box-shadow:0 9px 26px rgba(24,52,82,.05)}.billing-hero small,.pricing-card>small,.billing-detail small{color:var(--red);font-size:9px;font-weight:900;letter-spacing:.12em}.billing-hero h2{margin:7px 0 6px;font:34px Georgia;color:var(--blue)}.billing-hero p{margin:0;color:var(--muted);font-size:12px}.subscription-state{padding:10px 13px;border-radius:999px;background:#fff0ee;color:#ad4138;font-size:10px;font-weight:900;white-space:nowrap}.subscription-state.active{background:#e6f7eb;color:#317849}.billing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.pricing-card{min-width:0;padding:25px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 9px 25px rgba(24,52,82,.05)}.pricing-card.featured{border:2px solid var(--blue);box-shadow:0 15px 35px rgba(8,124,240,.12)}.pricing-card h2{margin:9px 0 7px;font:29px Georgia;color:var(--blue)}.pricing-card h2 em{color:var(--muted);font:11px Arial;font-style:normal}.pricing-card p{min-height:36px;margin:0;color:var(--muted);font-size:11px;line-height:1.5}.pricing-card ul{margin:20px 0;padding:0;display:grid;gap:11px;list-style:none}.pricing-card li{position:relative;padding-left:19px;font-size:11px;line-height:1.35}.pricing-card li::before{content:"✓";position:absolute;left:0;color:#3a9253;font-weight:900}.pricing-card form{margin:auto 0 0}.pricing-card button,.current-plan{width:100%;margin-top:auto;padding:13px 14px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-size:11px;font-weight:900;text-align:center;cursor:pointer}.pricing-card button:disabled,.current-plan{display:block;background:#edf2f6;color:#627184;cursor:default}.billing-hint{margin-top:9px;color:#7e8b98;font-size:8px!important;letter-spacing:0!important;line-height:1.4;text-align:center}.billing-detail{margin-top:16px;padding:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border:1px solid var(--line);border-radius:15px;background:#fff}.billing-detail>div{padding:12px;border-radius:10px;background:#f6f9fb}.billing-detail strong{margin-top:7px;display:block;font-size:12px}.billing-detail small{color:#677b90}
@media(max-width:850px){.billing-grid{grid-template-columns:1fr}.pricing-card p{min-height:0}.billing-detail{grid-template-columns:1fr}.billing-hero{align-items:flex-start;flex-direction:column}}

/* Correctif bouton portail Stripe V37.3 */
.billing-page .pricing-card form{width:100%;margin:auto 0 0;display:block;grid-template-columns:none;gap:0}.billing-page .pricing-card form button{width:100%;min-height:52px;margin:0;padding:13px 16px;display:flex;align-items:center;justify-content:center;border-radius:11px;font-size:12px;line-height:1.25;white-space:nowrap;box-shadow:0 8px 18px rgba(8,124,240,.2)}.billing-page .pricing-card>.billing-hint{display:block;margin:11px 4px 0;color:#68798b!important;font-size:9px!important;font-weight:600;line-height:1.45;text-align:center}
@media(max-width:420px){.billing-page .pricing-card .billing-portal-form button{font-size:11px;white-space:normal}}

/* Zones de sécurité iPhone/iPad lorsque Hey Garçon est installé */
@supports (padding:env(safe-area-inset-top)){@media (display-mode:standalone){.subpage-head{height:auto;min-height:calc(96px + env(safe-area-inset-top));padding-top:calc(18px + env(safe-area-inset-top))}.app aside{padding-top:calc(27px + env(safe-area-inset-top));padding-bottom:calc(27px + env(safe-area-inset-bottom))}.app main{padding-top:calc(40px + env(safe-area-inset-top));padding-bottom:calc(40px + env(safe-area-inset-bottom))}.auth{padding-top:calc(40px + env(safe-area-inset-top));padding-bottom:calc(40px + env(safe-area-inset-bottom))}}}

/* Navigation mobile du tableau de bord */
#mobile-menu-toggle,#mobile-menu-backdrop{display:none}@media(max-width:720px){#mobile-menu-toggle{position:relative;z-index:1301;width:max-content;height:42px;margin:0 0 24px;padding:0 14px;display:flex;align-items:center;gap:8px;border:1px solid #dbe5ef;border-radius:11px;background:#fff;color:#275987;box-shadow:0 7px 20px #14223818;font-size:12px;cursor:pointer}#mobile-menu-toggle>span{font-size:20px;line-height:1}#mobile-menu-toggle>b{font-size:11px}.app.mobile-menu-open{overflow:hidden}.app.mobile-menu-open aside{position:fixed;inset:0 auto 0 0;z-index:1201;width:min(82vw,310px);padding:calc(76px + env(safe-area-inset-top)) 22px calc(26px + env(safe-area-inset-bottom));display:flex;box-shadow:20px 0 50px #14223835;overflow-y:auto}.app.mobile-menu-open aside .brand{margin-bottom:20px}.app.mobile-menu-open aside nav a{padding:14px 13px;font-size:13px}.app.mobile-menu-open #mobile-menu-backdrop{position:fixed;inset:0;z-index:1200;display:block;border:0;background:#14223880}}

/* Notifications Web Push et pastille PWA V53 */
.push-card{margin:18px 0;padding:21px 23px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;border:1px solid #cfe1f2;border-radius:17px;background:linear-gradient(135deg,#fff,#eef7ff);box-shadow:0 9px 25px rgba(24,52,82,.06)}.push-card-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:15px;background:#e7f2ff;font-size:26px}.push-card small{color:var(--red);font-size:8px;font-weight:900;letter-spacing:.12em}.push-card h2{margin:5px 0 4px;font-size:17px}.push-card p{max-width:670px;margin:0 0 7px;color:var(--muted);font-size:10px;line-height:1.45}.push-card [data-push-status]{display:block;color:#607286;font-size:9px;font-weight:700}.push-card button{min-width:190px;padding:13px 16px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-size:10px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(8,124,240,.2)}.push-card button.enabled{background:#e5f6ea;color:#287340;box-shadow:none}.push-card button:disabled{opacity:.65;cursor:default}
@media(max-width:760px){.push-card{grid-template-columns:auto 1fr;padding:17px}.push-card button{grid-column:1/-1;width:100%}.push-card p{font-size:11px}.push-card [data-push-status]{font-size:10px}}

/* Accès temporaire d’un administrateur au restaurant V54 */
.admin-user-meta .impersonate-form{margin:0;display:block}.admin-user-meta .impersonate-form button{padding:9px 12px;border:1px solid #b8d6f2;border-radius:999px;background:#e9f4ff;color:#1769aa;font-size:10px;font-weight:900;white-space:nowrap;cursor:pointer}.admin-user-meta .impersonate-form button:hover{background:#087cf0;color:#fff}.admin-user-meta .impersonate-form button:disabled{border-color:#dde4ea;background:#edf1f4;color:#97a2ac;cursor:not-allowed}.admin-access-banner{position:sticky;top:0;z-index:2000;min-height:64px;padding:10px max(18px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:center;gap:35px;background:#142238;color:#fff;box-shadow:0 8px 25px rgba(10,25,42,.22)}.admin-access-banner>div{display:grid;gap:2px}.admin-access-banner b{color:#ff675f;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.admin-access-banner span{font-size:13px;font-weight:700}.admin-access-banner form{margin:0}.admin-access-banner button{padding:11px 15px;border:1px solid #ffffff55;border-radius:9px;background:#fff;color:#142238;font-size:11px;font-weight:900;cursor:pointer}.admin-access-active.app{grid-template-rows:auto 1fr}.admin-access-active.app>.admin-access-banner{grid-column:1/-1}.admin-access-active.app>aside,.admin-access-active.app>main{grid-row:2}.admin-access-active.app>main{grid-column:2}.admin-access-active.app>aside{grid-column:1}
@media(max-width:720px){.admin-access-banner{position:relative;align-items:stretch;flex-direction:column;gap:9px;padding:12px 16px}.admin-access-banner form,.admin-access-banner button{width:100%}.admin-access-active.app{display:block}.admin-access-active.app>aside{display:none}.admin-access-active.app>main{display:block}}

/* Identité du restaurant au-dessus des QR codes V55 */
@media print{body.printing-qr .qr-restaurant-brand{width:100%!important;min-height:18mm!important;margin:0 0 5mm!important;display:flex!important;align-items:center!important;justify-content:center!important}body.printing-qr .qr-restaurant-brand img{width:auto!important;height:auto!important;max-width:52mm!important;max-height:18mm!important;object-fit:contain!important}body.printing-qr .qr-restaurant-brand span{color:#142238!important;font-family:Arial,sans-serif!important;font-size:18pt!important;font-weight:900!important;line-height:1.15!important;letter-spacing:.04em!important;text-align:center!important;white-space:normal!important}body.printing-qr .qr-print-grid .qr-restaurant-brand{min-height:13mm!important;margin-bottom:3mm!important}body.printing-qr .qr-print-grid .qr-restaurant-brand img{max-width:40mm!important;max-height:13mm!important}body.printing-qr .qr-print-grid .qr-restaurant-brand span{font-size:12pt!important}}


/* Suivi du service et statistiques V66 */
.dashboard-service-summary{margin-top:12px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #cfe1f2;border-radius:13px;background:linear-gradient(135deg,#142238,#1d3552);color:#fff;box-shadow:0 9px 25px rgba(20,34,56,.12)}.dashboard-service-summary div{display:flex;align-items:baseline;gap:13px}.dashboard-service-summary small{color:#ff6b62;font-size:8px;font-weight:900;letter-spacing:.13em}.dashboard-service-summary strong{font-size:14px}.dashboard-service-summary span{color:#bfccda;font-size:10px}.dashboard-service-summary>b{color:#75baff;font-size:10px}
.stats-page{min-height:100vh;background:#f2f5f8}
@media(max-width:760px){.dashboard-service-summary,.dashboard-service-summary div{align-items:flex-start;flex-direction:column}.dashboard-service-summary div{gap:5px}}
@media print{.stats-page{background:#fff}.admin-access-banner{display:none!important}.stats-page .subpage-head,.stats-page .subpage-main{max-width:none!important}}

/* Caisse & Paiement V77 */
.pos-page{min-height:100vh;background:#eef3f7}.pos-head{justify-content:space-between}.pos-head>div{margin-right:auto}.pos-head>div span{display:block;margin-top:4px;color:#6c7e90;font-size:9px;font-weight:700}.pos-head-links{display:flex;align-items:center;gap:8px}.pos-head-links>a{padding:10px 12px;border:1px solid #dce5ee;border-radius:9px;background:#fff;color:#315879;font-size:9px;font-weight:900;white-space:nowrap}.pos-orders-link{background:#142238!important;color:#fff!important}.pos-main{max-width:1280px}.pos-main>.error{margin-bottom:14px}.pos-progress{height:7px;background:#e8eef3}.pos-progress span{height:100%;display:block;background:linear-gradient(90deg,#087cf0,#42a0fa)}.pos-totals{padding:13px 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-bottom:1px solid #e6ebf0}.pos-totals span{padding:10px;display:grid;gap:5px;border-radius:9px;background:#f5f8fa;color:var(--muted);font-size:8px}.pos-totals b{color:var(--ink);font-size:11px}.pos-order-details{margin:15px 20px;border:1px solid #dfe7ee;border-radius:11px;overflow:hidden}.pos-order-details>summary{padding:13px 15px;background:#f7f9fb;font-size:10px;font-weight:900;cursor:pointer}.pos-order-details>div{padding:9px;display:grid;gap:8px}.pos-order-details section{padding:11px;border-radius:9px;background:#f5f8fa}.pos-order-details section>header{display:flex;justify-content:space-between;gap:12px}.pos-order-details section>header>span{display:grid;gap:3px}.pos-order-details section>header b,.pos-order-details section>header strong{font-size:9px}.pos-order-details section>header small{color:var(--muted);font-size:7px}.pos-order-details ul{margin:8px 0 0;padding:8px 0 0;display:grid;gap:6px;border-top:1px solid #dfe6ec;list-style:none}.pos-order-details li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;font-size:8px}.pos-order-details li>span{display:grid;gap:3px;font-weight:800}.pos-order-details li small{color:var(--muted);font-size:7px;font-weight:500}.pos-order-details li em{font-style:normal;font-weight:800}.pos-pay{grid-column:1/-1;min-height:50px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 8px 20px rgba(8,124,240,.22)}.pos-open-billing,.coming.pos-ready>a{padding:11px 14px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--blue);color:#fff;font-size:9px;font-weight:900}.pricing-card .pos-open-billing{margin-top:auto;min-height:45px}.coming.pos-ready>a{white-space:nowrap}
@media(max-width:600px){.pos-head{align-items:flex-start!important;flex-wrap:wrap;gap:12px}.pos-head>div{order:-1;width:100%}.pos-head>a{flex:1;text-align:center}.pos-head-links{width:100%;display:grid;grid-template-columns:1fr 1fr}.pos-head-links>a{text-align:center}.pos-totals{grid-template-columns:1fr}.pos-pay{grid-column:1}.pos-order-details{margin:12px}.coming.pos-ready{align-items:stretch}.coming.pos-ready>a{width:100%}}


/* Connexion persistante V67 */
.auth-card form .remember-choice{grid-column:1/-1;padding:12px 13px;display:flex;flex-direction:row;align-items:center;gap:10px;border:1px solid #dce6ef;border-radius:10px;background:#f7fafc;cursor:pointer}.remember-choice input{width:18px;height:18px;margin:0;accent-color:var(--blue)}.remember-choice span{display:grid;gap:2px}.remember-choice b{font-size:10px}.remember-choice small{color:var(--muted);font-size:8px;font-weight:500}

/* Clôture journalière et rapports Z V85 */
.pos-closed-banner{margin-bottom:14px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #bfe1c8;border-radius:14px;background:#edf9f0}.pos-closed-banner>div{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:3px 10px}.pos-closed-banner small{grid-column:1/-1;color:#3b8350;font-size:8px;font-weight:900;letter-spacing:.13em}.pos-closed-banner strong{font-size:15px}.pos-closed-banner span{color:#65796b;font-size:8px}.pos-closed-banner a,.pos-daily-closure>header a{padding:10px 13px;border-radius:9px;background:#287b42;color:#fff;font-size:9px;font-weight:900;white-space:nowrap}.pos-payment-locked{margin:18px 20px;padding:16px;display:flex;align-items:center;gap:12px;border:1px solid #d9e2e9;border-radius:12px;background:#f2f5f7}.pos-payment-locked>span{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:#fff;font-size:17px}.pos-payment-locked>div{display:grid;gap:4px}.pos-payment-locked b{font-size:10px}.pos-payment-locked small{color:var(--muted);font-size:8px}.pos-daily-closure,.pos-closure-history{margin-top:15px;border:1px solid #dce5ed;border-radius:17px;background:#fff;box-shadow:0 10px 30px rgba(20,34,56,.05);overflow:hidden}.pos-daily-closure>header,.pos-closure-history>header{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #e5ebf0}.pos-daily-closure>header small,.pos-closure-history>header small{color:var(--red);font-size:8px;font-weight:900;letter-spacing:.13em}.pos-daily-closure>header h2,.pos-closure-history>header h2{margin:5px 0 0;font-size:17px}.pos-daily-closure>header p{margin:5px 0 0;color:var(--muted);font-size:9px}.pos-closure-totals{padding:14px 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-bottom:1px solid #e8edf1}.pos-closure-totals span{padding:11px;display:grid;gap:5px;border-radius:9px;background:#f4f7fa;color:var(--muted);font-size:8px}.pos-closure-totals b{color:var(--ink);font-size:11px}.pos-closure-form{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.pos-closure-form>label{margin:0}.pos-closure-form input{background:#fff}.pos-closure-form label small{margin-top:5px;display:block;color:var(--muted);font-size:7px}.pos-cash-check{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}.pos-cash-check span{padding:13px;display:flex;justify-content:space-between;gap:10px;border-radius:9px;background:#eef5fb;color:#5d7081;font-size:9px}.pos-cash-check b{color:var(--ink)}.pos-cash-check b.negative{color:#c14238}.pos-closure-note{grid-column:1/-1}.pos-closure-form>button{grid-column:1/-1;min-height:49px;border:0;border-radius:10px;background:#142238;color:#fff;font-size:11px;font-weight:900;cursor:pointer}.pos-closure-form>button:disabled{background:#c9d1d8;color:#697887;cursor:not-allowed}.pos-closure-warning{grid-column:1/-1;margin:0;padding:10px;border-radius:8px;background:#fff1ef;color:#a94740;font-size:8px;text-align:center}.pos-closure-result{padding:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pos-closure-result>div{padding:16px;border-radius:10px;background:#f4f7fa}.pos-closure-result span{display:block;color:var(--muted);font-size:8px}.pos-closure-result strong{margin-top:7px;display:block;font-size:15px}.pos-closure-result .balanced{background:#e9f8ed;color:#307545}.pos-closure-result .variance{background:#fff0ee;color:#ae453c}.pos-closure-history>header>span{color:var(--muted);font-size:9px;font-weight:800}.pos-closure-history>div{display:grid}.pos-closure-history>div>a{min-height:62px;padding:12px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto 110px 12px;align-items:center;gap:12px;border-bottom:1px solid #e9eef2;color:var(--ink)}.pos-closure-history>div>a:hover{background:#f4f9fd}.pos-closure-history a>span{display:grid;gap:4px}.pos-closure-history a b{font-size:10px}.pos-closure-history a small{color:var(--muted);font-size:7px}.pos-closure-history a>strong{color:var(--blue);font-size:11px}.pos-closure-history a>em{padding:6px;border-radius:999px;background:#edf2f5;color:#657687;font-size:7px;font-style:normal;font-weight:900;text-align:center}.pos-closure-history a>em.balanced{background:#e6f6eb;color:#34794a}.pos-closure-history a>em.variance{background:#fff0ee;color:#ae453c}.pos-closure-history a>i{font-size:18px;font-style:normal}.pos-closure-history>p{margin:0;padding:30px;color:var(--muted);font-size:9px;text-align:center}
@media(max-width:700px){.pos-closed-banner{align-items:stretch;flex-direction:column}.pos-closed-banner>div{grid-template-columns:1fr}.pos-closed-banner a{text-align:center}.pos-closure-totals,.pos-closure-result{grid-template-columns:1fr 1fr}.pos-closure-form{grid-template-columns:1fr}.pos-cash-check,.pos-closure-note,.pos-closure-form>button,.pos-closure-warning{grid-column:1}.pos-closure-history>div>a{grid-template-columns:minmax(0,1fr) auto 12px}.pos-closure-history a>em{grid-column:1/-1;width:max-content}.pos-daily-closure>header{align-items:flex-start;flex-direction:column}.pos-daily-closure>header a{width:100%;text-align:center}}

.pos-closed-banner .pos-closed-actions{display:flex;grid-template-columns:none;align-items:center;justify-content:flex-end;gap:8px}.pos-closed-actions form{margin:0}.pos-closed-actions button{padding:10px 13px;border:0;border-radius:9px;background:#087cf0;color:#fff;font-size:9px;font-weight:900;white-space:nowrap;cursor:pointer}
@media(max-width:700px){.pos-closed-banner .pos-closed-actions{display:grid;grid-template-columns:1fr}.pos-closed-actions form,.pos-closed-actions button{width:100%}}


/* Répartition multi-personnes V98 */.pos-page .pos-closure-totals{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.pos-page .pos-closure-totals{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.pos-page .pos-closure-totals{grid-template-columns:1fr 1fr}}

/* Choix exclusif entre les deux modes d'encaissement V97 */

.pos-paid-tickets{margin-top:15px;border:1px solid #dce5ed;border-radius:17px;background:#fff;box-shadow:0 10px 30px rgba(20,34,56,.05);overflow:hidden}.pos-paid-tickets>header{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #e5ebf0}.pos-paid-tickets>header small{color:var(--red);font-size:8px;font-weight:900;letter-spacing:.13em}.pos-paid-tickets>header h2{margin:5px 0 0;font-size:17px}.pos-paid-tickets>header p{margin:5px 0 0;color:var(--muted);font-size:9px}.pos-paid-tickets>header>span{padding:7px 10px;border-radius:999px;background:#e8f7ed;color:#34794a;font-size:8px;font-weight:900;white-space:nowrap}.pos-paid-tickets>div{display:grid}.pos-paid-tickets>div>a{min-height:68px;padding:12px 20px;display:grid;grid-template-columns:34px minmax(0,1fr) minmax(100px,auto) auto 88px;align-items:center;gap:12px;border-bottom:1px solid #e9eef2;color:var(--ink);transition:background .15s}.pos-paid-tickets>div>a:hover{background:#f4f9fd}.pos-ticket-check{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#e8f7ed;color:#34794a;font-size:14px;font-weight:900}.pos-paid-tickets a>span:nth-child(2){display:grid;gap:4px}.pos-paid-tickets a b{font-size:10px}.pos-paid-tickets a small{color:var(--muted);font-size:7px}.pos-paid-tickets a>em{padding:6px 9px;border-radius:999px;background:#eef4f8;color:#526b80;font-size:7px;font-style:normal;font-weight:900;text-align:center}.pos-paid-tickets a>strong{color:var(--blue);font-size:11px;white-space:nowrap}.pos-paid-tickets a>i{color:var(--blue);font-size:8px;font-style:normal;font-weight:900;text-align:right;white-space:nowrap}.pos-paid-tickets>p{margin:0;padding:30px;color:var(--muted);font-size:9px;text-align:center}@media(max-width:700px){.pos-paid-tickets>header{align-items:flex-start}.pos-paid-tickets>div>a{grid-template-columns:34px minmax(0,1fr) auto}.pos-paid-tickets a>em{grid-column:2;width:max-content}.pos-paid-tickets a>i{grid-column:2;text-align:left}.pos-paid-tickets a>strong{grid-column:3;grid-row:1/4}.pos-paid-tickets>header p{max-width:240px}}@media(max-width:430px){.pos-paid-tickets>header{flex-direction:column}.pos-paid-tickets>div>a{padding:13px 14px;grid-template-columns:30px minmax(0,1fr) auto;gap:9px}.pos-ticket-check{width:28px;height:28px}.pos-paid-tickets a>strong{font-size:10px}}

.restaurant-legal-fields{grid-column:1/-1;margin:6px 0;padding:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;border:1px solid #cfe1f2;border-radius:14px;background:#f7fbff}.restaurant-legal-fields>legend{padding:0 7px;color:#142238;font-size:12px;font-weight:900}.restaurant-legal-fields>p{grid-column:1/-1;margin:0;color:#687a8d;font-size:9px}.restaurant-legal-fields>label{margin:0}.vat-exempt-choice{grid-column:1/-1;padding:12px;display:flex!important;align-items:center;gap:11px;border:1px solid #d9e4ec;border-radius:10px;background:#fff;cursor:pointer}.vat-exempt-choice>input{width:19px!important;height:19px;min-width:19px;margin:0;accent-color:#087cf0}.vat-exempt-choice>span{display:grid;gap:3px}.vat-exempt-choice b{font-size:10px}.vat-exempt-choice small{color:#6d7e8f;font-size:8px;font-weight:500}@media(max-width:700px){.restaurant-legal-fields{grid-template-columns:1fr}}

.pos-paid-tickets>div>article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border-bottom:1px solid #e9eef2}.pos-paid-tickets>div>article:hover{background:#f4f9fd}.pos-ticket-main{min-height:68px;padding:12px 14px 12px 20px;display:grid;grid-template-columns:34px minmax(0,1fr) minmax(100px,auto) auto 88px;align-items:center;gap:12px;color:var(--ink)}.pos-ticket-print-actions{padding:10px 16px 10px 0;display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:6px}.pos-ticket-print{min-height:34px;padding:0 11px;display:flex;align-items:center;justify-content:center;border:1px solid #c7dff4;border-radius:9px;background:#fff;color:#087cf0!important;font-size:8px;font-weight:900;white-space:nowrap}.pos-ticket-print:hover{background:#eaf5ff}@media(max-width:700px){.pos-paid-tickets>div>article{grid-template-columns:1fr}.pos-ticket-main{padding-bottom:7px;grid-template-columns:34px minmax(0,1fr) auto}.pos-ticket-main>em{grid-column:2;width:max-content}.pos-ticket-main>i{grid-column:2;text-align:left}.pos-ticket-main>strong{grid-column:3;grid-row:1/4}.pos-ticket-print-actions{padding:0 14px 13px 48px}.pos-ticket-print{min-height:39px}}@media(max-width:430px){.pos-ticket-main{padding:13px 14px 7px;grid-template-columns:30px minmax(0,1fr) auto;gap:9px}.pos-ticket-print-actions{padding-left:44px;grid-template-columns:1fr}}
.pos-legal-warning{margin-bottom:15px;padding:14px 16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #f0c992;border-radius:12px;background:#fff7eb;color:#744917}.pos-legal-warning>span{font-size:10px;font-weight:900}.pos-legal-warning p{margin:0;font-size:8px}.pos-legal-warning a{color:#8a5519;font-size:8px;font-weight:900;white-space:nowrap}@media(max-width:650px){.pos-legal-warning{grid-template-columns:1fr}.pos-legal-warning a{width:max-content}}

/* Saisie d'une commande par le restaurateur V104 */
.staff-order-page{background:#eef3f7}.staff-order-head>div span{display:block;margin-top:3px;color:var(--muted);font-size:8px;font-weight:800}.staff-order-pos-link,.staff-order-head-link{background:#142238!important;color:#fff!important}.staff-order-main{max-width:1320px}.staff-order-created{margin-bottom:13px}.staff-order-alert{margin-bottom:14px;padding:14px 16px;display:grid;gap:4px;border:1px solid #f0b9b4;border-radius:12px;background:#fff2f0;color:#9a3b34}.staff-order-alert b{font-size:10px}.staff-order-alert span{font-size:8px}.staff-order-empty{min-height:380px;display:grid;place-items:center;align-content:center;gap:9px;border:1px solid #dbe5ed;border-radius:18px;background:#fff;text-align:center}.staff-order-empty>span{width:50px;height:50px;display:grid;place-items:center;border-radius:15px;background:#e9f4ff;color:var(--blue);font-size:24px}.staff-order-empty h2,.staff-order-empty p{margin:0}.staff-order-empty h2{font-size:18px}.staff-order-empty p{color:var(--muted);font-size:9px}.staff-order-empty a{margin-top:4px;padding:11px 15px;border-radius:9px;background:var(--blue);color:#fff;font-size:9px;font-weight:900}
.staff-order-context{margin-bottom:14px;padding:17px 19px;display:grid;grid-template-columns:minmax(230px,1.1fr) minmax(170px,.65fr) minmax(250px,1fr);align-items:end;gap:12px;border:1px solid #d9e4ec;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(20,34,56,.04)}.staff-order-context>div:first-child{align-self:center}.staff-order-context small,.staff-order-catalog header small,.staff-order-cart header small{color:var(--red);font-size:8px;font-weight:900;letter-spacing:.12em}.staff-order-context h2,.staff-order-catalog h2,.staff-order-cart h2{margin:4px 0 0;font-size:16px}.staff-order-context label{margin:0;color:#536477;font-size:8px;font-weight:900}.staff-order-context label>span,.staff-order-note>span,.staff-modal-comment>span{color:#8795a3;font-size:7px;font-weight:700}.staff-order-context select,.staff-order-context input{height:44px;margin-top:6px;background:#fff}.staff-order-context label>small{margin-top:5px;display:block;color:var(--muted);font-size:7px;font-weight:500;letter-spacing:0}.staff-existing-names{grid-column:2/-1;min-height:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.staff-existing-names:empty{display:none}.staff-existing-names>span{margin-right:3px;color:#697b8d;font-size:7px;font-weight:800}.staff-existing-names button{padding:6px 10px;border:1px solid #c9def1;border-radius:999px;background:#f1f8ff;color:#176cb9;font-size:8px;font-weight:900;cursor:pointer}
.staff-order-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;align-items:start;gap:14px}.staff-order-catalog,.staff-order-cart{border:1px solid #d9e4ec;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(20,34,56,.05);overflow:hidden}.staff-order-catalog>header,.staff-order-cart>header{padding:18px 19px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #e5ebf0}.staff-order-search{width:min(300px,45%);margin:0;position:relative}.staff-order-search>span{position:absolute;left:13px;top:10px;color:#6f8191;font-size:18px}.staff-order-search input{height:42px;padding-left:38px;background:#f7fafc}.staff-category-tabs{padding:11px 14px;display:flex;gap:7px;overflow-x:auto;border-bottom:1px solid #e7edf2;scrollbar-width:thin}.staff-category-tabs button{min-height:35px;padding:0 12px;border:1px solid #dce5ec;border-radius:999px;background:#fff;color:#596d80;font-size:8px;font-weight:900;white-space:nowrap;cursor:pointer}.staff-category-tabs button.active{border-color:var(--blue);background:var(--blue);color:#fff}.staff-product-grid{padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.staff-product-grid article{min-height:145px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;gap:13px;border:1px solid #dfe7ed;border-radius:12px;background:#fff;transition:border-color .15s,box-shadow .15s}.staff-product-grid article:hover{border-color:#9fcaf0;box-shadow:0 7px 18px rgba(8,124,240,.08)}.staff-product-grid article[hidden]{display:none}.staff-product-grid article small{color:var(--red);font-size:7px;font-weight:900;text-transform:uppercase}.staff-product-grid article h3{margin:6px 0 0;font-size:12px;line-height:1.28}.staff-product-grid article p{margin:6px 0 0;display:-webkit-box;overflow:hidden;color:var(--muted);font-size:8px;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}.staff-product-grid article footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.staff-product-grid article strong{color:var(--blue);font-size:12px}.staff-product-grid article button{min-height:37px;padding:0 12px;border:0;border-radius:9px;background:#eaf5ff;color:var(--blue);font-size:8px;font-weight:900;cursor:pointer}.staff-product-grid article button:hover{background:var(--blue);color:#fff}.staff-product-no-result{margin:0;padding:35px;color:var(--muted);font-size:9px;text-align:center}
.staff-order-cart{position:sticky;top:12px}.staff-order-cart>header>span{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#eaf5ff;color:var(--blue);font-size:10px;font-weight:900}.staff-cart-lines{max-height:440px;padding:12px;display:grid;gap:8px;overflow:auto}.staff-cart-empty{min-height:160px;display:grid;place-items:center;align-content:center;gap:6px;color:var(--muted);text-align:center}.staff-cart-empty>span{font-size:24px}.staff-cart-empty b{color:#445a6e;font-size:10px}.staff-cart-empty small{font-size:8px}.staff-cart-lines article{padding:11px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;border:1px solid #e0e7ed;border-radius:10px;background:#fafcfd}.staff-cart-lines article>div{display:grid;gap:4px}.staff-cart-lines article b{font-size:9px;line-height:1.35}.staff-cart-lines article small{color:var(--muted);font-size:7px;line-height:1.35}.staff-cart-lines article>strong{color:var(--blue);font-size:9px;white-space:nowrap}.staff-cart-lines article nav{grid-column:1/-1;display:flex;gap:5px}.staff-cart-lines article button{padding:5px 8px;border:1px solid #d7e2ea;border-radius:7px;background:#fff;color:#536b7e;font-size:7px;font-weight:800;cursor:pointer}.staff-cart-lines article button:last-child{border-color:#f0cbc8;color:#ae4a43}.staff-order-note{margin:0 12px 12px;padding-top:11px;border-top:1px solid #e5ebef;color:#536477;font-size:8px;font-weight:900}.staff-order-note textarea{min-height:70px;margin-top:6px;resize:vertical;background:#fff}.staff-order-cart>footer{padding:14px 16px 17px;display:grid;gap:9px;border-top:1px solid #e4ebf0;background:#f7fafc}.staff-order-cart>footer>div{display:flex;align-items:center;justify-content:space-between}.staff-order-cart>footer span{color:#53677a;font-size:9px;font-weight:800}.staff-order-cart>footer strong{font-size:18px}.staff-order-cart>footer button{min-height:48px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-size:10px;font-weight:900;cursor:pointer}.staff-order-cart>footer button:disabled{background:#cbd5dd;color:#6c7b88;cursor:not-allowed}.staff-order-cart>footer>small{color:var(--muted);font-size:7px;text-align:center}
.staff-product-modal[hidden]{display:none}.staff-product-modal{position:fixed;inset:0;z-index:1000;padding:20px;display:grid;place-items:center;background:rgba(12,22,35,.66);backdrop-filter:blur(5px)}body.staff-modal-open{overflow:hidden}.staff-product-dialog{width:min(610px,100%);max-height:calc(100dvh - 40px);padding:23px;position:relative;overflow:auto;border-radius:18px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.3)}.staff-modal-close{position:absolute;right:16px;top:15px;width:36px;height:36px;border:0;border-radius:50%;background:#edf2f6;color:#405469;font-size:21px;cursor:pointer}.staff-product-dialog>small{color:var(--red);font-size:8px;font-weight:900;letter-spacing:.12em}.staff-product-dialog>h2{max-width:calc(100% - 50px);margin:6px 0 0;font-size:22px}.staff-product-dialog>p{margin:7px 0 0;color:var(--muted);font-size:9px;line-height:1.5}.staff-product-dialog fieldset{margin:15px 0 0;padding:12px;display:grid;gap:7px;border:1px solid #dce5ec;border-radius:11px;background:#f8fafc}.staff-product-dialog legend{padding:0 5px;font-size:9px;font-weight:900}.staff-product-dialog legend b,.staff-product-dialog legend span{margin-left:5px;color:var(--red);font-size:7px}.staff-product-dialog legend span{color:#7c8c9a}.staff-product-dialog fieldset label{margin:0;cursor:pointer}.staff-product-dialog fieldset label>input{position:absolute;opacity:0;pointer-events:none}.staff-product-dialog fieldset label>span{min-height:42px;padding:8px 11px;display:flex;align-items:center;justify-content:space-between;gap:9px;border:1px solid #dfe6ec;border-radius:9px;background:#fff}.staff-product-dialog fieldset label>input:checked+span{border:2px solid var(--blue);background:#edf7ff}.staff-product-dialog fieldset b{font-size:9px}.staff-product-dialog fieldset small{color:#687a8b;font-size:8px}.staff-modal-comment{margin-top:15px;color:#536477;font-size:8px;font-weight:900}.staff-modal-comment textarea{min-height:75px;margin-top:6px;resize:vertical}.staff-modal-footer{margin-top:16px;padding-top:14px;display:grid;grid-template-columns:100px minmax(110px,1fr) minmax(180px,1.3fr);align-items:end;gap:10px;border-top:1px solid #e3e9ee}.staff-modal-footer label{margin:0;color:#536477;font-size:8px;font-weight:900}.staff-modal-footer input{height:43px;margin-top:6px}.staff-modal-footer>div{display:grid;gap:5px}.staff-modal-footer>div span{color:var(--muted);font-size:7px}.staff-modal-footer>div strong{font-size:14px}.staff-modal-footer>button{height:46px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-size:9px;font-weight:900;cursor:pointer}
@media(max-width:980px){.staff-order-layout{grid-template-columns:minmax(0,1fr) 330px}.staff-order-context{grid-template-columns:1fr 1fr}.staff-order-context>div:first-child{grid-column:1/-1}.staff-existing-names{grid-column:1/-1}.staff-product-grid{grid-template-columns:1fr}.pos-head-links{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:760px){.staff-order-layout{grid-template-columns:1fr}.staff-order-cart{position:static;order:-1}.staff-cart-lines{max-height:310px}.staff-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.staff-order-head{align-items:flex-start!important;flex-wrap:wrap}.staff-order-head>div{order:-1;width:100%}.staff-order-head>a{flex:1;text-align:center}.staff-order-context{padding:15px;grid-template-columns:1fr}.staff-order-context>div:first-child,.staff-existing-names{grid-column:1}.staff-order-catalog>header{align-items:stretch;flex-direction:column}.staff-order-search{width:100%}.staff-product-grid{grid-template-columns:1fr}.staff-product-grid article{min-height:130px}.staff-product-modal{padding:0;align-items:end}.staff-product-dialog{width:100%;max-height:92dvh;border-radius:19px 19px 0 0}.staff-modal-footer{grid-template-columns:90px 1fr}.staff-modal-footer>button{grid-column:1/-1}.pos-head-links{grid-template-columns:1fr!important}.pos-head-links>a{width:100%}}

/* Ajout rapide d'un produit avant encaissement V105 */
.staff-order-main>#staff-order-form{margin:0;display:block;grid-template-columns:none}
.pos-add-modal[hidden]{display:none}.pos-add-modal{position:fixed;inset:0;z-index:1200;padding:22px;display:grid;place-items:center;background:rgba(10,20,33,.65);backdrop-filter:blur(5px)}body.pos-add-open{overflow:hidden}.pos-add-dialog{width:min(960px,100%);max-height:calc(100dvh - 44px);margin:0;display:block;overflow:auto;border-radius:18px;background:#fff;box-shadow:0 30px 100px rgba(0,0,0,.34)}.pos-add-dialog>header{padding:19px 21px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid #e1e8ee}.pos-add-dialog>header small{color:var(--red);font-size:11px;font-weight:900;letter-spacing:.12em}.pos-add-dialog>header h2{margin:5px 0 0;font-size:24px}.pos-add-dialog>header p{margin:5px 0 0;color:var(--muted);font-size:13px}.pos-add-dialog>header button{width:37px;height:37px;border:0;border-radius:50%;background:#edf2f6;color:#415568;font-size:22px;cursor:pointer}.pos-add-person{padding:13px 21px;display:grid;grid-template-columns:minmax(220px,350px) minmax(0,1fr);align-items:end;gap:12px;border-bottom:1px solid #e4eaef;background:#f8fafc}.pos-add-person label{margin:0;color:#536477;font-size:8px;font-weight:900}.pos-add-person label span,.pos-add-fields label span{color:#8695a2;font-size:7px;font-weight:700}.pos-add-person input{height:43px;margin-top:5px;background:#fff}.pos-add-person>small{padding-bottom:8px;color:var(--muted);font-size:7px}.pos-add-tools{padding:13px 15px 10px;display:grid;gap:10px}.pos-add-tools>label{margin:0;position:relative}.pos-add-tools>label>span{position:absolute;left:13px;top:9px;color:#718394;font-size:19px}.pos-add-tools input{height:48px;padding-left:42px;background:#f7fafc;font-size:15px}.pos-add-tools nav{display:flex;gap:6px;overflow-x:auto}.pos-add-tools nav button{min-height:40px;padding:0 16px;border:1px solid #dce5ec;border-radius:999px;background:#fff;color:#5d7081;font-size:13px;font-weight:900;white-space:nowrap;cursor:pointer}.pos-add-tools nav button.active{border-color:var(--blue);background:var(--blue);color:#fff}.pos-add-products{padding:4px 15px 17px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.pos-add-products>button{min-height:88px;padding:14px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto 38px;align-items:center;gap:10px;border:1px solid #dce5ec;border-radius:11px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.pos-add-products>button:hover{border-color:#9ac7ee;background:#f5faff}.pos-add-products>button[hidden]{display:none}.pos-add-products>button>span{display:grid;gap:4px;min-width:0}.pos-add-products small{overflow:hidden;color:var(--red);font-size:10px;letter-spacing:.08em;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.pos-add-products b{font-size:16px;font-weight:800;line-height:1.3}.pos-add-products em{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:12px;font-style:normal;line-height:1.35;-webkit-line-clamp:1;-webkit-box-orient:vertical}.pos-add-products strong{color:var(--blue);font-size:16px;font-weight:800;white-space:nowrap}.pos-add-products i{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#eaf5ff;color:var(--blue);font-size:22px;font-style:normal;font-weight:500}.pos-add-no-result{margin:0;padding:35px;color:var(--muted);font-size:9px;text-align:center}
.pos-add-customize{padding:18px 21px}.pos-add-back{padding:0;border:0;background:none;color:var(--blue);font-size:8px;font-weight:900;cursor:pointer}.pos-add-product-title{margin-top:13px;padding-bottom:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid #e3e9ee}.pos-add-product-title small{color:var(--red);font-size:7px;font-weight:900;text-transform:uppercase}.pos-add-product-title h3{margin:5px 0 0;font-size:18px}.pos-add-product-title p{margin:5px 0 0;color:var(--muted);font-size:8px;line-height:1.45}.pos-add-product-title>strong{color:var(--blue);font-size:16px;white-space:nowrap}.pos-add-groups{display:grid;grid-template-columns:1fr 1fr;gap:9px}.pos-add-groups:empty{display:none}.pos-add-groups fieldset{margin:14px 0 0;padding:10px;display:grid;gap:6px;border:1px solid #dce5ec;border-radius:10px;background:#f8fafc}.pos-add-groups legend{padding:0 5px;font-size:8px;font-weight:900}.pos-add-groups legend b,.pos-add-groups legend span{margin-left:4px;color:var(--red);font-size:6px}.pos-add-groups legend span{color:#7a8c9d}.pos-add-groups label{margin:0;cursor:pointer}.pos-add-groups label>input{position:absolute;opacity:0;pointer-events:none}.pos-add-groups label>span{min-height:38px;padding:7px 9px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #dce5ec;border-radius:8px;background:#fff}.pos-add-groups label>input:checked+span{border:2px solid var(--blue);background:#edf7ff}.pos-add-groups label b{font-size:8px}.pos-add-groups label small{color:#65798b;font-size:7px}.pos-add-fields{margin-top:14px;display:grid;grid-template-columns:120px 1fr;gap:10px}.pos-add-fields label{margin:0;color:#536477;font-size:8px;font-weight:900}.pos-add-fields input{height:43px;margin-top:5px;background:#fff}.pos-add-customize>footer{margin-top:16px;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e2e8ed}.pos-add-customize>footer>div{display:grid;gap:4px}.pos-add-customize>footer span{color:var(--muted);font-size:7px}.pos-add-customize>footer strong{font-size:17px}.pos-add-customize>footer button{min-height:47px;padding:0 18px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-size:9px;font-weight:900;cursor:pointer}.pos-add-customize>footer button:disabled{opacity:.65}.pos-head-links{grid-template-columns:repeat(2,1fr)!important}
@media(max-width:700px){.pos-add-modal{padding:0;align-items:end}.pos-add-dialog{width:100%;max-height:92dvh;border-radius:18px 18px 0 0}.pos-add-products{grid-template-columns:1fr}.pos-add-groups{grid-template-columns:1fr}}
@media(max-width:520px){.pos-add-person{grid-template-columns:1fr}.pos-add-person>small{padding:0}.pos-add-fields{grid-template-columns:90px 1fr}.pos-add-customize>footer{align-items:stretch;flex-direction:column}.pos-add-customize>footer button{width:100%}.pos-add-person input,.pos-add-tools input,.pos-add-fields input{font-size:16px}.pos-head-links{grid-template-columns:1fr!important}}

/* Nouvelle commande serveur depuis une table vide V106 */.pos-add-person{grid-template-columns:minmax(150px,.75fr) minmax(190px,1fr) minmax(0,1.15fr)}.pos-add-person select,.pos-add-person input{width:100%;height:43px;margin-top:5px;padding:0 12px;border:1px solid #d9e1e9;border-radius:9px;background:#fff;color:var(--ink);outline:0}.pos-add-person select:focus,.pos-add-person input:focus{border-color:var(--blue)}.pos-add-fields label{display:grid;grid-template-rows:17px 43px;gap:5px;align-items:stretch}.pos-add-fields input{height:43px;margin:0}.pos-add-fields label>.pos-add-field-title{display:flex;flex-direction:row;align-items:center;gap:5px;color:#536477;font-size:8px;font-weight:900}.pos-add-fields label>.pos-add-field-title em{color:#8695a2;font-size:7px;font-style:normal;font-weight:700}
@media(max-width:700px){.pos-add-person{grid-template-columns:1fr 1fr}.pos-add-person>small{grid-column:1/-1;padding:0}}
@media(max-width:520px){.pos-add-person{grid-template-columns:1fr}.pos-add-person>small{grid-column:1}.pos-add-person select{font-size:16px}.pos-add-fields{grid-template-columns:90px minmax(0,1fr)}}

/* Retrait d'une quantité choisie sur le ticket avant encaissement V108 */
.pos-order-details li>.pos-item-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-weight:800}.pos-item-actions form{margin:0;display:flex;align-items:flex-end;gap:5px}.pos-item-actions form label{display:grid;gap:2px;color:#718096;font-size:6px;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.pos-item-actions form select{min-width:43px;height:25px;padding:0 18px 0 7px;border:1px solid #d9e1e8;border-radius:7px;background:#fff;color:#17263b;font-size:8px;font-weight:900}.pos-item-actions button{min-height:25px;padding:0 8px;border:1px solid #f0cbc8;border-radius:7px;background:#fff3f1;color:#ad493f;font-size:7px;font-weight:900;cursor:pointer}.pos-item-actions button:hover{border-color:#e4928a;background:#ffe7e3}.pos-item-actions em{white-space:nowrap}
@media(max-width:520px){.pos-order-details li{grid-template-columns:auto minmax(0,1fr)}.pos-order-details li>.pos-item-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.pos-item-actions form{width:100%;justify-content:flex-start}}
/* V113 - actions groupées Tables & QR */
.table-toolbar .table-toolbar-actions{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.print-all-qr:disabled{opacity:.65;cursor:wait}
@media(max-width:700px){.table-toolbar{align-items:stretch;flex-direction:column}.table-toolbar .table-toolbar-actions{justify-content:stretch}.table-toolbar .table-toolbar-actions .print-all-qr{flex:1 1 180px}}


/* V114 — Stripe Connect */
.stripe-connect-card{display:grid;gap:20px}.stripe-connect-intro small{font-weight:900;letter-spacing:.12em;color:#087cf0}.stripe-connect-intro h2{margin:5px 0 8px}.stripe-connect-intro p{margin:0;color:#68778a;max-width:760px;line-height:1.55}.stripe-connect-state{display:flex;align-items:flex-start;gap:16px;padding:20px;border:1px solid #dce6f0;border-radius:18px;background:#f8fbff}.stripe-connect-state.warning{background:#fff9ec;border-color:#f0d99c}.stripe-connect-state.connected{background:#f2fbf6;border-color:#bfe5cc}.stripe-connect-state>div:last-child{min-width:0;flex:1}.stripe-connect-state strong{display:block;font-size:17px;color:#17283c}.stripe-connect-state p{margin:5px 0 14px;color:#657487;line-height:1.5}.stripe-connect-state code{overflow-wrap:anywhere}.stripe-status-icon,.stripe-logo-chip{width:46px;height:46px;flex:0 0 46px;border-radius:14px;display:grid;place-items:center;font-weight:900}.stripe-status-icon{background:#fff;color:#087cf0;border:1px solid #dce6f0;font-size:20px}.stripe-logo-chip{background:#635bff;color:#fff;font-size:15px;letter-spacing:-.03em}.stripe-connect-button{display:inline-flex!important;width:auto!important;text-decoration:none;margin-top:2px}.stripe-connect-details{display:grid;gap:10px}.stripe-status-pills{display:flex;flex-wrap:wrap;gap:8px}.stripe-status-pills span{padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.stripe-status-pills .ok{background:#dff4e7;color:#15703c}.stripe-status-pills .pending{background:#fff0cf;color:#925d00}.stripe-connect-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stripe-connect-actions form{margin:0}.stripe-connect-actions .secondary-action{display:inline-flex;text-decoration:none}.danger-link{border:0;background:transparent;color:#c5322b;text-decoration:underline;font:inherit;font-weight:800;cursor:pointer;padding:8px}.stripe-connect-live-error{color:#b42318!important;font-size:13px}.stripe-connect-card .success,.stripe-connect-card .error{margin:0}@media(max-width:640px){.stripe-connect-state{padding:16px}.stripe-connect-actions{align-items:stretch}.stripe-connect-actions .secondary-action,.stripe-connect-actions form,.stripe-connect-actions button{width:100%;justify-content:center;text-align:center}.stripe-connect-actions button{padding:12px}}


/* V118 · Archives tickets Z */
.pos-z-search,.pos-z-monthly{margin-top:18px;padding:22px;border:1px solid #dfe6ec;border-radius:18px;background:#fff}
.pos-z-search>header,.pos-z-monthly>header{margin-bottom:15px}
.pos-z-search header small,.pos-z-monthly header small{font-size:10px;font-weight:900;letter-spacing:.13em;color:#f4473a}
.pos-z-search h2,.pos-z-monthly h2{margin:4px 0 5px}
.pos-z-search header p,.pos-z-monthly header p{margin:0;color:#68798b;font-size:12px}
.pos-z-date-form,.pos-z-month-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.pos-z-date-form label,.pos-z-month-form label{display:grid;gap:6px;font-size:11px;font-weight:800;color:#4f6275;min-width:210px}
.pos-z-date-form input,.pos-z-month-form input{height:44px;padding:9px 11px;border:1px solid #cfd9e2;border-radius:10px;background:#fff;font:inherit;font-size:15px;color:#142238}
.pos-z-date-form button,.pos-z-month-form button,.pos-z-month-open{min-height:44px;padding:11px 15px;border:0;border-radius:10px;background:#087cf0;color:#fff;font-weight:900;text-decoration:none;cursor:pointer}
.pos-z-month-open{display:inline-flex;align-items:center;background:#142238}
.pos-z-date-results,.pos-z-month-preview{margin-top:16px}
.pos-z-date-results h3{margin:0 0 9px}
.pos-z-result-list{display:grid;gap:8px}
.pos-z-result-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px 14px;border:1px solid #e2e8ee;border-radius:12px;color:#142238;text-decoration:none;background:#fafcfd}
.pos-z-result-list>a span{min-width:0;display:grid;gap:3px}
.pos-z-result-list>a small{color:#728293;font-size:10px}
.pos-z-result-list>a strong{white-space:nowrap}
.pos-z-result-list>a i{font-style:normal;color:#087cf0;font-weight:900;white-space:nowrap}
.pos-z-empty{margin:0;padding:13px;border-radius:10px;background:#f4f7fa;color:#718191}
.pos-z-month-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.pos-z-month-summary span{padding:14px;border-radius:12px;background:#f4f7fa;display:grid;gap:4px}
.pos-z-month-summary small{color:#68798b;font-size:9px;font-weight:900;text-transform:uppercase}
.pos-z-month-summary b{font-size:19px}
@media(max-width:650px){
  .pos-z-date-form,.pos-z-month-form{display:grid}
  .pos-z-date-form label,.pos-z-month-form label{min-width:0}
  .pos-z-result-list>a{grid-template-columns:1fr auto}
  .pos-z-result-list>a i{grid-column:1/-1}
}

/* V119 · Caisse premium */
.pos-panel-premium{border:1px solid #e1e7ec!important;border-radius:20px!important;background:#fff!important;box-shadow:0 10px 30px rgba(20,34,56,.045)!important;overflow:hidden}
.pos-panel-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:18px!important;padding:22px 24px 18px!important;border-bottom:1px solid #eef2f5!important}
.pos-panel-head small{font-size:9px!important;font-weight:900!important;letter-spacing:.14em!important;color:#f4473a!important}
.pos-panel-head h2{margin:4px 0 5px!important;font-size:22px!important}
.pos-panel-head p{margin:0!important;color:#718191!important;font-size:12px!important}
.pos-history-search-link,.pos-z-launcher-actions a,.pos-z-launcher-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:10px;font-weight:900;text-decoration:none;white-space:nowrap}
.pos-history-search-link{background:#f1f6fb;color:#087cf0}
.pos-paid-tickets>div{padding:8px 16px 16px}
.pos-paid-tickets article{border-radius:13px;transition:.15s ease}
.pos-paid-tickets article:hover{background:#f8fafc}
.pos-z-launcher{margin-top:18px}
.pos-z-launcher-actions{display:flex;gap:8px;flex-wrap:wrap}
.pos-z-launcher-actions a{background:#f1f6fb;color:#315879}
.pos-z-launcher-actions button{border:0;background:#087cf0;color:#fff;cursor:pointer}
.pos-z-launcher-actions button:disabled{opacity:.4;cursor:not-allowed}
.pos-z-launcher-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:18px 24px 22px}
.pos-z-launcher-stats span{padding:14px;border-radius:13px;background:#f6f8fa;display:grid;gap:5px}
.pos-z-launcher-stats small{font-size:9px;font-weight:900;color:#738395;text-transform:uppercase}
.pos-z-launcher-stats b{font-size:18px}
.pos-z-launcher-warning{margin:0 24px 20px;padding:11px 13px;border-radius:10px;background:#fff4e8;color:#8a5a24;font-size:11px;font-weight:800}
.pos-closure-history{margin-top:18px}
.pos-closure-history>div{display:grid;gap:8px;padding:14px 16px 18px}
.pos-closure-history>div>a{border:1px solid #e6ebef!important;border-radius:13px!important;padding:14px 15px!important;background:#fbfcfd!important}
.pos-closure-history>div>a:hover{border-color:#cfdbe5!important;background:#f7fafc!important}
.pos-z-count{padding:7px 10px;border-radius:999px;background:#f1f6fb;color:#315879;font-size:11px;font-weight:900}
.pos-z-search,.pos-z-monthly{box-shadow:0 10px 30px rgba(20,34,56,.035)}
body.pos-modal-open{overflow:hidden}
.pos-modal-backdrop{position:fixed;inset:0;background:rgba(12,22,33,.52);z-index:1000;backdrop-filter:blur(3px)}
.pos-z-modal{position:fixed;inset:0;z-index:1001;display:grid;place-items:center;padding:20px;overflow:auto}
.pos-z-modal[hidden],.pos-modal-backdrop[hidden]{display:none!important}
.pos-z-modal-card{width:min(620px,100%);background:#fff;border-radius:22px;box-shadow:0 24px 80px rgba(12,22,33,.25);overflow:hidden}
.pos-z-modal-card>header{display:flex;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid #edf1f4}
.pos-z-modal-card>header small{font-size:9px;font-weight:900;letter-spacing:.14em;color:#f4473a}
.pos-z-modal-card>header h2{margin:4px 0 5px}
.pos-z-modal-card>header p{margin:0;color:#718191;font-size:12px}
.pos-z-modal-card>header button{width:38px;height:38px;border:0;border-radius:10px;background:#f2f5f7;font-size:23px;color:#45586a;cursor:pointer}
.pos-closure-modal-form{padding:22px 24px!important;margin:0!important;border:0!important;border-radius:0!important;background:#fff!important}
.pos-history-page{max-width:1180px}
.pos-history-search-card{margin-bottom:18px;padding:20px;border:1px solid #e1e7ec;border-radius:18px;background:#fff}
.pos-history-search-card form{display:grid;grid-template-columns:1.3fr 1fr 1fr auto auto;gap:10px;align-items:end}
.pos-history-search-card label{display:grid;gap:6px;font-size:11px;font-weight:800;color:#53677a}
.pos-history-search-card input,.pos-history-search-card select{height:44px;padding:9px 11px;border:1px solid #cfd8e0;border-radius:10px;background:#fff;font-size:15px}
.pos-history-search-card button,.pos-history-search-card a{min-height:44px;padding:11px 15px;border-radius:10px;border:0;font-weight:900;text-decoration:none;display:flex;align-items:center;justify-content:center}
.pos-history-search-card button{background:#087cf0;color:#fff}.pos-history-search-card a{background:#f1f4f6;color:#516476}
.pos-history-results{padding:20px;border:1px solid #e1e7ec;border-radius:18px;background:#fff}
.pos-history-results header{margin-bottom:10px}.pos-history-results header small{font-size:9px;font-weight:900;letter-spacing:.14em;color:#f4473a}.pos-history-results h2{margin:4px 0}
.pos-history-results>div{display:grid;gap:8px}
.pos-history-results article>a{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:14px;align-items:center;padding:14px 15px;border:1px solid #e5ebef;border-radius:12px;color:#142238;text-decoration:none}
.pos-history-results span{min-width:0;display:grid;gap:3px}.pos-history-results small{color:#748596;font-size:10px}.pos-history-results em{font-style:normal;color:#587086;font-size:11px}.pos-history-results strong{white-space:nowrap}.pos-history-results i{font-style:normal;color:#087cf0;font-weight:900}
@media(max-width:760px){
  .pos-panel-head{flex-direction:column}
  .pos-history-search-link,.pos-z-launcher-actions{width:100%}
  .pos-z-launcher-actions a,.pos-z-launcher-actions button{flex:1}
  .pos-z-launcher-stats{grid-template-columns:1fr}
  .pos-history-search-card form{grid-template-columns:1fr}
  .pos-history-results article>a{grid-template-columns:1fr auto}
  .pos-history-results em,.pos-history-results i{grid-column:1/-1}
}

/* V119.1 · Sélecteurs date / mois premium */
.pos-z-picker-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;align-items:stretch!important;padding:12px!important;border:1px solid #e1e7ec!important;border-radius:16px!important;background:#f9fbfc!important}
.pos-z-month-form.pos-z-picker-card{grid-template-columns:minmax(0,1fr) auto auto!important}
.pos-z-picker-field{position:relative!important;display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;align-items:center!important;gap:12px!important;min-width:0!important;min-height:58px!important;padding:8px 12px!important;border:1px solid #dbe3e9!important;border-radius:13px!important;background:#fff!important;cursor:pointer!important;overflow:hidden!important}
.pos-z-picker-field:focus-within{border-color:#8ec7ff!important;box-shadow:0 0 0 3px rgba(8,124,240,.09)!important}
.pos-z-picker-icon{width:42px;height:42px;border-radius:11px;background:#eef6ff;display:grid;place-items:center;font-size:19px}
.pos-z-picker-copy{min-width:0;display:grid;gap:3px}
.pos-z-picker-copy small{font-size:8px!important;font-weight:900!important;letter-spacing:.12em!important;color:#748699!important}
.pos-z-picker-copy b{font-size:15px!important;color:#142238!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pos-z-picker-field input{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;cursor:pointer!important}
.pos-z-picker-submit,.pos-z-month-open-premium{min-height:58px!important;padding:0 18px!important;border-radius:13px!important;font-size:12px!important;font-weight:900!important}
.pos-z-picker-submit{border:0!important;background:#087cf0!important;color:#fff!important;cursor:pointer!important}
.pos-z-month-open-premium{display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#142238!important;color:#fff!important;text-decoration:none!important}
.pos-z-picker-submit:hover,.pos-z-month-open-premium:hover{filter:brightness(.97)}
@media(max-width:720px){
  .pos-z-picker-card,.pos-z-month-form.pos-z-picker-card{grid-template-columns:1fr!important}
  .pos-z-picker-submit,.pos-z-month-open-premium{width:100%!important}
}


/* V121.1 · Plan actuel */
.billing-current-plan{margin-bottom:22px;border:1px solid #cfe1f2;border-radius:20px;background:linear-gradient(135deg,#f4f9ff,#fff);overflow:hidden;box-shadow:0 10px 30px rgba(20,34,56,.05)}
.billing-current-plan-main{display:flex;align-items:center;gap:16px;padding:22px 24px}
.billing-current-check{width:44px;height:44px;flex:0 0 44px;border-radius:50%;display:grid;place-items:center;background:#087cf0;color:#fff;font-size:19px;font-weight:900}
.billing-current-plan-main small{font-size:9px;font-weight:900;letter-spacing:.14em;color:#087cf0}
.billing-current-plan-main h2{margin:4px 0 3px;font-size:27px;color:#142238}
.billing-current-plan-main p{margin:0;color:#687b8d;font-size:12px}
.billing-current-plan-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #dce8f2;background:#fff}
.billing-current-plan-meta>span{padding:15px 20px;border-right:1px solid #e8edf1;display:grid;gap:4px}
.billing-current-plan-meta>span:last-child{border-right:0}
.billing-current-plan-meta small{font-size:8px;font-weight:900;letter-spacing:.1em;color:#7b8b9a}
.billing-current-plan-meta strong{font-size:13px;color:#142238}.billing-current-plan-meta strong.ok{color:#21834b}
.pricing-card .current-plan{display:inline-flex!important;align-items:center;justify-content:center;margin:12px 0 8px!important;padding:8px 11px!important;border-radius:999px!important;background:#eaf6ee!important;color:#237443!important;font-size:10px!important;font-weight:900!important}
@media(max-width:650px){.billing-current-plan-meta{grid-template-columns:1fr}.billing-current-plan-meta>span{border-right:0;border-bottom:1px solid #e8edf1}.billing-current-plan-meta>span:last-child{border-bottom:0}}


/* V122 · Clôture séparée des archives Z */
.pos-close-only{margin-top:18px}
.pos-close-only .pos-panel-head{align-items:center!important;border-bottom:0!important}
.pos-close-only-action{min-height:46px;padding:0 18px;border:0;border-radius:12px;background:#142238;color:#fff;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}
.pos-close-only-action:hover{background:#087cf0}
.pos-close-only-action:disabled{opacity:.4;cursor:not-allowed}

.pos-z-archive-main{max-width:1180px}
.pos-z-archive-hero{margin-bottom:18px;padding:25px 27px;border:1px solid #dce5ec;border-radius:21px;background:linear-gradient(135deg,#142238,#203b55);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:25px;box-shadow:0 15px 42px rgba(20,34,56,.14)}
.pos-z-archive-hero>div:first-child{max-width:570px}
.pos-z-archive-hero>div:first-child>small{font-size:9px;font-weight:900;letter-spacing:.15em;color:#8fc9ff}
.pos-z-archive-hero h2{margin:7px 0 7px;font-size:27px}
.pos-z-archive-hero p{margin:0;color:#c8d6e2;font-size:12px;line-height:1.6}
.pos-z-archive-stats{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:9px}
.pos-z-archive-stats span{min-width:125px;padding:13px 14px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:rgba(255,255,255,.07);display:grid;gap:5px}
.pos-z-archive-stats small{font-size:8px;font-weight:900;letter-spacing:.09em;color:#aac0d2}
.pos-z-archive-stats strong{font-size:17px;color:#fff}

.pos-z-archive-main .pos-closure-history,
.pos-z-archive-main .pos-z-search,
.pos-z-archive-main .pos-z-monthly{margin-top:18px}
.pos-z-archive-main .pos-closure-history>div{padding:14px 16px 18px}
.pos-z-section-content{padding:18px 22px 22px}
.pos-z-archive-main .pos-z-search,
.pos-z-archive-main .pos-z-monthly{padding:0!important}
.pos-z-archive-main .pos-z-search>header,
.pos-z-archive-main .pos-z-monthly>header{margin:0!important}
.pos-z-archive-main .pos-z-date-results,
.pos-z-archive-main .pos-z-month-preview{margin-top:16px}
.pos-z-archive-main .pos-z-empty{margin:16px}

@media(max-width:850px){
  .pos-z-archive-hero{align-items:flex-start;flex-direction:column}
  .pos-z-archive-stats{width:100%}
}
@media(max-width:650px){
  .pos-close-only .pos-panel-head{align-items:stretch!important}
  .pos-close-only-action{width:100%}
  .pos-z-archive-stats{grid-template-columns:1fr}
  .pos-z-archive-stats span{min-width:0}
  .pos-z-section-content{padding:15px}
}


/* V123 · Ticket Z mensuel unique et envoi par e-mail */
.pos-z-month-card{margin-top:16px;border:1px solid #dce5ec;border-radius:17px;background:#fff;overflow:hidden}
.pos-z-month-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 21px;background:linear-gradient(135deg,#142238,#213c56);color:#fff}
.pos-z-month-card>header small{font-size:8px;font-weight:900;letter-spacing:.13em;color:#8fc9ff}
.pos-z-month-card>header h3{margin:5px 0 5px;font-size:22px}.pos-z-month-card>header p{margin:0;color:#c8d6e2;font-size:10px}
.pos-z-month-card>header>strong{font-size:24px;white-space:nowrap}
.pos-z-month-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e6ebef}
.pos-z-month-card-stats span{padding:14px 16px;background:#f8fafb;display:grid;gap:5px}.pos-z-month-card-stats small{font-size:8px;font-weight:900;color:#728395}.pos-z-month-card-stats b{font-size:15px}
.pos-z-month-card-actions{padding:14px 18px;border-top:1px solid #e6ebef}.pos-z-month-card-actions a{display:inline-flex;min-height:42px;align-items:center;padding:0 14px;border-radius:10px;background:#087cf0;color:#fff;text-decoration:none;font-size:11px;font-weight:900}
.pos-z-mail-form{margin-top:12px;padding:15px 16px;border:1px solid #dce5ec;border-radius:15px;background:#f8fafb;display:grid;grid-template-columns:minmax(220px,1fr) minmax(230px,.8fr) auto;gap:12px;align-items:end}
.pos-z-mail-form>div{display:flex;align-items:center;gap:11px;align-self:center}.pos-z-mail-icon{width:38px;height:38px;border-radius:11px;background:#eaf5ff;color:#087cf0;display:grid;place-items:center;font-size:17px;font-weight:900}.pos-z-mail-form>div>span:last-child{display:grid;gap:3px}.pos-z-mail-form>div b{font-size:12px}.pos-z-mail-form>div small{color:#718191;font-size:9px}
.pos-z-mail-form label{display:grid;gap:6px;font-size:9px;font-weight:900;color:#617486}.pos-z-mail-form input{height:43px;padding:0 12px;border:1px solid #cfd9e2;border-radius:10px;background:#fff;font-size:14px}.pos-z-mail-form button{height:43px;padding:0 15px;border:0;border-radius:10px;background:#142238;color:#fff;font-weight:900;cursor:pointer;white-space:nowrap}.pos-z-mail-form button:hover{background:#087cf0}
@media(max-width:760px){.pos-z-month-card>header{flex-direction:column}.pos-z-month-card-stats{grid-template-columns:1fr}.pos-z-mail-form{grid-template-columns:1fr}.pos-z-mail-form button{width:100%}}

/* V124 · Aperçu du rapport mensuel détaillé */
.pos-z-month-card-stats{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.pos-z-month-card-stats{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pos-z-month-card-stats{grid-template-columns:1fr}}


/* V125 · Encaissement progressif */
[data-pos-payment-panel][hidden]{
  display:none!important;
}

@keyframes pos-payment-panel-open{
  from{
    opacity:0;
    transform:translateY(10px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}


/* V125.1 · Ancrage du choix d'encaissement */
[data-pos-payment-choice]{
  scroll-margin-top:18px;
}


/* V125.2 · Vue premium du détail des tickets à encaisser */
.pos-totals{padding:10px 20px 12px;gap:10px}
.pos-totals span{padding:8px 12px;gap:3px;border:1px solid #e2eaf1;border-radius:12px;background:#f8fbfd;color:#7a8b99;font-size:7px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.pos-totals b{font-size:13px}
.pos-order-details{margin:14px 20px 18px;border:1px solid #dbe5ee;border-radius:16px;background:#fbfdff;box-shadow:0 10px 30px rgba(20,34,56,.04);overflow:hidden}
.pos-order-details>summary{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(180deg,#f9fbfd,#f2f7fb);color:#15263a;font-size:11px;font-weight:900;letter-spacing:.03em;list-style:none}
.pos-order-details>summary::-webkit-details-marker{display:none}
.pos-order-details>summary::marker{display:none}
.pos-order-details>div{padding:14px;display:grid;gap:12px;background:linear-gradient(180deg,#fcfeff,#f6f9fc)}
.pos-order-details section,.pos-order-card{padding:16px 18px;border:1px solid #e3ebf2;border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(20,34,56,.04)}
.pos-order-details section>header,.pos-order-card>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px}
.pos-order-header-main{display:grid;gap:6px}
.pos-order-kicker{display:block;color:#7d8d9c;font-size:9px;font-weight:900;letter-spacing:.14em}
.pos-order-id{display:block;color:#17263b;font-size:15px;font-weight:900;line-height:1.05}
.pos-order-meta{display:flex;flex-wrap:wrap;gap:8px}
.pos-order-pill{padding:6px 9px;border:1px solid #e1e9f0;border-radius:999px;background:#f6f9fc;color:#607387;font-size:10px;font-weight:800;line-height:1}
.pos-order-total{min-width:116px;padding:12px 14px;display:grid;gap:4px;justify-items:end;align-self:start;border-radius:15px;background:#0f213a;color:#fff;font-size:17px;line-height:1.05;box-shadow:0 10px 22px rgba(15,33,58,.16)}
.pos-order-total small{margin:0;color:rgba(255,255,255,.7);font:8px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.pos-order-details ul{margin:14px 0 0;padding:14px 0 0;display:grid;gap:10px;border-top:1px solid #e5edf3;list-style:none}
.pos-order-details li{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:start;gap:12px;font-size:12px}
.pos-item-actions{display:grid;justify-items:end;align-content:start;gap:8px;font-weight:800}
.pos-item-actions em{padding:9px 12px;border:1px solid #e1e9f0;border-radius:12px;background:#f7fafc;color:#16273b;font-size:13px;font-style:normal;font-weight:900;white-space:nowrap}
.pos-item-actions form{margin:0;padding:9px 10px;display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap;border:1px solid #e4ebf1;border-radius:12px;background:#fff}
.pos-item-actions form label{display:grid;gap:4px;color:#7a8b98;font-size:8px;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.pos-item-actions form select{min-width:58px;height:32px;padding:0 22px 0 10px;border:1px solid #d9e2ea;border-radius:10px;background:#fff;color:#17263b;font-size:11px;font-weight:900}
.pos-item-actions button{min-height:32px;padding:0 12px;border:1px solid #f0cbc8;border-radius:10px;background:#fff3f1;color:#ad493f;font-size:10px;font-weight:900;cursor:pointer}
.pos-item-actions button:hover{border-color:#e4928a;background:#ffe7e3}
@media(max-width:1024px){.pos-order-details li{grid-template-columns:46px minmax(0,1fr)}.pos-order-details li>.pos-item-actions{grid-column:1/-1;justify-items:start;padding-left:58px}.pos-item-actions form{justify-content:flex-start}}
@media(max-width:700px){.pos-order-details{margin:12px}.pos-order-details section,.pos-order-card{padding:14px}.pos-order-details section>header,.pos-order-card>header{grid-template-columns:1fr}.pos-order-total{min-width:0;justify-items:start}.pos-order-details li>.pos-item-actions{padding-left:0;grid-column:1/-1}.pos-totals{padding:10px 12px;grid-template-columns:1fr}.pos-totals span{font-size:8px}}


/* V125.3 · Refonte premium plus lisible du détail des tickets */
.pos-totals{padding:10px 20px 8px;gap:12px;border-bottom:0;background:transparent}
.pos-totals span{padding:10px 14px;border-radius:14px;background:#f7fafc;border:1px solid #e2eaf1;color:#758694;font-size:8px;line-height:1.2;box-shadow:0 6px 14px rgba(20,34,56,.03)}
.pos-totals b{margin-top:2px;font-size:16px;line-height:1.05;color:#14243a}
.pos-order-details{margin:14px 20px 18px;border:1px solid #dbe6ef;border-radius:20px;background:linear-gradient(180deg,#ffffff,#f9fbfd);box-shadow:0 16px 36px rgba(18,33,55,.05);overflow:hidden}
.pos-order-details>summary{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(180deg,#fcfdff,#f3f7fb);border-bottom:1px solid #e6edf4;cursor:pointer}
.pos-detail-summary-copy{display:grid;gap:4px}
.pos-detail-summary-copy small{color:#748595;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.pos-detail-summary-copy b{color:#14253b;font-size:18px;line-height:1.1}
.pos-detail-summary-badge{padding:8px 12px;border-radius:999px;background:#0f213a;color:#fff;font-size:11px;font-weight:900;white-space:nowrap}
.pos-order-details>div,.pos-order-stack{padding:16px;display:grid;gap:14px;background:linear-gradient(180deg,#fcfeff,#f7fafc)}
.pos-order-card{padding:18px 20px;border:1px solid #e2ebf2;border-radius:18px;background:#fff;box-shadow:0 12px 28px rgba(20,34,56,.04)}
.pos-order-card>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding-bottom:12px;border-bottom:1px solid #ebf0f5}
.pos-order-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pos-order-kicker{padding:7px 10px;border-radius:999px;background:#eef5fb;color:#486179;font-size:10px;font-weight:900;letter-spacing:.08em}
.pos-order-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pos-order-pill{padding:6px 9px;border:1px solid #e2eaf1;border-radius:999px;background:#fff;color:#637687;font-size:10px;font-weight:800}
.pos-order-total{min-width:156px;padding:12px 14px;border-radius:16px;background:#0f213a;color:#fff;display:grid;gap:4px;justify-items:end;font-size:21px;font-weight:900;line-height:1.05;box-shadow:0 12px 26px rgba(15,33,58,.14)}
.pos-order-total small{color:rgba(255,255,255,.68);font:8px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.pos-order-details ul{margin:14px 0 0;padding:0;display:grid;gap:12px;border-top:0}
.pos-order-details li{padding:14px 16px;display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #e5edf4;border-radius:18px;background:linear-gradient(180deg,#fbfdff,#f6fafe);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.pos-item-actions{display:grid;justify-items:end;gap:10px;align-content:center}
.pos-item-actions em{padding:10px 14px;border-radius:14px;background:#fff;border:1px solid #dfe8ef;color:#15263a;font-size:15px;font-weight:900;box-shadow:0 6px 14px rgba(20,34,56,.04)}
.pos-item-actions form{padding:10px 12px;border-radius:14px;background:#fff;border:1px solid #e4ebf1;box-shadow:0 6px 14px rgba(20,34,56,.03)}
.pos-item-actions form label{gap:5px;font-size:8px;letter-spacing:.09em}
.pos-item-actions form select{min-width:68px;height:36px;border-radius:11px;font-size:12px}
.pos-item-actions button{min-height:36px;padding:0 14px;border-radius:11px;font-size:11px}
@media(max-width:1180px){.pos-order-details li{grid-template-columns:52px minmax(0,1fr)}.pos-item-actions{grid-column:1/-1;justify-items:start;padding-left:66px}}
@media(max-width:780px){.pos-totals{grid-template-columns:1fr}.pos-order-details,.pos-order-details>div,.pos-order-stack{margin:12px;padding:12px}.pos-order-details>summary{padding:16px}.pos-detail-summary-copy b{font-size:16px}.pos-detail-summary-badge{font-size:10px}.pos-order-card{padding:16px}.pos-order-card>header{grid-template-columns:1fr}.pos-order-total{min-width:0;justify-items:start;font-size:18px}.pos-order-details li{padding:12px;grid-template-columns:48px minmax(0,1fr)}.pos-item-actions{padding-left:0;grid-column:1/-1}.pos-item-actions form{width:100%;justify-content:flex-start}}


/* V125.4 · Caisse premium : détail plus compact + zone retrait luxe */
.pos-order-details{margin:12px 20px 18px;border-radius:22px;background:linear-gradient(180deg,#ffffff,#f7fbff);box-shadow:0 18px 42px rgba(13,30,55,.06)}
.pos-order-details>summary{padding:16px 20px;background:linear-gradient(180deg,#fcfeff,#f3f8fc)}
.pos-detail-summary-copy b{font-size:17px}
.pos-detail-summary-badge{padding:7px 12px;font-size:10px;box-shadow:0 8px 18px rgba(15,33,58,.12)}
.pos-order-details>div,.pos-order-stack{padding:14px;gap:12px;background:linear-gradient(180deg,#fbfdff,#f5f9fc)}
.pos-order-card{padding:16px 18px;border-radius:20px;box-shadow:0 10px 24px rgba(20,34,56,.035)}
.pos-order-card>header{padding-bottom:10px;gap:14px}
.pos-order-title-row{gap:8px}
.pos-order-kicker{padding:6px 9px;font-size:9px}
.pos-order-pill{padding:5px 8px;font-size:9px}
.pos-order-total{min-width:138px;padding:10px 12px;border-radius:15px;font-size:18px;box-shadow:0 10px 20px rgba(15,33,58,.12)}
.pos-order-total small{font-size:7px}
.pos-order-details ul{margin-top:12px;gap:10px}
.pos-order-details li{padding:12px 14px;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;border-radius:16px;background:linear-gradient(180deg,#fcfeff,#f4f8fb);box-shadow:inset 0 1px 0 rgba(255,255,255,.95)}
.pos-item-actions{gap:8px;align-items:center}
.pos-item-actions em{padding:8px 12px;border-radius:12px;border-color:#dbe6ee;background:#fff;font-size:13px;box-shadow:0 4px 10px rgba(20,34,56,.035)}
.pos-item-actions .pos-remove-form{margin:0;padding:8px 9px;display:grid;grid-template-columns:auto auto;align-items:end;gap:8px 10px;border:1px solid #dce6ee;border-radius:14px;background:linear-gradient(180deg,#ffffff,#f8fbfe);box-shadow:0 10px 20px rgba(18,33,55,.04), inset 0 1px 0 rgba(255,255,255,.9)}
.pos-item-actions .pos-remove-label{display:grid;gap:4px;padding:0;margin:0;color:#798a97;font-size:7px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.pos-item-actions .pos-remove-label span{display:block;padding-left:2px}
.pos-item-actions .pos-remove-label select{min-width:64px;height:36px;padding:0 26px 0 12px;border:1px solid #d8e2ea;border-radius:11px;background:linear-gradient(180deg,#fff,#f8fafc);color:#14253a;font-size:12px;font-weight:900;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}
.pos-item-actions .pos-remove-button{min-height:36px;padding:0 14px;border:1px solid #efc9c4;border-radius:11px;background:linear-gradient(180deg,#fff8f7,#fff1ef);color:#b14a40;font-size:10px;font-weight:900;letter-spacing:.02em;box-shadow:0 6px 14px rgba(201,104,94,.08);transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}
.pos-item-actions .pos-remove-button:hover{border-color:#e29a92;background:linear-gradient(180deg,#fff3f1,#ffe8e5);box-shadow:0 8px 18px rgba(201,104,94,.12);transform:translateY(-1px)}
.pos-item-actions .pos-remove-button:active{transform:translateY(0)}
.pos-totals{padding:10px 20px 6px}
.pos-totals span{padding:10px 14px;border-radius:14px;background:linear-gradient(180deg,#fff,#f7fafc);box-shadow:0 8px 18px rgba(20,34,56,.03)}
.pos-totals b{font-size:15px}
@media(max-width:1180px){.pos-order-details li{grid-template-columns:42px minmax(0,1fr)}.pos-item-actions{grid-column:1/-1;justify-items:start;padding-left:54px}.pos-item-actions .pos-remove-form{grid-template-columns:auto auto}}
@media(max-width:780px){.pos-order-details,.pos-order-details>div,.pos-order-stack{margin:10px;padding:10px}.pos-order-card{padding:14px}.pos-order-details li{padding:11px 12px;grid-template-columns:40px minmax(0,1fr);gap:10px}.pos-item-actions{padding-left:0;grid-column:1/-1;width:100%}.pos-item-actions em{font-size:12px}.pos-item-actions .pos-remove-form{width:100%;grid-template-columns:minmax(0,1fr) auto}.pos-item-actions .pos-remove-label select{width:100%}}


/* V125.5 · Homogénéisation luxe de la page Caisse */


/* Résumé Total / Déjà réglé / Solde */
.pos-totals-luxe{padding:14px 20px 10px!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;border-bottom:0!important;background:transparent!important}
.pos-totals-luxe article{min-height:74px;padding:14px 15px;display:flex;align-items:center;gap:12px;border:1px solid #dfe8ef;border-radius:17px;background:linear-gradient(145deg,#fff,#f7fafc);box-shadow:0 9px 22px rgba(20,34,56,.04)}
.pos-totals-luxe .pos-total-icon{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:12px;background:#eef4f8;color:#60778c;font-size:13px;font-weight:900}
.pos-totals-luxe article>div{display:grid;gap:4px}
.pos-totals-luxe small{color:#768897;font-size:8px;font-weight:900;letter-spacing:.1em}
.pos-totals-luxe b{color:#14253a;font-size:16px;font-weight:900;line-height:1}
.pos-totals-luxe .pos-total-due{border-color:#0f213a;background:linear-gradient(145deg,#0f213a,#183754);box-shadow:0 12px 26px rgba(15,33,58,.15)}
.pos-totals-luxe .pos-total-due .pos-total-icon{background:rgba(255,255,255,.1);color:#8dccff}
.pos-totals-luxe .pos-total-due small{color:#9eb5c8}
.pos-totals-luxe .pos-total-due b{color:#fff;font-size:18px}

/* Ligne produit alignée : Qté / produit / prix / retrait */
.pos-order-details .pos-remove-form-inline{width:154px;margin:0!important;padding:6px!important;display:grid!important;grid-template-columns:66px minmax(0,1fr)!important;align-items:end!important;gap:6px!important;border:1px solid #dce6ee!important;border-radius:12px!important;background:linear-gradient(180deg,#fff,#f8fbfd)!important;box-shadow:0 5px 12px rgba(18,33,55,.035)!important}
.pos-order-details .pos-remove-label{display:grid!important;gap:3px!important;margin:0!important;color:#7b8c99!important;font-size:6.5px!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important}
.pos-order-details .pos-remove-label span{padding-left:1px!important;white-space:nowrap!important}
.pos-order-details .pos-remove-label select{width:100%!important;min-width:0!important;height:30px!important;padding:0 19px 0 9px!important;border:1px solid #d8e2ea!important;border-radius:9px!important;background:#fff!important;color:#14253a!important;font-size:10px!important;font-weight:900!important}
.pos-order-details .pos-remove-button{min-width:0!important;min-height:30px!important;height:30px!important;padding:0 9px!important;border-radius:9px!important;font-size:9px!important;box-shadow:none!important}
.pos-remove-placeholder{justify-self:end;color:#9aa8b4;font-size:11px}

/* Finitions homogènes de la note */
.pos-order-details{border-radius:20px!important}
.pos-order-card{padding:14px 16px!important;border-radius:17px!important}
.pos-order-card>header{padding-bottom:9px!important}
.pos-order-total{min-width:126px!important;padding:9px 11px!important;border-radius:13px!important;font-size:16px!important}
.pos-detail-summary-copy b{font-size:16px!important}

@media(max-width:1180px){
  .pos-order-details .pos-remove-form-inline{width:146px!important;grid-template-columns:62px minmax(0,1fr)!important}
}
@media(max-width:960px){
  .pos-totals-luxe{grid-template-columns:1fr!important}
  .pos-order-details .pos-remove-form-inline{grid-column:2/-1!important;justify-self:end!important;width:150px!important}
}
@media(max-width:720px){
  .pos-order-details .pos-remove-form-inline{grid-column:1/-1!important;justify-self:stretch!important;width:100%!important;grid-template-columns:minmax(0,1fr) auto!important}
}


/* V125.9 · Pavé numérique tactile intégré */
.pos-amount-keypad[hidden]{display:none!important}
.pos-amount-keypad{margin-top:12px;padding:12px;border:1px solid #dbe5ed;border-radius:17px;background:linear-gradient(180deg,#f9fbfd,#f2f7fb);box-shadow:0 15px 34px rgba(19,36,58,.09)}
.pos-amount-keypad.is-open{animation:pos-keypad-in .18s ease both}
.pos-amount-keypad>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.pos-amount-keypad>header>div{display:grid;gap:3px}
.pos-amount-keypad>header small{color:#718496;font-size:8px;font-weight:900;letter-spacing:.13em}
.pos-amount-keypad>header strong{color:#142238;font-size:24px;line-height:1;font-weight:900;letter-spacing:-.03em}
.pos-amount-keypad>header>button{width:34px;height:34px;border:0;border-radius:10px;background:#e8eef3;color:#53697c;font-size:21px;cursor:pointer}
.pos-amount-keypad-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.pos-amount-keypad-grid button{min-height:48px;border:1px solid #d7e1e9;border-radius:12px;background:#fff;color:#142238;font-size:18px;font-weight:900;cursor:pointer;box-shadow:0 5px 12px rgba(20,34,56,.035)}
.pos-amount-keypad-grid button:active{transform:translateY(1px);background:#eef7ff}
.pos-amount-keypad-grid .keypad-action{background:#edf2f6;color:#556b7d;font-size:15px}
.pos-amount-keypad-grid .keypad-zero{grid-column:2/4}
.pos-amount-keypad>footer{margin-top:9px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pos-amount-keypad>footer button{min-height:43px;padding:8px 11px;border:0;border-radius:12px;font-size:10px;font-weight:900;cursor:pointer}
.pos-amount-keypad>footer button:first-child{background:#eaf5ff;color:#087cf0;border:1px solid #cfe3f6}
.pos-amount-keypad>footer button:last-child{background:#142238;color:#fff}
@keyframes pos-keypad-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){
  .pos-amount-keypad-grid button{min-height:45px}
  .pos-amount-keypad>footer{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.pos-amount-keypad.is-open{animation:none}}


/* V125.10 · Désactivation du zoom au double toucher sur la Caisse */
body.pos-page,
body.pos-page button,
body.pos-page a,
body.pos-page label,
body.pos-page input,
body.pos-page select,
body.pos-page textarea,
body.pos-page summary,
body.pos-page [role="button"]{
  touch-action:manipulation;
}


/* V126 · Plan de salle */
.room-plan-page{min-height:100vh;background:#eef3f7}
.room-plan-head{justify-content:space-between}
.room-plan-head>div{margin-right:auto}
.room-plan-head>div span{display:block;margin-top:4px;color:#6c7e90;font-size:9px;font-weight:700}
.room-plan-head-links{display:flex;gap:8px;align-items:center}
.room-plan-head-links a,.room-plan-head-button{min-height:42px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d8e3ec;border-radius:11px;background:#fff;color:#315879;font-size:9px;font-weight:900;text-decoration:none;white-space:nowrap}
.room-plan-head-links a:last-child{border-color:#142238;background:#142238;color:#fff}
.room-plan-head-button{margin-left:auto}
.room-plan-main{max-width:1380px}
.room-plan-migration{margin-bottom:14px}
.room-plan-migration code{font-weight:900}
.room-plan-hero{margin-bottom:14px;padding:23px 25px;display:flex;align-items:center;justify-content:space-between;gap:25px;border:1px solid #dbe5ed;border-radius:21px;background:linear-gradient(135deg,#142238,#203d59);color:#fff;box-shadow:0 16px 40px rgba(20,34,56,.14)}
.room-plan-hero>div:first-child{max-width:570px}
.room-plan-hero>div:first-child small{color:#86c7ff;font-size:9px;font-weight:900;letter-spacing:.15em}
.room-plan-hero h2{margin:7px 0 6px;font-size:26px}
.room-plan-hero p{margin:0;color:#c4d4e1;font-size:12px;line-height:1.55}
.room-plan-summary{display:grid;grid-template-columns:repeat(3,minmax(135px,1fr));gap:8px}
.room-plan-summary>span{padding:13px 15px;display:grid;gap:5px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.07)}
.room-plan-summary small{color:#a9bfd0;font-size:8px;font-weight:900;letter-spacing:.08em}
.room-plan-summary strong{font-size:21px;color:#fff}
.room-plan-summary .free strong{color:#9ce2b2}.room-plan-summary .occupied strong{color:#ffc56e}.room-plan-summary .amount strong{color:#8ecbff}
.room-plan-card{border:1px solid #dbe5ed;border-radius:21px;background:#fff;box-shadow:0 14px 36px rgba(20,34,56,.06);overflow:hidden}
.room-plan-toolbar{min-height:68px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #e6edf2;background:linear-gradient(180deg,#fff,#fbfcfd)}
.room-plan-legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap;color:#53687a;font-size:9px;font-weight:800}
.room-plan-legend span{display:flex;align-items:center;gap:6px}
.room-plan-legend i{width:10px;height:10px;border-radius:50%}.room-plan-legend i.free{background:#3fb56a;box-shadow:0 0 0 4px #e9f8ee}.room-plan-legend i.occupied{background:#f0a337;box-shadow:0 0 0 4px #fff4e4}
.room-plan-legend small{color:#8796a3;font-size:8px}
.room-plan-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.room-plan-actions button{min-height:39px;padding:9px 12px;border:1px solid #d8e2ea;border-radius:10px;background:#fff;color:#40586e;font-size:9px;font-weight:900;cursor:pointer}
.room-plan-actions button.primary{border-color:#087cf0;background:#087cf0;color:#fff;box-shadow:0 7px 17px rgba(8,124,240,.2)}
.room-plan-actions button:disabled{opacity:.45;cursor:not-allowed}
.room-plan-editor{padding:13px 18px;border-bottom:1px solid #e5edf3;background:#f4f8fb}
.room-plan-editor-empty{min-height:55px;display:flex;align-items:center;gap:10px;color:#6d7f90}.room-plan-editor-empty b{font-size:11px}.room-plan-editor-empty span{font-size:9px}
.room-plan-editor-fields{display:grid;grid-template-columns:minmax(160px,.8fr) 1.25fr 1.25fr 150px auto;align-items:end;gap:13px}
.room-plan-editor-title{display:grid;gap:4px}.room-plan-editor-title small{color:#f4473a;font-size:8px;font-weight:900;letter-spacing:.13em}.room-plan-editor-title strong{font-size:17px}
.room-plan-editor fieldset{margin:0;padding:0;border:0;display:flex;gap:6px;flex-wrap:wrap}.room-plan-editor legend,.room-plan-editor label{display:grid;gap:6px;color:#607488;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.room-plan-editor fieldset button,.room-plan-center{min-height:36px;padding:8px 10px;border:1px solid #d5e0e9;border-radius:9px;background:#fff;color:#4a6277;font-size:8px;font-weight:900;cursor:pointer}.room-plan-editor fieldset button.active{border-color:#087cf0;background:#eaf5ff;color:#087cf0;box-shadow:inset 0 0 0 1px #087cf0}
.room-plan-editor input{height:36px;padding:0 9px;border:1px solid #d5e0e9;border-radius:9px;background:#fff;font-size:12px;font-weight:900}
.room-plan-center{white-space:nowrap}
.room-plan-scroll{overflow:auto;background:#eaf0f5;padding:18px}
.room-plan-canvas{position:relative;min-width:920px;min-height:650px;border:1px solid #d5e0e8;border-radius:22px;overflow:hidden;background-color:#f9fbfc;background-image:linear-gradient(rgba(101,126,148,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(101,126,148,.08) 1px,transparent 1px);background-size:30px 30px;box-shadow:inset 0 0 0 8px rgba(255,255,255,.65),0 12px 28px rgba(20,34,56,.05)}
.room-plan-canvas::before{content:"";position:absolute;inset:35px;border:1px dashed #c8d5df;border-radius:18px;pointer-events:none}
.room-plan-grid-label{position:absolute;left:50%;top:16px;transform:translateX(-50%);padding:6px 11px;border-radius:999px;background:#edf3f7;color:#81909e;font-size:8px;font-weight:900;letter-spacing:.18em;pointer-events:none}
.room-table{--table-width:138px;--table-height:96px;position:absolute;width:var(--table-width);height:var(--table-height);padding:12px 13px;display:grid;grid-template-rows:auto 1fr auto auto;align-items:center;gap:4px;border:1px solid transparent;border-radius:19px;color:#15263a;text-align:left;cursor:pointer;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease,background .18s ease;touch-action:manipulation;box-shadow:0 12px 24px rgba(20,34,56,.09)}
.room-table.size-small{--table-width:112px;--table-height:80px;padding:9px 10px}.room-table.size-large{--table-width:166px;--table-height:112px;padding:14px 15px}
.room-table.shape-square{--table-width:100px;--table-height:100px}.room-table.shape-square.size-small{--table-width:82px;--table-height:82px}.room-table.shape-square.size-large{--table-width:124px;--table-height:124px}
.room-table.shape-round{--table-width:106px;--table-height:106px;border-radius:50%;padding:13px;text-align:center}.room-table.shape-round.size-small{--table-width:86px;--table-height:86px;padding:10px}.room-table.shape-round.size-large{--table-width:132px;--table-height:132px;padding:16px}
.room-table.is-free{border-color:#a9d9b9;background:linear-gradient(160deg,#f9fffb,#e8f7ed)}.room-table.is-occupied{border-color:#efc47f;background:linear-gradient(160deg,#fffdf8,#fff0db)}
.room-table:hover{transform:translateY(-2px);box-shadow:0 17px 31px rgba(20,34,56,.13)}
.room-table-top{display:flex;align-items:center;gap:5px}.room-table-top i{width:7px;height:7px;border-radius:50%}.room-table.is-free .room-table-top i{background:#35a95f}.room-table.is-occupied .room-table-top i{background:#e99725}.room-table-top small{font-size:6.5px;font-weight:900;letter-spacing:.1em;color:#697d8e}
.room-table-name{overflow:hidden;font-size:13px;font-weight:900;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.room-table.shape-round .room-table-name{font-size:11px;text-align:center}
.room-table-amount{display:grid;gap:2px}.room-table-amount b{font-size:15px;line-height:1;color:#15263a}.room-table.is-free .room-table-amount b{color:#28884b}.room-table.is-occupied .room-table-amount b{color:#b66c09}.room-table-amount small{overflow:hidden;color:#6c7e8e;font-size:6.5px;text-overflow:ellipsis;white-space:nowrap}
.room-table-foot{display:flex;align-items:center;justify-content:space-between;gap:5px;color:#718391}.room-table-foot small{font-size:6px;font-weight:800}.room-table.shape-round .room-table-foot{justify-content:center}.room-table.shape-round .room-table-foot small:last-child{display:none}.room-table.size-small .room-table-caption,.room-table.size-small .room-table-foot small:last-child{display:none}
.room-plan-main.is-editing .room-table{cursor:grab;touch-action:none}.room-plan-main.is-editing .room-table:hover{transform:none}.room-plan-main.is-editing .room-table.is-selected{outline:3px solid rgba(8,124,240,.25);border-color:#087cf0;box-shadow:0 0 0 2px #fff,0 0 0 5px #087cf0,0 20px 35px rgba(8,124,240,.18)}.room-plan-main.is-editing .room-table.is-dragging{z-index:20;cursor:grabbing;box-shadow:0 24px 45px rgba(20,34,56,.22)}
.room-plan-empty{min-height:420px;padding:30px;display:grid;place-items:center;align-content:center;gap:9px;text-align:center;background:#f7fafc;color:#718291}.room-plan-empty>span{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#eaf5ff;color:#087cf0;font-size:24px}.room-plan-empty h2{margin:0;color:#142238}.room-plan-empty p{margin:0}.room-plan-empty a{margin-top:5px;padding:10px 14px;border-radius:10px;background:#087cf0;color:#fff;font-weight:900;text-decoration:none}
.room-table-modal-backdrop{position:fixed;inset:0;z-index:1500;background:rgba(11,22,35,.54);backdrop-filter:blur(4px)}.room-table-modal{position:fixed;inset:0;z-index:1501;padding:20px;display:grid;place-items:center}.room-table-modal[hidden],.room-table-modal-backdrop[hidden]{display:none!important}body.room-modal-open{overflow:hidden}
.room-table-modal-card{width:min(480px,100%);overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 30px 90px rgba(10,22,36,.28)}.room-table-modal-card>header{padding:20px 22px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #e6edf2}.room-table-modal-card>header small{color:#f4473a;font-size:8px;font-weight:900;letter-spacing:.13em}.room-table-modal-card h2{margin:5px 0 0;font-size:23px}.room-table-modal-card>header button{width:38px;height:38px;border:0;border-radius:11px;background:#eff3f6;color:#52687b;font-size:22px;cursor:pointer}
.room-table-modal-status{padding:24px;display:grid;justify-items:center;gap:5px;text-align:center}.room-table-modal-status>span{padding:6px 9px;border-radius:999px;background:#f0f5f8;color:#5f7488;font-size:8px;font-weight:900;letter-spacing:.09em}.room-table-modal-status strong{font:34px Georgia;color:#087cf0}.room-table-modal-status small{color:#718292;font-size:10px}
.room-table-modal-card nav{padding:0 22px 22px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.room-table-modal-card nav a{min-height:46px;padding:11px 13px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#eef5fb;color:#315879;font-size:9px;font-weight:900;text-decoration:none;text-align:center}.room-table-modal-card nav a:first-child{background:#142238;color:#fff}
.room-plan-toast{position:fixed;left:50%;bottom:25px;z-index:1700;transform:translateX(-50%);padding:11px 16px;border-radius:12px;background:#142238;color:#fff;font-size:10px;font-weight:900;box-shadow:0 13px 35px rgba(20,34,56,.22)}.room-plan-toast.error{background:#b94a42}
@media(max-width:900px){.room-plan-hero{align-items:flex-start;flex-direction:column}.room-plan-summary{width:100%}.room-plan-editor-fields{grid-template-columns:1fr 1fr}.room-plan-editor-title{grid-column:1/-1}.room-plan-center{align-self:end}}
@media(max-width:680px){.room-plan-head{align-items:stretch;flex-direction:column}.room-plan-head>div{margin-right:0}.room-plan-head-links{width:100%}.room-plan-head-links a{flex:1}.room-plan-summary{grid-template-columns:1fr}.room-plan-toolbar{align-items:flex-start;flex-direction:column}.room-plan-actions{width:100%}.room-plan-actions button{flex:1}.room-plan-editor-fields{grid-template-columns:1fr}.room-plan-editor-title{grid-column:auto}.room-table-modal-card nav{grid-template-columns:1fr}.room-plan-scroll{padding:10px}}

/* ======================================================================
   V127 · Gestion de l’équipe, rôles, code PIN et traçabilité
   ====================================================================== */

/* Session équipe active sur les pages de l’application */
.team-session-banner{
  position:sticky;
  top:0;
  z-index:2050;
  min-height:62px;
  padding:9px max(18px,env(safe-area-inset-right)) 9px max(18px,env(safe-area-inset-left));
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  background:linear-gradient(135deg,#0f213a,#1b3855);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 28px rgba(10,24,40,.2);
}
.team-session-avatar{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:linear-gradient(145deg,#1687f1,#56adff);
  color:#fff;
  font-size:13px;
  font-weight:900;
  letter-spacing:.03em;
  box-shadow:0 7px 18px rgba(8,124,240,.27),inset 0 1px 0 rgba(255,255,255,.3);
}
.team-session-banner>div{min-width:0;display:grid;gap:2px}
.team-session-banner>div b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.team-session-banner>div small{color:#b8c9d9;font-size:9px;font-weight:800}
.team-session-banner form{margin:0 0 0 18px;display:block}
.team-session-banner button{
  min-height:38px;
  padding:8px 13px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:10px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.team-session-banner button:hover{background:#fff;color:#142238}
.team-session-active.app{grid-template-rows:auto 1fr}
.team-session-active.app>.team-session-banner{grid-column:1/-1;grid-row:1}
.team-session-active.app>aside{grid-column:1;grid-row:2}
.team-session-active.app>main{grid-column:2;grid-row:2}
.dashboard-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.dashboard-head-actions form{margin:0;display:block}
.dashboard-team-lock{
  min-height:35px;
  padding:8px 11px;
  border:1px solid #d5e1eb;
  border-radius:10px;
  background:#fff;
  color:#315879;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}
.dashboard-team-lock:hover{border-color:#87bff2;background:#eef7ff;color:#087cf0}
.dashboard-team-error{margin-bottom:14px}

/* Page de gestion de l’équipe */
.team-main{max-width:1200px}
.team-head{justify-content:space-between}
.team-head>div{margin-right:auto}
.team-head>div>span{display:block;margin-top:3px;color:#748596;font-size:9px;font-weight:700}
.team-head form{margin:0;display:block}
.team-head form button{
  min-height:42px;
  padding:10px 15px;
  border:0;
  border-radius:11px;
  background:#142238;
  color:#fff;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(20,34,56,.15);
}
.team-head form button:hover{background:#087cf0}
.team-hero{
  margin-bottom:18px;
  padding:27px 29px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  border-radius:22px;
  background:linear-gradient(135deg,#10233c,#1e405f);
  color:#fff;
  box-shadow:0 18px 45px rgba(13,31,52,.14);
  overflow:hidden;
  position:relative;
}
.team-hero::after{content:"";position:absolute;right:-80px;top:-90px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(72,163,249,.27),rgba(72,163,249,0) 70%);pointer-events:none}
.team-hero>div:first-child{max-width:620px;position:relative;z-index:1}
.team-hero>div:first-child>small{color:#91ceff;font-size:9px;font-weight:900;letter-spacing:.16em}
.team-hero h2{margin:7px 0 8px;font:30px Georgia;color:#fff}
.team-hero p{margin:0;color:#c7d4df;font-size:12px;line-height:1.6}
.team-hero-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:9px}
.team-hero-stats span{min-width:112px;padding:14px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.07);display:grid;gap:5px;backdrop-filter:blur(7px)}
.team-hero-stats small{color:#a9bed0;font-size:7px;font-weight:900;letter-spacing:.11em}
.team-hero-stats strong{font-size:18px;color:#fff;line-height:1.15}
.team-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);align-items:start;gap:16px}
.team-panel{
  border:1px solid #dfe7ee;
  border-radius:19px;
  background:#fff;
  box-shadow:0 10px 30px rgba(20,34,56,.045);
  overflow:hidden;
}
.team-panel>header{padding:20px 22px;border-bottom:1px solid #e9eef2;background:linear-gradient(180deg,#fff,#fbfcfd)}
.team-panel>header small{color:#f4473a;font-size:8px;font-weight:900;letter-spacing:.14em}
.team-panel>header h2{margin:5px 0 0;font-size:18px}
.team-panel>header p{margin:6px 0 0;color:#718191;font-size:10px;line-height:1.5}
.team-create-card{position:sticky;top:82px}
.team-create-card>form{margin:0;padding:20px 22px;display:grid;grid-template-columns:1fr;gap:13px}
.team-create-card label,.team-member-actions label{display:grid;gap:6px;color:#4e6275;font-size:9px;font-weight:900}
.team-create-card input,.team-create-card select,.team-member-actions input,.team-member-actions select{
  width:100%;height:43px;padding:0 11px;border:1px solid #d7e1e9;border-radius:10px;background:#fbfcfd;color:#142238;font-size:12px;outline:0
}
.team-create-card input:focus,.team-create-card select:focus,.team-member-actions input:focus,.team-member-actions select:focus{border-color:#75b8f6;box-shadow:0 0 0 3px rgba(8,124,240,.08);background:#fff}
.team-pin-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.team-create-card>form>button,.team-member-actions form>button{
  min-height:45px;padding:11px 14px;border:0;border-radius:11px;background:#087cf0;color:#fff;font-size:10px;font-weight:900;cursor:pointer;box-shadow:0 8px 19px rgba(8,124,240,.2)
}
.team-create-card>form>button:hover,.team-member-actions form>button:hover{background:#066ed4}
.team-members-panel>header{display:flex;align-items:center;justify-content:space-between;gap:15px}
.team-members-panel>header>span{padding:7px 10px;border-radius:999px;background:#eaf5ff;color:#087cf0;font-size:8px;font-weight:900;white-space:nowrap}
.team-member-list{padding:13px;display:grid;gap:10px}
.team-member-card{
  min-width:0;
  padding:14px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:13px;
  border:1px solid #e2e9ef;
  border-radius:15px;
  background:linear-gradient(180deg,#fff,#fafcfd);
  transition:border-color .16s,box-shadow .16s,transform .16s;
}
.team-member-card:hover{border-color:#c8dceb;box-shadow:0 9px 22px rgba(20,34,56,.06);transform:translateY(-1px)}
.team-member-card.inactive{opacity:.55;background:#f4f6f8}
.team-member-avatar,.team-audit-avatar{
  width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#eaf5ff,#dbeeff);color:#087cf0;font-size:13px;font-weight:900;border:1px solid #d3e7f8
}
.team-member-copy{min-width:0;display:grid;gap:5px}
.team-member-copy>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.team-member-copy h3{margin:0;font-size:13px}
.team-member-copy>div>span{padding:5px 7px;border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.04em}
.role-admin{background:#e8f2ff!important;color:#176db7!important}.role-manager{background:#eeeafd!important;color:#6554b5!important}.role-server{background:#e9f8ee!important;color:#2e7d49!important}.role-cashier{background:#fff4df!important;color:#a26915!important}.role-kitchen{background:#fff0ee!important;color:#b24b43!important}
.team-member-copy p{margin:0;color:#66798b;font-size:9px;line-height:1.45}
.team-member-copy>small{color:#8795a2;font-size:7px}
.team-member-actions{position:relative}
.team-member-actions>summary{padding:8px 11px;border:1px solid #d6e1e9;border-radius:9px;background:#f6f9fb;color:#425b71;font-size:8px;font-weight:900;list-style:none;cursor:pointer}
.team-member-actions>summary::-webkit-details-marker{display:none}
.team-member-actions[open]>summary{border-color:#95c7f4;background:#eaf5ff;color:#087cf0}
.team-member-actions>div{position:absolute;right:0;top:39px;z-index:80;width:min(390px,calc(100vw - 36px));padding:15px;border:1px solid #dbe4eb;border-radius:15px;background:#fff;box-shadow:0 22px 65px rgba(16,34,55,.2)}
.team-member-actions>div>form{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.team-member-actions>div>form>label:first-of-type{grid-column:1/-1}
.team-member-actions>div>form>button{grid-column:1/-1}
.team-member-secondary-actions{margin-top:10px;padding-top:10px;display:flex;justify-content:flex-end;gap:7px;border-top:1px solid #e8edf1}
.team-member-secondary-actions form{margin:0;display:block}
.team-member-secondary-actions button{min-height:34px;padding:7px 10px;border:1px solid #d7e0e8;border-radius:9px;background:#f5f8fa;color:#4f6578;font-size:8px;font-weight:900;cursor:pointer}
.team-member-secondary-actions button.danger{border-color:#f0cbc7;background:#fff1ef;color:#b2483f}
.team-empty{min-height:240px;padding:28px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:#718191}
.team-empty>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eaf5ff;color:#087cf0;font-size:22px}
.team-empty h3{margin:0;color:#142238}.team-empty p{margin:0;font-size:10px}
.team-roles-panel,.team-audit-panel{margin-top:16px}
.team-role-grid{padding:14px;display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.team-role-grid article{min-width:0;padding:13px;border:1px solid #e3eaf0;border-radius:14px;background:#fbfcfd;display:flex;align-items:flex-start;gap:10px}
.role-icon{width:35px;height:35px;flex:0 0 35px;display:grid;place-items:center;border-radius:11px;font-size:11px;font-weight:900}
.team-role-grid h3{margin:1px 0 4px;font-size:10px}.team-role-grid p{margin:0;color:#718191;font-size:8px;line-height:1.4}
.team-audit-list{padding:4px 18px 14px;display:grid}
.team-audit-list article{padding:11px 3px;display:flex;align-items:center;gap:11px;border-bottom:1px solid #edf1f4}
.team-audit-list article:last-child{border-bottom:0}
.team-audit-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:10px;font-size:9px}
.team-audit-list article>div{min-width:0;display:grid;gap:3px}.team-audit-list b{font-size:10px}.team-audit-list small{color:#788897;font-size:8px;line-height:1.4}
.team-audit-empty{margin:0;padding:25px;color:#718191;font-size:10px;text-align:center}

/* Écran de connexion PIN sur l’appareil partagé */
.team-login-page{min-height:100vh;padding:25px 18px;background:radial-gradient(circle at 50% -10%,#294f73 0,#142c46 30%,#0d1d30 72%);color:#142238}
.team-login-shell{width:min(920px,100%);margin:0 auto}
.team-login-brand{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#fff}
.team-login-brand .brand{margin:0;width:150px!important;height:70px!important;filter:brightness(0) invert(1)}
.team-login-brand>small{padding:8px 11px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.07);color:#d5e1eb;font-size:9px;font-weight:900}
.team-login-card{padding:28px;border:1px solid rgba(255,255,255,.14);border-radius:25px;background:rgba(255,255,255,.98);box-shadow:0 30px 90px rgba(0,0,0,.25)}
.team-login-intro{text-align:center}
.team-login-intro>small{color:#087cf0;font-size:9px;font-weight:900;letter-spacing:.15em}
.team-login-intro h1{margin:8px 0 7px;font:34px Georgia;color:#142238}
.team-login-intro p{margin:0;color:#718191;font-size:11px}
.team-login-error{margin:16px auto 0;max-width:620px;text-align:center}
.team-pin-form{margin:24px 0 0;display:block}
.team-profile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.team-profile-button{min-height:128px;padding:14px 10px;display:grid;place-items:center;align-content:center;gap:7px;border:1px solid #dfe7ed;border-radius:17px;background:linear-gradient(180deg,#fff,#f8fafc);color:#142238;cursor:pointer;transition:border .16s,transform .16s,box-shadow .16s}
.team-profile-button:hover{border-color:#9bcbf5;transform:translateY(-2px);box-shadow:0 12px 25px rgba(20,34,56,.08)}
.team-profile-button.selected{border:2px solid #087cf0;background:#eef7ff;box-shadow:0 10px 23px rgba(8,124,240,.13)}
.team-profile-avatar{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;font-size:15px;font-weight:900}
.team-profile-button b{max-width:100%;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.team-profile-button small{color:#718191;font-size:8px;font-weight:800}
.team-pin-entry{width:min(430px,100%);margin:24px auto 0;padding:20px;border:1px solid #dce5ec;border-radius:20px;background:#f8fafc;box-shadow:0 12px 28px rgba(20,34,56,.055)}
.team-pin-entry[hidden]{display:none!important}
.team-pin-entry>header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.team-pin-entry>header small{color:#087cf0;font-size:8px;font-weight:900;letter-spacing:.13em}
.team-pin-entry>header h2{margin:4px 0 0;font-size:20px}
.team-pin-entry>header button{padding:7px 9px;border:1px solid #d9e2e9;border-radius:9px;background:#fff;color:#4d6477;font-size:8px;font-weight:900;cursor:pointer}
.team-pin-dots{height:42px;margin:14px 0;display:flex;align-items:center;justify-content:center;gap:10px}
.team-pin-dots i{width:12px;height:12px;border:2px solid #b9c7d2;border-radius:50%;background:#fff;transition:background .12s,border .12s,transform .12s}
.team-pin-dots i.filled{border-color:#087cf0;background:#087cf0;transform:scale(1.07)}
.team-pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.team-pin-keypad button{min-height:54px;border:1px solid #d8e2e9;border-radius:13px;background:#fff;color:#142238;font-size:20px;font-weight:900;cursor:pointer;box-shadow:0 5px 13px rgba(20,34,56,.035)}
.team-pin-keypad button:active{transform:translateY(1px);background:#eaf5ff}
.team-pin-keypad button.secondary{background:#edf2f6;color:#53687b;font-size:14px}
.team-pin-submit{width:100%;min-height:48px;margin-top:10px;border:0;border-radius:12px;background:#087cf0;color:#fff;font-size:10px;font-weight:900;cursor:pointer;box-shadow:0 9px 20px rgba(8,124,240,.2)}
.team-pin-submit:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}
.team-no-profile{min-height:210px;margin-top:20px;display:grid;place-items:center;align-content:center;gap:8px;color:#718191;text-align:center}
.team-no-profile>span{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#fff0e9;color:#c36d2f;font-weight:900}.team-no-profile h2{margin:0;color:#142238}.team-no-profile p{margin:0;font-size:10px}
.team-owner-access{margin:22px auto 0;max-width:430px;border-top:1px solid #e2e8ed;padding-top:15px}
.team-owner-access>summary{padding:9px;text-align:center;color:#5c7183;font-size:9px;font-weight:900;cursor:pointer;list-style:none}.team-owner-access>summary::-webkit-details-marker{display:none}
.team-owner-access>form{margin:10px 0 0;padding:14px;display:grid;grid-template-columns:1fr;gap:10px;border:1px solid #dfe7ed;border-radius:13px;background:#f8fafc}
.team-owner-access input{height:42px;background:#fff}.team-owner-access button{min-height:42px;border:0;border-radius:10px;background:#142238;color:#fff;font-size:9px;font-weight:900;cursor:pointer}

/* Retours d’accès en lecture seule */
.pos-readonly-notice,.room-plan-readonly,.pos-z-mail-readonly{margin:13px 18px;padding:11px 13px;border:1px solid #dce5ec;border-radius:11px;background:#f5f8fa;color:#607487;font-size:9px;font-weight:800;line-height:1.45}
.room-plan-readonly{margin:0;padding:9px 11px;white-space:nowrap}
.pos-z-mail-readonly{margin:0;background:#fff}

@media(max-width:980px){
  .team-layout{grid-template-columns:1fr}
  .team-create-card{position:static}
  .team-role-grid{grid-template-columns:repeat(2,1fr)}
  .team-profile-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:720px){
  .team-session-banner{position:relative;justify-content:flex-start;gap:9px}
  .team-session-banner form{margin-left:auto}
  .team-session-banner button{padding:7px 9px;font-size:8px}
  .team-session-active.app{display:block}
  .team-session-active.app>aside{display:none}
  .team-session-active.app>main{display:block}
  .team-head{align-items:stretch;flex-direction:column;gap:12px}
  .team-head>div{margin-right:0}
  .team-head form,.team-head form button{width:100%}
  .team-hero{align-items:flex-start;flex-direction:column;padding:22px}
  .team-hero h2{font-size:25px}
  .team-hero-stats{width:100%;grid-template-columns:1fr}
  .team-hero-stats span{min-width:0}
  .team-member-card{grid-template-columns:43px minmax(0,1fr)}
  .team-member-avatar{width:42px;height:42px}
  .team-member-actions{grid-column:1/-1}
  .team-member-actions>summary{width:100%;text-align:center}
  .team-member-actions>div{position:static;width:100%;margin-top:8px;box-shadow:none}
  .team-role-grid{grid-template-columns:1fr}
  .team-profile-grid{grid-template-columns:repeat(2,1fr)}
  .team-login-card{padding:21px 15px}
  .team-login-intro h1{font-size:28px}
  .team-login-brand{align-items:flex-start;flex-direction:column;padding-bottom:10px}
}
@media(max-width:430px){
  .team-session-banner>div small{font-size:8px}
  .team-session-banner button{max-width:130px;line-height:1.2}
  .team-pin-fields{grid-template-columns:1fr}
  .team-member-actions>div>form{grid-template-columns:1fr}
  .team-member-actions>div>form>label:first-of-type{grid-column:auto}
  .team-member-actions>div>form>button{grid-column:auto}
  .team-profile-grid{grid-template-columns:1fr 1fr}
  .team-profile-button{min-height:116px}
}
@media print{.team-session-banner{display:none!important}}

/* V127 · Attribution des tables aux serveurs */
.room-plan-toolbar-main{display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.room-plan-filter{padding:3px;display:flex;gap:3px;border:1px solid #d9e3eb;border-radius:11px;background:#f0f4f7}
.room-plan-filter button{min-height:31px;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:#607487;font-size:8px;font-weight:900;cursor:pointer}
.room-plan-filter button.active{background:#fff;color:#087cf0;box-shadow:0 4px 12px rgba(20,34,56,.08)}
.room-table-assignee{position:absolute;right:8px;top:8px;z-index:2;width:25px;height:25px;display:grid;place-items:center;border:2px solid #fff;border-radius:9px;background:#142238;color:#fff;font-size:7px;font-weight:900;letter-spacing:.02em;box-shadow:0 5px 12px rgba(20,34,56,.16)}
.room-table-assignee[hidden]{display:none!important}
.room-table.shape-round .room-table-assignee{right:10px;top:8px;border-radius:50%}
.room-table.is-assigned .room-table-top{padding-right:23px}
.room-table[hidden]{display:none!important}
.room-table-assignment{margin:0 22px 18px;padding:15px;border:1px solid #dfe7ed;border-radius:15px;background:linear-gradient(180deg,#fbfdff,#f5f9fc)}
.room-table-assignment>header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.room-table-assignment>header>div{display:grid;gap:4px}
.room-table-assignment>header small{color:#718394;font-size:7px;font-weight:900;letter-spacing:.12em}
.room-table-assignment>header strong{font-size:12px;color:#142238}
.room-assignment-avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:#142238;color:#fff;font-size:9px;font-weight:900}
.room-assignment-avatar[hidden]{display:none!important}
.room-assignment-manage{margin-top:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.room-assignment-manage select{height:42px;min-width:0;padding:0 34px 0 11px;border:1px solid #d4dfe8;border-radius:10px;background:#fff;color:#142238;font-size:10px;font-weight:800}
.room-assignment-manage button,.room-assignment-self{min-height:42px;padding:9px 13px;border:0;border-radius:10px;background:#087cf0;color:#fff;font-size:9px;font-weight:900;cursor:pointer}
.room-assignment-manage button:disabled,.room-assignment-self:disabled{opacity:.5;cursor:not-allowed}
.room-assignment-self{width:100%;margin-top:12px}
.room-assignment-readonly{display:block;margin-top:10px;color:#718394;font-size:8px}
@media(max-width:680px){.room-plan-toolbar-main{align-items:flex-start;flex-direction:column}.room-plan-filter{width:100%}.room-plan-filter button{flex:1}.room-assignment-manage{grid-template-columns:1fr}.room-assignment-manage button{width:100%}}


/* V127.1 · Gestion collaborateur visible + PIN propriétaire */
.team-members-panel{overflow:visible}
.team-member-list{position:relative}
.team-member-card:has(.team-member-actions[open]){position:relative;z-index:5;align-items:start;border-color:#9bcaf5;box-shadow:0 15px 35px rgba(20,34,56,.09)}
.team-member-actions[open]{grid-column:1/-1;width:100%;margin-top:3px}
.team-member-actions[open]>summary{width:100%;text-align:center}
.team-member-actions>div{position:static!important;right:auto!important;top:auto!important;width:100%!important;margin-top:10px;padding:17px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),0 10px 24px rgba(16,34,55,.07)}
.team-member-actions>div>form{grid-template-columns:1fr 1fr}
.team-owner-pin-panel{margin-top:16px}
.team-owner-pin-panel>header{display:flex;align-items:center;justify-content:space-between;gap:18px}
.team-owner-pin-status{padding:7px 10px;border-radius:999px;font-size:8px;font-weight:900;white-space:nowrap}
.team-owner-pin-status.warning{background:#fff2df;color:#9a6011}
.team-owner-pin-status.secure{background:#e7f7ec;color:#237343}
.team-owner-pin-panel>form{margin:0;padding:18px 22px;display:flex;align-items:end;gap:12px}
.team-owner-pin-panel>form>div{min-width:0;flex:1;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.team-owner-pin-panel label{display:grid;gap:6px;color:#4e6275;font-size:9px;font-weight:900}
.team-owner-pin-panel input{width:100%;height:43px;padding:0 11px;border:1px solid #d7e1e9;border-radius:10px;background:#fbfcfd;color:#142238;font-size:12px;outline:0}
.team-owner-pin-panel input:focus{border-color:#75b8f6;box-shadow:0 0 0 3px rgba(8,124,240,.08);background:#fff}
.team-owner-pin-panel>form>button{min-height:43px;padding:10px 14px;border:0;border-radius:11px;background:#142238;color:#fff;font-size:9px;font-weight:900;cursor:pointer;white-space:nowrap}
.team-owner-pin-panel>form>button:hover{background:#087cf0}
.team-owner-pin-warning{margin:0 22px 18px;padding:11px 13px;border:1px solid #f0d39d;border-radius:11px;background:#fff8ea;color:#8a5b1a;font-size:9px;line-height:1.5}
.team-owner-access>form>header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.team-owner-access>form>header small{color:#087cf0;font-size:8px;font-weight:900;letter-spacing:.12em}
.team-owner-access>form>header h2{margin:4px 0 0;font-size:15px}
.team-owner-access>form>header button{min-height:31px;padding:6px 9px;border:1px solid #d7e1e9;border-radius:9px;background:#fff;color:#5b7082;font-size:8px;font-weight:900}
.team-owner-access .team-pin-dots{margin:2px auto 0}
.team-owner-access .owner-pin-keypad{width:min(320px,100%);margin:0 auto}
.team-owner-access .team-pin-submit{width:100%}
.team-owner-pin-help{display:block;color:#758695;font-size:8px;line-height:1.45;text-align:center}
@media(max-width:700px){
  .team-owner-pin-panel>header{align-items:flex-start;flex-direction:column}
  .team-owner-pin-panel>form{align-items:stretch;flex-direction:column}
  .team-owner-pin-panel>form>div{grid-template-columns:1fr}
  .team-owner-pin-panel>form>button{width:100%}
  .team-member-actions>div>form{grid-template-columns:1fr}
  .team-member-actions>div>form>label:first-of-type,.team-member-actions>div>form>button{grid-column:auto}
}


/* V127.2 · Accès simple par défaut et mode administrateur par PIN */
.dashboard-admin-unlock,.dashboard-admin-lock{min-height:42px;padding:10px 14px;border:0;border-radius:10px;font-size:10px;font-weight:900;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.dashboard-admin-unlock{background:#142238;color:#fff;box-shadow:0 8px 20px rgba(20,34,56,.14)}
.dashboard-admin-lock{background:#fff4e8;color:#9a5c16;border:1px solid #efdbbd;cursor:pointer}
.simple-access-welcome{background:linear-gradient(135deg,#13263d,#24496b)!important;color:#fff!important}
.simple-access-welcome small,.simple-access-welcome p{color:#c8d8e6!important}.simple-access-welcome h2{color:#fff!important}.simple-access-welcome>b{background:rgba(255,255,255,.1)!important;color:#fff!important;border:1px solid rgba(255,255,255,.14)}
.team-simple-session-banner{background:#15304a!important}.team-admin-session-banner{background:#5b4219!important}
.team-session-banner>a{margin-left:auto;padding:8px 11px;border-radius:8px;background:#fff;color:#17314b;font-size:9px;font-weight:900;text-decoration:none}
.team-simple-access-form{margin:15px 0;padding:13px;border:1px solid #d8e6f2;border-radius:14px;background:#f4f9fd;display:grid;gap:6px;text-align:center}
.team-simple-access-form button{min-height:44px;border:0;border-radius:11px;background:#eaf5ff;color:#087cf0;font-weight:900;cursor:pointer}.team-simple-access-form small{color:#6c8093;font-size:9px;line-height:1.45}
.team-default-pin-notice{margin-top:12px;padding:11px 13px;border:1px solid #f0cf98;border-radius:11px;background:#fff7e9;color:#855111;display:grid;gap:4px}.team-default-pin-notice b{font-size:11px}.team-default-pin-notice small{font-size:9px;line-height:1.45;color:#936626}
.team-default-pin-notice.prominent{margin:16px 0;padding:14px 16px;background:#fff2d8;border-color:#e9bd72}.team-default-pin-notice.prominent b{font-size:13px}
.admin-pin-shell{max-width:560px}.admin-pin-card{padding-top:20px}.admin-pin-back{display:inline-flex;margin-bottom:16px;color:#537087;font-size:10px;font-weight:900;text-decoration:none}
.admin-pin-card .team-pin-dots{margin:20px auto 16px;max-width:220px}.admin-pin-card .team-pin-keypad{max-width:330px;margin:0 auto}.admin-pin-card .team-pin-submit{max-width:330px;margin:14px auto 0;display:block;width:100%}
@media(max-width:700px){.dashboard-head-actions{align-items:stretch!important;flex-wrap:wrap}.dashboard-admin-unlock,.dashboard-admin-lock,.dashboard-team-lock{width:100%}.team-session-banner>a{margin-left:0;width:100%}}


/* V127.3 · Interface PIN administrateur alignée sur les profils équipe */
.admin-pin-shell{width:min(920px,100%)!important;max-width:920px!important}
.admin-pin-card{padding:28px!important}
.admin-pin-card .team-login-intro{max-width:700px;margin:0 auto}
.admin-pin-card .team-default-pin-notice.prominent{max-width:620px;margin:18px auto 0}
.admin-pin-card [data-owner-pin-form]{
  width:min(430px,100%)!important;
  margin:22px auto 0!important;
  padding:20px!important;
  display:block!important;
  grid-template-columns:none!important;
  gap:0!important;
  border:1px solid #dce5ec!important;
  border-radius:20px!important;
  background:#f8fafc!important;
  box-shadow:0 12px 28px rgba(20,34,56,.055)!important;
}
.admin-pin-entry>header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important}
.admin-pin-profile-heading{display:flex;align-items:center;gap:12px;min-width:0}
.admin-pin-profile-heading .team-profile-avatar{width:50px;height:50px;flex:0 0 50px;border-radius:15px;background:#eaf5ff;color:#087cf0;font-size:15px}
.admin-pin-profile-heading>div{min-width:0;display:grid;gap:3px}
.admin-pin-profile-heading small{color:#087cf0!important;font-size:8px!important;font-weight:900!important;letter-spacing:.13em!important}
.admin-pin-profile-heading h2{margin:0!important;color:#142238!important;font-size:20px!important;line-height:1.1!important}
.admin-pin-profile-heading p{margin:0!important;color:#718191!important;font-size:8px!important;line-height:1.4!important}
.admin-pin-entry .team-pin-dots{width:100%!important;max-width:none!important;height:42px!important;margin:14px 0!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important}
.admin-pin-entry .team-pin-keypad{width:100%!important;max-width:none!important;margin:0!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.admin-pin-entry .team-pin-keypad button{width:100%!important;min-width:0!important;min-height:54px!important;padding:0!important;border-radius:13px!important;font-size:20px!important}
.admin-pin-entry .team-pin-keypad button.secondary{font-size:14px!important}
.admin-pin-entry .team-pin-submit{width:100%!important;max-width:none!important;min-height:48px!important;margin:10px 0 0!important;display:block!important}
@media(max-width:700px){
  .admin-pin-card{padding:21px 15px!important}
  .admin-pin-card [data-owner-pin-form]{padding:18px 15px!important}
  .admin-pin-profile-heading .team-profile-avatar{width:46px;height:46px;flex-basis:46px}
}


/* V127.4 · Stabilisation du clavier iPad sur la connexion */
.auth-login{
  min-height:var(--login-viewport-height,100dvh);
  height:auto;
  align-content:center;
  overflow-x:hidden;
}
.auth-login .login-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 15px;
}
.auth-login .login-form>label:not(.remember-choice){
  align-self:end;
  margin:0;
}
.auth-login .login-form>input[data-login-input]{
  min-width:0;
  height:46px;
  font-size:16px;
}
.auth-login .login-form .remember-choice,
.auth-login .login-form .forgot-link,
.auth-login .login-form .submit{
  grid-column:1/-1;
}
.auth-login.login-keyboard-visible{
  place-items:start center;
  align-content:start;
  min-height:var(--login-viewport-height,100dvh);
  padding-top:max(16px,env(safe-area-inset-top));
  padding-bottom:18px;
  overflow-y:auto;
}
.auth-login.login-keyboard-visible .auth-card{
  margin:0 auto;
  box-shadow:0 16px 42px rgba(24,52,82,.10);
}
@media(max-width:640px){
  .auth-login .login-form{grid-template-columns:1fr}
  .auth-login .login-form>label:not(.remember-choice),
  .auth-login .login-form>input[data-login-input]{grid-column:1}
}
@media(prefers-reduced-motion:reduce){
  .auth-login *{scroll-behavior:auto!important}
}


/* V127.5 · Refonte premium de la page de connexion */
.auth-login{
  position:relative;
  isolation:isolate;
  min-height:var(--login-viewport-height,100dvh);
  height:auto;
  padding:clamp(22px,4vw,58px) 20px;
  display:grid;
  place-items:center;
  align-content:center;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 14% 14%,rgba(8,124,240,.10),transparent 30%),
    radial-gradient(circle at 88% 82%,rgba(244,71,58,.07),transparent 28%),
    linear-gradient(145deg,#f5f8fc 0%,#edf3f8 52%,#f7f9fc 100%);
}
.auth-login::before,.auth-login::after{
  content:"";
  position:fixed;
  z-index:-1;
  border-radius:999px;
  pointer-events:none;
  filter:blur(1px);
}
.auth-login::before{
  width:340px;
  height:340px;
  left:-170px;
  top:-150px;
  border:1px solid rgba(8,124,240,.09);
  box-shadow:0 0 0 42px rgba(8,124,240,.025),0 0 0 90px rgba(8,124,240,.015);
}
.auth-login::after{
  width:270px;
  height:270px;
  right:-125px;
  bottom:-125px;
  border:1px solid rgba(244,71,58,.08);
  box-shadow:0 0 0 36px rgba(244,71,58,.02);
}
.auth-login .auth-login-card{
  position:relative;
  width:min(570px,100%);
  margin:0;
  padding:clamp(32px,4.4vw,50px);
  overflow:hidden;
  border:1px solid rgba(207,220,232,.92);
  border-radius:32px;
  background:rgba(255,255,255,.975);
  box-shadow:0 30px 90px rgba(23,48,77,.13),0 8px 28px rgba(23,48,77,.05),inset 0 1px 0 rgba(255,255,255,.95);
  backdrop-filter:blur(18px);
}
.auth-login .auth-login-card::before{
  content:"";
  position:absolute;
  top:0;
  left:9%;
  right:9%;
  height:3px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,transparent,#087cf0 25%,#42a0fa 66%,transparent);
  opacity:.9;
}
.auth-login-header{
  display:grid;
  justify-items:center;
  text-align:center;
}
.auth-login .auth-login-brand{
  width:154px!important;
  height:78px!important;
  margin:0 auto 18px!important;
  filter:none!important;
}
.auth-login-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:#f4473a;
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
}
.auth-login-eyebrow>span{
  width:20px;
  height:2px;
  border-radius:999px;
  background:#f4473a;
}
.auth-login .auth-login-header h1{
  margin:11px 0 10px;
  max-width:470px;
  color:#087cf0;
  font:clamp(36px,4vw,47px)/1.02 Georgia,serif;
  letter-spacing:-.035em;
}
.auth-login-header>p{
  max-width:440px;
  margin:0;
  color:#697c8e;
  font-size:12px;
  line-height:1.65;
}
.auth-login-alerts{
  display:grid;
  gap:9px;
  margin-top:20px;
}
.auth-login-alerts:empty{display:none}
.auth-login-alerts .error,.auth-login-alerts .success{
  padding:12px 14px;
  border-radius:13px;
  font-size:11px;
  line-height:1.45;
}
.auth-login-alerts .success{
  border:1px solid #cfe6d6;
  background:#f1faf4;
  color:#2f7041;
}
.auth-login-alerts .error{
  border:1px solid #f0d2cf;
  background:#fff4f2;
  color:#a9433b;
}
.auth-login-alerts a{font-weight:900;text-decoration:underline}
.auth-login .auth-login-form{
  margin:28px 0 0;
  display:grid;
  grid-template-columns:1fr;
  gap:17px;
}
.auth-login-field{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  min-width:0;
}
.auth-login-field>label,.auth-login-field-head label{
  margin:0;
  color:#24364a;
  font-size:11px;
  font-weight:900;
}
.auth-login-field-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.auth-login .forgot-link{
  color:#087cf0;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
.auth-login .forgot-link:hover{text-decoration:underline}
.auth-login .auth-login-field input[data-login-input]{
  width:100%;
  min-width:0;
  height:58px;
  padding:0 17px;
  border:1px solid #d8e3ec;
  border-radius:15px;
  outline:0;
  background:linear-gradient(180deg,#fff,#fbfcfe);
  color:#142238;
  font-size:16px;
  font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 5px 14px rgba(20,34,56,.025);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.auth-login .auth-login-field input[data-login-input]::placeholder{
  color:#a0adba;
  font-weight:500;
}
.auth-login .auth-login-field input[data-login-input]:hover{border-color:#c2d3e1}
.auth-login .auth-login-field input[data-login-input]:focus{
  border-color:#4ea4f5;
  background:#fff;
  box-shadow:0 0 0 4px rgba(8,124,240,.10),0 9px 20px rgba(20,34,56,.04);
}
.auth-login .auth-login-field input:-webkit-autofill,
.auth-login .auth-login-field input:-webkit-autofill:hover,
.auth-login .auth-login-field input:-webkit-autofill:focus{
  -webkit-text-fill-color:#142238;
  box-shadow:0 0 0 1000px #fff inset,0 0 0 4px rgba(8,124,240,.08);
  transition:background-color 9999s ease-out 0s;
}
.auth-login .auth-login-remember{
  width:100%;
  margin:0;
  padding:12px 14px;
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  align-items:center;
  gap:11px;
  border:1px solid #e0e8ef;
  border-radius:14px;
  background:#f8fafc;
  cursor:pointer;
  transition:border-color .16s ease,background .16s ease;
}
.auth-login .auth-login-remember:hover{
  border-color:#cbdbe8;
  background:#f5f9fc;
}
.auth-login .auth-login-remember input{
  width:20px;
  height:20px;
  margin:0;
  accent-color:#087cf0;
}
.auth-login .auth-login-remember span{
  display:grid;
  gap:2px;
  min-width:0;
}
.auth-login .auth-login-remember b{
  color:#24364a;
  font-size:10px;
  line-height:1.25;
}
.auth-login .auth-login-remember small{
  color:#7d8c9b;
  font-size:8px;
  font-weight:500;
}
.auth-login .auth-login-submit{
  width:100%;
  min-height:58px;
  padding:0 18px 0 21px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:0;
  border-radius:15px;
  background:linear-gradient(135deg,#087cf0,#1e91fb);
  color:#fff;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 13px 28px rgba(8,124,240,.24),inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.auth-login .auth-login-submit strong{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(255,255,255,.16);
  font-size:18px;
}
.auth-login .auth-login-submit:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 32px rgba(8,124,240,.29),inset 0 1px 0 rgba(255,255,255,.22);
  filter:saturate(1.05);
}
.auth-login .auth-login-submit:active{transform:translateY(0)}
.auth-login .auth-login-switch{
  margin:22px 0 0!important;
  color:#7b8b9a!important;
  font-size:10px!important;
  text-align:center!important;
}
.auth-login .auth-login-switch a{
  color:#087cf0;
  font-weight:900;
}
.auth-login-security{
  margin-top:22px;
  padding-top:17px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border-top:1px solid #edf1f4;
  color:#81909e;
}
.auth-login-security>span{
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#eaf7ef;
  color:#34794a;
  font-size:9px;
  font-weight:900;
}
.auth-login-security small{font-size:8px}
.auth-login.login-keyboard-visible{
  place-items:start center;
  align-content:start;
  min-height:var(--login-viewport-height,100dvh);
  padding-top:max(12px,env(safe-area-inset-top));
  padding-bottom:18px;
  overflow-y:auto;
}
.auth-login.login-keyboard-visible .auth-login-card{
  margin:0 auto;
  box-shadow:0 18px 50px rgba(24,52,82,.12);
}
@media(max-width:640px){
  .auth-login{padding:16px 12px}
  .auth-login .auth-login-card{padding:29px 22px;border-radius:25px}
  .auth-login .auth-login-brand{width:140px!important;height:68px!important;margin-bottom:13px!important}
  .auth-login .auth-login-header h1{font-size:35px}
  .auth-login-header>p{font-size:11px}
  .auth-login .auth-login-form{margin-top:23px;gap:15px}
  .auth-login .auth-login-field input[data-login-input]{height:54px}
}
@media(max-height:900px) and (min-width:641px){ /* mode compact : fenêtres d'ordinateur basses (ex. 1615 × 856), la carte tient sans défilement */
  .auth-login{padding-top:16px;padding-bottom:16px}
  .auth-login .auth-login-card{padding-top:28px;padding-bottom:28px}
  .auth-login .auth-login-brand{height:58px!important;margin-bottom:8px!important}
  .auth-login .auth-login-header h1{font-size:36px;margin-top:7px}
  .auth-login-header>p{font-size:10px}
  .auth-login .auth-login-form{margin-top:20px;gap:12px}
  .auth-login .auth-login-field input[data-login-input]{height:52px}
  .auth-login-security{margin-top:16px;padding-top:13px}
}
@media(prefers-reduced-motion:reduce){
  .auth-login *{scroll-behavior:auto!important;transition:none!important}
}

/* V127.6 · Refonte premium de l’accès administrateur (alignée sur la V127.5) */
.admin-auth-pin-page{
  background:
    radial-gradient(circle at 12% 12%,rgba(8,124,240,.08),transparent 30%),
    radial-gradient(circle at 88% 16%,rgba(244,71,58,.05),transparent 26%),
    linear-gradient(180deg,#f3f7fb 0%,#edf3f8 100%);
}
.admin-auth-pin-page::before,
.admin-auth-pin-page::after{
  content:"";
  position:fixed;
  border-radius:50%;
  pointer-events:none;
  z-index:0;
}
.admin-auth-pin-page::before{
  width:360px;
  height:360px;
  top:-150px;
  left:-110px;
  background:radial-gradient(circle,rgba(8,124,240,.08),transparent 68%);
}
.admin-auth-pin-page::after{
  width:300px;
  height:300px;
  right:-110px;
  bottom:-110px;
  background:radial-gradient(circle,rgba(244,71,58,.05),transparent 68%);
}
.admin-auth-pin-page .admin-auth-pin-card{
  position:relative;
  z-index:1;
  width:min(620px,100%);
}
.admin-auth-pin-back{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:18px;
  color:#6d8093;
  font-size:11px;
  font-weight:900;
}
.admin-auth-pin-back:hover{color:#087cf0}
.admin-auth-pin-header{position:relative}
.admin-auth-pin-header .auth-login-brand{margin-bottom:16px!important}
.admin-auth-pin-header>p{max-width:470px}
.admin-auth-pin-restaurant{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:14px;
  padding:8px 14px;
  border:1px solid #dbe5ef;
  border-radius:999px;
  background:#f7fafc;
  color:#4f6377;
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
}
.admin-auth-pin-alerts{
  margin-top:22px;
}
.admin-auth-default-notice{
  padding:14px 16px;
  display:grid;
  gap:5px;
  border:1px solid #f0d29d;
  border-radius:14px;
  background:linear-gradient(180deg,#fffaf0,#fff5e3);
  color:#8b5b16;
  text-align:left;
}
.admin-auth-default-notice strong{font-size:12px;line-height:1.35}
.admin-auth-default-notice small{font-size:10px;line-height:1.55;color:#9a6921}
.admin-auth-pin-form{
  margin:26px 0 0;
}
.admin-auth-pin-panel{
  width:100%;
  margin:0;
  padding:22px;
  border:1px solid #dce5ec;
  border-radius:24px;
  background:linear-gradient(180deg,#fbfdff 0%,#f7fafd 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 16px 32px rgba(20,34,56,.05);
}
.admin-auth-pin-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.admin-auth-pin-identity{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.admin-auth-pin-avatar{
  width:58px;
  height:58px;
  flex:0 0 58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(135deg,#edf5ff,#e6eefb);
  color:#087cf0;
  font-size:22px;
  font-weight:900;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.admin-auth-pin-identity small{
  display:block;
  margin-bottom:4px;
  color:#087cf0;
  font-size:9px;
  font-weight:900;
  letter-spacing:.15em;
}
.admin-auth-pin-identity h2{
  margin:0;
  color:#142238;
  font-size:20px;
  line-height:1.1;
}
.admin-auth-pin-identity p{
  margin:6px 0 0;
  color:#718191;
  font-size:10px;
  line-height:1.55;
}
.admin-auth-pin-panel .admin-auth-pin-dots{
  margin:22px 0 18px;
}
.admin-auth-pin-panel .team-pin-dots i{
  width:13px;
  height:13px;
  border-width:2px;
}
.admin-auth-pin-keypad{
  width:100%;
  max-width:none;
  margin:0;
  gap:10px;
}
.admin-auth-pin-keypad button{
  min-height:58px;
  border-radius:15px;
  border:1px solid #d9e3ec;
  background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
  box-shadow:0 8px 18px rgba(20,34,56,.04),inset 0 1px 0 rgba(255,255,255,.92);
  color:#142238;
  font-size:22px;
  font-weight:900;
  transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease;
}
.admin-auth-pin-keypad button:hover{
  border-color:#b8d2e7;
  box-shadow:0 10px 22px rgba(20,34,56,.06),inset 0 1px 0 rgba(255,255,255,.92);
}
.admin-auth-pin-keypad button:active{
  transform:translateY(1px);
  background:#eef6ff;
}
.admin-auth-pin-keypad button.secondary{
  background:linear-gradient(180deg,#f4f7fa 0%,#edf2f6 100%);
  color:#607487;
  font-size:15px;
}
.admin-auth-pin-submit{
  width:100%;
  min-height:56px;
  margin-top:14px;
  border-radius:15px;
  background:linear-gradient(135deg,#087cf0,#1e91fb);
  font-size:12px;
  box-shadow:0 13px 28px rgba(8,124,240,.22),inset 0 1px 0 rgba(255,255,255,.22);
}
.admin-auth-pin-submit:disabled{
  opacity:.45;
  box-shadow:none;
}
.admin-auth-pin-security{
  margin-top:22px;
}
@media(max-width:640px){
  .admin-auth-pin-page .admin-auth-pin-card{padding:29px 22px;border-radius:25px}
  .admin-auth-pin-panel{padding:18px;border-radius:21px}
  .admin-auth-pin-identity{align-items:flex-start}
  .admin-auth-pin-avatar{width:52px;height:52px;flex-basis:52px;font-size:20px;border-radius:16px}
  .admin-auth-pin-identity h2{font-size:18px}
  .admin-auth-pin-keypad button{min-height:54px;font-size:20px}
}

/* V127.7 · Création de compte premium alignée sur la V127.5 */
.auth-register{
  place-items:start center;
  align-content:start;
  padding-top:clamp(24px,4vw,54px);
  padding-bottom:clamp(28px,5vw,64px);
}
.auth-register .auth-register-card{
  width:min(900px,100%);
  padding:clamp(30px,4.2vw,48px);
}
.auth-register-header>p{max-width:590px}
.auth-register .auth-register-header h1{max-width:680px;font-size:clamp(36px,4.3vw,50px)}
.auth-register-alerts{max-width:720px;margin-left:auto;margin-right:auto}
.auth-register-form{
  margin:30px 0 0;
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
.auth-register-section{
  margin:0;
  padding:22px;
  border:1px solid #dce6ee;
  border-radius:22px;
  background:linear-gradient(180deg,#fcfdff,#f8fbfd);
  box-shadow:0 14px 32px rgba(20,34,56,.045),inset 0 1px 0 rgba(255,255,255,.95);
}
.auth-register-section-head{
  width:100%;
  margin:0 0 18px;
  padding:0;
  display:flex;
  align-items:flex-start;
  gap:13px;
  border:0;
}
.auth-register-section-head>span{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#142238;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.auth-register-section-head>div{display:grid;gap:3px;min-width:0}
.auth-register-section-head small{
  color:#f4473a;
  font-size:8px;
  font-weight:900;
  letter-spacing:.14em;
}
.auth-register-section-head h2{
  margin:0;
  color:#142238;
  font-size:20px;
  line-height:1.15;
}
.auth-register-section-head p{
  margin:0;
  color:#718191;
  font-size:10px;
  line-height:1.5;
}
.auth-register-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.auth-register .auth-login-field{gap:7px}
.auth-register .auth-login-field input[data-register-input]{
  width:100%;
  min-width:0;
  height:56px;
  padding:0 16px;
  border:1px solid #d8e3ec;
  border-radius:14px;
  outline:0;
  background:linear-gradient(180deg,#fff,#fbfcfe);
  color:#142238;
  font-size:15px;
  font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 5px 14px rgba(20,34,56,.025);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.auth-register .auth-login-field input[data-register-input]::placeholder{color:#a0adba;font-weight:500}
.auth-register .auth-login-field input[data-register-input]:hover{border-color:#c2d3e1}
.auth-register .auth-login-field input[data-register-input]:focus{
  border-color:#4ea4f5;
  background:#fff;
  box-shadow:0 0 0 4px rgba(8,124,240,.10),0 9px 20px rgba(20,34,56,.04);
}
.auth-register-password-field{grid-column:1/-1}
.auth-register-password-field .auth-login-field-head>small{color:#7c8c9b;font-size:9px;font-weight:700}
.auth-register-plans{padding:22px}
.auth-register-plans>legend{float:none}
.auth-register-plan-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.auth-register-plan{position:relative;display:block;cursor:pointer}
.auth-register-plan>input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.auth-register-plan-card{
  position:relative;
  min-height:178px;
  padding:17px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-content:start;
  gap:13px;
  border:1px solid #dce5ed;
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#f8fafc);
  color:#142238;
  box-shadow:0 9px 22px rgba(20,34,56,.035);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease;
}
.auth-register-plan-card:hover{border-color:#a9cff1;transform:translateY(-1px);box-shadow:0 13px 28px rgba(20,34,56,.07)}
.auth-register-plan-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#edf4fa;
  color:#526b82;
  font-size:17px;
  font-weight:900;
}
.auth-register-plan-copy{min-width:0;display:grid;align-content:start;gap:5px}
.auth-register-plan-copy>small{color:#7b8b9a;font-size:8px;font-weight:900;letter-spacing:.12em}
.auth-register-plan-copy>b{font-size:15px;line-height:1.2}
.auth-register-plan-copy>em{color:#087cf0;font-size:11px;font-style:normal;font-weight:900}
.auth-register-plan-copy>span{margin-top:4px;color:#718191;font-size:10px;line-height:1.5}
.auth-register-plan-card>i{
  position:absolute;
  right:13px;
  top:13px;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#dbe4eb;
  color:#fff;
  font-size:10px;
  font-style:normal;
  font-weight:900;
  opacity:0;
  transform:scale(.85);
  transition:opacity .16s ease,transform .16s ease,background .16s ease;
}
.auth-register-plan>input:checked+.auth-register-plan-card{
  border-color:#65b1f8;
  background:linear-gradient(180deg,#f5faff,#edf7ff);
  box-shadow:inset 0 0 0 1px #65b1f8,0 14px 30px rgba(8,124,240,.10);
}
.auth-register-plan>input:checked+.auth-register-plan-card .auth-register-plan-icon{background:#087cf0;color:#fff}
.auth-register-plan>input:checked+.auth-register-plan-card>i{opacity:1;transform:scale(1);background:#087cf0}
.auth-register-plan>input:focus-visible+.auth-register-plan-card{outline:3px solid rgba(8,124,240,.16);outline-offset:2px}
.auth-register-summary{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.auth-register-summary>span{
  padding:13px 15px;
  display:grid;
  gap:4px;
  border:1px solid #e1e8ee;
  border-radius:14px;
  background:#f8fafc;
}
.auth-register-summary small{color:#7b8b9a;font-size:8px;font-weight:900;letter-spacing:.1em}
.auth-register-summary b{color:#25384c;font-size:11px}
.auth-register-submit{margin-top:0}
.auth-register-switch{margin-top:20px!important}
@media(max-width:840px){
  .auth-register-plan-grid{grid-template-columns:1fr}
  .auth-register-plan-card{min-height:0}
}
@media(max-width:680px){
  .auth-register{padding:16px 12px 28px}
  .auth-register .auth-register-card{padding:28px 20px;border-radius:25px}
  .auth-register-grid{grid-template-columns:1fr}
  .auth-register-password-field{grid-column:auto}
  .auth-register-section{padding:18px 15px;border-radius:19px}
  .auth-register-summary{grid-template-columns:1fr}
  .auth-register .auth-register-header h1{font-size:35px}
}
@media(max-height:760px) and (min-width:681px){
  .auth-register{padding-top:18px;padding-bottom:30px}
  .auth-register .auth-register-card{padding-top:30px;padding-bottom:30px}
  .auth-register .auth-login-brand{height:60px!important;margin-bottom:9px!important}
  .auth-register .auth-register-header h1{font-size:38px;margin-top:8px}
  .auth-register-form{margin-top:22px}
}
@media(prefers-reduced-motion:reduce){
  .auth-register *{scroll-behavior:auto!important;transition:none!important}
}


/* V127.8 · Tarif visible sur la formule Commande */
.auth-register-plan-trial{
  color:#2f7a48;
  font-size:9px;
  font-weight:900;
}


/* V127.9 · Accueil premium de l'application */
.dashboard-premium{background:linear-gradient(180deg,#eef4f8 0%,#f5f8fb 100%)}
.dashboard-premium-sidebar{position:sticky;top:0;height:100vh;padding:28px 18px 22px;background:rgba(255,255,255,.97);border-right:1px solid #dfe7ee;box-shadow:10px 0 35px rgba(20,34,56,.035);backdrop-filter:blur(15px)}
.dashboard-premium-logo{width:145px!important;height:70px!important;margin:0 auto 18px!important}
.dashboard-sidebar-restaurant{margin:0 4px 18px;padding:14px;border:1px solid #e1e8ee;border-radius:15px;background:linear-gradient(180deg,#fbfdff,#f4f8fb);display:grid;gap:4px}
.dashboard-sidebar-restaurant small{color:#f4473a;font-size:8px;font-weight:900;letter-spacing:.13em}.dashboard-sidebar-restaurant strong{overflow:hidden;color:#142238;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.dashboard-sidebar-restaurant span{color:#738596;font-size:8px;font-weight:800}
.dashboard-premium-nav{display:grid!important;gap:5px!important}.dashboard-premium-nav a{min-height:43px;padding:10px 11px!important;display:grid!important;grid-template-columns:30px minmax(0,1fr)!important;align-items:center!important;gap:8px!important;border-radius:11px!important;color:#5c6f82!important;font-size:10px!important;font-weight:800!important}.dashboard-premium-nav a>span{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#f0f5f9;color:#557087;font-size:12px;font-weight:900}.dashboard-premium-nav a:hover{background:#f3f8fc!important;color:#087cf0!important}.dashboard-premium-nav a.active{background:#eaf5ff!important;color:#087cf0!important;box-shadow:inset 3px 0 #087cf0}.dashboard-premium-nav a.active>span{background:#087cf0;color:#fff}.dashboard-premium-nav a.locked{opacity:.5}
.dashboard-premium-logout{margin-top:auto!important;padding:11px 13px!important;border:1px solid #e2e8ed;border-radius:11px;color:#6d7d8c!important;text-align:center;font-size:9px!important;font-weight:900!important}
.dashboard-premium-main{max-width:1280px!important;padding:34px 36px 55px!important;margin:0 auto!important}
.dashboard-premium-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:25px!important;margin-bottom:18px!important}.dashboard-premium-head>div:first-child small{color:#f4473a;font-size:9px;font-weight:900;letter-spacing:.15em}.dashboard-premium-head h1{margin:6px 0 3px!important;color:#087cf0!important;font:37px/1 Georgia,serif!important}.dashboard-premium-head p{margin:0;color:#738596;font-size:10px;font-weight:700;text-transform:capitalize}
.dashboard-premium-head-actions{display:flex;align-items:center;gap:10px}.dashboard-plan-chip{padding:9px 12px;border:1px solid #dce6ee;border-radius:999px;background:#fff;color:#557087;font-size:9px;font-weight:900;white-space:nowrap}
.dashboard-access-switch{min-width:225px;padding:8px 10px;display:grid;grid-template-columns:40px minmax(0,1fr) 22px;align-items:center;gap:9px;border:1px solid #dbe5ed;border-radius:15px;background:#fff;color:#142238;box-shadow:0 10px 25px rgba(20,34,56,.06);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.dashboard-access-switch:hover{transform:translateY(-1px);border-color:#9dcaf2;box-shadow:0 14px 30px rgba(20,34,56,.09)}.dashboard-access-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eaf5ff;color:#087cf0;font-size:13px;font-weight:900}.dashboard-access-switch>span:nth-child(2){display:grid;gap:1px;min-width:0}.dashboard-access-switch small{font-size:7px;font-weight:900;letter-spacing:.11em;color:#8393a1}.dashboard-access-switch b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.dashboard-access-switch em{font-size:8px;font-style:normal;color:#708293}.dashboard-access-switch i{font-style:normal;color:#087cf0;font-weight:900}
.dashboard-premium-hero{padding:30px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.9fr);gap:24px;border:1px solid rgba(255,255,255,.12);border-radius:27px;background:linear-gradient(135deg,#10233b 0%,#1c3a57 68%,#265479 100%);color:#fff;box-shadow:0 22px 55px rgba(15,33,58,.16);overflow:hidden}.dashboard-premium-hero.is-simple{background:linear-gradient(135deg,#10233b,#204b70)}.dashboard-premium-hero.is-staff{background:linear-gradient(135deg,#10233b,#24547d)}.dashboard-premium-hero-copy{align-self:center}.dashboard-premium-hero-copy>small{color:#8ecbff;font-size:9px;font-weight:900;letter-spacing:.15em}.dashboard-premium-hero h2{max-width:670px;margin:9px 0 10px;font:36px/1.06 Georgia,serif}.dashboard-premium-hero p{max-width:650px;margin:0;color:#c7d6e3;font-size:12px;line-height:1.65}.dashboard-premium-hero nav{margin-top:21px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.dashboard-premium-hero nav a{min-height:43px;padding:10px 14px;border:1px solid rgba(255,255,255,.18);border-radius:11px;background:rgba(255,255,255,.07);color:#fff;font-size:9px;font-weight:900}.dashboard-premium-hero nav a.primary{border-color:#087cf0;background:#087cf0;box-shadow:0 10px 24px rgba(8,124,240,.25)}.dashboard-premium-hero nav b{margin-left:9px}
.dashboard-premium-hero-stats{display:grid;grid-template-columns:1fr;gap:9px}.dashboard-premium-hero-stats span{padding:14px 15px;border:1px solid rgba(255,255,255,.13);border-radius:15px;background:rgba(255,255,255,.07);display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 12px;backdrop-filter:blur(8px)}.dashboard-premium-hero-stats small{grid-column:1/-1;color:#a9c0d4;font-size:7px;font-weight:900;letter-spacing:.11em}.dashboard-premium-hero-stats strong{font-size:21px;line-height:1}.dashboard-premium-hero-stats em{color:#c9d7e2;font-size:8px;font-style:normal;text-align:right}
.dashboard-premium-section{margin-top:18px;padding:22px;border:1px solid #dfe7ee;border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 12px 32px rgba(20,34,56,.045)}.dashboard-premium-section>header{margin-bottom:15px;display:flex;align-items:center;justify-content:space-between;gap:18px}.dashboard-premium-section>header small{color:#f4473a;font-size:8px;font-weight:900;letter-spacing:.14em}.dashboard-premium-section>header h2{margin:5px 0 4px;font-size:20px}.dashboard-premium-section>header p{margin:0;color:#768797;font-size:10px}.dashboard-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dashboard-quick-card{min-height:112px;padding:15px;display:grid;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;gap:12px;border:1px solid #e0e8ef;border-radius:16px;background:linear-gradient(180deg,#fff,#f9fbfd);color:#142238;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.dashboard-quick-card:hover{transform:translateY(-2px);border-color:#b7d7f2;box-shadow:0 14px 27px rgba(20,34,56,.075)}.dashboard-quick-card>span{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#edf4fa;color:#46647e;font-size:17px;font-weight:900}.dashboard-quick-card>div{min-width:0;display:grid;gap:3px}.dashboard-quick-card small{color:#80909e;font-size:7px;font-weight:900;letter-spacing:.11em}.dashboard-quick-card h3{margin:0;font-size:13px}.dashboard-quick-card p{margin:0;color:#718292;font-size:9px;line-height:1.4}.dashboard-quick-card>b{color:#087cf0;font-size:15px}.dashboard-quick-card.blue>span{background:#eaf5ff;color:#087cf0}.dashboard-quick-card.navy>span{background:#e8eef5;color:#142238}.dashboard-quick-card.coral>span{background:#fff0ed;color:#e65649}.dashboard-quick-card.locked{opacity:.58}
.dashboard-live-premium{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dashboard-live-premium>a{min-height:92px;padding:16px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #e0e8ef;border-radius:16px;background:#fbfdff}.dashboard-live-premium>a>span{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#edf4fa;font-size:18px}.dashboard-live-premium strong{display:block;font-size:23px}.dashboard-live-premium small{color:#748596;font-size:9px}.dashboard-live-premium>a>b{color:#087cf0;font-size:9px}.dashboard-live-premium>a.has-new{border-color:#a9d4fa;background:#f1f8ff}.dashboard-live-premium>a.has-new>span{background:#087cf0}
.dashboard-setup-score{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#eaf5ff;color:#087cf0;font-size:16px;font-weight:900}.dashboard-setup-progress{height:7px;border-radius:999px;background:#e7edf2;overflow:hidden}.dashboard-setup-progress i{height:100%;display:block;border-radius:999px;background:linear-gradient(90deg,#087cf0,#4ca8fb)}.dashboard-setup-list{margin-top:13px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.dashboard-setup-list a{padding:12px;display:grid;grid-template-columns:32px minmax(0,1fr) 18px;align-items:center;gap:10px;border:1px solid #e1e8ee;border-radius:13px;background:#fafcfd}.dashboard-setup-list a>span{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#eef2f5;color:#92a0ac;font-weight:900}.dashboard-setup-list a>span.done{background:#e7f7ec;color:#287244}.dashboard-setup-list a>div{display:grid;gap:3px}.dashboard-setup-list b{font-size:10px}.dashboard-setup-list small{color:#7a8a98;font-size:8px}.dashboard-setup-list i{font-style:normal;color:#087cf0;font-weight:900}.dashboard-push-premium{margin-top:18px!important;border-radius:22px!important;box-shadow:0 12px 32px rgba(20,34,56,.045)!important}

/* V127.9 · Page unique de changement d’accès */
.access-switch-page{background:linear-gradient(180deg,#f3f7fb 0%,#edf3f8 100%)}.access-switch-card{width:min(820px,100%)!important}.access-switch-back,.access-profile-back{display:inline-flex;margin-bottom:16px;color:#63798d;font-size:10px;font-weight:900}.access-switch-back:hover,.access-profile-back:hover{color:#087cf0}.access-switch-header h1{font-size:43px!important}.access-current-card{margin-top:22px;padding:14px 16px;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #dbe6ef;border-radius:16px;background:linear-gradient(180deg,#f8fbfd,#f2f7fb)}.access-current-avatar{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#087cf0;color:#fff;font-size:14px;font-weight:900}.access-current-card>div{display:grid;gap:3px}.access-current-card small{color:#7d8d9a;font-size:7px;font-weight:900;letter-spacing:.12em}.access-current-card strong{font-size:13px}.access-current-card p{margin:0;color:#708293;font-size:9px}.access-current-card>i{padding:6px 9px;border-radius:999px;background:#e7f7ec;color:#287244;font-size:8px;font-style:normal;font-weight:900}.access-switch-options{margin-top:14px;display:grid;grid-template-columns:1fr;gap:10px}.access-option-card{margin:0!important;padding:16px;display:grid!important;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid #dfe7ee;border-radius:17px;background:#fff;color:#142238;box-shadow:0 8px 22px rgba(20,34,56,.035);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.access-option-card:hover{transform:translateY(-1px);border-color:#aad2f5;box-shadow:0 13px 28px rgba(20,34,56,.07)}.access-option-card.is-current{border-color:#8bc4f7;background:#f2f8ff}.access-option-card.is-disabled{opacity:.55;pointer-events:none}.access-option-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:#edf4fa;color:#4b6680;font-size:17px;font-weight:900}.access-option-icon.simple{background:#eaf5ff;color:#087cf0}.access-option-icon.team{background:#eef5f1;color:#337458}.access-option-icon.admin{background:#fff1e9;color:#cf5b3e}.access-option-card>div{display:grid;gap:3px}.access-option-card>div small{color:#7d8d9b;font-size:7px;font-weight:900;letter-spacing:.12em}.access-option-card h2{margin:0;font-size:15px}.access-option-card p{margin:0;color:#718292;font-size:9px;line-height:1.45}.access-option-card button,.access-option-link,.access-option-state{min-height:38px;padding:9px 12px;display:flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:10px;font-size:9px;font-weight:900;white-space:nowrap}.access-option-card button,.access-option-link{background:#142238;color:#fff;cursor:pointer}.access-option-card.admin .access-option-link{background:#087cf0}.access-option-state{background:#e7f7ec;color:#287244}.access-option-link.muted{background:#eef2f5;color:#718292}.access-switch-default-pin{margin-top:14px;padding:12px 14px;display:grid;gap:4px;border:1px solid #f0d19b;border-radius:13px;background:#fff7e8;color:#865416}.access-switch-default-pin strong{font-size:10px}.access-switch-default-pin span{font-size:8px;color:#976a29}
.access-profile-page{background:linear-gradient(180deg,#f3f7fb,#edf3f8)}.access-profile-page .team-login-brand{color:#142238}.access-profile-page .team-login-brand .brand{filter:none!important}.access-profile-page .team-login-brand>small{border-color:#dce5ed;background:#fff;color:#617588}.access-profile-card{border-color:#dbe5ee!important;box-shadow:0 28px 80px rgba(23,48,77,.12)!important}
@media(max-width:980px){.dashboard-premium-main{padding:26px 22px 45px!important}.dashboard-quick-grid{grid-template-columns:1fr 1fr}.dashboard-premium-hero{grid-template-columns:1fr}.dashboard-premium-hero-stats{grid-template-columns:repeat(3,1fr)}.dashboard-setup-list{grid-template-columns:1fr}.dashboard-premium-head{align-items:flex-start}.dashboard-premium-head-actions{align-items:flex-end;flex-direction:column}.dashboard-access-switch{min-width:215px}}
@media(max-width:720px){.dashboard-premium{display:block!important}.dashboard-premium-sidebar{display:none}.dashboard-premium-main{padding:22px 14px 40px!important}.dashboard-premium-head{align-items:stretch!important;flex-direction:column}.dashboard-premium-head-actions{align-items:stretch;flex-direction:column}.dashboard-access-switch{width:100%;min-width:0}.dashboard-plan-chip{align-self:flex-start}.dashboard-premium-hero{padding:22px;border-radius:22px}.dashboard-premium-hero h2{font-size:29px}.dashboard-premium-hero-stats{grid-template-columns:1fr}.dashboard-quick-grid,.dashboard-live-premium{grid-template-columns:1fr}.dashboard-premium-section{padding:17px}.access-switch-card{padding:28px 20px!important}.access-option-card{grid-template-columns:46px minmax(0,1fr)}.access-option-icon{width:46px;height:46px}.access-option-card button,.access-option-link,.access-option-state{grid-column:1/-1;width:100%}.access-current-card{grid-template-columns:42px minmax(0,1fr)}.access-current-card>i{grid-column:1/-1;justify-self:start}}


/* V127.10 · Refonte premium de la page Commandes */
.orders-premium-page{
  min-height:100vh;
  background:linear-gradient(180deg,#eef4f8 0%,#f6f8fb 100%);
  color:#142238;
}
.orders-premium-head{
  min-height:116px;
  padding:24px max(28px,calc((100vw - 1320px)/2));
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:28px;
  border-bottom:1px solid #dfe7ee;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 30px rgba(20,34,56,.035);
  backdrop-filter:blur(16px);
}
.orders-premium-back{
  min-height:42px;
  padding:10px 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #dce6ee;
  border-radius:12px;
  background:#f2f7fb;
  color:#38617f;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
.orders-premium-back:hover{border-color:#b9d7ee;background:#eaf5ff;color:#087cf0}
.orders-premium-title small{color:#f4473a;font-size:9px;font-weight:900;letter-spacing:.16em}
.orders-premium-title h1{margin:5px 0 3px;color:#087cf0;font:39px/1 Georgia,serif;letter-spacing:-.025em}
.orders-premium-title>span{color:#738596;font-size:10px;font-weight:800}
.orders-access-switch{min-width:245px}
.orders-premium-main{max-width:1320px!important;padding:22px 28px 55px!important;margin:0 auto!important}
.orders-premium-toolbar{
  margin-bottom:14px;
  padding:11px 12px 11px 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid #dfe7ee;
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 24px rgba(20,34,56,.035);
}
.orders-auto-status{display:flex;align-items:center;gap:11px;min-width:0}
.orders-auto-status>i{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#38a95b;box-shadow:0 0 0 5px #e6f6eb}
.orders-auto-status>span{display:grid;gap:2px;min-width:0}
.orders-auto-status b{font-size:10px}
.orders-auto-status small{color:#7a8a99;font-size:8px}
.orders-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.orders-toolbar-actions button,.orders-toolbar-actions a{min-height:38px;padding:9px 11px;border:1px solid #dbe5ed;border-radius:10px;background:#fff;color:#4b647a;font-size:9px;font-weight:900;cursor:pointer;white-space:nowrap}
.orders-toolbar-actions button.enabled{border-color:#b9dfc2;background:#eaf7ed;color:#347646}
.orders-toolbar-actions a.primary{border-color:#142238;background:#142238;color:#fff;box-shadow:0 8px 18px rgba(20,34,56,.12)}

/* The item editor remains functional but follows the premium card language. */

@media(max-width:1100px){
  .orders-premium-head{padding-left:22px;padding-right:22px}
}
@media(max-width:760px){
  .orders-premium-head{padding:18px 14px;grid-template-columns:1fr;gap:12px}
  .orders-premium-back{justify-self:start}
  .orders-premium-title h1{font-size:34px}
  .orders-access-switch{width:100%;min-width:0}
  .orders-premium-main{padding:14px 12px 42px!important}
  .orders-premium-toolbar{align-items:stretch;flex-direction:column}
  .orders-toolbar-actions{justify-content:stretch}
  .orders-toolbar-actions button,.orders-toolbar-actions a{flex:1;text-align:center}
}
@media(max-width:480px){
  .orders-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}
  .orders-toolbar-actions button,.orders-toolbar-actions a{width:100%}
}


/* V127.16 · Tables & QR Code premium */
.tables-premium-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 9% 2%,rgba(8,124,240,.07),transparent 28%),
    radial-gradient(circle at 94% 8%,rgba(244,71,58,.035),transparent 23%),
    linear-gradient(180deg,#f3f7fa 0%,#edf3f7 100%);
}
.tables-premium-head{
  min-height:94px;
  padding:15px max(24px,calc((100vw - 1540px)/2));
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:20px;
  border-bottom:1px solid rgba(215,226,235,.95);
  background:rgba(255,255,255,.95);
  box-shadow:0 8px 28px rgba(20,34,56,.05);
  backdrop-filter:blur(20px);
}
.tables-premium-back{
  min-height:42px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #dce6ee;
  border-radius:12px;
  background:#f7fafc;
  color:#49647d;
  font-size:10px;
  font-weight:900;
}
.tables-premium-title{text-align:center}
.tables-premium-title small{color:#f4473a;font-size:8px;font-weight:900;letter-spacing:.17em}
.tables-premium-title h1{margin:5px 0 2px;color:#087cf0;font:clamp(25px,2.3vw,34px)/1.02 Georgia,serif;letter-spacing:-.035em}
.tables-premium-title>span{color:#718395;font-size:9px;font-weight:800}
.tables-premium-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.tables-access-switch{min-width:200px}
.tables-new-head-button{
  min-height:44px;
  padding:0 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:linear-gradient(135deg,#087cf0,#1e91fb);
  color:#fff;
  font-size:10px;
  font-weight:900;
  box-shadow:0 12px 26px rgba(8,124,240,.20),inset 0 1px 0 rgba(255,255,255,.22);
  white-space:nowrap;
}
.tables-premium-main{max-width:1580px;padding:24px 24px 42px}
.tables-alert{margin-bottom:14px}
.tables-premium-hero{
  padding:27px 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  border-radius:26px;
  background:
    radial-gradient(circle at 84% 18%,rgba(87,172,250,.22),transparent 34%),
    linear-gradient(135deg,#10243b 0%,#173c5b 58%,#23577c 100%);
  color:#fff;
  box-shadow:0 18px 48px rgba(17,39,62,.16);
}
.tables-premium-hero-copy{max-width:720px}
.tables-premium-hero-copy>small{color:#8dccff;font-size:9px;font-weight:900;letter-spacing:.17em}
.tables-premium-hero-copy h2{margin:8px 0 7px;font:clamp(27px,2.5vw,36px)/1.05 Georgia,serif;letter-spacing:-.025em}
.tables-premium-hero-copy p{max-width:660px;margin:0;color:#c8d8e6;font-size:11px;line-height:1.65}
.tables-premium-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(112px,1fr));gap:10px}
.tables-premium-hero-stats span{min-width:118px;padding:14px 15px;display:grid;gap:4px;border:1px solid rgba(255,255,255,.13);border-radius:15px;background:rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.tables-premium-hero-stats small{color:#adc2d4;font-size:8px;font-weight:900;letter-spacing:.09em}
.tables-premium-hero-stats strong{color:#fff;font-size:24px;line-height:1}
.tables-premium-hero-stats em{color:#c9d8e4;font-size:8px;font-style:normal}
.tables-premium-layout{margin-top:20px;display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:20px}
.tables-catalog-panel,.table-create-panel,.table-bulk-panel,.table-room-panel,.table-security-panel{
  border:1px solid #dce5ed;
  border-radius:23px;
  background:rgba(255,255,255,.98);
  box-shadow:0 15px 42px rgba(20,34,56,.055),inset 0 1px 0 rgba(255,255,255,.92);
}
.tables-catalog-panel{min-width:0;overflow:hidden}
.tables-catalog-head{padding:22px 24px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #e8eef3}
.tables-catalog-head small,.table-create-panel header small,.table-bulk-panel header small,.table-room-panel small{color:#f4473a;font-size:8px;font-weight:900;letter-spacing:.14em}
.tables-catalog-head h2,.table-create-panel h2,.table-bulk-panel h2,.table-room-panel h2{margin:5px 0 5px;color:#142238;font-size:20px}
.tables-catalog-head p,.table-create-panel p,.table-bulk-panel p,.table-room-panel p{margin:0;color:#718395;font-size:10px;line-height:1.5}
.tables-catalog-count{padding:8px 11px;border-radius:999px;background:#eaf5ff;color:#087cf0;font-size:9px;font-weight:900;white-space:nowrap}
.tables-catalog-tools{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1f4;background:#fbfdff}
.tables-search{position:relative;min-width:230px;max-width:370px;flex:1;margin:0}
.tables-search>span{position:absolute;left:13px;top:50%;z-index:1;color:#7e90a0;font-size:19px;transform:translateY(-50%)}
.tables-search input{height:42px;padding:0 13px 0 39px;border:1px solid #d8e3ec;border-radius:12px;background:#fff;font-size:11px}
.tables-filter{padding:3px;display:flex;gap:3px;border:1px solid #dce5ed;border-radius:12px;background:#f0f4f7}
.tables-filter button{min-height:34px;padding:7px 10px;border:0;border-radius:9px;background:transparent;color:#607487;font-size:8px;font-weight:900;cursor:pointer;white-space:nowrap}
.tables-filter button.active{background:#fff;color:#087cf0;box-shadow:0 5px 13px rgba(20,34,56,.08)}
.tables-premium-grid{padding:18px;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.tables-premium-grid .table-card[hidden]{display:none!important}
.tables-premium-grid .table-card-premium{
  min-width:0;
  padding:0!important;
  display:block!important;
  overflow:hidden;
  border:1px solid #e0e8ef!important;
  border-radius:19px!important;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)!important;
  box-shadow:0 9px 24px rgba(20,34,56,.035),inset 0 1px 0 rgba(255,255,255,.92)!important;
  opacity:1!important;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.tables-premium-grid .table-card-premium:hover{border-color:#bed8ee!important;box-shadow:0 15px 34px rgba(20,34,56,.07)!important;transform:translateY(-1px)}
.tables-premium-grid .table-card-premium.inactive{background:#f8fafc!important}
.table-card-premium-head{padding:14px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e9eef3}
.table-card-premium-title{min-width:0;display:flex;align-items:center;gap:11px}
.table-card-premium-title>span{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#eaf5ff,#dceeff);color:#087cf0;font-size:14px;font-weight:900}
.table-card-premium-title>div{min-width:0}
.table-card-premium-title small{color:#f4473a;font-size:7px;font-weight:900;letter-spacing:.12em}
.table-card-premium-title h3{margin:3px 0 2px;overflow:hidden;color:#142238;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.table-card-premium-title p{margin:0;overflow:hidden;color:#7a8b99;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.table-state-badge{padding:7px 9px;border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.table-state-badge.active{background:#e6f7ec;color:#2f7a48}
.table-state-badge.occupied{background:#fff0df;color:#a76422}
.table-state-badge.hidden{background:#edf1f4;color:#697b8b}
.table-card-premium-content{padding:14px;display:grid;grid-template-columns:130px minmax(0,1fr);align-items:stretch;gap:14px}
.tables-premium-page .qr-print-area{width:130px;min-height:190px;flex:0 0 130px;padding:10px 8px 11px;justify-content:center;border-color:#e0e8ef;border-radius:15px;background:#fff;box-shadow:0 7px 17px rgba(20,34,56,.035)}
.tables-premium-page .qr-print-area img.qr-code-image{width:106px!important;height:106px!important;max-width:106px!important}
.tables-premium-page .qr-print-area strong{margin-top:6px;font-size:11px}
.tables-premium-page .qr-print-area small{font-size:6px}
.table-card-premium-main{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:12px}
.table-card-premium-metrics{display:grid;grid-template-columns:1fr;gap:8px}
.table-card-premium-metrics>span{padding:11px 12px;display:grid;gap:4px;border:1px solid #e3eaf0;border-radius:13px;background:#f7fafc}
.table-card-premium-metrics>span.highlight{border-color:#f0d5ad;background:#fff9ef}
.table-card-premium-metrics small{color:#7b8b99;font-size:7px;font-weight:900;letter-spacing:.09em}
.table-card-premium-metrics b{color:#142238;font-size:12px}
.table-card-premium-metrics em{color:#728494;font-size:8px;font-style:normal}
.table-card-premium-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.table-card-premium-actions button,.table-card-premium-actions a{min-height:38px;padding:7px 9px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dce5ed;border-radius:11px;background:#fff;color:#315879;font-size:8px;font-weight:900;text-align:center;cursor:pointer}
.table-card-premium-actions button span,.table-card-premium-actions a span{color:#087cf0;font-size:13px}
.table-card-premium-actions a.primary{grid-column:1/-1;border:0;background:#142238;color:#fff}
.table-card-premium-actions a.primary span{color:#8dccff}
.table-card-settings{border-top:1px solid #e8eef3}
.table-card-settings>summary{padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8fafc;cursor:pointer;list-style:none}
.table-card-settings>summary::-webkit-details-marker{display:none}
.table-card-settings>summary span{display:grid;gap:2px}
.table-card-settings>summary small{color:#7a8b99;font-size:7px;font-weight:900;letter-spacing:.11em}
.table-card-settings>summary b{color:#142238;font-size:9px}
.table-card-settings>summary em{padding:6px 8px;border-radius:8px;background:#eaf5ff;color:#087cf0;font-size:8px;font-style:normal;font-weight:900}
.table-card-settings[open]>summary{border-bottom:1px solid #e7edf2;background:#f2f7fb}
.table-card-settings-body{padding:14px;background:#fbfdff}
.table-card-settings-body form{margin:0!important}
.table-edit-form{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
.table-edit-form label{font-size:8px}
.table-edit-form input{height:42px;padding:0 11px;border-radius:11px;background:#fff}
.table-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.table-edit-actions button{min-height:36px;padding:7px 9px;border:1px solid #dce5ed;border-radius:10px;background:#fff;color:#315879;font-size:8px;font-weight:900;cursor:pointer}
.table-edit-actions button:first-child{border:0;background:#087cf0;color:#fff}
.table-edit-actions button.danger{grid-column:1/-1;border-color:#f0cbc8;background:#fff4f2;color:#ad493f}
.table-card-settings .reset-access-form{margin:9px 0 0!important}
.table-card-settings .reset-access-form button{min-height:36px;border-radius:10px;font-size:8px}
.tables-no-result,.tables-empty-state{min-height:290px;margin:18px;padding:30px;display:grid;place-items:center;align-content:center;gap:8px;border:1px dashed #cddbe6;border-radius:18px;background:#f8fbfd;color:#718395;text-align:center}
.tables-no-result>span,.tables-empty-state>span{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#eaf5ff;color:#087cf0;font-size:22px;font-weight:900}
.tables-no-result h3,.tables-empty-state h2{margin:4px 0 0;color:#142238}
.tables-no-result p,.tables-empty-state p{margin:0;font-size:10px}
.tables-empty-state a{margin-top:8px;padding:11px 14px;border-radius:10px;background:#087cf0;color:#fff;font-size:9px;font-weight:900}
.tables-premium-sidebar{position:sticky;top:18px;display:grid;gap:14px}
.table-create-panel{overflow:hidden}
.table-create-panel>header,.table-bulk-panel>header{padding:20px 20px 17px;border-bottom:1px solid #e8eef3}
.table-create-panel>form{margin:0;padding:19px 20px 21px;display:grid;grid-template-columns:1fr;gap:13px}
.table-create-panel label{font-size:9px}
.table-create-panel input{height:48px;padding:0 13px;border-radius:12px;background:#fbfcfe;font-size:11px}
.table-create-panel .primary-action{min-height:47px;border:0;border-radius:12px;background:linear-gradient(135deg,#087cf0,#1e91fb);color:#fff;font-size:10px;font-weight:900;box-shadow:0 12px 25px rgba(8,124,240,.19)}
.table-bulk-panel>div{padding:14px;display:grid;gap:9px}
.table-bulk-panel button{min-height:65px;padding:11px 12px;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:2px 10px;border:1px solid #e0e8ef;border-radius:14px;background:#fbfdff;color:#142238;text-align:left;cursor:pointer}
.table-bulk-panel button>span{grid-row:1/3;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eaf5ff;color:#087cf0;font-size:18px;font-weight:900}
.table-bulk-panel button b{font-size:10px}
.table-bulk-panel button small{color:#718395;font-size:8px;font-weight:500}
.table-room-panel{padding:20px;overflow:hidden;background:linear-gradient(145deg,#11263e,#204e73);color:#fff}
.table-room-panel small{color:#8dccff}
.table-room-panel h2{color:#fff;font:22px/1.08 Georgia,serif}
.table-room-panel p{color:#c4d5e2}
.table-room-panel a{min-height:43px;margin-top:16px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;border-radius:11px;background:rgba(255,255,255,.11);color:#fff;font-size:9px;font-weight:900}
.table-security-panel{padding:15px;display:flex;align-items:flex-start;gap:11px;background:#f8fbfd}
.table-security-panel>span{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:10px;background:#eaf5ff;color:#087cf0;font-size:13px;font-weight:900}
.table-security-panel b{font-size:9px}
.table-security-panel p{margin:4px 0 0;color:#718395;font-size:8px;line-height:1.5}
@media(max-width:1280px){
  .tables-premium-head{grid-template-columns:auto minmax(0,1fr) auto}
  .tables-access-switch{min-width:0}
  .tables-access-switch>span:nth-child(2){display:none}
  .tables-premium-layout{grid-template-columns:minmax(0,1fr) 320px}
  .tables-premium-grid{grid-template-columns:1fr!important}
}
@media(max-width:900px){
  .tables-premium-head{padding:12px 16px;grid-template-columns:auto minmax(0,1fr) auto;gap:10px}
  .tables-premium-title h1{font-size:25px}
  .tables-new-head-button{display:none}
  .tables-premium-main{padding:16px}
  .tables-premium-hero{align-items:flex-start;flex-direction:column;padding:22px}
  .tables-premium-hero-stats{width:100%}
  .tables-premium-layout{grid-template-columns:1fr}
  .tables-premium-sidebar{position:static;grid-template-columns:1fr 1fr}
  .table-create-panel{grid-row:1/3}
}
@media(max-width:680px){
  .tables-premium-head{grid-template-columns:42px minmax(0,1fr) 42px}
  .tables-premium-back{width:42px;min-height:42px;padding:0;font-size:0}
  .tables-premium-back::before{content:'←';font-size:17px}
  .tables-access-switch{width:42px;min-width:42px;height:42px;padding:0!important;display:grid!important;place-items:center!important}
  .tables-access-switch>span:not(.dashboard-access-avatar),.tables-access-switch>i{display:none!important}
  .tables-premium-title small{font-size:6px}
  .tables-premium-title h1{font-size:21px}
  .tables-premium-title>span{font-size:7px}
  .tables-premium-main{padding:10px}
  .tables-premium-hero{padding:19px 17px;border-radius:20px}
  .tables-premium-hero-copy h2{font-size:24px}
  .tables-premium-hero-stats{grid-template-columns:repeat(3,1fr);gap:7px}
  .tables-premium-hero-stats span{min-width:0;padding:11px 8px}
  .tables-premium-hero-stats small{font-size:6px}
  .tables-premium-hero-stats strong{font-size:20px}
  .tables-catalog-panel,.table-create-panel,.table-bulk-panel,.table-room-panel,.table-security-panel{border-radius:19px}
  .tables-catalog-head{padding:18px 16px;flex-direction:column}
  .tables-catalog-tools{padding:12px;align-items:stretch;flex-direction:column}
  .tables-search{min-width:0;max-width:none;width:100%}
  .tables-filter{width:100%;overflow-x:auto}
  .tables-filter button{flex:1}
  .tables-premium-grid{padding:12px!important;gap:11px!important}
  .table-card-premium-content{grid-template-columns:105px minmax(0,1fr);gap:11px;padding:12px}
  .tables-premium-page .qr-print-area{width:105px;min-height:160px;flex-basis:105px;padding:8px 6px}
  .tables-premium-page .qr-print-area img.qr-code-image{width:88px!important;height:88px!important;max-width:88px!important}
  .table-card-premium-actions{grid-template-columns:1fr}
  .table-card-premium-actions a.primary{grid-column:auto}
  .tables-premium-sidebar{grid-template-columns:1fr}
  .table-create-panel{grid-row:auto}
}
@media(max-width:430px){
  .tables-premium-hero-stats{grid-template-columns:1fr}
  .tables-premium-hero-stats span{grid-template-columns:1fr auto;align-items:center}
  .tables-premium-hero-stats em{grid-column:1/-1}
  .table-card-premium-head{align-items:flex-start;flex-direction:column}
  .table-card-premium-content{grid-template-columns:1fr}
  .tables-premium-page .qr-print-area{width:100%;min-height:0;flex-basis:auto}
  .table-card-premium-metrics{grid-template-columns:1fr 1fr}
  .table-edit-actions{grid-template-columns:1fr}
  .table-edit-actions button.danger{grid-column:auto}
}


/* ==============================================================
   V128 · Interface unifiée de l’espace restaurateur
   ============================================================== */
:root{
  --hg-shell-width:226px;
  --hg-shell-navy:#10243b;
  --hg-shell-navy-2:#183d5c;
  --hg-shell-blue:#087cf0;
  --hg-shell-coral:#f4473a;
  --hg-shell-bg:#eef3f7;
  --hg-shell-line:#dce6ee;
  --hg-shell-muted:#718395;
}

body.app-unified-page{
  min-height:100vh!important;
  padding-left:var(--hg-shell-width)!important;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 7% 0%,rgba(8,124,240,.065),transparent 27%),
    radial-gradient(circle at 96% 6%,rgba(244,71,58,.035),transparent 23%),
    linear-gradient(180deg,#f4f7fa 0%,var(--hg-shell-bg) 100%)!important;
}
body.app-unified-page.app{
  display:block!important;
  grid-template-columns:none!important;
}

.app-shell-sidebar{
  position:fixed!important;
  inset:0 auto 0 0;
  z-index:1500;
  width:var(--hg-shell-width);
  height:100dvh;
  padding:20px 14px 16px!important;
  display:flex!important;
  flex-direction:column!important;
  overflow-y:auto;
  overflow-x:hidden;
  border-right:1px solid rgba(216,227,236,.95)!important;
  background:rgba(255,255,255,.975)!important;
  color:#142238;
  box-shadow:12px 0 40px rgba(20,34,56,.045)!important;
  backdrop-filter:blur(18px);
  scrollbar-width:thin;
}
.admin-access-active .app-shell-sidebar{
  top:64px;
  height:calc(100dvh - 64px);
}
.app-shell-sidebar-top{
  min-height:65px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.app-shell-logo{
  width:142px!important;
  height:64px!important;
  margin:0!important;
  flex:0 0 auto;
  filter:none!important;
}
.app-shell-mobile-close{
  display:none;
  position:absolute;
  right:0;
  top:8px;
  width:36px;
  height:36px;
  border:0;
  border-radius:11px;
  background:#eef3f7;
  color:#5e7386;
  font-size:22px;
  cursor:pointer;
}
.app-shell-restaurant{
  margin:8px 2px 16px;
  padding:13px 14px;
  display:grid;
  gap:4px;
  border:1px solid #e0e8ef;
  border-radius:15px;
  background:linear-gradient(180deg,#fbfdff,#f3f7fa);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}
.app-shell-restaurant small{
  color:var(--hg-shell-coral);
  font-size:7px;
  font-weight:900;
  letter-spacing:.14em;
}
.app-shell-restaurant strong{
  overflow:hidden;
  color:#142238;
  font-size:12px;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-shell-restaurant span{
  color:#738596;
  font-size:8px;
  font-weight:800;
}
.app-shell-nav{
  margin:0!important;
  display:grid!important;
  gap:13px!important;
}
.app-shell-nav-group{
  display:grid;
  gap:5px;
}
.app-shell-nav-group>small{
  margin:0 9px 2px;
  color:#9aa8b5;
  font-size:7px;
  font-weight:900;
  letter-spacing:.14em;
}
.app-shell-nav a{
  min-height:41px;
  padding:7px 9px!important;
  display:grid!important;
  grid-template-columns:31px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:8px!important;
  border:1px solid transparent;
  border-radius:11px!important;
  color:#5d7082!important;
  font-size:9px!important;
  font-weight:850!important;
  line-height:1.2;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.app-shell-nav a>span{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#f0f5f9;
  color:#577086;
}
.app-shell-nav svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.75;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.app-shell-nav a>b{
  overflow:hidden;
  font-size:9px;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-shell-nav a>i{
  font-size:7px;
  font-style:normal;
}
.app-shell-nav a:hover{
  border-color:#e3ebf2;
  background:#f5f9fc!important;
  color:var(--hg-shell-blue)!important;
  transform:translateX(1px);
}
.app-shell-nav a.active{
  border-color:#d5e8f9;
  background:linear-gradient(90deg,#eaf5ff,#f4f9fe)!important;
  color:var(--hg-shell-blue)!important;
  box-shadow:inset 3px 0 var(--hg-shell-blue),0 7px 17px rgba(8,124,240,.06);
}
.app-shell-nav a.active>span{
  background:var(--hg-shell-blue);
  color:#fff;
  box-shadow:0 7px 16px rgba(8,124,240,.18);
}
.app-shell-nav a.locked{opacity:.48}
.app-shell-footer{
  margin-top:auto;
  padding-top:15px;
  display:grid;
  gap:9px;
}
.app-shell-current-access{
  padding:10px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:center;
  gap:9px;
  border:1px solid #e1e8ee;
  border-radius:13px;
  background:#f7fafc;
}
.app-shell-current-access>span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:linear-gradient(135deg,#10243b,#255271);
  color:#fff;
  font-size:10px;
  font-weight:900;
}
.app-shell-current-access>div{
  min-width:0;
  display:grid;
  gap:2px;
}
.app-shell-current-access small{
  color:#8b9aa7;
  font-size:6px;
  font-weight:900;
  letter-spacing:.10em;
}
.app-shell-current-access b,
.app-shell-current-access em{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-shell-current-access b{font-size:9px}
.app-shell-current-access em{color:#708294;font-size:7px;font-style:normal}
.app-shell-logout{
  min-height:39px;
  padding:8px 11px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  border:1px solid #e1e8ee!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#6c7d8c!important;
  font-size:8px!important;
  font-weight:900!important;
}
.app-shell-logout svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.app-shell-logout:hover{
  border-color:#efcbc8!important;
  background:#fff5f3!important;
  color:#b44b42!important;
}
/* V129.117 · Sur téléphone et tablette en portrait, le bouton Menu vit dans une barre fixe en haut de l'écran. */
.app-shell-mobile-bar{
  display:none;
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1450;
  height:calc(52px + env(safe-area-inset-top));
  padding:env(safe-area-inset-top) 12px 0;
  align-items:center;
  gap:12px;
  background:linear-gradient(135deg,#10243b,#1d486a);
  color:#fff;
  box-shadow:0 8px 24px rgba(15,33,58,.22);
}
.app-shell-mobile-bar-title{
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:14px;
  font-weight:800;
}
.app-shell-mobile-toggle{
  display:none;
  min-height:40px;
  padding:0 14px;
  align-items:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:12px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.app-shell-mobile-toggle svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
}
.app-shell-backdrop{
  position:fixed;
  inset:0;
  z-index:1490;
  background:rgba(10,24,40,.52);
  backdrop-filter:blur(3px);
}
.app-shell-backdrop[hidden]{display:none!important}

/* En-têtes cohérents */
body.app-unified-page>.subpage-head,
body.app-unified-page>.orders-premium-head,
body.app-unified-page>.tables-premium-head,
body.app-unified-page>.builder-topbar{
  min-height:92px!important;
  padding:15px clamp(18px,2.7vw,38px)!important;
  border-bottom:1px solid rgba(218,228,236,.96)!important;
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 8px 28px rgba(20,34,56,.04)!important;
  backdrop-filter:blur(18px);
}
body.app-unified-page>.subpage-head,
body.app-unified-page>.orders-premium-head,
body.app-unified-page>.tables-premium-head{
  position:sticky;
  top:0;
  z-index:1200;
}
.admin-access-active.app-unified-page>.subpage-head,
.admin-access-active.app-unified-page>.orders-premium-head,
.admin-access-active.app-unified-page>.tables-premium-head,
.admin-access-active.app-unified-page>.builder-topbar{top:64px}

.app-dashboard-button{
  min-height:42px!important;
  padding:0 14px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  flex:0 0 auto;
  border:1px solid #dce6ee!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,#fbfdff,#f2f7fb)!important;
  color:#3f6586!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 7px 18px rgba(20,34,56,.035)!important;
  font-size:9px!important;
  font-weight:900!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
.app-dashboard-button::before{content:none!important}
.app-dashboard-button svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.app-dashboard-button:hover{
  border-color:#bdd9ef!important;
  background:#eef7ff!important;
  color:#087cf0!important;
}

body.app-unified-page .subpage-head h1,
body.app-unified-page .orders-premium-title h1,
body.app-unified-page .tables-premium-title h1,
body.app-unified-page .builder-title h1{
  color:#087cf0!important;
  font-family:Georgia,serif!important;
  letter-spacing:-.035em!important;
}
body.app-unified-page .subpage-head>div>small,
body.app-unified-page .orders-premium-title>small,
body.app-unified-page .tables-premium-title>small,
body.app-unified-page .builder-title>small{
  color:#f4473a!important;
  font-weight:900!important;
  letter-spacing:.15em!important;
}
body.app-unified-page .subpage-main{
  width:100%;
}
body.app-unified-page .dashboard-premium-main{
  max-width:1380px!important;
  margin:0 auto!important;
}

/* Harmonisation des pages historiques avec le nouvel univers */
body.app-unified-page .settings-card,body.app-unified-page .billing-current-plan,body.app-unified-page .pricing-card,body.app-unified-page .billing-detail,body.app-unified-page .team-hero,body.app-unified-page .team-panel,body.app-unified-page .health-summary,body.app-unified-page .health-checks article,body.app-unified-page .health-help,body.app-unified-page .admin-summary article,body.app-unified-page .admin-users,body.app-unified-page .pos-history-search-card,body.app-unified-page .pos-history-results{
  border-color:#dce6ee!important;
  border-radius:20px!important;
  background-color:rgba(255,255,255,.98)!important;
  box-shadow:0 14px 38px rgba(20,34,56,.05)!important;
}
body.app-unified-page input,
body.app-unified-page select,
body.app-unified-page textarea{
  border-radius:11px;
}
body.app-unified-page input:focus,
body.app-unified-page select:focus,
body.app-unified-page textarea:focus{
  border-color:#64adf2!important;
  box-shadow:0 0 0 3px rgba(8,124,240,.08);
}

/* Le constructeur possède déjà sa navigation locale : on élargit ses points de rupture. */

@media(max-width:960px){
  body.app-unified-page{
    padding-left:0!important;
  }
  body.app-unified-page.app{
    display:block!important;
  }
  .app-shell-sidebar{
    display:flex!important;
    width:min(82vw,280px);
    transform:translateX(-110%);
    transition:transform .22s ease;
    box-shadow:20px 0 55px rgba(10,25,42,.22)!important;
  }
  .app-shell-menu-open .app-shell-sidebar{transform:translateX(0)}
  .app-shell-menu-open{overflow:hidden!important}
  .app-shell-mobile-toggle{display:flex}
  .app-shell-mobile-bar{display:flex}
  body.app-unified-page{padding-top:calc(52px + env(safe-area-inset-top))!important}
  .app-shell-mobile-close{display:grid;place-items:center}
  body.app-unified-page>.subpage-head,
  body.app-unified-page>.orders-premium-head,
  body.app-unified-page>.tables-premium-head,
  body.app-unified-page>.builder-topbar{
    position:relative;
    top:auto!important;
  }
  .admin-access-active .app-shell-sidebar{
    top:0;
    height:100dvh;
  }
}

@media(max-width:680px){
  body.app-unified-page>.subpage-head,
  body.app-unified-page>.orders-premium-head,
  body.app-unified-page>.tables-premium-head,
  body.app-unified-page>.builder-topbar{
    min-height:82px!important;
    padding:12px 13px!important;
  }
  .app-dashboard-button{
    width:42px!important;
    min-width:42px!important;
    padding:0!important;
  }
  .app-dashboard-button span{display:none!important}
  .app-dashboard-button svg{width:18px;height:18px}
}

@media print{
  .app-shell-sidebar,
  .app-shell-mobile-bar,
  .app-shell-mobile-toggle,
  .app-shell-backdrop,
  .app-dashboard-button{
    display:none!important;
  }
  body.app-unified-page{padding-left:0!important;background:#fff!important}
}


/* V128.1 · Retour visuel pendant la connexion */
.auth-login.login-submitting{
  cursor:progress;
}

.auth-login.login-submitting .auth-login-card::before{
  left:-38%;
  right:auto;
  width:38%;
  opacity:1;
  background:linear-gradient(90deg,transparent,#42a0fa 34%,#087cf0 66%,transparent);
  animation:auth-login-progress 1.05s ease-in-out infinite;
}

.auth-login-submit.is-loading{
  cursor:progress;
  filter:saturate(.96);
  box-shadow:0 12px 25px rgba(8,124,240,.20),inset 0 1px 0 rgba(255,255,255,.20);
}

.auth-login-submit.is-loading:hover{
  transform:none;
  box-shadow:0 12px 25px rgba(8,124,240,.20),inset 0 1px 0 rgba(255,255,255,.20);
}

.auth-login-submit.is-loading [data-login-submit-label]{
  animation:auth-login-label-pulse 1.25s ease-in-out infinite;
}

.auth-login-submit.is-loading [data-login-submit-icon]{
  background:rgba(255,255,255,.19);
}

.auth-login-spinner{
  width:17px;
  height:17px;
  display:block;
  border:2px solid rgba(255,255,255,.42);
  border-top-color:#fff;
  border-radius:50%;
  animation:auth-login-spinner .72s linear infinite;
}

.auth-login.login-submitting .auth-login-field,
.auth-login.login-submitting .auth-login-remember,
.auth-login.login-submitting .auth-login-switch{
  opacity:.72;
  transition:opacity .16s ease;
}

@keyframes auth-login-spinner{
  to{transform:rotate(360deg)}
}

@keyframes auth-login-progress{
  0%{transform:translateX(0)}
  100%{transform:translateX(365%)}
}

@keyframes auth-login-label-pulse{
  0%,100%{opacity:1}
  50%{opacity:.72}
}

@media(prefers-reduced-motion:reduce){
  .auth-login.login-submitting .auth-login-card::before,
  .auth-login-submit.is-loading [data-login-submit-label],
  .auth-login-spinner{
    animation:none!important;
  }
}


/* V128.4 · Correctif responsive de la Caisse + pavé numérique bascule */
body.app-unified-page.pos-page .pos-main{
  min-width:0!important;
  max-width:100%;
}


/* V128.5 · Version de l'application affichée en pied de page */
.hg-app-version{
  width:max-content;
  max-width:calc(100% - 32px);
  margin:26px auto 14px;
  padding:6px 10px;
  border:1px solid #dce5ed;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:#8a99a7;
  font-size:8px;
  font-weight:900;
  letter-spacing:.12em;
  line-height:1;
  text-align:center;
  box-shadow:0 5px 14px rgba(20,34,56,.025);
}
@media(max-width:720px){
  .hg-app-version{
    margin-top:20px;
    margin-bottom:calc(12px + env(safe-area-inset-bottom));
  }
}
@media print{
  .hg-app-version{display:none!important}
}


/* V128.6 · Confirmation d'encaissement + impression directe */
body.pos-payment-success-open{overflow:hidden}

.pos-payment-success-backdrop{
  position:fixed;
  inset:0;
  z-index:1800;
  background:rgba(11,26,43,.48);
  backdrop-filter:blur(5px);
}

.pos-payment-success-modal{
  position:fixed;
  inset:0;
  z-index:1801;
  padding:20px;
  display:grid;
  place-items:center;
  overflow:auto;
}

.pos-payment-success-card{
  width:min(470px,100%);
  padding:27px;
  border:1px solid #dce6ee;
  border-radius:26px;
  background:#fff;
  box-shadow:0 30px 90px rgba(10,25,43,.24),inset 0 1px 0 rgba(255,255,255,.95);
  text-align:center;
}

.pos-payment-success-icon{
  width:58px;
  height:58px;
  margin:0 auto 14px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e5f7eb;
  color:#278047;
  font-size:26px;
  font-weight:900;
  box-shadow:0 9px 22px rgba(39,128,71,.10);
}

.pos-payment-success-copy small{
  color:#278047;
  font-size:8px;
  font-weight:900;
  letter-spacing:.15em;
}

.pos-payment-success-copy h2{
  margin:7px 0 5px;
  color:#142238;
  font:29px/1.05 Georgia,serif;
}

.pos-payment-success-copy p{
  margin:0;
  color:#6d7f90;
  font-size:12px;
}

.pos-payment-success-copy p strong{
  color:#087cf0;
  font-size:16px;
}

.pos-payment-success-actions{
  margin-top:22px;
  display:grid;
  gap:9px;
}

.pos-payment-success-actions button,
.pos-payment-simple-print{
  width:100%;
  min-height:48px;
  padding:10px 14px;
  border:1px solid #d9e3eb;
  border-radius:13px;
  background:#f7fafc;
  color:#24394d;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

.pos-payment-success-actions button.primary,
.pos-payment-simple-print{
  border-color:#087cf0;
  background:linear-gradient(135deg,#087cf0,#1d91fb);
  color:#fff;
  box-shadow:0 10px 22px rgba(8,124,240,.18);
}

.pos-payment-success-actions button.quiet{
  border-color:transparent;
  background:transparent;
  color:#7c8c9b;
}

.pos-payment-simple-step{
  margin-top:16px;
  padding:15px;
  border:1px solid #dce6ee;
  border-radius:16px;
  background:#f7fafc;
  text-align:left;
}

.pos-payment-simple-step[hidden]{display:none!important}

.pos-payment-simple-step>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px;
}

.pos-payment-simple-step>header>div{
  display:grid;
  gap:3px;
}

.pos-payment-simple-step>header small{
  color:#f4473a;
  font-size:7px;
  font-weight:900;
  letter-spacing:.13em;
}

.pos-payment-simple-step>header b{
  font-size:13px;
}

.pos-payment-simple-step>header button{
  width:32px;
  height:32px;
  border:0;
  border-radius:9px;
  background:#e9eff4;
  color:#506679;
  font-size:20px;
  cursor:pointer;
}

.pos-payment-meal-picker{
  margin-bottom:11px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 42px;
  align-items:end;
  gap:8px;
}

.pos-payment-meal-picker>button{
  width:42px;
  height:42px;
  border:1px solid #d5e1ea;
  border-radius:11px;
  background:#fff;
  color:#087cf0;
  font-size:20px;
  font-weight:900;
  cursor:pointer;
}

.pos-payment-meal-picker label{
  gap:5px;
  color:#617486;
  font-size:8px;
}

.pos-payment-meal-picker input{
  height:42px;
  padding:0 10px;
  border:1px solid #d5e1ea;
  border-radius:11px;
  background:#fff;
  color:#142238;
  font-size:17px;
  font-weight:900;
  text-align:center;
}

.pos-payment-print-status{
  margin:12px 0 0;
  color:#718292;
  font-size:9px;
}

.pos-hidden-print-frame{
  position:fixed!important;
  left:-10000px!important;
  top:-10000px!important;
  width:1px!important;
  height:1px!important;
  border:0!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:600px){
  .pos-payment-success-modal{padding:12px}
  .pos-payment-success-card{padding:22px 17px;border-radius:22px}
  .pos-payment-success-copy h2{font-size:26px}
}


/* ==============================================================
   V128.7 · Menu vertical compact et repliable
   ============================================================== */
:root{
  --hg-shell-collapsed-width:78px;
}

.app-shell-desktop-collapse{
  position:absolute;
  right:-27px;
  top:17px;
  z-index:3;
  width:30px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid #d7e2eb;
  border-left:0;
  border-radius:0 11px 11px 0;
  background:#fff;
  color:#557086;
  box-shadow:7px 3px 16px rgba(20,34,56,.07);
  font-size:22px;
  line-height:1;
  cursor:pointer;
  transition:background .15s ease,color .15s ease;
}
.app-shell-desktop-collapse:hover{
  background:#eef7ff;
  color:#087cf0;
}

/* Menu compact par défaut sur ordinateur */
@media(min-width:961px){
  body.app-unified-page.app-shell-collapsed{
    padding-left:var(--hg-shell-collapsed-width)!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-sidebar{
    width:var(--hg-shell-collapsed-width)!important;
    padding-left:9px!important;
    padding-right:9px!important;
    overflow:visible;
  }

  .app-shell-collapsed .app-shell-sidebar-top{
    min-height:60px;
  }

  .app-shell-collapsed .app-shell-logo{
    width:48px!important;
    height:48px!important;
  }

  .app-shell-collapsed .app-shell-restaurant{
    display:none!important;
  }

  .app-shell-collapsed .app-shell-nav{
    gap:9px!important;
  }

  .app-shell-collapsed .app-shell-nav-group{
    gap:6px;
  }

  .app-shell-collapsed .app-shell-nav-group>small{
    display:none!important;
  }

  .app-shell-collapsed .app-shell-nav a{
    width:58px;
    min-height:48px;
    margin:0 auto;
    padding:0!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    place-items:center!important;
    border-radius:14px!important;
  }

  .app-shell-collapsed .app-shell-nav a>span{
    width:38px;
    height:38px;
    border-radius:11px;
  }

  .app-shell-collapsed .app-shell-nav a>b,
  .app-shell-collapsed .app-shell-nav a>i{
    display:none!important;
  }

  .app-shell-collapsed .app-shell-nav a:hover{
    transform:none;
  }

  .app-shell-collapsed .app-shell-footer{
    padding-top:10px;
  }

  .app-shell-collapsed .app-shell-current-access{
    width:58px;
    margin:0 auto;
    padding:8px;
    display:grid;
    grid-template-columns:1fr;
    place-items:center;
    border-radius:14px;
  }

  .app-shell-collapsed .app-shell-current-access>span{
    width:38px;
    height:38px;
    border-radius:11px;
  }

  .app-shell-collapsed .app-shell-current-access>div{
    display:none!important;
  }

  .app-shell-collapsed .app-shell-logout{
    width:58px;
    min-height:44px;
    margin:0 auto;
    padding:0!important;
  }

  .app-shell-collapsed .app-shell-logout>span{
    display:none!important;
  }

  .app-shell-collapsed .app-shell-logout svg{
    width:19px;
    height:19px;
  }

  .app-shell-collapsed .app-shell-desktop-collapse{
    right:-29px;
  }
}

/* Sur tablette/mobile : on garde le menu entièrement masqué jusqu'au bouton Menu */
@media(max-width:960px){
  .app-shell-desktop-collapse{
    display:none!important;
  }
}

/* La fenêtre Ajouter un produit de la Caisse doit toujours être au-dessus du menu */
.pos-add-modal{
  z-index:2100!important;
}
.pos-add-dialog{
  position:relative;
  z-index:2101!important;
}

/* Même règle pour les principaux overlays de la Caisse */
.pos-payment-success-backdrop{z-index:2200!important}
.pos-payment-success-modal{z-index:2201!important}
.pos-modal-backdrop{z-index:2200!important}
.pos-z-modal{z-index:2201!important}


/* ==============================================================
   V128.8 · Bouton de réduction du menu mieux positionné
   ============================================================== */

/* Menu OUVERT : bouton proprement intégré dans le menu */
@media(min-width:961px){
  body.app-unified-page:not(.app-shell-collapsed) .app-shell-desktop-collapse{
    position:absolute!important;
    top:16px!important;
    right:13px!important;
    width:34px!important;
    height:34px!important;
    border:1px solid #d9e4ed!important;
    border-radius:11px!important;
    background:#f6f9fc!important;
    color:#597287!important;
    box-shadow:0 6px 15px rgba(20,34,56,.055)!important;
    font-size:20px!important;
    z-index:5!important;
  }

  body.app-unified-page:not(.app-shell-collapsed) .app-shell-desktop-collapse:hover{
    border-color:#bad7f0!important;
    background:#eaf5ff!important;
    color:#087cf0!important;
  }

  /* On réserve la place nécessaire à droite du logo */
  body.app-unified-page:not(.app-shell-collapsed) .app-shell-sidebar-top{
    position:relative!important;
    padding-right:46px!important;
  }

  /* Menu REPLIÉ : conserver le bouton extérieur qui fonctionne bien */
  body.app-unified-page.app-shell-collapsed .app-shell-desktop-collapse{
    top:17px!important;
    right:-29px!important;
    width:30px!important;
    height:34px!important;
    border:1px solid #d7e2eb!important;
    border-left:0!important;
    border-radius:0 11px 11px 0!important;
    background:#fff!important;
    color:#557086!important;
    box-shadow:7px 3px 16px rgba(20,34,56,.07)!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-desktop-collapse:hover{
    background:#eef7ff!important;
    color:#087cf0!important;
  }
}


/* ==============================================================
   V128.9 · Menu sans bouton réduire
   ============================================================== */

/* L'ancien bouton n'existe plus et ne doit jamais prendre de place. */
.app-shell-desktop-collapse{
  display:none!important;
}

/* Sur desktop / grand iPad : rail compact par défaut. */
@media(min-width:961px){
  body.app-unified-page.app-shell-collapsed{
    padding-left:var(--hg-shell-collapsed-width)!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-sidebar{
    width:var(--hg-shell-collapsed-width)!important;
    padding-left:9px!important;
    padding-right:9px!important;
    overflow:visible!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-sidebar-top{
    min-height:60px!important;
    padding-right:0!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-logo{
    width:48px!important;
    height:48px!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-restaurant{
    display:none!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-nav-group>small,
  body.app-unified-page.app-shell-collapsed .app-shell-nav a>b,
  body.app-unified-page.app-shell-collapsed .app-shell-nav a>i,
  body.app-unified-page.app-shell-collapsed .app-shell-current-access>div,
  body.app-unified-page.app-shell-collapsed .app-shell-logout>span{
    display:none!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-nav a{
    width:58px!important;
    min-height:48px!important;
    margin:0 auto!important;
    padding:0!important;
    grid-template-columns:1fr!important;
    place-items:center!important;
    border-radius:14px!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-nav a>span{
    width:38px!important;
    height:38px!important;
    border-radius:11px!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-current-access{
    width:58px!important;
    margin:0 auto!important;
    padding:8px!important;
    grid-template-columns:1fr!important;
    place-items:center!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-current-access>span{
    width:38px!important;
    height:38px!important;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-logout{
    width:58px!important;
    min-height:44px!important;
    margin:0 auto!important;
    padding:0!important;
  }

  /* Menu temporairement ouvert après clic sur Menu */
  body.app-unified-page.app-shell-menu-expanded{
    padding-left:var(--hg-shell-width)!important;
  }

  body.app-unified-page.app-shell-menu-expanded .app-shell-sidebar{
    width:var(--hg-shell-width)!important;
  }

  body.app-unified-page.app-shell-menu-expanded .app-shell-sidebar-top{
    padding-right:0!important;
  }
}

/* Sur tablette/mobile étroit, comportement tiroir inchangé. */
@media(max-width:960px){
  .app-shell-desktop-collapse{
    display:none!important;
  }
}


/* ==============================================================
   V128.10 · Ouverture fiable du menu compact
   ============================================================== */
.app-shell-expand-button{
  display:none;
}

/* Rail compact : bouton d'agrandissement visible et fiable */
@media(min-width:961px){
  body.app-unified-page.app-shell-collapsed .app-shell-expand-button{
    position:absolute;
    top:17px;
    right:-34px;
    z-index:8;
    width:35px;
    height:38px;
    padding:0;
    display:grid;
    place-items:center;
    overflow:visible;
    border:1px solid #d6e2eb;
    border-left:0;
    border-radius:0 12px 12px 0;
    background:#fff;
    color:#087cf0;
    box-shadow:8px 4px 18px rgba(20,34,56,.08);
    cursor:pointer;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-expand-button>span{
    font-size:23px;
    font-weight:800;
    line-height:1;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-expand-button>b{
    position:absolute;
    left:43px;
    top:50%;
    width:max-content;
    padding:7px 10px;
    display:none;
    transform:translateY(-50%);
    border-radius:9px;
    background:#142238;
    color:#fff;
    font-size:8px;
    font-weight:900;
    white-space:nowrap;
    box-shadow:0 8px 20px rgba(20,34,56,.16);
  }

  body.app-unified-page.app-shell-collapsed .app-shell-expand-button:hover{
    background:#eef7ff;
  }

  body.app-unified-page.app-shell-collapsed .app-shell-expand-button:hover>b{
    display:block;
  }

  /* Menu ouvert : aucun bouton de réduction.
     Un clic dans la page suffit pour revenir au rail compact. */
  body.app-unified-page.app-shell-menu-expanded .app-shell-expand-button{
    display:none!important;
  }

  /* Le rail compact entier signale qu'il est cliquable. */
  body.app-unified-page.app-shell-collapsed .app-shell-sidebar{
    cursor:pointer;
  }

  body.app-unified-page.app-shell-menu-expanded .app-shell-sidebar{
    cursor:default;
  }
}

@media(max-width:960px){
  .app-shell-expand-button{
    display:none!important;
  }
}


/* V128.11 · Confirmation d'encaissement interne à Hey Garçon */
body.pos-confirm-open{overflow:hidden}

.pos-confirm-backdrop{
  position:fixed;
  inset:0;
  z-index:2300;
  background:rgba(10,24,41,.52);
  backdrop-filter:blur(5px);
}
.pos-confirm-backdrop[hidden]{display:none!important}

.pos-confirm-modal{
  position:fixed;
  inset:0;
  z-index:2301;
  padding:20px;
  display:grid;
  place-items:center;
  overflow:auto;
}
.pos-confirm-modal[hidden]{display:none!important}

.pos-confirm-card{
  width:min(520px,100%);
  overflow:hidden;
  border:1px solid #dce6ee;
  border-radius:26px;
  background:#fff;
  box-shadow:0 32px 95px rgba(10,25,43,.25),inset 0 1px 0 rgba(255,255,255,.95);
}

.pos-confirm-card>header{
  padding:22px 23px 18px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 36px;
  align-items:start;
  gap:13px;
  border-bottom:1px solid #e8eef3;
  background:linear-gradient(180deg,#fff,#fbfdff);
}

.pos-confirm-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#eaf5ff;
  color:#087cf0;
  font-size:20px;
  font-weight:900;
}

.pos-confirm-card>header small{
  color:#f4473a;
  font-size:8px;
  font-weight:900;
  letter-spacing:.15em;
}

.pos-confirm-card>header h2{
  margin:5px 0 4px;
  color:#142238;
  font:26px/1.05 Georgia,serif;
}

.pos-confirm-card>header p{
  margin:0;
  color:#718293;
  font-size:10px;
  line-height:1.5;
}

.pos-confirm-close{
  width:36px;
  height:36px;
  border:0;
  border-radius:11px;
  background:#f1f5f8;
  color:#5a7083;
  font-size:21px;
  cursor:pointer;
}

.pos-confirm-summary{
  padding:18px 22px;
  display:grid;
  gap:12px;
}

.pos-confirm-main{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.pos-confirm-main>span,
.pos-confirm-amounts>span,
.pos-confirm-target{
  padding:12px 13px;
  display:grid;
  gap:5px;
  border:1px solid #e1e9ef;
  border-radius:14px;
  background:#f8fafc;
}

.pos-confirm-main small,
.pos-confirm-amounts small,
.pos-confirm-target small{
  color:#7b8b99;
  font-size:7px;
  font-weight:900;
  letter-spacing:.10em;
}

.pos-confirm-main strong,
.pos-confirm-target strong{
  color:#142238;
  font-size:13px;
}

.pos-confirm-amounts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.pos-confirm-amounts>span.total{
  grid-column:1/-1;
  border-color:#142238;
  background:#142238;
}

.pos-confirm-amounts>span.total small{
  color:#94a8ba;
}

.pos-confirm-amounts>span.total strong{
  color:#fff;
  font-size:24px;
}

.pos-confirm-amounts>span:not(.total) strong{
  color:#142238;
  font-size:16px;
}

.pos-confirm-actions{
  padding:17px 22px 22px;
  display:grid;
  grid-template-columns:1fr 1.45fr;
  gap:9px;
  border-top:1px solid #e8eef3;
  background:#fbfcfd;
}

.pos-confirm-actions button{
  min-height:50px;
  padding:0 15px;
  border-radius:13px;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

.pos-confirm-actions .secondary{
  border:1px solid #d8e2ea;
  background:#fff;
  color:#52697c;
}

.pos-confirm-actions .primary{
  border:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  background:linear-gradient(135deg,#087cf0,#1d91fb);
  color:#fff;
  box-shadow:0 10px 22px rgba(8,124,240,.18);
}

.pos-confirm-actions .primary>strong{
  font-size:19px;
}

.pos-confirm-actions .primary:disabled{
  opacity:.65;
  cursor:wait;
}

@media(max-width:560px){
  .pos-confirm-modal{padding:12px}
  .pos-confirm-card{border-radius:22px}
  .pos-confirm-card>header{
    padding:18px 17px 15px;
    grid-template-columns:44px minmax(0,1fr) 34px;
  }
  .pos-confirm-icon{width:44px;height:44px}
  .pos-confirm-card>header h2{font-size:23px}
  .pos-confirm-summary{padding:15px}
  .pos-confirm-main,.pos-confirm-amounts{grid-template-columns:1fr}
  .pos-confirm-amounts>span.total{grid-column:auto}
  .pos-confirm-actions{
    padding:14px 15px 17px;
    grid-template-columns:1fr;
  }
}


/* V128.12 · Choix du ticket directement dans la confirmation */
.pos-confirm-receipt{
  margin:0 22px 18px;
  padding:15px;
  border:1px solid #e1e9ef;
  border-radius:16px;
  background:#f8fafc;
}
.pos-confirm-receipt>header{
  margin-bottom:11px;
  display:grid;
  gap:3px;
}
.pos-confirm-receipt>header small{
  color:#f4473a;
  font-size:7px;
  font-weight:900;
  letter-spacing:.12em;
}
.pos-confirm-receipt>header b{font-size:12px}
.pos-confirm-receipt-options{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.pos-confirm-receipt-options label{position:relative;cursor:pointer}
.pos-confirm-receipt-options input{position:absolute;opacity:0;pointer-events:none}
.pos-confirm-receipt-options label>span{
  min-height:68px;
  padding:11px;
  display:grid;
  align-content:center;
  gap:4px;
  border:1px solid #dce5ed;
  border-radius:12px;
  background:#fff;
}
.pos-confirm-receipt-options label>span b{font-size:10px;color:#142238}
.pos-confirm-receipt-options label>span small{font-size:8px;color:#748596;line-height:1.35}
.pos-confirm-receipt-options input:checked+span{
  border-color:#69aff1;
  background:#eef7ff;
  box-shadow:inset 0 0 0 1px #69aff1;
}
.pos-confirm-meals{
  margin-top:10px;
  padding:10px 11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid #dbe5ed;
  border-radius:12px;
  background:#fff;
}
.pos-confirm-meals[hidden]{display:none!important}
.pos-confirm-meals>span{display:grid;gap:3px}
.pos-confirm-meals small{font-size:7px;color:#718394;font-weight:900;letter-spacing:.09em}
.pos-confirm-meals b{font-size:10px}
.pos-confirm-meals>div{display:grid;grid-template-columns:34px 58px 34px;gap:6px}
.pos-confirm-meals button{
  height:34px;
  border:1px solid #d9e3eb;
  border-radius:9px;
  background:#f7fafc;
  color:#087cf0;
  font-size:17px;
  font-weight:900;
}
.pos-confirm-meals input{
  height:34px;
  padding:0 7px;
  border:1px solid #d9e3eb;
  border-radius:9px;
  background:#fff;
  text-align:center;
  font-size:13px;
  font-weight:900;
}
.pos-payment-success-auto{
  margin:17px 0 0;
  padding:10px 12px;
  border:1px solid #e1e9ef;
  border-radius:12px;
  background:#f7fafc;
  color:#607486;
  font-size:9px;
  font-weight:900;
}
.pos-payment-success-done{
  width:100%;
  min-height:48px;
  margin-top:11px;
  border:0;
  border-radius:13px;
  background:#142238;
  color:#fff;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

/* Icône Caisse plus identifiable dans le menu */
.app-shell-nav-pos>span{
  background:#fff0ee!important;
  color:#f4473a!important;
}
.app-shell-nav-pos:hover>span{
  background:#ffe6e2!important;
  color:#e53e32!important;
}
.app-shell-nav-pos.active{
  border-color:#f3d0cc!important;
  background:linear-gradient(90deg,#fff1ef,#fff8f7)!important;
  color:#d9473c!important;
  box-shadow:inset 3px 0 #f4473a,0 7px 17px rgba(244,71,58,.07)!important;
}
.app-shell-nav-pos.active>span{
  background:linear-gradient(135deg,#f4473a,#ff6558)!important;
  color:#fff!important;
  box-shadow:0 7px 16px rgba(244,71,58,.20)!important;
}

@media(max-width:560px){
  .pos-confirm-receipt-options{grid-template-columns:1fr}
  .pos-confirm-receipt{margin:0 15px 14px}
  .pos-confirm-meals{align-items:stretch;flex-direction:column}
}


/* ==============================================================
   V128.13 · Bascule d'accès inline
   ============================================================== */
.app-shell-current-access{
  border:0;
  cursor:pointer;
  font-family:inherit;
  text-align:left;
}
.app-shell-current-access>i{
  margin-left:auto;
  color:#087cf0;
  font-size:12px;
  font-style:normal;
}
.dashboard-access-switch{
  cursor:pointer;
  font-family:inherit;
}

.app-access-popover{
  position:fixed;
  z-index:3000;
  width:330px;
  padding:8px;
  border:1px solid #dce6ee;
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 65px rgba(16,34,55,.18),inset 0 1px 0 rgba(255,255,255,.95);
}
.app-access-popover[hidden]{display:none!important}
.app-access-popover-main{display:grid;gap:6px}
.app-access-choice,
.app-access-profile{
  width:100%;
  min-height:62px;
  padding:10px 11px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 20px;
  align-items:center;
  gap:10px;
  border:1px solid #e1e8ee;
  border-radius:13px;
  background:#fbfcfd;
  color:#142238;
  text-align:left;
  cursor:pointer;
}
.app-access-choice:hover,
.app-access-profile:hover{border-color:#bcd8ef;background:#f1f8ff}
.app-access-choice-icon,
.app-access-profile>span{
  width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eaf5ff;color:#087cf0;font-size:13px;font-weight:900;
}
.app-access-choice.admin .app-access-choice-icon{background:#f0edff;color:#6b56c7}
.app-access-choice>div,.app-access-profile>div{display:grid;gap:3px;min-width:0}
.app-access-choice b,.app-access-profile b{font-size:11px}
.app-access-choice small,.app-access-profile small{color:#748596;font-size:8px}
.app-access-choice>i,.app-access-profile>i{color:#8ba0b2;font-size:16px;font-style:normal;text-align:center}
.app-access-profile-list{padding:4px 0 4px 18px;display:grid;gap:5px}
.app-access-profile-list[hidden]{display:none!important}
.app-access-profile{min-height:54px;background:#fff}
.app-access-empty{margin:5px 8px;padding:9px;border-radius:10px;background:#f5f7f9;color:#7c8b98;font-size:9px;text-align:center}

.app-access-pin-backdrop{
  position:fixed;inset:0;z-index:3100;background:rgba(10,24,41,.48);backdrop-filter:blur(5px);
}
.app-access-pin-backdrop[hidden]{display:none!important}
.app-access-pin-modal{
  position:fixed;inset:0;z-index:3101;padding:18px;display:grid;place-items:center;overflow:auto;
}
.app-access-pin-modal[hidden]{display:none!important}
body.app-access-pin-open{overflow:hidden}
.app-access-pin-card{
  position:relative;
  width:min(390px,100%);
  padding:23px;
  border:1px solid #dce6ee;
  border-radius:24px;
  background:#fff;
  box-shadow:0 30px 90px rgba(10,25,43,.24);
}
.app-access-pin-close{
  position:absolute;right:14px;top:14px;width:34px;height:34px;border:0;border-radius:10px;background:#f0f4f7;color:#597084;font-size:20px;cursor:pointer;
}
.app-access-pin-card>header{
  padding-right:38px;display:flex;align-items:center;gap:12px;
}
.app-access-pin-avatar{
  width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:16px;background:#eaf5ff;color:#087cf0;font-size:18px;font-weight:900;
}
.app-access-pin-card>header>div{display:grid;gap:3px}
.app-access-pin-card>header small{color:#087cf0;font-size:8px;font-weight:900;letter-spacing:.13em}
.app-access-pin-card>header h2{margin:0;font-size:19px}
.app-access-pin-card>header p{margin:0;color:#718394;font-size:9px}
.app-access-default-pin{
  margin-top:13px;padding:9px 11px;border:1px solid #efcf98;border-radius:11px;background:#fff6e7;color:#8b5c19;font-size:9px;
}
.app-access-default-pin[hidden]{display:none!important}
.app-access-pin-dots{
  height:45px;margin:15px 0;display:flex;align-items:center;justify-content:center;gap:11px;
}
.app-access-pin-dots i{
  width:13px;height:13px;border:2px solid #bbc9d4;border-radius:50%;background:#fff;transition:.12s;
}
.app-access-pin-dots i.filled{border-color:#087cf0;background:#087cf0;transform:scale(1.08)}
.app-access-pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.app-access-pin-keypad button{
  min-height:54px;border:1px solid #d8e2e9;border-radius:13px;background:#fff;color:#142238;font-size:19px;font-weight:900;cursor:pointer;box-shadow:0 5px 13px rgba(20,34,56,.035);
}
.app-access-pin-keypad button:active{transform:translateY(1px);background:#eaf5ff}
.app-access-pin-keypad button.secondary{background:#edf2f6;color:#53687b;font-size:13px}
.app-access-pin-message{
  margin:12px 0 0;color:#758696;font-size:9px;text-align:center;font-weight:700;
}
.app-access-pin-message.loading{color:#087cf0}
.app-access-pin-message.error{color:#bd433a}
.app-access-pin-card.shake{animation:app-access-shake .28s ease}
@keyframes app-access-shake{25%{transform:translateX(-7px)}50%{transform:translateX(7px)}75%{transform:translateX(-4px)}}
@media(max-width:560px){
  .app-access-popover{width:calc(100vw - 24px)!important;left:12px!important;right:auto!important}
  .app-access-pin-modal{padding:12px}
  .app-access-pin-card{padding:20px 16px;border-radius:21px}
}


/* V128.14 · Accès actuel indépendant du menu latéral */
[data-app-access-button]{
  position:relative;
  z-index:4;
}


/* ==============================================================
   V128.15 · Accueil : actions premium + notifications compactes
   ============================================================== */

/* Boutons du hero */
.dashboard-premium-hero .dashboard-hero-actions{
  margin-top:22px;
  display:grid;
  grid-template-columns:repeat(2,minmax(210px,1fr));
  gap:10px;
  max-width:620px;
}

.dashboard-premium-hero .dashboard-hero-action{
  min-height:68px;
  padding:10px 12px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 24px;
  align-items:center;
  gap:11px;
  border-radius:16px;
  color:#fff;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}

.dashboard-premium-hero .dashboard-hero-action.primary{
  border:1px solid rgba(89,176,255,.55);
  background:linear-gradient(135deg,#087cf0,#1e91fb);
  box-shadow:0 12px 28px rgba(8,124,240,.26),inset 0 1px 0 rgba(255,255,255,.18);
}

.dashboard-premium-hero .dashboard-hero-action.secondary{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(8px);
}

.dashboard-premium-hero .dashboard-hero-action:hover{
  transform:translateY(-1px);
}

.dashboard-premium-hero .dashboard-hero-action.primary:hover{
  box-shadow:0 16px 32px rgba(8,124,240,.31),inset 0 1px 0 rgba(255,255,255,.18);
}

.dashboard-premium-hero .dashboard-hero-action.secondary:hover{
  border-color:rgba(255,255,255,.30);
  background:rgba(255,255,255,.13);
}

.dashboard-hero-action-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:rgba(255,255,255,.14);
  font-size:17px;
  font-weight:900;
}

.dashboard-hero-action>span:nth-child(2){
  min-width:0;
  display:grid;
  gap:3px;
}

.dashboard-hero-action small{
  color:rgba(255,255,255,.68)!important;
  font-size:7px!important;
  font-weight:900!important;
  letter-spacing:.12em!important;
}

.dashboard-hero-action b{
  margin:0!important;
  color:#fff;
  font-size:10px;
  white-space:nowrap;
}

.dashboard-hero-action>i{
  color:rgba(255,255,255,.92);
  font-size:17px;
  font-style:normal;
  font-weight:900;
  text-align:center;
}

/* Notifications compactes dans l'en-tête */
.dashboard-push-button-wrap{
  position:relative;
  margin:0;
  display:flex;
  align-items:center;
}

.dashboard-push-button{
  min-height:48px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid #dbe5ed;
  border-radius:14px;
  background:#fff;
  color:#536a7e;
  font-family:inherit;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 25px rgba(20,34,56,.05);
  transition:transform .15s ease,border-color .15s ease,background .15s ease,color .15s ease;
}

.dashboard-push-button>span{
  font-size:15px;
  line-height:1;
}

.dashboard-push-button:hover{
  transform:translateY(-1px);
  border-color:#a8cff1;
  background:#f4f9ff;
  color:#087cf0;
}

.dashboard-push-button.enabled{
  border-color:#cce7d4;
  background:#eef9f1;
  color:#287343;
  box-shadow:none;
}

.dashboard-push-button:disabled{
  opacity:.65;
  cursor:default;
  transform:none;
}

.dashboard-push-status{
  position:absolute;
  right:0;
  top:calc(100% + 7px);
  z-index:40;
  width:max-content;
  max-width:285px;
  padding:7px 9px;
  display:none;
  border:1px solid #dbe5ed;
  border-radius:9px;
  background:#142238;
  color:#fff;
  box-shadow:0 10px 24px rgba(20,34,56,.15);
  font-size:8px;
  font-weight:700;
  line-height:1.35;
  white-space:normal;
}

.dashboard-push-button-wrap:hover .dashboard-push-status{
  display:block;
}

/* Ancienne grosse carte supprimée */
.dashboard-push-premium{
  display:none!important;
}

@media(max-width:980px){
  .dashboard-premium-hero .dashboard-hero-actions{
    grid-template-columns:1fr 1fr;
    max-width:none;
  }

  .dashboard-premium-head-actions{
    width:100%;
    display:grid!important;
    grid-template-columns:auto auto minmax(215px,1fr);
    align-items:center!important;
  }

  .dashboard-push-button{
    width:100%;
  }
}

@media(max-width:720px){
  .dashboard-premium-hero .dashboard-hero-actions{
    grid-template-columns:1fr;
  }

  .dashboard-premium-head-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:9px!important;
  }

  .dashboard-plan-chip{
    grid-column:1/-1;
  }

  .dashboard-access-switch{
    width:100%;
  }

  .dashboard-push-button-wrap{
    width:100%;
  }

  .dashboard-push-button{
    width:100%;
    min-height:50px;
  }

  .dashboard-push-status{
    left:0;
    right:auto;
    max-width:min(285px,calc(100vw - 28px));
  }
}


/* ==============================================================
   V128.17 · Derniers tickets encaissés repliables
   ============================================================== */
.pos-paid-tickets-collapsed{
  padding-bottom:0!important;
}

.pos-paid-tickets-toggle-head{
  margin-bottom:0!important;
  align-items:center!important;
}

.pos-paid-tickets-toggle-head>div{
  min-width:0;
}

.pos-ticket-history-toggle{
  min-height:42px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid #dbe5ed;
  border-radius:12px;
  background:#fff;
  color:#536a7d;
  font-family:inherit;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 7px 18px rgba(20,34,56,.04);
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}

.pos-ticket-history-toggle:hover{
  transform:translateY(-1px);
  border-color:#b8d8f2;
  background:#f4f9ff;
  color:#087cf0;
}

.pos-ticket-history-toggle i{
  color:#087cf0;
  font-size:13px;
  font-style:normal;
  font-weight:900;
}

.pos-ticket-history-collapsible[hidden]{
  display:none!important;
}

.pos-ticket-history-collapsible{
  margin-top:14px;
  padding-bottom:18px;
  border-top:1px solid #e8eef3;
}

.pos-ticket-history-toolbar{
  padding:13px 0 9px;
  display:flex;
  justify-content:flex-end;
}

@media(max-width:720px){
  .pos-paid-tickets-toggle-head{
    align-items:stretch!important;
  }

  .pos-ticket-history-toggle{
    width:100%;
  }

  .pos-ticket-history-toolbar{
    justify-content:stretch;
  }

  .pos-ticket-history-toolbar .pos-history-search-link{
    width:100%;
    text-align:center;
  }
}


/* ==============================================================
   V128.18 · Historique tickets ultra-compact sur une ligne
   ============================================================== */

.pos-ticket-history-collapsible > div:last-child{
  display:grid;
  gap:0!important;
  border:1px solid #e3eaf0;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}

.pos-ticket-row{
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  min-height:48px;
  border:0!important;
  border-bottom:1px solid #e8edf2!important;
  border-radius:0!important;
  background:#fff;
}

.pos-ticket-row:nth-child(even){
  background:#f7fafc;
}

.pos-ticket-row:last-child{
  border-bottom:0!important;
}

.pos-ticket-row:hover{
  background:#eef7ff;
}

.pos-ticket-main-compact{
  min-width:0;
  min-height:48px;
  padding:7px 10px!important;
  display:grid!important;
  grid-template-columns:24px minmax(120px,1.45fr) minmax(120px,1fr) 92px minmax(82px,.8fr) 82px 58px;
  align-items:center;
  gap:8px;
  color:#142238;
  text-decoration:none;
}

.pos-ticket-main-compact .pos-ticket-check{
  width:23px!important;
  height:23px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:8px!important;
  background:#eaf7ee!important;
  color:#32915a!important;
  font-size:11px!important;
  font-weight:900!important;
}

.pos-ticket-main-compact .pos-ticket-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px!important;
  font-weight:900!important;
}

.pos-ticket-main-compact small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#718394!important;
  font-size:8px!important;
  line-height:1!important;
}

.pos-ticket-main-compact .pos-ticket-method{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#526a7d!important;
  font-size:8px!important;
  font-style:normal!important;
  font-weight:800!important;
}

.pos-ticket-main-compact .pos-ticket-total{
  color:#142238!important;
  font-size:11px!important;
  font-weight:900!important;
  text-align:right;
  white-space:nowrap;
}

.pos-ticket-main-compact .pos-ticket-detail{
  color:#087cf0!important;
  font-size:8px!important;
  font-style:normal!important;
  font-weight:900!important;
  text-align:right;
  white-space:nowrap;
}

.pos-ticket-print-actions-compact{
  margin:0!important;
  padding:0 9px!important;
  display:flex!important;
  align-items:center;
  gap:5px!important;
  border:0!important;
}

.pos-ticket-print-actions-compact .pos-ticket-print{
  min-height:30px!important;
  padding:0 8px!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  border:1px solid #dbe4eb!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#536b7d!important;
  font-size:7px!important;
  font-weight:900!important;
  white-space:nowrap;
  box-shadow:none!important;
}

.pos-ticket-print-actions-compact .pos-ticket-print:hover{
  border-color:#afd1ee!important;
  background:#eef7ff!important;
  color:#087cf0!important;
}

/* iPad / écrans intermédiaires : on reste sur une seule ligne,
   en resserrant les colonnes secondaires. */
@media(max-width:1180px){
  .pos-ticket-main-compact{
    grid-template-columns:24px minmax(105px,1.3fr) minmax(105px,1fr) 72px minmax(72px,.8fr) 72px 48px;
    gap:6px;
  }

  .pos-ticket-orders{
    display:none!important;
  }

  .pos-ticket-main-compact{
    grid-template-columns:24px minmax(115px,1.45fr) minmax(115px,1fr) minmax(72px,.8fr) 72px 48px;
  }

  .pos-ticket-print-actions-compact .pos-ticket-print{
    padding:0 7px!important;
  }
}

/* Sur petit écran, scroll horizontal plutôt que retour à la ligne */
@media(max-width:760px){
  .pos-ticket-history-collapsible{
    overflow-x:auto;
  }

  .pos-ticket-history-collapsible > div:last-child{
    min-width:720px;
  }

  .pos-ticket-row{
    min-width:720px;
  }
}


/* ==============================================================
   V128.19 · Aperçu des tickets encaissés en popup
   ============================================================== */
.pos-ticket-row{
  grid-template-columns:1fr!important;
}

.pos-ticket-main-compact.pos-ticket-preview-trigger{
  width:100%;
  min-height:48px;
  padding:7px 11px!important;
  display:grid!important;
  grid-template-columns:24px minmax(130px,1.45fr) minmax(120px,1fr) 92px minmax(80px,.8fr) 82px;
  align-items:center;
  gap:8px;
  border:0;
  background:transparent;
  color:#142238;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
}

.pos-ticket-main-compact.pos-ticket-preview-trigger:hover{
  background:transparent;
}

.pos-ticket-print-actions-compact,
.pos-ticket-detail{
  display:none!important;
}

@media(max-width:1180px){
  .pos-ticket-main-compact.pos-ticket-preview-trigger{
    grid-template-columns:24px minmax(120px,1.45fr) minmax(115px,1fr) minmax(72px,.8fr) 72px;
  }
  .pos-ticket-orders{display:none!important}
}

body.pos-ticket-preview-open{overflow:hidden}

.pos-ticket-preview-backdrop{
  position:fixed;
  inset:0;
  z-index:3200;
  background:rgba(10,24,41,.52);
  backdrop-filter:blur(5px);
}
.pos-ticket-preview-backdrop[hidden]{display:none!important}

.pos-ticket-preview-modal{
  position:fixed;
  inset:0;
  z-index:3201;
  padding:18px;
  display:grid;
  place-items:center;
  overflow:auto;
}
.pos-ticket-preview-modal[hidden]{display:none!important}

.pos-ticket-preview-card{
  width:min(720px,100%);
  max-height:min(90vh,900px);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto;
  border:1px solid #dce6ee;
  border-radius:24px;
  background:#fff;
  box-shadow:0 34px 100px rgba(10,25,43,.28);
}

.pos-ticket-preview-head{
  padding:16px 19px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-bottom:1px solid #e6edf2;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.pos-ticket-preview-head>div{display:grid;gap:4px}
.pos-ticket-preview-head small{
  color:#f4473a;
  font-size:7px;
  font-weight:900;
  letter-spacing:.13em;
}
.pos-ticket-preview-head h2{
  margin:0;
  color:#142238;
  font:22px/1.05 Georgia,serif;
}
.pos-ticket-preview-close{
  width:36px;
  height:36px;
  flex:0 0 36px;
  border:0;
  border-radius:11px;
  background:#f0f4f7;
  color:#566d80;
  font-size:21px;
  cursor:pointer;
}

.pos-ticket-preview-frame-wrap{
  min-height:350px;
  overflow:auto;
  background:#edf2f5;
}
.pos-ticket-preview-frame{
  width:100%;
  height:min(62vh,650px);
  display:block;
  border:0;
  background:#f3f5f7;
}

.pos-ticket-preview-actions{
  padding:13px 15px;
  display:grid;
  grid-template-columns:.75fr 1.2fr 1.2fr;
  gap:8px;
  border-top:1px solid #e6edf2;
  background:#fbfcfd;
}
.pos-ticket-preview-actions button{
  min-height:46px;
  padding:0 12px;
  border-radius:12px;
  font-family:inherit;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}
.pos-ticket-preview-actions .secondary{
  border:1px solid #d9e3ea;
  background:#fff;
  color:#5b7082;
}
.pos-ticket-preview-actions .print-simple{
  border:1px solid #c8d9e8;
  background:#eef5fa;
  color:#315d7c;
}
.pos-ticket-preview-actions .print-detailed{
  border:0;
  background:linear-gradient(135deg,#087cf0,#1e91fb);
  color:#fff;
  box-shadow:0 9px 20px rgba(8,124,240,.20);
}

.pos-ticket-preview-status{
  margin:0;
  padding:7px 15px 10px;
  color:#6a7f91;
  background:#fbfcfd;
  font-size:8px;
  font-weight:800;
  text-align:center;
}
.pos-ticket-preview-status[hidden]{display:none!important}

.pos-ticket-preview-print-frame{
  position:fixed!important;
  left:-99999px!important;
  top:-99999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:640px){
  .pos-ticket-preview-modal{padding:10px}
  .pos-ticket-preview-card{border-radius:20px;max-height:94vh}
  .pos-ticket-preview-frame{height:58vh}
  .pos-ticket-preview-actions{grid-template-columns:1fr}
}


/* ==============================================================
   V128.20 · Nombre de repas avant impression du ticket simplifié
   ============================================================== */
.pos-ticket-preview-meals{
  margin:0;
  padding:14px 15px;
  display:grid;
  grid-template-columns:minmax(150px,1fr) auto;
  align-items:center;
  gap:12px;
  border-top:1px solid #e6edf2;
  background:#f7fafc;
}

.pos-ticket-preview-meals[hidden]{
  display:none!important;
}

.pos-ticket-preview-meals>div:first-child{
  display:grid;
  gap:3px;
}

.pos-ticket-preview-meals small{
  color:#f4473a;
  font-size:7px;
  font-weight:900;
  letter-spacing:.12em;
}

.pos-ticket-preview-meals b{
  color:#142238;
  font-size:11px;
}

.pos-ticket-preview-meals-control{
  display:grid;
  grid-template-columns:36px 64px 36px;
  gap:6px;
}

.pos-ticket-preview-meals-control button{
  height:36px;
  border:1px solid #d7e1e9;
  border-radius:10px;
  background:#fff;
  color:#087cf0;
  font-size:17px;
  font-weight:900;
  cursor:pointer;
}

.pos-ticket-preview-meals-control input{
  height:36px;
  padding:0 7px;
  border:1px solid #d7e1e9;
  border-radius:10px;
  background:#fff;
  color:#142238;
  font-size:13px;
  font-weight:900;
  text-align:center;
}

.pos-ticket-preview-meals-actions{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1fr 1.35fr;
  gap:8px;
}

.pos-ticket-preview-meals-actions button{
  min-height:42px;
  border-radius:11px;
  font-family:inherit;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.pos-ticket-preview-meals-actions .secondary{
  border:1px solid #d8e2ea;
  background:#fff;
  color:#5a7083;
}

.pos-ticket-preview-meals-actions .primary{
  border:0;
  background:linear-gradient(135deg,#087cf0,#1e91fb);
  color:#fff;
  box-shadow:0 8px 18px rgba(8,124,240,.18);
}

@media(max-width:640px){
  .pos-ticket-preview-meals{
    grid-template-columns:1fr;
  }

  .pos-ticket-preview-meals-control{
    width:max-content;
  }
}


/* ==============================================================
   V128.21 · Recherche de tickets au niveau de la Caisse
   ============================================================== */

/* Header correctement aligné */
.pos-ticket-search-head{
  min-height:132px!important;
  padding:24px 34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:24px!important;
}

.pos-ticket-search-head-left{
  min-width:0;
  display:flex;
  align-items:center;
  gap:26px;
}

.pos-ticket-search-title{
  min-width:0;
  display:grid;
  gap:4px;
}

.pos-ticket-search-title small{
  color:#f4473a;
  font-size:8px;
  font-weight:900;
  letter-spacing:.16em;
}

.pos-ticket-search-title h1{
  margin:0!important;
  line-height:1!important;
}

.pos-ticket-search-title>span{
  color:#6b8092;
  font-size:9px;
  font-weight:800;
}

.pos-ticket-search-head-links{
  margin:0!important;
  align-self:center!important;
}

.pos-ticket-search-head-links a{
  min-height:42px;
  display:inline-flex;
  align-items:center;
}

/* Liste modernisée */
.pos-ticket-search-results-list{
  overflow:hidden;
  border:1px solid #e3eaf0;
  border-radius:14px;
  background:#fff;
}

.pos-ticket-search-results-list article{
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
}

.pos-ticket-search-row{
  width:100%;
  min-height:54px;
  padding:8px 14px;
  display:grid;
  grid-template-columns:minmax(210px,1.55fr) 90px minmax(100px,.85fr) 90px 20px;
  align-items:center;
  gap:11px;
  border:0;
  border-bottom:1px solid #e8edf2;
  background:#fff;
  color:#142238;
  font-family:inherit;
  text-align:left;
  cursor:pointer;
}

.pos-ticket-search-results-list article:nth-child(even) .pos-ticket-search-row{
  background:#f7fafc;
}

.pos-ticket-search-results-list article:last-child .pos-ticket-search-row{
  border-bottom:0;
}

.pos-ticket-search-row:hover{
  background:#eef7ff!important;
}

.pos-ticket-search-main{
  min-width:0;
  display:grid;
  gap:3px;
}

.pos-ticket-search-main b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}

.pos-ticket-search-main small,
.pos-ticket-search-payments{
  color:#728596;
  font-size:8px;
  white-space:nowrap;
}

.pos-ticket-search-row em{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#61778a;
  font-size:8px;
  font-style:normal;
}

.pos-ticket-search-row strong{
  color:#142238;
  font-size:11px;
  text-align:right;
  white-space:nowrap;
}

.pos-ticket-search-row i{
  color:#087cf0;
  font-size:17px;
  font-style:normal;
  font-weight:900;
  text-align:right;
}

/* Popup ticket */
body.pos-ticket-search-open{overflow:hidden}

.pos-ticket-search-backdrop{
  position:fixed;inset:0;z-index:3300;background:rgba(10,24,41,.52);backdrop-filter:blur(5px);
}
.pos-ticket-search-backdrop[hidden]{display:none!important}

.pos-ticket-search-modal{
  position:fixed;inset:0;z-index:3301;padding:18px;display:grid;place-items:center;overflow:auto;
}
.pos-ticket-search-modal[hidden]{display:none!important}

.pos-ticket-search-modal-card{
  width:min(720px,100%);
  max-height:min(90vh,900px);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto auto;
  border:1px solid #dce6ee;
  border-radius:24px;
  background:#fff;
  box-shadow:0 34px 100px rgba(10,25,43,.28);
}

.pos-ticket-search-modal-card>header{
  padding:16px 19px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-bottom:1px solid #e6edf2;
  background:linear-gradient(180deg,#fff,#fbfdff);
}

.pos-ticket-search-modal-card>header>div{display:grid;gap:4px}
.pos-ticket-search-modal-card>header small{color:#f4473a;font-size:7px;font-weight:900;letter-spacing:.13em}
.pos-ticket-search-modal-card>header h2{margin:0;color:#142238;font:22px/1.05 Georgia,serif}
.pos-ticket-search-modal-card>header button{
  width:36px;height:36px;border:0;border-radius:11px;background:#f0f4f7;color:#566d80;font-size:21px;cursor:pointer;
}

.pos-ticket-search-frame-wrap{
  min-height:350px;
  overflow:auto;
  background:#edf2f5;
}
.pos-ticket-search-frame-wrap iframe{
  width:100%;
  height:min(62vh,650px);
  display:block;
  border:0;
  background:#f3f5f7;
}

.pos-ticket-search-modal-card>footer{
  padding:13px 15px;
  display:grid;
  grid-template-columns:.75fr 1.2fr 1.2fr;
  gap:8px;
  border-top:1px solid #e6edf2;
  background:#fbfcfd;
}
.pos-ticket-search-modal-card>footer button{
  min-height:46px;padding:0 12px;border-radius:12px;font-family:inherit;font-size:9px;font-weight:900;cursor:pointer;
}
.pos-ticket-search-modal-card>footer .secondary{border:1px solid #d9e3ea;background:#fff;color:#5b7082}
.pos-ticket-search-modal-card>footer .simple{border:1px solid #c8d9e8;background:#eef5fa;color:#315d7c}
.pos-ticket-search-modal-card>footer .detailed{border:0;background:linear-gradient(135deg,#087cf0,#1e91fb);color:#fff;box-shadow:0 9px 20px rgba(8,124,240,.20)}

.pos-ticket-search-meals{
  padding:14px 15px;
  display:grid;
  grid-template-columns:minmax(150px,1fr) auto;
  align-items:center;
  gap:12px;
  border-top:1px solid #e6edf2;
  background:#f7fafc;
}
.pos-ticket-search-meals[hidden]{display:none!important}
.pos-ticket-search-meals>div:first-child{display:grid;gap:3px}
.pos-ticket-search-meals small{color:#f4473a;font-size:7px;font-weight:900;letter-spacing:.12em}
.pos-ticket-search-meals b{font-size:11px}
.pos-ticket-search-meals-control{display:grid;grid-template-columns:36px 64px 36px;gap:6px}
.pos-ticket-search-meals-control button{height:36px;border:1px solid #d7e1e9;border-radius:10px;background:#fff;color:#087cf0;font-size:17px;font-weight:900;cursor:pointer}
.pos-ticket-search-meals-control input{height:36px;padding:0 7px;border:1px solid #d7e1e9;border-radius:10px;background:#fff;color:#142238;font-size:13px;font-weight:900;text-align:center}
.pos-ticket-search-meals-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.35fr;gap:8px}
.pos-ticket-search-meals-actions button{min-height:42px;border-radius:11px;font-family:inherit;font-size:9px;font-weight:900;cursor:pointer}
.pos-ticket-search-meals-actions .secondary{border:1px solid #d8e2ea;background:#fff;color:#5a7083}
.pos-ticket-search-meals-actions .primary{border:0;background:linear-gradient(135deg,#087cf0,#1e91fb);color:#fff;box-shadow:0 8px 18px rgba(8,124,240,.18)}

.pos-ticket-search-modal-card>p{
  margin:0;padding:7px 15px 10px;color:#6a7f91;background:#fbfcfd;font-size:8px;font-weight:800;text-align:center;
}
.pos-ticket-search-modal-card>p[hidden]{display:none!important}

.pos-ticket-search-print-frame{
  position:fixed!important;left:-99999px!important;top:-99999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;
}

@media(max-width:980px){
  .pos-ticket-search-head{padding:20px 22px!important}
  .pos-ticket-search-head-left{gap:16px}
  .pos-ticket-search-row{
    grid-template-columns:minmax(180px,1.55fr) minmax(95px,.8fr) 82px 20px;
  }
  .pos-ticket-search-payments{display:none}
}

@media(max-width:700px){
  .pos-ticket-search-head{
    align-items:stretch!important;
    flex-direction:column!important;
  }
  .pos-ticket-search-head-left{
    align-items:flex-start;
  }
  .pos-ticket-search-head-links a{width:100%;justify-content:center}
  .pos-ticket-search-modal{padding:10px}
  .pos-ticket-search-modal-card{max-height:94vh;border-radius:20px}
  .pos-ticket-search-frame-wrap iframe{height:58vh}
  .pos-ticket-search-modal-card>footer{grid-template-columns:1fr}
  .pos-ticket-search-meals{grid-template-columns:1fr}
}


/* ==============================================================
   V128.22 · Filtre Moyen de paiement
   ============================================================== */
.pos-history-search-card .pos-history-method-select{
  width:100%;
  min-height:56px;
  padding:0 46px 0 15px;
  border:1px solid #cfdbe5;
  border-radius:16px;
  background:
    linear-gradient(45deg,transparent 50%,#536a7d 50%) calc(100% - 20px) 50%/6px 6px no-repeat,
    linear-gradient(135deg,#536a7d 50%,transparent 50%) calc(100% - 15px) 50%/6px 6px no-repeat,
    #fff;
  color:#142238;
  font-family:inherit;
  font-size:14px;
  font-weight:700;
  line-height:1;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  outline:none;
  box-shadow:0 5px 14px rgba(20,34,56,.035);
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}

.pos-history-search-card .pos-history-method-select:hover{
  border-color:#a9c9e3;
  background-color:#fbfdff;
}

.pos-history-search-card .pos-history-method-select:focus{
  border-color:#087cf0;
  box-shadow:0 0 0 3px rgba(8,124,240,.11);
}

/* Harmonise les 3 filtres de la recherche */
.pos-history-search-card form label>input,
.pos-history-search-card form label>select{
  min-height:56px!important;
  border-radius:16px!important;
}

@media(max-width:700px){
  .pos-history-search-card .pos-history-method-select{
    min-height:52px;
    font-size:13px;
  }
}


/* ==============================================================
   V128.23 · Recherche tickets : grille + hauteurs homogènes
   ============================================================== */

/* Répartition propre des filtres : Recherche / Date / Paiement / bouton */
.pos-history-search-card form{
  display:grid!important;
  grid-template-columns:minmax(260px,1.5fr) minmax(210px,.95fr) minmax(220px,.95fr) auto!important;
  align-items:end!important;
  gap:12px!important;
}

.pos-history-search-card form>label{
  min-width:0!important;
  width:100%!important;
}

/* Tous les contrôles ont exactement la même hauteur */
.pos-history-search-card form>label>input,
.pos-history-search-card form>label>select,
.pos-history-search-card form>button[type="submit"]{
  height:56px!important;
  min-height:56px!important;
  max-height:56px!important;
  box-sizing:border-box!important;
}

/* Champs de saisie */
.pos-history-search-card form>label>input,
.pos-history-search-card form>label>select{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:56px!important;
}

/* Date : éviter le rendu Safari/iPad plus haut ou décalé */
.pos-history-search-card input[type="date"]{
  -webkit-appearance:none;
  appearance:none;
  display:block!important;
  padding-left:15px!important;
  padding-right:15px!important;
  border-radius:16px!important;
  background:#fff!important;
  font:inherit!important;
  line-height:normal!important;
}

/* Recherche */
.pos-history-search-card input[type="search"]{
  -webkit-appearance:none;
  appearance:none;
  border-radius:16px!important;
  padding-left:15px!important;
  padding-right:15px!important;
  line-height:normal!important;
}

/* Select moyen de paiement */
.pos-history-search-card .pos-history-method-select{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  border-radius:16px!important;
  line-height:normal!important;
}

/* Bouton Rechercher aligné exactement sur les champs */
.pos-history-search-card form>button[type="submit"]{
  min-width:122px!important;
  width:auto!important;
  padding:0 18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:14px!important;
  white-space:nowrap!important;
  line-height:1!important;
}

/* iPad / largeur intermédiaire */
@media(max-width:1180px){
  .pos-history-search-card form{
    grid-template-columns:minmax(230px,1.3fr) minmax(180px,.85fr) minmax(190px,.9fr) auto!important;
    gap:10px!important;
  }

  .pos-history-search-card form>button[type="submit"]{
    min-width:110px!important;
  }
}

/* Si la largeur devient insuffisante, passage propre sur deux lignes */
@media(max-width:900px){
  .pos-history-search-card form{
    grid-template-columns:1fr 1fr!important;
  }

  .pos-history-search-card form>button[type="submit"],
  .pos-history-search-card form>a{
    width:100%!important;
  }
}

/* Mobile */
@media(max-width:620px){
  .pos-history-search-card form{
    grid-template-columns:1fr!important;
  }
}


/* ==============================================================
   V128.24 · Navigation directe depuis le rail compact
   ============================================================== */

@media(min-width:961px){
  /* Le rail vide reste cliquable pour agrandir le menu */
  body.app-unified-page.app-shell-collapsed .app-shell-sidebar{
    cursor:pointer;
  }

  /* Les vraies entrées indiquent une navigation directe */
  body.app-unified-page.app-shell-collapsed .app-shell-nav a,
  body.app-unified-page.app-shell-collapsed .app-shell-logo,
  body.app-unified-page.app-shell-collapsed .app-shell-logout,
  body.app-unified-page.app-shell-collapsed [data-app-access-button]{
    cursor:pointer;
  }
}


/* ==============================================================
   V128.25 · Impression des commandes en popup
   ============================================================== */

body.order-print-preview-open{overflow:hidden}

.order-print-preview-backdrop{
  position:fixed;
  inset:0;
  z-index:3400;
  background:rgba(10,24,41,.52);
  backdrop-filter:blur(5px);
}
.order-print-preview-backdrop[hidden]{display:none!important}

.order-print-preview-modal{
  position:fixed;
  inset:0;
  z-index:3401;
  padding:18px;
  display:grid;
  place-items:center;
  overflow:auto;
}
.order-print-preview-modal[hidden]{display:none!important}

.order-print-preview-card{
  width:min(720px,100%);
  max-height:min(90vh,900px);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto;
  border:1px solid #dce6ee;
  border-radius:24px;
  background:#fff;
  box-shadow:0 34px 100px rgba(10,25,43,.28);
}

.order-print-preview-card>header{
  padding:16px 19px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-bottom:1px solid #e6edf2;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.order-print-preview-card>header>div{display:grid;gap:4px}
.order-print-preview-card>header small{color:#f4473a;font-size:7px;font-weight:900;letter-spacing:.13em}
.order-print-preview-card>header h2{margin:0;color:#142238;font:22px/1.05 Georgia,serif}
.order-print-preview-card>header button{
  width:36px;height:36px;border:0;border-radius:11px;background:#f0f4f7;color:#566d80;font-size:21px;cursor:pointer;
}

.order-print-preview-frame-wrap{
  min-height:350px;
  overflow:auto;
  background:#edf2f5;
}
.order-print-preview-frame-wrap iframe{
  width:100%;
  height:min(62vh,650px);
  display:block;
  border:0;
  background:#f3f5f7;
}

.order-print-preview-card>footer{
  padding:13px 15px;
  display:grid;
  grid-template-columns:.75fr 1.2fr 1.2fr;
  gap:8px;
  border-top:1px solid #e6edf2;
  background:#fbfcfd;
}
.order-print-preview-card>footer button{
  min-height:46px;
  padding:0 12px;
  border-radius:12px;
  font-family:inherit;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}
.order-print-preview-card>footer .secondary{
  border:1px solid #d9e3ea;
  background:#fff;
  color:#5b7082;
}
.order-print-preview-card>footer .simple{
  border:1px solid #c8d9e8;
  background:#eef5fa;
  color:#315d7c;
}
.order-print-preview-card>footer .detailed{
  border:0;
  background:linear-gradient(135deg,#087cf0,#1e91fb);
  color:#fff;
  box-shadow:0 9px 20px rgba(8,124,240,.20);
}

.order-print-preview-card>p{
  margin:0;
  padding:7px 15px 10px;
  color:#6a7f91;
  background:#fbfcfd;
  font-size:8px;
  font-weight:800;
  text-align:center;
}
.order-print-preview-card>p[hidden]{display:none!important}

.order-print-hidden-frame{
  position:fixed!important;
  left:-99999px!important;
  top:-99999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:640px){
  .order-print-preview-modal{padding:10px}
  .order-print-preview-card{max-height:94vh;border-radius:20px}
  .order-print-preview-frame-wrap iframe{height:58vh}
  .order-print-preview-card>footer{grid-template-columns:1fr}
}


/* ==============================================================
   V128.26 · Impression commande simplifiée
   ============================================================== */
.order-print-preview-card>footer{
  grid-template-columns:.8fr 1.4fr!important;
}

.order-print-preview-card>footer .detailed{
  min-width:0;
}


/* ==============================================================
   V128.27 · Commandes : repère couleur + filtres de statut
   ============================================================== */

/* Commandes ressort dans le menu avec une couleur dédiée */
.app-shell-nav-orders>span{
  background:#fff4e8!important;
  color:#e27d22!important;
}

.app-shell-nav-orders:hover>span{
  background:#ffead5!important;
  color:#cf6814!important;
}

.app-shell-nav-orders.active{
  border-color:#f1d4b6!important;
  background:linear-gradient(90deg,#fff5e9,#fffaf5)!important;
  color:#c66518!important;
  box-shadow:inset 3px 0 #e9852a,0 7px 17px rgba(233,133,42,.07)!important;
}

.app-shell-nav-orders.active>span{
  background:linear-gradient(135deg,#e9852a,#f5a24f)!important;
  color:#fff!important;
  box-shadow:0 7px 16px rgba(233,133,42,.20)!important;
}

/* Filtres Toutes / Nouvelles / En cours */
.orders-status-filter{
  margin:0 0 16px;
  padding:5px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid #dce5ed;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(20,34,56,.04);
}

.orders-status-filter button{
  min-height:39px;
  padding:0 15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#64798b;
  font-family:inherit;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
  transition:background .15s ease,color .15s ease,box-shadow .15s ease;
}

.orders-status-filter button:hover{
  background:#f2f7fb;
  color:#23435e;
}

.orders-status-filter button.active{
  background:#142238;
  color:#fff;
  box-shadow:0 7px 16px rgba(20,34,56,.14);
}

.orders-status-filter .dot{
  width:7px;
  height:7px;
  display:inline-block;
  border-radius:50%;
}

.orders-status-filter .dot.new{
  background:#f4473a;
}

.orders-status-filter .dot.partial{
  background:#7c5ce6;
}

.orders-status-filter .dot.ready{
  background:#1f7a42;
}

.orders-status-filter .dot.progress{
  background:#e9852a;
}

.orders-status-filter button.active .dot{
  box-shadow:0 0 0 3px rgba(255,255,255,.15);
}

/* hidden natif reste prioritaire sur les cartes filtrées */

@media(max-width:640px){
  .orders-status-filter{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }

  .orders-status-filter button{
    padding:0 7px;
  }
}


/* iPad paysage / petits laptops :
   annule l'ancien comportement V128.4 qui mettait la Caisse sous la liste. */


/* Évite que les panneaux complexes de paiement débordent dans la colonne droite. */
@media(min-width:768px) and (max-width:1240px){

  body.app-unified-page.pos-page .pos-order-details{
    margin-left:12px!important;
    margin-right:12px!important;
  }
}


/* ==============================================================
   V129.3 · Caisse : détails compacts + actions produits
   ============================================================== */


/* Retrait quantité / suppression ligne */
.pos-item-remove-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
}

.pos-item-remove-actions .pos-remove-form{
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
}

.pos-item-remove-actions .pos-remove-label{
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
}

.pos-item-remove-actions .pos-remove-label>span{
  display:none!important;
}

.pos-item-remove-actions .pos-remove-label select{
  width:48px!important;
  height:30px!important;
  min-height:30px!important;
  padding:0 19px 0 7px!important;
  border-radius:8px!important;
  font-size:8px!important;
}

.pos-item-remove-actions .pos-remove-button,
.pos-delete-line-button{
  min-height:30px!important;
  height:30px!important;
  padding:0 8px!important;
  border-radius:8px!important;
  font-family:inherit!important;
  font-size:7px!important;
  font-weight:900!important;
  white-space:nowrap!important;
  cursor:pointer!important;
}

.pos-item-remove-actions .pos-remove-button{
  border:1px solid #c8dce9!important;
  background:#eef6fb!important;
  color:#315d7c!important;
}

.pos-delete-line-form{
  margin:0!important;
  padding:0!important;
}

.pos-delete-line-button{
  border:1px solid #f0c9c5!important;
  background:#fff0ee!important;
  color:#c8473d!important;
}

.pos-delete-line-button:hover{
  border-color:#e8aaa3!important;
  background:#ffe6e2!important;
}

@media(max-width:1100px){

  .pos-item-remove-actions{
    grid-column:1/-1;
    justify-content:flex-end;
    padding-top:2px;
  }
}

@media(max-width:820px){

  .pos-item-remove-actions{
    justify-content:flex-start;
  }
}


/* ==============================================================
   V129.4 · Actions produit toujours interactives
   ============================================================== */
.pos-item-remove-actions,
.pos-item-remove-actions form,
.pos-item-remove-actions select,
.pos-item-remove-actions button{
  pointer-events:auto!important;
  touch-action:manipulation;
  position:relative;
  z-index:3;
}

.pos-item-remove-actions{
  isolation:isolate;
}

.pos-item-remove-actions select{
  cursor:pointer;
  -webkit-user-select:auto;
  user-select:auto;
}

.pos-item-remove-actions button{
  cursor:pointer;
}

/* Sur iPad on donne un peu plus de surface tactile */
@media(pointer:coarse){
  .pos-item-remove-actions .pos-remove-button,
  .pos-delete-line-button{
    min-height:36px!important;
    height:36px!important;
    padding:0 10px!important;
  }

  .pos-item-remove-actions .pos-remove-label select{
    min-height:36px!important;
    height:36px!important;
    width:54px!important;
  }
}


/* ==============================================================
   V129.5 · Actions produit accessibles en Accès simple
   ============================================================== */
.pos-item-remove-actions{
  opacity:1!important;
}

.pos-item-remove-actions button,
.pos-item-remove-actions select{
  pointer-events:auto!important;
}


/* ==============================================================
   V129.6 · Droits de retrait produit
   ============================================================== */
.pos-remove-placeholder{
  color:#9aa9b5!important;
}


/* ==============================================================
   V129.7 · Nouvelle commande : Table + prénom avant la carte
   ============================================================== */
.pos-add-step-one{
  padding:20px!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:13px!important;
  background:#fbfdff!important;
  border-bottom:0!important;
}

.pos-add-step-one[hidden]{
  display:none!important;
}

.pos-add-step-title{
  grid-column:1/-1;
  padding-bottom:3px;
  display:grid;
  gap:4px;
}

.pos-add-step-title small{
  color:#f4473a!important;
  font-size:7px!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
}

.pos-add-step-title h3{
  margin:0;
  color:#142238;
  font:25px/1.05 Georgia,serif;
}

.pos-add-step-title p{
  margin:0;
  color:#758696;
  font-size:9px;
}

.pos-add-step-one>label{
  min-width:0;
}

.pos-add-step-one>label select,
.pos-add-step-one>label input{
  min-height:52px!important;
  border-radius:14px!important;
}

.pos-add-step-one>[data-pos-add-person-help]{
  grid-column:1/-1;
  margin:0!important;
  padding:9px 11px;
  border-radius:10px;
  background:#f1f6fa;
  color:#6c8091!important;
  font-size:8px!important;
}

.pos-add-continue{
  grid-column:1/-1;
  min-height:50px;
  margin-top:3px;
  padding:0 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border:0;
  border-radius:13px;
  background:linear-gradient(135deg,#087cf0,#1e91fb);
  color:#fff;
  font-family:inherit;
  font-size:10px;
  font-weight:900;
  box-shadow:0 10px 24px rgba(8,124,240,.20);
  cursor:pointer;
}

.pos-add-continue:disabled{
  opacity:.42;
  box-shadow:none;
  cursor:not-allowed;
}

.pos-add-continue b{
  font-size:18px;
}

[data-pos-add-list][hidden]{
  display:none!important;
}

@media(max-width:640px){
  .pos-add-step-one{
    grid-template-columns:1fr!important;
    padding:16px!important;
  }
  .pos-add-step-title,
  .pos-add-step-one>[data-pos-add-person-help],
  .pos-add-continue{
    grid-column:auto;
  }
}


/* ==============================================================
   V129.8 · Retour rapide à l'accès simple
   ============================================================== */
.app-access-choice.simple-return{
  margin-top:4px;
  border-color:#d9e4ec;
  background:#f8fafc;
}

.app-access-choice.simple-return .app-access-choice-icon{
  background:#edf3f7;
  color:#536b7d;
}

.app-access-choice.simple-return:hover{
  border-color:#b8cfdf;
  background:#eef5fa;
}

.app-access-choice.simple-return:hover .app-access-choice-icon{
  background:#dfeaf1;
  color:#315d7c;
}

.app-access-choice.simple-return:disabled{
  opacity:.55;
  cursor:wait;
}


/* ==============================================================
   V129.9 · Paramètres / droits Accès simple
   ============================================================== */
.restaurant-simple-rights{
  margin:4px 0 14px;
  padding:16px;
  border:1px solid #dce5ed;
  border-radius:16px;
  background:#f9fbfc;
}

.restaurant-simple-rights>legend{
  padding:0 6px;
  color:#142238;
  font-size:11px;
  font-weight:900;
}

.restaurant-simple-rights>p{
  margin:0 0 12px;
  color:#718394;
  font-size:8px;
}

.restaurant-setting-toggle{
  position:relative;
  padding:13px 14px;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:12px;
  border:1px solid #dce5ed;
  border-radius:13px;
  background:#fff;
  cursor:pointer;
}

.restaurant-setting-toggle>input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.restaurant-setting-toggle-ui{
  position:relative;
  width:44px;
  height:25px;
  border-radius:999px;
  background:#cfd9e1;
  transition:.16s ease;
}

.restaurant-setting-toggle-ui::after{
  content:'';
  position:absolute;
  top:3px;
  left:3px;
  width:19px;
  height:19px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 7px rgba(20,34,56,.18);
  transition:.16s ease;
}

.restaurant-setting-toggle>input:checked + .restaurant-setting-toggle-ui{
  background:#087cf0;
}

.restaurant-setting-toggle>input:checked + .restaurant-setting-toggle-ui::after{
  transform:translateX(19px);
}

.restaurant-setting-toggle-copy{
  min-width:0;
  display:grid;
  gap:4px;
}

.restaurant-setting-toggle-copy b{
  color:#142238;
  font-size:10px;
}

.restaurant-setting-toggle-copy small{
  color:#718394;
  font-size:8px;
  line-height:1.4;
}


/* ==============================================================
   V129.10 · Caisse : encaissement plus compact
   ============================================================== */


/* IMPORTANT : les anciennes règles display:grid!important ne peuvent
   plus rendre un panneau hidden visible. */
body.app-unified-page.pos-page [data-pos-payment-panel][hidden]{
  display:none!important;
}


/* Mobile réel */


.pv2-form{
  --pv2-line:#e6ecf2;
  --pv2-soft:#f7fafc;
  --pv2-ink:#142238;
  --pv2-mut:#69798a;
  --pv2-blue:#087cf0;
  box-sizing:border-box;
  color:var(--pv2-ink);
}
.pv2-form *{box-sizing:border-box}

/* ---------- Carte de choix du mode ---------- */

.pv2-modes{
  margin-top:16px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.pv2-modes button{
  min-height:74px;
  padding:13px 15px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:13px;
  row-gap:3px;
  border:1px solid #dde5ec;
  border-radius:15px;
  background:#fff;
  color:var(--pv2-ink);
  text-align:left;
  cursor:pointer;
  transition:border-color .15s,background .15s,box-shadow .15s;
}
.pv2-modes button:hover{border-color:#9ac7ee;background:#f7fbff}
.pv2-modes button b{grid-column:2;grid-row:1;font-size:15px;line-height:1.2}
.pv2-modes button small{grid-column:2;grid-row:2;color:var(--pv2-mut);font-size:11px;line-height:1.35}
.pv2-modes button i{
  grid-column:3;
  grid-row:1/3;
  padding:6px 10px;
  border-radius:999px;
  background:#f1f4f7;
  color:#71818f;
  font-size:10px;
  font-style:normal;
  font-weight:900;
  white-space:nowrap;
}
.pv2-modes button.active{
  border-color:var(--pv2-blue);
  background:#f2f9ff;
  box-shadow:inset 0 0 0 1px var(--pv2-blue),0 8px 20px rgba(8,124,240,.12);
}
.pv2-modes button.active i{background:var(--pv2-blue);color:#fff}

/* ---------- Carte du paiement simple ---------- */
.pv2-form{
  margin:16px 20px 20px;
  padding:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:0;
  border:1px solid #dfe6ec;
  border-radius:20px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 14px 38px rgba(20,34,56,.06);
}
.pv2-form[hidden]{display:none!important}

.pv2-body{padding:22px}
.pv2-body>*+*{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid #eef2f6;
}

/* ---------- En-tête d'étape ---------- */
.pv2-step-head{
  margin-bottom:13px;
  display:flex;
  align-items:center;
  gap:11px;
}
.pv2-step-head>div{display:grid;gap:2px;min-width:0}
.pv2-step-head b{font-size:14px;line-height:1.2}
.pv2-step-head small{color:var(--pv2-mut);font-size:11px;line-height:1.35}
.pv2-num{
  flex:0 0 auto;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:var(--pv2-ink);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.pv2-badge{
  margin-left:auto;
  padding:5px 9px;
  border-radius:999px;
  background:#f1f4f7;
  color:#76889a;
  font-size:9px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.06em;
  white-space:nowrap;
}

/* ---------- Options (qui règle / moyen de paiement) ---------- */
.pv2-opts{display:grid;gap:10px}
.pv2-opts-target{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.pv2-opts-method{grid-template-columns:repeat(3,minmax(0,1fr))}

.pv2-opt{
  display:block;
  margin:0;
  padding:0;
  font-size:inherit;
  font-weight:inherit;
  cursor:pointer;
}
.pv2-opt>input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.pv2-opt>span{
  min-height:62px;
  height:100%;
  padding:11px 14px;
  display:grid;
  align-content:center;
  gap:3px;
  border:1px solid #dde5ec;
  border-radius:14px;
  background:#fff;
  transition:border-color .15s,background .15s,box-shadow .15s;
}
.pv2-opt>span b{font-size:14px;line-height:1.2}
.pv2-opt>span small{color:var(--pv2-mut);font-size:11px;line-height:1.35}
.pv2-opt>input:checked+span{
  border-color:var(--pv2-blue);
  background:#f2f9ff;
  box-shadow:inset 0 0 0 1px var(--pv2-blue);
}
.pv2-opt>input:focus-visible+span{outline:2px solid var(--pv2-blue);outline-offset:2px}
.pv2-opt:hover>span{border-color:#9ac7ee}

/* moyen de paiement : icône + libellé, trois blocs identiques */
.pv2-opts-method .pv2-opt>span{
  grid-template-columns:38px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-content:center;
  align-items:center;
  column-gap:11px;
  row-gap:2px;
}
.pv2-opts-method .pv2-opt>span i{
  grid-row:1/3;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#eef3f8;
  color:#5d7285;
  font-size:15px;
  font-style:normal;
  font-weight:900;
}
.pv2-opts-method .pv2-opt>span b{grid-column:2;grid-row:1}
.pv2-opts-method .pv2-opt>span small{grid-column:2;grid-row:2}
.pv2-opts-method .pv2-opt>input:checked+span i{background:var(--pv2-blue);color:#fff}


/* champ monétaire : le € occupe sa propre colonne */
.pv2-money{
  display:grid;
  grid-template-columns:minmax(0,1fr) 50px;
  align-items:stretch;
  height:70px;
  margin:0;
  padding:0;
  gap:0;
  border:1px solid #d5dfe8;
  border-radius:15px;
  background:#f9fbfd;
  overflow:hidden;
  font-size:inherit;
  font-weight:inherit;
}
.pv2-money input{
  grid-column:1;
  width:100%;
  height:100%;
  min-width:0;
  padding:0 12px 0 16px;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--pv2-ink);
  font:inherit;
  font-size:34px;
  font-weight:900;
  letter-spacing:-.02em;
  outline:0;
}
.pv2-money input:focus{border:0;box-shadow:none}
.pv2-money>span{
  grid-column:2;
  display:grid;
  place-items:center;
  border-left:1px solid #e3eaf1;
  background:#f1f5f9;
  color:#6f8195;
  font-size:19px;
  font-weight:900;
  line-height:1;
}
.pv2-money:focus-within{border-color:var(--pv2-blue);box-shadow:0 0 0 3px rgba(8,124,240,.12)}
.pv2-money-small{height:52px;grid-template-columns:minmax(0,1fr) 44px}
.pv2-money-small input{font-size:20px;padding:0 10px 0 14px}
.pv2-money-small>span{font-size:16px}

.pv2-quick{
  margin-top:10px;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:9px;
}
.pv2-quick button{
  min-height:44px;
  padding:0 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #cfe1f2;
  border-radius:12px;
  background:#eef7ff;
  color:var(--pv2-blue);
  font-size:12px;
  font-weight:900;
  line-height:1.2;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
}
.pv2-quick button:hover{background:#e2f0ff}

/* ---------- Pourboire ---------- */
.pv2-tips{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.pv2-tips button{
  min-height:46px;
  padding:0 6px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #d8e1e9;
  border-radius:12px;
  background:#fff;
  color:var(--pv2-ink);
  font-size:15px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
}
.pv2-tips button:hover{border-color:#9ac7ee;background:#f7fbff}
.pv2-tip-mode{
  margin:14px 0 8px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px;
  padding:4px;
  border-radius:12px;
  background:#eef2f6;
}
.pv2-tip-mode button{
  min-height:36px;
  padding:0 10px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#5d6f80;
  font-size:12px;
  font-weight:900;
  line-height:1.2;
  cursor:pointer;
}
.pv2-tip-mode button.is-active{background:#fff;color:var(--pv2-ink);box-shadow:0 2px 8px rgba(20,34,56,.1)}
.pv2-tip-hint{display:block;margin-top:6px;color:#7b8b9a;font-size:10px;line-height:1.4}
.pv2-tip-hint[hidden],.pv2-money[hidden]{display:none!important}
.pv2-tip-summary{
  margin:10px 0 0;
  padding:9px 12px;
  border-radius:11px;
  background:#f6f9fb;
  color:#66798b;
  font-size:11px;
  line-height:1.4;
}

/* ---------- Référence ---------- */
.pv2-reference{display:grid;gap:10px;justify-items:start}
.pv2-reference-toggle{
  min-height:40px;
  padding:0 14px;
  border:1px dashed #c9d6e2;
  border-radius:11px;
  background:#fff;
  color:#5b7288;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.pv2-reference-toggle:hover{border-color:var(--pv2-blue);color:var(--pv2-blue)}
.pv2-reference-field{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,200px) minmax(0,1fr);
  align-items:center;
  gap:14px;
  margin:0;
  font-size:inherit;
  font-weight:inherit;
}
.pv2-reference-field[hidden]{display:none!important}
.pv2-reference-field>span{font-size:12px;font-weight:900}
.pv2-reference-field>span small{display:block;color:#8695a2;font-size:10px;font-weight:600}
.pv2-reference-field input{
  width:100%;
  height:46px;
  padding:0 13px;
  border:1px solid #d9e2e8;
  border-radius:12px;
  background:#fafcfd;
  font-size:13px;
  outline:0;
}
.pv2-reference-field input:focus{border-color:var(--pv2-blue)}

/* ---------- Bandeau de validation ---------- */
.pv2-submit{
  padding:16px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  background:var(--pv2-ink);
}
.pv2-submit>span{display:grid;gap:4px;min-width:0;color:#fff}
.pv2-submit>span small{font-size:9px;font-weight:900;letter-spacing:.13em;opacity:.6}
.pv2-submit>span b{font-size:26px;line-height:1;letter-spacing:-.02em;white-space:nowrap}
.pv2-submit .pv2-pay{
  width:auto;
  min-width:240px;
  min-height:54px;
  margin:0;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:0;
  border-radius:14px;
  background:var(--pv2-blue);
  color:#fff;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(8,124,240,.28);
}
.pv2-submit .pv2-pay:hover{background:#0a6cd0}
.pv2-submit .pv2-pay strong{font-size:20px;line-height:1}

/* ---------- iPad portrait / petites largeurs ---------- */
@media(max-width:760px){
  .pv2-form{margin:12px}
  .pv2-body{padding:16px}
  .pv2-modes{grid-template-columns:minmax(0,1fr)}
  .pv2-opts-method{grid-template-columns:minmax(0,1fr)}
  .pv2-money{height:62px}
  .pv2-money input{font-size:28px}
  .pv2-reference-field{grid-template-columns:minmax(0,1fr);gap:7px}
  .pv2-submit{padding:14px 16px;align-items:stretch;flex-direction:column}
  .pv2-submit .pv2-pay{width:100%;min-width:0}
}
@media(max-width:420px){
  .pv2-tips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv2-tips-mini{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pv2-quick{grid-template-columns:minmax(0,1fr)}
}

/* iOS : éviter le zoom automatique à la saisie (police >= 16px) */
@media(max-width:900px){
  .pv2-reference-field input{font-size:16px}
}

/* ---------- Partager l'addition (V129.21) ---------- */
.pv2-split [hidden]{display:none!important}
.pv2-body-follow{border-top:1px solid #eef2f6}
.pv2-split-form{margin:0;display:block;grid-template-columns:none;gap:0}

.pv2-split-count{
  display:flex;
  align-items:flex-end;
  gap:18px;
  flex-wrap:wrap;
}
.pv2-split-presets{
  display:grid;
  grid-template-columns:repeat(5,56px);
  gap:8px;
}
.pv2-split-presets button{
  height:52px;
  border:1px solid #d8e1e9;
  border-radius:13px;
  background:#fff;
  color:var(--pv2-ink);
  font-size:18px;
  font-weight:900;
  cursor:pointer;
}
.pv2-split-presets button:hover{border-color:#9ac7ee;background:#f7fbff}
.pv2-split-presets button.active{
  border-color:var(--pv2-blue);
  background:var(--pv2-blue);
  color:#fff;
  box-shadow:0 8px 20px rgba(8,124,240,.22);
}
.pv2-select-wrap{
  display:grid;
  gap:5px;
  margin:0;
  min-width:150px;
  font-size:inherit;
  font-weight:inherit;
}
.pv2-select-wrap>span{color:#5d6f80;font-size:11px;font-weight:900}
.pv2-select{
  width:100%;
  height:52px;
  padding:0 38px 0 14px;
  border:1px solid #d5dfe8;
  border-radius:13px;
  background:#f9fbfd url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' fill='none' stroke='%236f8195' stroke-width='2' stroke-linecap='round'/></svg>") no-repeat right 14px center;
  color:var(--pv2-ink);
  font:inherit;
  font-size:14px;
  font-weight:900;
  -webkit-appearance:none;
  appearance:none;
  outline:0;
  cursor:pointer;
}
.pv2-select:focus{border-color:var(--pv2-blue);box-shadow:0 0 0 3px rgba(8,124,240,.12)}

/* indicateur de répartition, dans l'en-tête de l'étape 2 */
.pv2-split-status{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:7px 12px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.pv2-split-status strong{font-size:13px}
.pv2-split-status.exact{background:#e6f7ec;color:#1f7a42}
.pv2-split-status.remaining{background:#fff4d6;color:#8a5b00}
.pv2-split-status.over{background:#ffe9e6;color:#b3362b}

/* tableau des parts */
.pv2-split-table{display:grid;gap:8px;min-width:0;overflow-x:auto}
.pv2-split-labels,
.pv2-split-row{
  display:grid;
  grid-template-columns:52px minmax(96px,1fr) minmax(104px,1fr) minmax(230px,1.7fr) 80px;
  gap:10px;
  align-items:center;
}
.pv2-split-labels{padding:0 12px}
.pv2-split-labels span{
  color:#7b8b9a;
  font-size:9px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.pv2-split-labels span:last-child{text-align:right}
.pv2-split-rows{display:grid;gap:8px}
.pv2-split-row{
  min-width:0;
  padding:10px 12px;
  border:1px solid #e3e9ef;
  border-radius:15px;
  background:#fafcfd;
}
.pv2-split-part{font-size:14px;white-space:nowrap}
.pv2-split-row .pv2-money-small{height:48px;grid-template-columns:minmax(0,1fr) 34px;background:#fff}
.pv2-split-row .pv2-money-small input{padding:0 8px 0 12px;font-size:17px}
.pv2-split-row .pv2-select{height:48px;min-width:0;background-color:#fff;font-size:13px}
.pv2-split-tip{
  display:grid;
  grid-template-columns:minmax(0,1fr) 96px;
  min-width:0;
  gap:6px 8px;
  align-items:center;
}
.pv2-split-tip>.pv2-tips{grid-column:1/-1}
.pv2-split-tipmode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:3px;border-radius:10px;background:#eef2f6}
.pv2-split-tipmode button{min-width:0;min-height:30px;padding:2px 4px;border:0;border-radius:8px;background:transparent;color:#5d6f80;font-size:10px;font-weight:900;line-height:1.1;white-space:normal;cursor:pointer}
.pv2-split-tipmode button.is-active{background:#fff;color:var(--pv2-ink);box-shadow:0 2px 6px rgba(20,34,56,.1)}
.pv2-split-row>.pos-amount-keypad{grid-column:1/-1}
.pv2-tips-mini{gap:5px;grid-template-columns:repeat(3,minmax(0,1fr))}
.pv2-tips-mini button{min-width:0;min-height:36px;padding:0 3px;border-radius:10px;font-size:11px}
.pv2-split-total{
  font-size:16px;
  letter-spacing:-.02em;
  text-align:right;
  white-space:nowrap;
}
.pv2-split-summary{font-size:13px!important;line-height:1.35!important;letter-spacing:0!important;white-space:normal!important}
.pv2-submit .pv2-pay:disabled{background:#33465e;color:#9fb0c4;box-shadow:none;cursor:not-allowed}

@media(max-width:1000px){
  .pv2-split-labels{display:none}
  .pv2-split-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
    grid-template-areas:"part part total" "amount method method" "tip tip tip";
    row-gap:10px;
  }
  .pv2-split-part{grid-area:part}
  .pv2-split-amount{grid-area:amount}
  .pv2-split-method{grid-area:method}
  .pv2-split-tip{grid-area:tip}
  .pv2-split-total{grid-area:total}
}
@media(max-width:760px){
  .pv2-split-presets{grid-template-columns:repeat(5,minmax(0,1fr));width:100%}
  .pv2-select-wrap{width:100%}
  .pv2-step-head{flex-wrap:wrap}
  .pv2-split-status{margin-left:0;width:100%;justify-content:space-between}
  .pv2-split-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"part total" "amount amount" "method method" "tip tip"}
  .pv2-split-tip{grid-template-columns:minmax(0,1fr)}
}

/* ---------- Paiement simple V129.99 : espèces, pourboire %, ticket ---------- */
.pv2-step-tip .pv2-tips{grid-template-columns:repeat(6,minmax(0,1fr))}

.pv2-step-cash[hidden]{display:none!important}
.pv2-num-cash{background:#1f7a42}
.pv2-step-cash .pv2-step-head small strong{color:var(--pv2-ink);font-size:12px}
.pv2-cash-presets{
  margin:0 0 10px;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:6px;
}
.pv2-cash-presets button{
  min-height:40px;
  padding:0 4px;
  border:1px solid #cfe1f2;
  border-radius:11px;
  background:#fff;
  color:var(--pv2-ink);
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
}
.pv2-cash-presets button:first-child{background:var(--pv2-blue);border-color:var(--pv2-blue);color:#fff}
.pv2-cash-row{max-width:620px}
.pv2-cash-presets button:hover{border-color:#9ac7ee}
.pv2-cash-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,auto);gap:10px;align-items:stretch}
.pv2-cash-row .pv2-money-small{background:#fff}
.pv2-cash-change{
  display:grid;
  align-content:center;
  gap:3px;
  padding:6px 16px;
  border-radius:13px;
  background:var(--pv2-ink);
  color:#fff;
  text-align:right;
}
.pv2-cash-change small{font-size:9px;font-weight:900;letter-spacing:.12em;opacity:.65;white-space:nowrap}
.pv2-cash-change strong{font-size:22px;line-height:1;letter-spacing:-.02em;white-space:nowrap}
.pv2-cash-change.is-short{background:#b3362b}

.pv2-opts-receipt{grid-template-columns:repeat(3,minmax(0,1fr))}
.pv2-meals{
  margin-top:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 14px;
  border:1px solid #e3e9ef;
  border-radius:14px;
  background:#fafcfd;
}
.pv2-meals[hidden]{display:none!important}
.pv2-meals>span{display:grid;gap:2px}
.pv2-meals b{font-size:13px}
.pv2-meals small{color:var(--pv2-mut);font-size:11px}
.pv2-stepper{display:flex;align-items:center;gap:6px}
.pv2-stepper button{
  width:44px;
  height:44px;
  border:1px solid #d5dfe8;
  border-radius:12px;
  background:#fff;
  color:var(--pv2-ink);
  font-size:20px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.pv2-stepper input{
  width:64px;
  height:44px;
  margin:0;
  padding:0;
  border:1px solid #d5dfe8;
  border-radius:12px;
  background:#fff;
  color:var(--pv2-ink);
  font:inherit;
  font-size:18px;
  font-weight:900;
  text-align:center;
  -moz-appearance:textfield;
  appearance:textfield;
  outline:0;
}
.pv2-stepper input::-webkit-inner-spin-button,.pv2-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.pv2-stepper input:focus{border-color:var(--pv2-blue)}
.pv2-submit .pv2-pay:disabled{background:#33465e;color:#9fb0c4;box-shadow:none;cursor:not-allowed}

@media(max-width:760px){
  .pv2-cash-presets{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pv2-cash-row{grid-template-columns:minmax(0,1fr)}
  .pv2-opts-receipt{grid-template-columns:minmax(0,1fr)}
  .pv2-meals{align-items:stretch;flex-direction:column}
  .pv2-stepper{justify-content:stretch}
  .pv2-stepper input{flex:1}
}
@media(max-width:420px){
  .pv2-step-tip .pv2-tips{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* confirmation légère : second appui sur le bouton */
.pv2-submit .pv2-pay.is-armed{background:#1f7a42;box-shadow:0 10px 24px rgba(31,122,66,.32)}
.pv2-cancel{
  min-height:54px;
  padding:0 16px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:14px;
  background:transparent;
  color:#fff;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}
.pv2-cancel[hidden]{display:none!important}
.pv2-cancel:hover{background:rgba(255,255,255,.08)}
@media(max-width:760px){.pv2-cancel{width:100%}}

/* =================================================================
   V129.20 · PAGE CAISSE PREMIUM — statistiques, tables, note, historique
   Même bloc de design que l'encaissement (pv2-*).
   ================================================================= */
.pv2-stats,.pv2-layout,.pv2-empty,.pv2-quickadd{
  --pv2-line:#e6ecf2;--pv2-ink:#142238;--pv2-mut:#69798a;--pv2-blue:#087cf0;
  box-sizing:border-box;color:var(--pv2-ink);
}
.pv2-stats *,.pv2-layout *,.pv2-empty *,.pv2-quickadd *{box-sizing:border-box}

/* ---------- Statistiques de la période ---------- */
.pv2-stats{
  margin:18px 20px 0;
  display:grid;
  grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));
  gap:12px;
}
.pv2-stat{
  padding:16px 18px;
  display:grid;
  gap:4px;
  border:1px solid #dfe6ec;
  border-radius:18px;
  background:#fff;
}
.pv2-stat small{color:var(--pv2-mut);font-size:9px;font-weight:900;letter-spacing:.14em}
.pv2-stat strong{font-size:24px;line-height:1.05;letter-spacing:-.02em;white-space:nowrap}
.pv2-stat span{color:var(--pv2-mut);font-size:11px}
.pv2-stat.is-main{
  border-color:transparent;
  background:linear-gradient(135deg,#142238 0%,#1d3a5e 100%);
  color:#fff;
  box-shadow:0 14px 34px rgba(20,34,56,.22);
}
.pv2-stat.is-main small{color:#9fc2ea}
.pv2-stat.is-main span{color:#c7d6e6}
.pv2-stat.is-main strong{font-size:30px}

/* ---------- Disposition : liste des tables | note ---------- */
.pv2-layout{
  margin:18px 20px 20px;
  display:grid;
  grid-template-columns:minmax(280px,340px) minmax(0,1fr);
  gap:20px;
  align-items:start;
}
.pv2-tables{
  position:sticky;
  top:16px;
  display:grid;
  gap:12px;
  padding:18px;
  border:1px solid #dfe6ec;
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 34px rgba(20,34,56,.055);
}
.pv2-tables-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pv2-tables-head small{display:block;color:var(--red);font-size:9px;font-weight:900;letter-spacing:.14em}
.pv2-tables-head h2{margin:4px 0 0;font-size:18px;line-height:1.2}
.pv2-count{
  min-width:36px;height:36px;padding:0 10px;
  display:grid;place-items:center;
  border-radius:12px;background:var(--pv2-ink);color:#fff;
  font-size:15px;font-weight:900;
}
.pv2-new-order{
  min-height:46px;padding:0 14px;
  border:1px dashed #b9d5f0;border-radius:13px;
  background:#f4f9ff;color:var(--pv2-blue);
  font-size:13px;font-weight:900;cursor:pointer;
}
.pv2-new-order:hover{background:#e6f2ff}
.pv2-table-list{display:grid;gap:8px;max-height:calc(100dvh - 260px);overflow:auto;padding:2px;margin:-2px}
.pv2-table{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"main due" "bar bar" "age age";
  gap:6px 12px;
  padding:13px 14px 12px;
  border:1px solid #dde5ec;
  border-radius:16px;
  background:#fff;
  color:inherit;
  text-decoration:none;
  transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;
}
.pv2-table:hover{border-color:#9ac7ee;background:#f7fbff}
.pv2-table.is-active{
  border-color:var(--pv2-blue);
  background:#f2f9ff;
  box-shadow:inset 0 0 0 1px var(--pv2-blue),0 10px 24px rgba(8,124,240,.14);
}
.pv2-table.is-active::before{
  content:"";position:absolute;left:-1px;top:14px;bottom:14px;width:4px;
  border-radius:0 4px 4px 0;background:var(--pv2-blue);
}
.pv2-table-main{grid-area:main;display:grid;gap:3px;min-width:0}
.pv2-table-main b{font-size:17px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv2-table-main small{color:var(--pv2-mut);font-size:11px}
.pv2-table-due{grid-area:due;display:grid;gap:2px;justify-items:end;text-align:right}
.pv2-table-due small{color:var(--pv2-mut);font-size:9px;font-weight:900;letter-spacing:.12em}
.pv2-table-due strong{font-size:19px;line-height:1;letter-spacing:-.02em;white-space:nowrap}
.pv2-table.is-active .pv2-table-due strong{color:var(--pv2-blue)}
.pv2-table.is-active .pv2-table-age::after{content:" · toucher pour fermer";font-weight:700;color:var(--pv2-blue)}
.pv2-table-bar{grid-area:bar;height:5px;border-radius:999px;background:#e8eef4;overflow:hidden}
.pv2-table-bar i{display:block;height:100%;width:var(--p,0%);border-radius:999px;background:linear-gradient(90deg,#3aa0ff,var(--pv2-blue))}
.pv2-table:not(.is-partial) .pv2-table-bar{display:none}
.pv2-table-age{
  grid-area:age;justify-self:start;
  padding:4px 9px;border-radius:999px;
  background:#f1f4f7;color:#66798b;
  font-size:10px;font-style:normal;font-weight:900;letter-spacing:.02em;
}
.pv2-table-age.warm{background:#fff4d6;color:#8a5b00}
.pv2-table-age.hot{background:#ffe9e6;color:#b3362b}
.pv2-table.is-partial .pv2-table-main small::after{content:" · réglée en partie";color:#1f7a42;font-weight:900}

/* ---------- Colonne de droite : note en cours ---------- */
.pv2-checkout{display:grid;gap:16px;min-width:0}
.pv2-checkout>*{margin-left:0!important;margin-right:0!important}
.pv2-checkout>.pv2-form{margin-top:0;margin-bottom:0}

.pv2-ticket-head{
  padding:20px 22px;
  border:1px solid #dfe6ec;
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 34px rgba(20,34,56,.055);
}
.pv2-ticket-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pv2-ticket-id small{display:block;color:var(--red);font-size:9px;font-weight:900;letter-spacing:.14em}
.pv2-ticket-id h2{margin:5px 0 0;font:32px Georgia,serif;line-height:1.05;color:var(--pv2-ink)}
.pv2-ticket-id span{display:block;margin-top:6px;color:var(--pv2-mut);font-size:12px}
.pv2-ticket-metrics{display:flex;gap:10px;flex-wrap:wrap}
.pv2-ticket-metrics span{
  min-width:118px;padding:10px 14px;
  display:grid;gap:3px;justify-items:end;text-align:right;
  border:1px solid var(--pv2-line);border-radius:14px;background:#f8fafc;
}
.pv2-ticket-metrics small{color:var(--pv2-mut);font-size:9px;font-weight:900;letter-spacing:.12em;white-space:nowrap}
.pv2-ticket-metrics b{font-size:19px;line-height:1;letter-spacing:-.02em;white-space:nowrap}
.pv2-ticket-metrics span.is-due{border-color:#cfe3f8;background:#f2f8ff}
.pv2-ticket-metrics span.is-due b{color:var(--pv2-blue);font-size:24px}
.pv2-progress{margin-top:16px;height:7px;border-radius:999px;background:#e8eef4;overflow:hidden}
.pv2-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3aa0ff,var(--pv2-blue));transition:width .3s}

/* ---------- Commandes de la table ---------- */
.pv2-order{border-bottom:1px solid #eef2f6}
.pv2-order:last-of-type{border-bottom:0}
.pv2-order>summary{
  list-style:none;
  padding:14px 22px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:16px;
  cursor:pointer;
}
.pv2-order>summary::-webkit-details-marker{display:none}
.pv2-order>summary:hover{background:#f8fbfe}

/* ---------- Ajout serveur ---------- */
.pv2-quickadd{
  padding:14px 18px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  border:1px dashed #b9d5f0;border-radius:16px;background:#f4f9ff;
}
.pv2-quickadd>div{display:grid;gap:2px;min-width:0}
.pv2-quickadd small{color:var(--pv2-blue);font-size:9px;font-weight:900;letter-spacing:.14em}
.pv2-quickadd b{font-size:13px}
.pv2-quickadd span{color:var(--pv2-mut);font-size:11px}
.pv2-quickadd button{
  min-height:44px;padding:0 16px;
  border:0;border-radius:12px;background:var(--pv2-blue);color:#fff;
  font-size:13px;font-weight:900;white-space:nowrap;cursor:pointer;
  box-shadow:0 8px 20px rgba(8,124,240,.22);
}
.pv2-quickadd-locked{
  margin:0;padding:11px 14px;border-radius:12px;
  background:#f2f5f7;color:#71808d;font-size:11px;text-align:center;
}

/* ---------- Historique des paiements ---------- */
.pv2-history{border:1px solid #dfe6ec;border-radius:20px;background:#fff;overflow:hidden}
.pv2-history>header{padding:14px 22px;border-bottom:1px solid var(--pv2-line)}
.pv2-history>header small{display:block;color:var(--pv2-mut);font-size:9px;font-weight:900;letter-spacing:.14em}
.pv2-history>header h3{margin:4px 0 0;font-size:15px}
.pv2-history-row{
  padding:12px 22px;
  display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;
  align-items:center;gap:14px;
  border-bottom:1px solid #eef2f6;
}
.pv2-history-row:last-child{border-bottom:0}
.pv2-history-check{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#e6f7ec;color:#1f7a42;font-weight:900}
.pv2-history-row>span{display:grid;gap:2px;min-width:0}
.pv2-history-row>span b{font-size:13px}
.pv2-history-row>span small{color:var(--pv2-mut);font-size:11px}
.pv2-history-row>strong{font-size:16px;letter-spacing:-.02em;text-align:right;white-space:nowrap}
.pv2-history-row>strong small{display:block;color:var(--pv2-mut);font-size:10px;font-weight:600;letter-spacing:0}
.pv2-history-row>a,.pv2-history-row>.pv2-history-print{font:inherit;cursor:pointer}
.pv2-history-row>a,.pv2-history-row>.pv2-history-print{
  min-height:36px;padding:0 12px;display:inline-flex;align-items:center;
  border:1px solid #d5dfe8;border-radius:10px;background:#fff;
  color:var(--pv2-ink);font-size:12px;font-weight:900;white-space:nowrap;
}
.pv2-history-row>a:hover,.pv2-history-row>.pv2-history-print:hover{border-color:#9ac7ee}

/* ---------- États vides ---------- */
.pv2-empty{
  padding:48px 28px;
  display:grid;justify-items:center;gap:8px;
  border:1px dashed #cfdbe6;border-radius:20px;background:#fff;text-align:center;
}
.pv2-empty-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;background:#eef3f8;color:#5d7285;font-size:24px;margin-bottom:6px}
.pv2-empty.is-done .pv2-empty-icon{background:#e6f7ec;color:#1f7a42}
.pv2-empty small{color:var(--red);font-size:9px;font-weight:900;letter-spacing:.14em}
.pv2-empty h2{margin:0;font-size:20px}
.pv2-empty p{margin:0;max-width:440px;color:var(--pv2-mut);font-size:12px;line-height:1.5}
.pv2-empty .pv2-new-order{margin-top:12px;min-width:260px}
.pv2-empty-small{padding:28px 18px;border-style:solid;border-color:#e6ecf2}
.pv2-empty-small .pv2-empty-icon{width:44px;height:44px;font-size:18px;margin:0}
.pv2-empty-small p{font-size:12px;font-weight:700;color:var(--pv2-ink)}

/* ---------- Responsive ---------- */
@media(max-width:1100px){
  .pv2-layout{grid-template-columns:minmax(0,1fr)}
  .pv2-tables{position:static}
  .pv2-table-list{max-height:none;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
}
@media(max-width:760px){
  .pv2-stats{margin:12px 12px 0;grid-template-columns:minmax(0,1fr)}
  .pv2-stat.is-main strong{font-size:26px}
  .pv2-layout{margin:12px}
  .pv2-tables{padding:14px}
  .pv2-table-list{grid-template-columns:minmax(0,1fr)}
  .pv2-ticket-head{padding:16px}
  .pv2-ticket-id h2{font-size:26px}
  .pv2-ticket-metrics{width:100%}
  .pv2-ticket-metrics span{flex:1 1 30%;min-width:0;justify-items:start;text-align:left}
  .pv2-ticket-metrics small{white-space:normal;line-height:1.3}
  .pv2-ticket-metrics b{font-size:17px}
  .pv2-ticket-metrics span.is-due b{font-size:20px}
  .pv2-order>summary,.pv2-history>header,.pv2-history-row{padding-left:14px;padding-right:14px}
  .pv2-order>summary{grid-template-columns:minmax(0,1fr) auto;row-gap:8px}
  .pv2-history-row{grid-template-columns:32px minmax(0,1fr);row-gap:8px}
  .pv2-history-row>strong{grid-column:2;text-align:left}
  .pv2-history-row>a,.pv2-history-row>.pv2-history-print{grid-column:2;justify-self:start}
  .pv2-quickadd button{width:100%}
}

/* =================================================================
   V129.33 · PAGE COMMANDES (orders.php) — tableau de service ov2-*
   Même langage que la caisse (pv2). Tout est scopé sous #live-content.ov2
   ================================================================= */
.ov2{--ov2-line:#e6ecf2;--ov2-ink:#142238;--ov2-mut:#69798a;--ov2-blue:#087cf0;--ov2-new:#f4473a;--ov2-ok:#1f7a42;color:var(--ov2-ink)}
.ov2 *{box-sizing:border-box}
.ov2 [hidden]{display:none!important}
.ov2 form{margin:0;display:block;grid-template-columns:none;gap:0}
.ov2 header{min-height:0;padding:0;border:0;background:none}
.ov2 .live-card{min-height:0;margin:0}

/* ---------- bandeau d'état ---------- */
.ov2-hero{
  display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr);gap:16px;align-items:center;
  padding:16px 20px;border-radius:22px;
  background:linear-gradient(135deg,#142238 0%,#1d3a5e 100%);color:#fff;
  box-shadow:0 16px 40px rgba(20,34,56,.22);
}
.ov2-hero.has-attention{background:linear-gradient(135deg,#7a1f17 0%,#c0392b 55%,#e2574a 100%);box-shadow:0 16px 40px rgba(192,57,43,.28)}
.ov2-hero-copy small{display:block;font-size:9px;font-weight:900;letter-spacing:.16em;opacity:.7}
.ov2-hero-copy h2{margin:4px 0 4px;font:21px Georgia,serif;line-height:1.15}
.ov2-hero-copy p{margin:0;font-size:12px;line-height:1.5;opacity:.85}
.ov2-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ov2-hero-stats article{padding:10px 14px;display:grid;gap:3px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14)}
.ov2-hero-stats article.has-new{background:#fff;color:var(--ov2-ink)}
.ov2-hero-stats small{font-size:9px;font-weight:900;letter-spacing:.12em;opacity:.75}
.ov2-hero-stats strong{font-size:24px;line-height:1;letter-spacing:-.03em}
.ov2-hero-stats article.has-new strong{color:var(--ov2-new)}
.ov2-hero-stats em{font-size:11px;font-style:normal;opacity:.8}

/* ---------- grille : commandes | demandes ---------- */
.ov2-grid{margin-top:20px;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:20px;align-items:start}
.ov2-stream{min-width:0}
.ov2-section-head{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.ov2-section-head small{display:block;color:var(--ov2-new);font-size:9px;font-weight:900;letter-spacing:.14em}
.ov2-section-head h2{margin:3px 0 0;font-size:18px;line-height:1.2}
.ov2-count{min-width:36px;height:36px;padding:0 10px;display:grid;place-items:center;border-radius:12px;background:var(--ov2-ink);color:#fff;font-size:15px;font-weight:900}
.ov2-list{display:grid;gap:10px;align-items:start}
.ov2-stream:not(.ov2-stream-requests) .ov2-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}

/* ---------- carte commande ---------- */
.ov2-order{
  display:grid;gap:0;
  border:1px solid #dfe6ec;border-radius:20px;background:#fff;overflow:hidden;
  box-shadow:0 12px 34px rgba(20,34,56,.06);
}
.ov2-order.is-new{border-color:#f3b2ab;box-shadow:0 14px 36px rgba(244,71,58,.14)}
.ov2 .ov2-order-head{
  padding:12px 14px 8px;min-height:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  border-top:5px solid var(--ov2-blue);
}
.ov2-order.is-new .ov2-order-head{border-top-color:var(--ov2-new)}
/* État cuisine de la fiche (V129.98) : partiellement prête = violet, entièrement prête = vert */
.ov2-order.is-kitchen-partial{border-color:#c9b8ff;background:linear-gradient(180deg,#f3eeff,#fff 46%);box-shadow:0 14px 36px rgba(124,92,230,.16)}
.ov2-order.is-kitchen-partial .ov2-order-head{border-top-color:#7c5ce6}
.ov2-order.is-kitchen-partial .ov2-pill.is-kitchen{background:#7c5ce6;color:#fff}
.ov2-order.is-kitchen-ready{border-color:#9fd6b5;background:linear-gradient(180deg,#e9f8ee,#fff 46%);box-shadow:0 14px 36px rgba(31,122,66,.16)}
.ov2-order.is-kitchen-ready .ov2-order-head{border-top-color:var(--ov2-ok)}
.ov2-order.is-kitchen-ready .ov2-pill.is-kitchen{background:var(--ov2-ok);color:#fff}
.ov2-order-who{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 8px;min-width:0}
.ov2-order-who small{width:100%;color:var(--ov2-mut);font-size:9px;font-weight:900;letter-spacing:.14em}
.ov2-order-who h3{margin:2px 0 0;font-size:18px;line-height:1.1;letter-spacing:-.01em}
.ov2-order-who b{font-size:13px;color:#3b5065}
.ov2-order-flags{display:grid;gap:6px;justify-items:end;flex:0 0 auto}
.ov2-pill{padding:4px 9px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.ov2-pill.is-new{background:var(--ov2-new);color:#fff}
.ov2-pill.is-progress{background:#e3f0ff;color:var(--ov2-blue)}
.ov2-pill.is-paid{background:#e2f5e9;color:#1f7a4d}
.ov2-pill.is-kitchen.k-new{background:#fff1d6;color:#8a5400}
.ov2-pill.is-kitchen.k-progress{background:#e3f0ff;color:#134a94}
.ov2-pill.is-kitchen.k-done{background:#e2f5e9;color:#1f7a4d}
.ov2-paid-hint{align-self:center;color:#1f7a4d;font-size:12px;font-weight:800}
.ov2-item-ready{background:#E6F7EC!important;color:#1F7A42!important}
.ov2-item-nokitchen{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:#eef1f6;color:#4b5566;font-size:10px;font-style:normal;font-weight:800;vertical-align:middle}
.ov2-order.is-paid{box-shadow:inset 3px 0 0 #1f7a4d}
.ov2-age{padding:4px 9px;border-radius:999px;background:#f1f4f7;color:#66798b;font-size:10px;font-style:normal;font-weight:900;white-space:nowrap}
.ov2-age.warm{background:#fff4d6;color:#8a5b00}
.ov2-age.hot{background:#ffe9e6;color:#b3362b}
.ov2 .ov2-order-meta{
  margin:0 14px;padding:6px 0 8px;display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;
  border-bottom:1px solid var(--ov2-line);color:var(--ov2-mut);font-size:12px;
}
.ov2 .ov2-order-meta strong{margin-left:auto;color:var(--ov2-ink);font-size:14px}

.ov2 .ov2-items{margin:0;padding:8px 14px 4px;list-style:none;display:grid;gap:6px}
.ov2 .ov2-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:10px;padding:7px 10px;border-radius:14px;background:#f8fafc;border:1px solid #edf1f5}
.ov2-qty{width:40px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--ov2-ink);color:#fff;font-size:15px;font-weight:900;letter-spacing:-.02em}
.ov2-qty i{margin-left:1px;font-size:13px;font-style:normal;opacity:.7}
.ov2-order.is-new .ov2-qty{background:var(--ov2-new)}
.ov2-item-copy{display:grid;gap:3px;min-width:0;padding-top:2px}
.ov2-item-copy strong{font-size:14px;line-height:1.2}
.ov2-item-opt{padding:3px 8px;border-radius:7px;background:#e9f3ff;color:#1b5f9e;font-size:11px;font-weight:700;justify-self:start;line-height:1.35}
.ov2-item-note{padding:3px 8px;border-radius:7px;background:#fff4d6;color:#7a5200;font-size:11px;font-weight:800;justify-self:start;line-height:1.35}
.ov2-item-side{display:grid;gap:6px;justify-items:end;padding-top:6px}
.ov2-item-side>span{font-size:13px;font-weight:800;color:#3b5065;white-space:nowrap}
.ov2-editor summary{list-style:none;cursor:pointer;font-size:11px;font-weight:900;color:var(--ov2-blue)}
.ov2-editor summary::-webkit-details-marker{display:none}
.ov2-editor>div{margin-top:8px;display:grid;gap:8px;justify-items:end}
.ov2 .ov2-editor form{display:flex;align-items:center;gap:8px;margin:0}
.ov2 .ov2-editor label{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:800}
.ov2 .ov2-editor input{width:64px;height:36px;padding:0 8px;border:1px solid #d5dfe8;border-radius:9px;font-size:14px;font-weight:900;text-align:center}
.ov2 .ov2-editor button{min-height:36px;padding:0 12px;border:1px solid #d5dfe8;border-radius:9px;background:#fff;color:var(--ov2-ink);font-size:11px;font-weight:900;cursor:pointer}
.ov2 .ov2-editor button.danger{border-color:#f0cbc8;background:#fff3f1;color:#ad493f}

.ov2 .ov2-order-note{margin:6px 14px 0;padding:8px 12px;border-left:4px solid #e0a800;border-radius:10px;background:#fff8e1;color:#5c4400;font-size:13px;font-weight:700;line-height:1.4}
.ov2 .ov2-order-note span{display:block;margin-bottom:2px;color:#8a6a00;font-size:9px;font-weight:900;letter-spacing:.14em}

.ov2 .ov2-order-foot{margin-top:8px;padding:10px 14px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--ov2-line);background:#fbfcfd}
.ov2 .ov2-order-foot form{margin:0;flex:1 1 220px}
.ov2 .ov2-print{min-height:42px;padding:0 12px;border:1px solid #d5dfe8;border-radius:13px;background:#fff;color:var(--ov2-ink);font-size:13px;font-weight:900;white-space:nowrap;cursor:pointer}
.ov2 .ov2-print:hover{border-color:#9ac7ee}
.ov2 .ov2-action{
  width:100%;min-height:46px;padding:0 16px;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;
  border:0;border-radius:13px;background:var(--ov2-blue);color:#fff;font-size:14px;font-weight:900;text-decoration:none;cursor:pointer;
  box-shadow:0 10px 24px rgba(8,124,240,.24);
}
.ov2 .ov2-action b{font-size:18px}
.ov2 .ov2-action.is-take{background:var(--ov2-new);box-shadow:0 10px 24px rgba(244,71,58,.26)}
.ov2 .ov2-action.is-done{background:var(--ov2-ok);box-shadow:0 10px 24px rgba(31,122,66,.24)}
.ov2 .ov2-action.is-request{background:var(--ov2-ink);box-shadow:0 10px 24px rgba(20,34,56,.22)}
.ov2 .ov2-action.is-pos{background:var(--ov2-ink);box-shadow:none}
.ov2 .ov2-action.is-updating{opacity:.6}
.ov2 .ov2-action:disabled{opacity:.6;cursor:wait}

/* ---------- demandes clients ---------- */
.ov2-request{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:12px 14px;border:1px solid #f3b2ab;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(244,71,58,.12)}
.ov2-request-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#fff0ee;font-size:22px}
.ov2-request-body{display:grid;gap:8px;min-width:0}
.ov2 .ov2-request-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ov2 .ov2-request-top b{font-size:15px}
.ov2-request-body h3{margin:0;font-size:15px;line-height:1.25}
.ov2 .ov2-request-body form{margin:0}

/* ---------- notes en cours ---------- */
.ov2-bills{margin-top:24px}
.ov2-bills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.ov2-bill{display:grid;gap:12px;padding:14px 16px;border:1px solid #dfe6ec;border-radius:18px;background:#fff}
.ov2-bill-details summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:10px;cursor:pointer}
.ov2-bill-details summary::-webkit-details-marker{display:none}
.ov2-bill-who{display:grid;gap:2px;min-width:0}
.ov2-bill-who small{color:var(--ov2-mut);font-size:9px;font-weight:900;letter-spacing:.14em}
.ov2-bill-who strong{font-size:18px}
.ov2-bill-who em{color:var(--ov2-mut);font-size:11px;font-style:normal}
.ov2-bill-total{font-size:20px;letter-spacing:-.02em;white-space:nowrap}
.ov2-chevron{font-style:normal;color:#8b9aa9;transition:transform .2s}
details[open]>summary .ov2-chevron{transform:rotate(180deg)}
.ov2-bill-orders{margin-top:12px;display:grid;gap:10px}
.ov2-bill-orders section{padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid #edf1f5}
.ov2-bill-orders header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.ov2-bill-orders header b{font-size:13px}
.ov2-bill-orders header small{display:block;color:var(--ov2-mut);font-size:11px}
.ov2-bill-orders header strong{font-size:14px}
.ov2-bill-orders ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.ov2-bill-orders li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:start;font-size:13px}
.ov2-bill-orders li b{color:var(--ov2-ink)}
.ov2-bill-orders li span{display:grid;gap:1px}
.ov2-bill-orders li small{color:var(--ov2-mut);font-size:11px}
.ov2-bill-orders li em{font-style:normal;font-weight:800;white-space:nowrap}
.ov2-bill-orders p{margin:8px 0 0;font-size:12px;color:#5c4400}
.ov2-bill-people{display:grid;gap:8px}
.ov2-bill-people>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.ov2 .ov2-bill-people form{margin:0}
.ov2 .ov2-bill-people button{min-height:38px;padding:0 12px;border:1px solid #d5dfe8;border-radius:10px;background:#fff;font-size:12px;font-weight:900;cursor:pointer}
.ov2 .ov2-bill form{margin:0}

/* ---------- historique ---------- */
.ov2-history{margin-top:24px;border:1px solid #dfe6ec;border-radius:18px;background:#fff}
.ov2-history>summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:12px;padding:14px 18px;cursor:pointer}
.ov2-history>summary::-webkit-details-marker{display:none}
.ov2-history>summary small{display:block;color:var(--ov2-mut);font-size:9px;font-weight:900;letter-spacing:.14em}
.ov2-history>summary b{display:block;margin-top:3px;font-size:15px}
.ov2-history>summary em{min-width:34px;height:34px;padding:0 10px;display:grid;place-items:center;border-radius:11px;background:#f1f4f7;color:#5d7285;font-size:13px;font-style:normal;font-weight:900}
.ov2-history-list{display:grid;gap:8px;padding:0 14px 14px}
.ov2-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:#f8fafc;border:1px solid #edf1f5}
.ov2-history-main{display:grid;gap:2px;min-width:0}
.ov2-history-main b{font-size:14px}
.ov2-history-main span{color:var(--ov2-mut);font-size:11px}
.ov2-history-status{padding:5px 10px;border-radius:999px;background:#e6f7ec;color:var(--ov2-ok);font-size:10px;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.ov2-history-status.paid{background:#e3f0ff;color:var(--ov2-blue)}
.ov2-history-status.cancelled{background:#ffe9e6;color:#b3362b}
.ov2-history-action .ov2-print{min-height:38px;font-size:12px}

/* ---------- vides ---------- */
.ov2-empty{padding:34px 20px;display:grid;justify-items:center;gap:6px;border:1px dashed #cfdbe6;border-radius:18px;background:#fff;text-align:center}
.ov2-empty span{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:#e6f7ec;color:var(--ov2-ok);font-size:22px;font-weight:900;margin-bottom:4px}
.ov2-empty h3{margin:0;font-size:16px}
.ov2-empty p{margin:0;color:var(--ov2-mut);font-size:12px}
.ov2-empty-small{padding:22px 16px}

/* ---------- responsive ---------- */
@media(max-width:1100px){
  .ov2-hero{grid-template-columns:minmax(0,1fr)}
  .ov2-grid{grid-template-columns:minmax(0,1fr)}
  .ov2-stream:not(.ov2-stream-requests) .ov2-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
}
@media(max-width:700px){
  .ov2-hero{padding:18px}
  .ov2-hero-copy h2{font-size:22px}
  .ov2-hero-stats{grid-template-columns:minmax(0,1fr)}
  .ov2-hero-stats article{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"small strong" "em strong";align-items:center}
  .ov2-hero-stats small{grid-area:small}.ov2-hero-stats strong{grid-area:strong;font-size:26px}.ov2-hero-stats em{grid-area:em}
  .ov2-stream:not(.ov2-stream-requests) .ov2-list{grid-template-columns:minmax(0,1fr)}
  .ov2-order-head,.ov2-items,.ov2-order-foot{padding-left:14px;padding-right:14px}
  .ov2-order-meta,.ov2-order-note{margin-left:14px;margin-right:14px}
  .ov2-order-who h3{font-size:22px}
  .ov2 .ov2-order-foot{flex-direction:column;align-items:stretch}
  .ov2 .ov2-order-foot form{flex:0 0 auto;width:100%}
  .ov2 .ov2-print{width:100%}
  .ov2-history-row{grid-template-columns:minmax(0,1fr) auto}
  .ov2-history-action{grid-column:1/-1}
}

/* =================================================================
   V129.34 · STATISTIQUES (service-stats.php) — période, sv2-*
   ================================================================= */
.sv2-main,.sv2-head{--sv2-line:#e6ecf2;--sv2-ink:#142238;--sv2-mut:#69798a;--sv2-blue:#087cf0;color:var(--sv2-ink)}
.sv2-main *{box-sizing:border-box}
.sv2-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sv2-btn{min-height:42px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;border:1px solid #d5dfe8;border-radius:12px;background:#fff;color:var(--sv2-ink);font:inherit;font-size:12px;font-weight:900;text-decoration:none;cursor:pointer;white-space:nowrap}
.sv2-btn:hover{border-color:#9ac7ee}
.sv2-main{display:grid;gap:18px}

/* ---------- période ---------- */
.sv2-period{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 16px;border:1px solid #dfe6ec;border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(20,34,56,.055)}
.sv2-presets{display:flex;gap:6px;flex-wrap:wrap}
.sv2-presets a{min-height:40px;padding:0 14px;display:inline-flex;align-items:center;border:1px solid #dde5ec;border-radius:999px;background:#fff;color:var(--sv2-ink);font-size:12px;font-weight:900;text-decoration:none;white-space:nowrap}
.sv2-presets a:hover{border-color:#9ac7ee;background:#f7fbff}
.sv2-presets a.is-active{border-color:var(--sv2-ink);background:var(--sv2-ink);color:#fff}
.sv2-range{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px 6px 12px;border:1px solid #dde5ec;border-radius:14px;background:#f8fafc;grid-template-columns:none}
.sv2-range.is-active{border-color:var(--sv2-blue);background:#f2f8ff}
.sv2-range label{margin:0;display:flex;flex-direction:row;align-items:center;gap:6px;font-size:11px;font-weight:900;color:var(--sv2-mut)}
.sv2-range input{width:auto;height:38px;padding:0 10px;border:1px solid #d5dfe8;border-radius:10px;background:#fff;font:inherit;font-size:13px;font-weight:800;color:var(--sv2-ink)}
.sv2-range button{min-height:38px;padding:0 14px;border:0;border-radius:10px;background:var(--sv2-blue);color:#fff;font:inherit;font-size:12px;font-weight:900;cursor:pointer}

/* ---------- indicateurs ---------- */
.sv2-kpis{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(auto-fit,minmax(150px,1fr));gap:12px}
.sv2-kpis article{padding:16px 18px;display:grid;gap:4px;border:1px solid #dfe6ec;border-radius:18px;background:#fff}
.sv2-kpis small{color:var(--sv2-mut);font-size:9px;font-weight:900;letter-spacing:.14em}
.sv2-kpis strong{font-size:24px;line-height:1.05;letter-spacing:-.02em;white-space:nowrap}
.sv2-kpis span{color:var(--sv2-mut);font-size:11px;line-height:1.4}
.sv2-kpis article.is-main{border-color:transparent;background:linear-gradient(135deg,#142238 0%,#1d3a5e 100%);color:#fff;box-shadow:0 14px 34px rgba(20,34,56,.22)}
.sv2-kpis article.is-main small{color:#9fc2ea}.sv2-kpis article.is-main span{color:#c7d6e6}.sv2-kpis article.is-main strong{font-size:30px}

/* ---------- cartes ---------- */
.sv2-card{border:1px solid #dfe6ec;border-radius:20px;background:#fff;box-shadow:0 12px 34px rgba(20,34,56,.055);overflow:hidden}
.sv2-card>header{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--sv2-line)}
.sv2-card>header small{display:block;color:var(--red);font-size:9px;font-weight:900;letter-spacing:.14em}
.sv2-card>header h2{margin:3px 0 0;font-size:16px}
.sv2-link{color:var(--sv2-blue);font-size:12px;font-weight:900;text-decoration:none;white-space:nowrap}
.sv2-count{min-width:34px;height:34px;padding:0 10px;display:grid;place-items:center;border-radius:11px;background:#f1f4f7;color:#5d7285;font-size:13px;font-weight:900}
.sv2-empty{margin:0;padding:22px 20px;color:var(--sv2-mut);font-size:12px;text-align:center}
.sv2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}

.sv2-status-row{padding:14px 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.sv2-status-row span{padding:12px 14px;display:grid;gap:2px;border-radius:14px;background:#f8fafc;border:1px solid var(--sv2-line);color:var(--sv2-mut);font-size:11px;font-weight:800}
.sv2-status-row b{color:var(--sv2-ink);font-size:22px;letter-spacing:-.02em}

/* jour par jour */
.sv2-daily-table{padding:8px 12px 14px;display:grid;gap:4px}
.sv2-daily-row{display:grid;grid-template-columns:110px 90px minmax(0,1fr) 120px;align-items:center;gap:12px;padding:8px 10px;border-radius:12px;color:inherit;text-decoration:none;font-size:13px}
.sv2-daily-row:not(.is-head):hover{background:#f7fbff}
.sv2-daily-row.is-head{color:var(--sv2-mut);font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.sv2-daily-row>span:first-child{display:grid;gap:0}
.sv2-daily-row>span:first-child b{font-size:14px}
.sv2-daily-row>span:first-child small{color:var(--sv2-mut);font-size:11px}
.sv2-daily-row>span:nth-child(2){font-weight:800}
.sv2-daily-row>span:nth-child(3){position:relative;display:flex;align-items:center;min-height:30px}
.sv2-daily-row>span:nth-child(3) i{position:absolute;left:0;top:4px;bottom:4px;width:var(--p,0%);border-radius:8px;background:linear-gradient(90deg,#cfe3fb,#9ac7ee)}
.sv2-daily-row>span:nth-child(3) b{position:relative;padding-left:8px;font-size:14px}
.sv2-daily-row>span:nth-child(4){text-align:right;font-weight:800;color:#1f7a42}
.sv2-daily-row.is-empty{color:#9aa8b5}
.sv2-daily-row.is-empty>span:nth-child(4){color:#9aa8b5}
.sv2-daily-row.is-best>span:first-child b::after{content:" ★";color:#e0a800}

/* classements */
.sv2-ranking,.sv2-tables{padding:8px 12px 14px;display:grid;gap:4px}
.sv2-ranking>div{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;border-radius:12px}
.sv2-ranking>div:hover{background:#f8fafc}
.sv2-ranking i{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#f1f4f7;color:#5d7285;font-size:13px;font-style:normal;font-weight:900}
.sv2-ranking>div:nth-child(-n+3) i{background:var(--sv2-ink);color:#fff}
.sv2-ranking span{display:grid;gap:3px;min-width:0}
.sv2-ranking span b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv2-ranking span small{color:var(--sv2-mut);font-size:11px}
.sv2-ranking span em{display:block;height:4px;border-radius:999px;background:linear-gradient(90deg,#3aa0ff,var(--sv2-blue));width:var(--p,0%);margin-top:2px}
.sv2-ranking strong{text-align:right;font-size:18px;letter-spacing:-.02em;white-space:nowrap}
.sv2-ranking strong small{display:block;color:var(--sv2-mut);font-size:10px;font-weight:700;letter-spacing:0}
.sv2-tables>div{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who total" "who paid";align-items:center;gap:2px 12px;padding:9px 10px;border-radius:12px}
.sv2-tables>div:hover{background:#f8fafc}
.sv2-tables span{grid-area:who;display:grid;gap:2px;min-width:0}
.sv2-tables span b{font-size:14px}
.sv2-tables span small{color:var(--sv2-mut);font-size:11px}
.sv2-tables strong{grid-area:total;text-align:right;font-size:16px;letter-spacing:-.02em;white-space:nowrap}
.sv2-tables em{grid-area:paid;text-align:right;color:#1f7a42;font-size:11px;font-style:normal;font-weight:800;white-space:nowrap}

/* commandes reçues */
.sv2-order-table{padding:8px 12px 14px;display:grid;gap:4px}
.sv2-order-row{display:grid;grid-template-columns:90px minmax(0,1.4fr) minmax(0,1fr) 130px 110px;align-items:center;gap:12px;padding:9px 10px;border-radius:12px;font-size:13px}
.sv2-order-row:not(.is-head):hover{background:#f8fafc}
.sv2-order-row.is-head{color:var(--sv2-mut);font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.sv2-order-row>span:nth-child(2){display:grid;gap:1px;min-width:0}
.sv2-order-row>span:nth-child(2) b{font-size:14px}
.sv2-order-row>span:nth-child(2) small{color:var(--sv2-mut);font-size:11px}
.sv2-order-row>span:last-child{text-align:right}
.sv2-order-row strong{font-size:14px;white-space:nowrap}
.sv2-status{padding:5px 10px;border-radius:999px;font-size:10px;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.sv2-status.new{background:#ffe9e6;color:#b3362b}.sv2-status.accepted{background:#fff4d6;color:#8a5b00}.sv2-status.processed{background:#e3f0ff;color:var(--sv2-blue)}.sv2-status.paid{background:#e6f7ec;color:#1f7a42}

@media(max-width:900px){
  .sv2-grid{grid-template-columns:minmax(0,1fr)}
  .sv2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sv2-kpis article.is-main{grid-column:1/-1}
  .sv2-order-row{grid-template-columns:70px minmax(0,1fr) 110px 90px}
  .sv2-order-row>span:nth-child(3){display:none}
  .sv2-daily-row{grid-template-columns:90px 70px minmax(0,1fr) 100px}
}
@media(max-width:600px){
  .sv2-period{padding:12px}
  .sv2-presets a{min-height:36px;padding:0 11px;font-size:11px}
  .sv2-range{width:100%}
  .sv2-range label{flex:1 1 40%}
  .sv2-range input{flex:1;min-width:0}
  .sv2-range button{width:100%}
  .sv2-kpis{grid-template-columns:minmax(0,1fr)}
  .sv2-kpis strong{font-size:22px}
  .sv2-order-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who total" "when status";row-gap:6px}
  .sv2-order-row.is-head{display:none}
  .sv2-order-row>span:nth-child(1){grid-area:when;color:var(--sv2-mut);font-size:11px}
  .sv2-order-row>span:nth-child(2){grid-area:who}
  .sv2-order-row>span:nth-child(4){grid-area:status;justify-self:end}
  .sv2-order-row>span:nth-child(5){grid-area:total}
  .sv2-daily-row{grid-template-columns:78px 64px minmax(0,1fr);row-gap:4px}
  .sv2-daily-row.is-head{font-size:8px;letter-spacing:.06em}
  .sv2-daily-row.is-head span{white-space:normal;line-height:1.2}
  .sv2-daily-row>span:nth-child(4){grid-column:1/-1;text-align:left;font-size:12px}
  .sv2-daily-row.is-head>span:nth-child(4){display:none}
}
@media print{.sv2-period,.sv2-head-actions,.app-shell-sidebar,.app-shell-mobile-toggle{display:none!important}.sv2-card{box-shadow:none;break-inside:avoid}}

/* pavé numérique partagé : pleine largeur quand il est dans la rangée espèces */
.pv2-cash-row>.pos-amount-keypad{grid-column:1/-1}
.pv2-step-tip .pos-amount-keypad,.pv2-step-cash .pos-amount-keypad{margin-top:10px}

/* =================================================================
   V129.42 · CAISSE TERMINAL — trois zones : tables | note ticket | terminal
   Réutilise les composants pv2 ; tout ce bloc est scopé .pv3-*
   ================================================================= */
.pv3-layout{
  --pv3-ink:#0F1C2E;--pv3-slate:#1E3352;--pv3-ticket:#FBF7EF;--pv3-ticket-line:#E6DCC8;--pv3-on-dark:#F4F7FB;--pv3-mute-dark:#9FB3CC;
  --pv3-ui:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;--pv3-display:"Fraunces",Georgia,"Times New Roman",serif;--pv3-mono:"IBM Plex Mono",Menlo,Consolas,monospace;
  grid-template-columns:272px minmax(0,1fr) 392px;
  font-family:var(--pv3-ui);
}
.pv3-layout .pv2-tables-head h2,.pv3-layout .pv2-ticket-id h2{font-family:var(--pv3-display);font-weight:600;letter-spacing:-.02em}
.pv3-layout .pv2-table-due strong,.pv3-layout .pv2-ticket-metrics b,.pv3-price,.pv3-foot,.pv3-layout .pv2-money input,.pv3-layout .pv2-submit>span b,.pv3-layout .pv2-split-total,.pv3-layout .pv2-cash-change strong,.pv3-layout .pos-amount-keypad>header strong,.pv3-layout .pv2-history-row>strong{font-family:var(--pv3-mono);font-variant-numeric:tabular-nums}

/* ---------- note façon ticket ---------- */
.pv3-note{gap:0}
.pv3-note>*+*{margin-top:16px}
.pv3-note>.pv2-ticket-head{border-color:var(--pv3-ticket-line);border-bottom:1px dashed var(--pv3-ticket-line);border-radius:22px 22px 0 0;background:var(--pv3-ticket);box-shadow:none}
.pv3-note>.pv2-ticket-head .pv2-ticket-metrics span{background:#fff;border-color:var(--pv3-ticket-line)}
.pv3-bill{margin-top:0!important;padding:6px 12px 16px;border:1px solid var(--pv3-ticket-line);border-top:0;border-radius:0 0 22px 22px;background:var(--pv3-ticket);box-shadow:0 18px 44px rgba(15,28,46,.08)}
.pv3-pick-hint{margin:0 0 -6px;padding:10px 14px;border-radius:12px 12px 0 0;background:rgba(8,124,240,.1);color:var(--pv2-blue);font-size:12px;font-weight:800}
.pv3-pick-hint[hidden]{display:none}
.pv3-person{margin-top:8px;padding:8px 8px 4px;border-radius:14px}
.pv3-person>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 6px 8px}
.pv3-person>header b{font-size:12px;letter-spacing:.08em}
.pv3-person>header span{color:#69798a;font-size:11px;font-weight:700}
.pv3-paid{color:#1f7a42;font-style:normal;font-weight:900}
.pv3-line{display:grid;grid-template-columns:0 40px minmax(0,1fr) auto auto;align-items:center;gap:0 10px;padding:8px 6px;border-radius:12px;border:1px solid transparent;transition:background .12s,border-color .12s,grid-template-columns .12s}
.pv3-tick{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;border:2px solid var(--pv2-blue);color:#fff;font-size:12px;font-weight:900;opacity:0;overflow:hidden}
.pv3-qty{width:40px;height:32px;display:grid;place-items:center;border-radius:9px;background:#fff;border:1px solid var(--pv3-ticket-line);font-weight:800;font-size:13px}
.pv3-name{font-size:14px;font-weight:800;min-width:0;line-height:1.25}
.pv3-name small{display:block;color:#69798a;font-size:11px;font-weight:600}
.pv3-name .pv3-order-ref{color:#9aa8b5;font-size:10px;font-weight:600}
.pv3-price{font-size:14px;font-weight:600;white-space:nowrap}
.pv3-line.is-paid{opacity:.45}
.pv3-line.is-paid .pv3-name,.pv3-line.is-paid .pv3-price{text-decoration:line-through}
.pv3-tools{position:relative}
.pv3-tools>summary{list-style:none;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#fff;border:1px solid var(--pv3-ticket-line);color:#5d7285;font-weight:900;cursor:pointer}
.pv3-tools>summary::-webkit-details-marker{display:none}
.pv3-tools>div{grid-column:1/-1;margin-top:8px}
.pv3-line:has(.pv3-tools[open]) .pos-item-remove-actions{grid-column:1/-1}
.pv3-note.is-picking .pv3-line:not(.is-paid){grid-template-columns:22px 40px minmax(0,1fr) auto auto;cursor:pointer}
.pv3-note.is-picking .pv3-line:not(.is-paid) .pv3-tick{opacity:1}
.pv3-note.is-picking .pv3-line:not(.is-paid):hover{background:rgba(8,124,240,.06);border-color:rgba(8,124,240,.25)}
.pv3-line.is-picked{background:rgba(8,124,240,.1)!important;border-color:var(--pv2-blue)!important}
.pv3-line.is-picked .pv3-tick{background:var(--pv2-blue)}
.pv3-foot{margin:10px 6px 0;padding:14px 8px 4px;border-top:1px dashed var(--pv3-ticket-line);display:grid;gap:6px}
.pv3-foot div{display:flex;justify-content:space-between;font-size:13px;color:#69798a}
.pv3-foot div.is-total{color:var(--pv2-ink);font-size:20px;font-weight:600}
.pv3-note>.pv2-history{background:var(--pv3-ticket);border-color:var(--pv3-ticket-line)}

/* ---------- terminal ---------- */
.pv3-terminal{
  position:sticky;top:14px;min-width:0;
  border-radius:26px;background:linear-gradient(160deg,var(--pv3-slate) 0%,var(--pv3-ink) 70%);color:var(--pv3-on-dark);
  box-shadow:0 30px 70px rgba(15,28,46,.35);
}
.pv3-term-head{padding:16px 18px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}
.pv3-term-head small{font-size:10px;font-weight:800;letter-spacing:.18em;color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-modes.pv3-seg{margin:0;display:inline-grid;grid-auto-flow:column;grid-template-columns:none;gap:3px;padding:3px;border-radius:12px;background:rgba(255,255,255,.08)}
.pv3-terminal .pv3-seg button{min-height:32px;padding:0 12px;display:block;border:0;border-radius:9px;background:transparent;color:var(--pv3-mute-dark);font-size:12px;font-weight:800;box-shadow:none}
.pv3-terminal .pv3-seg button.active{background:#fff;color:var(--pv3-ink);box-shadow:none}
.pv3-terminal .pv2-form{margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.pv3-terminal .pv2-body{padding:10px 18px 0}
.pv3-terminal .pv2-body>*+*{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}
.pv3-terminal .pv2-num{display:none}
.pv3-terminal .pv2-step-head{margin-bottom:8px}
.pv3-terminal .pv2-step-head b{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-step-head small{display:none}
.pv3-terminal .pv2-badge{background:rgba(255,255,255,.1);color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-step-head small strong{color:#fff}
.pv3-terminal .pv2-step-cash .pv2-step-head small{display:block;color:var(--pv3-mute-dark)}
/* montant héros */
.pv3-terminal .pv2-step-amount .pv2-money{height:84px;grid-template-columns:minmax(0,1fr) 54px;border:0;border-radius:18px;background:#fff}
.pv3-terminal .pv2-step-amount .pv2-money input{font-size:44px;font-weight:600;letter-spacing:-.03em;color:var(--pv3-ink)}
.pv3-terminal .pv2-step-amount .pv2-money>span{background:#EEF2F7;border-left-color:#E3EAF1;font-size:22px}
.pv3-terminal .pv2-quick{margin-top:8px}
.pv3-terminal .pv2-quick button{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff}
/* champs, options, boutons */
.pv3-terminal .pv2-money{border-color:transparent;background:#fff}
.pv3-terminal .pv2-money input{color:var(--pv3-ink)}
.pv3-terminal .pv2-money>span{background:#EEF2F7;border-left-color:#E3EAF1}
.pv3-terminal .pv2-opts{gap:6px}
.pv3-terminal .pv2-opts-target{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.pv3-terminal .pv2-opt>span{min-height:52px;padding:9px 12px;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#fff}
.pv3-terminal .pv2-opt>span small{color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-opt>input:checked+span{background:#fff;color:var(--pv3-ink);border-color:#fff;box-shadow:none}
.pv3-terminal .pv2-opt>input:checked+span small{color:#69798a}
.pv3-terminal .pv2-opts-method .pv2-opt>span i{background:rgba(255,255,255,.12);color:#fff}
.pv3-terminal .pv2-opts-method .pv2-opt>input:checked+span i{background:var(--pv3-ink);color:#fff}
.pv3-terminal .pv2-opts-method{grid-template-columns:repeat(3,minmax(0,1fr))}
.pv3-terminal .pv2-opts-method .pv2-opt>span{grid-template-columns:30px minmax(0,1fr);column-gap:8px}
.pv3-terminal .pv2-opts-method .pv2-opt>span i{width:30px;height:30px;font-size:13px}
.pv3-terminal .pv2-opts-method .pv2-opt>span b{font-size:13px}
.pv3-terminal .pv2-opts-method .pv2-opt>span small{display:none}
.pv3-terminal .pv2-tips button,.pv3-terminal .pv2-cash-presets button,.pv3-terminal .pv2-split-presets button{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#fff}
.pv3-terminal .pv2-tips button:hover,.pv3-terminal .pv2-cash-presets button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3)}
.pv3-terminal .pv2-cash-presets button:first-child{background:#fff;border-color:#fff;color:var(--pv3-ink)}
.pv3-terminal .pv2-split-presets button.active{background:#fff;border-color:#fff;color:var(--pv3-ink);box-shadow:none}
.pv3-terminal .pv2-tip-mode,.pv3-terminal .pv2-split-tipmode{background:rgba(255,255,255,.08)}
.pv3-terminal .pv2-tip-mode button,.pv3-terminal .pv2-split-tipmode button{color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-tip-mode button.is-active,.pv3-terminal .pv2-split-tipmode button.is-active{background:#fff;color:var(--pv3-ink);box-shadow:none}
.pv3-terminal .pv2-tip-hint,.pv3-terminal .pv2-tip-summary{background:transparent;color:var(--pv3-mute-dark);padding:0;margin-top:8px}
.pv3-terminal .pv2-tip-label{color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-step-cash .pv2-cash-presets{margin-top:0}
.pv3-terminal .pv2-cash-change{background:rgba(255,255,255,.08)}
.pv3-terminal .pv2-cash-change strong{color:#7CE0A2}
.pv3-terminal .pv2-cash-change.is-short{background:rgba(244,71,58,.25)}
.pv3-terminal .pv2-cash-change.is-short strong{color:#FF8E84}
.pv3-terminal .pv2-opts-receipt{grid-template-columns:repeat(3,minmax(0,1fr))}
.pv3-terminal .pv2-opts-receipt .pv2-opt>span{min-height:44px;padding:8px 10px;text-align:center}
.pv3-terminal .pv2-opts-receipt .pv2-opt>span b{font-size:12px}
.pv3-terminal .pv2-opts-receipt .pv2-opt>span small{display:none}
.pv3-terminal .pv2-meals{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.pv3-terminal .pv2-meals b{color:#fff}.pv3-terminal .pv2-meals small{color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-stepper button,.pv3-terminal .pv2-stepper input{border-color:transparent}
.pv3-terminal .pv2-reference-toggle{border-color:rgba(255,255,255,.25);background:transparent;color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-reference-field>span{color:#fff}
.pv3-terminal .pv2-reference-field>span small{color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-reference-field input{border-color:transparent;background:#fff;color:var(--pv3-ink)}
.pv3-terminal .pv2-select{border-color:transparent;background-color:#fff;color:var(--pv3-ink)}
.pv3-terminal .pv2-select-wrap>span{color:var(--pv3-mute-dark)}
.pv3-terminal .pv2-step-head .pv2-split-status{margin-left:auto}
/* validation */
.pv3-terminal .pv2-submit{margin-top:14px;padding:14px 18px 18px;flex-direction:column;align-items:stretch;background:transparent}
.pv3-terminal .pv2-submit>span{display:flex;justify-content:space-between;align-items:baseline}
.pv3-terminal .pv2-submit>span small{opacity:.7}
.pv3-terminal .pv2-submit>span b{font-size:22px}
.pv3-terminal .pv2-submit .pv2-pay{width:100%;min-width:0;min-height:60px;border-radius:18px;background:linear-gradient(135deg,#3AA0FF,var(--pv2-blue));font-size:16px;box-shadow:0 14px 34px rgba(8,124,240,.4)}
.pv3-terminal .pv2-submit .pv2-pay.is-armed{background:linear-gradient(135deg,#2FB86A,#1f7a42);box-shadow:0 14px 34px rgba(31,122,66,.4)}
.pv3-terminal .pv2-submit .pv2-pay:disabled{background:#33465e;box-shadow:none}
.pv3-terminal .pv2-cancel{width:100%}
/* partage dans le terminal : une part = une carte claire */
.pv3-terminal .pv2-split-labels{display:none}
.pv3-terminal .pv2-split-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"part total" "amount amount" "method method" "tip tip";row-gap:8px;background:#fff;color:var(--pv3-ink);border-color:transparent}
.pv3-terminal .pv2-split-part{grid-area:part}.pv3-terminal .pv2-split-amount{grid-area:amount}.pv3-terminal .pv2-split-method{grid-area:method}.pv3-terminal .pv2-split-tip{grid-area:tip}.pv3-terminal .pv2-split-total{grid-area:total}
.pv3-terminal .pv2-split-row .pv2-tips button{border-color:#d8e1e9;background:#fff;color:var(--pv3-ink)}
.pv3-terminal .pv2-split-row .pv2-money{border-color:#d5dfe8;background:#f9fbfd}
.pv3-terminal .pv2-split-row .pv2-money>span{background:#f1f5f9;border-left-color:#e3eaf1}
.pv3-terminal .pv2-split-row .pv2-select{border-color:#d5dfe8;background-color:#fff}
.pv3-terminal .pv2-split-tipmode{background:#eef2f6}.pv3-terminal .pv2-split-tipmode button{color:#5d6f80}.pv3-terminal .pv2-split-tipmode button.is-active{background:#fff;color:var(--pv2-ink)}
.pv3-terminal .pv2-split-status.exact{background:rgba(124,224,162,.18);color:#7CE0A2}
.pv3-terminal .pv2-split-status.remaining{background:rgba(255,205,86,.18);color:#FFD166}
.pv3-terminal .pv2-split-status.over{background:rgba(255,142,132,.2);color:#FF8E84}
.pv3-terminal .pv2-split-summary{color:#fff}
/* états */
.pv3-term-empty{min-height:260px;padding:40px 24px;display:grid;justify-items:center;align-content:center;gap:8px;text-align:center}
.pv3-term-empty span{width:56px;height:56px;display:grid;place-items:center;border-radius:18px;background:rgba(255,255,255,.08);font-size:24px;margin-bottom:6px}
.pv3-term-empty b{font-size:16px}
.pv3-term-empty small{color:var(--pv3-mute-dark);font-size:12px}
.pv3-terminal .pos-readonly-notice{margin:18px;color:#fff}
.pv3-terminal .pos-amount-keypad{margin-top:10px}
.pv3-terminal .pv2-opt.pv3-pick-opt>span{border-style:dashed}

/* ---------- responsive ---------- */
@media(max-width:1180px){
  .pv3-layout{grid-template-columns:minmax(0,1fr) 360px}
  .pv3-layout .pv2-tables{grid-column:1/-1;position:static}
  .pv3-layout .pv2-table-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));max-height:none}
}
@media(max-width:820px){
  .pv3-layout{grid-template-columns:minmax(0,1fr)}
  .pv3-terminal{position:static}
  .pv3-terminal .pv2-step-amount .pv2-money{height:72px}
  .pv3-terminal .pv2-step-amount .pv2-money input{font-size:36px}
}

.pv3-terminal .pv2-reference-field{grid-template-columns:minmax(0,1fr);gap:6px}
.pv3-terminal .pv2-reference{justify-items:stretch}
.pv3-terminal .pv2-reference-toggle{width:100%}
.pv3-terminal .pv2-tip-mode button{font-size:11px}

.pv3-terminal .pv2-opts-method .pv2-opt>span b{white-space:nowrap;font-size:12px}

/* sélection partielle d'une ligne (quantité > 1) */
.pv3-pick-qty{display:none;align-items:center;gap:4px;height:32px;padding:0 4px;border-radius:9px;background:#fff;border:1px solid var(--pv2-blue)}
.pv3-pick-qty button{width:26px;height:24px;border:0;border-radius:7px;background:#EEF2F7;color:var(--pv2-ink);font-size:15px;font-weight:900;line-height:1;cursor:pointer}
.pv3-pick-qty b{min-width:34px;text-align:center;font-size:12px;font-weight:800;color:var(--pv2-ink)}
.pv3-pick-qty b span{color:var(--pv2-blue);font-size:14px}
.pv3-note.is-picking .pv3-line:not(.is-paid):has(.pv3-pick-qty){grid-template-columns:22px auto minmax(0,1fr) auto auto}
.pv3-note.is-picking .pv3-line:not(.is-paid) .pv3-pick-qty{display:inline-flex}
.pv3-note.is-picking .pv3-line:not(.is-paid):has(.pv3-pick-qty) .pv3-qty{display:none}

/* indication du PIN par défaut, sous le pavé */
.app-access-default-pin{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:#fff4d6;color:#7a5200;font-size:12px;font-weight:800;text-align:center}
.app-access-default-pin small{display:block;margin-top:2px;font-weight:600;color:#8a6a00}
.admin-auth-default-notice-below{margin:12px 0 4px;text-align:center}

/* Mode école */
.app-training-banner{position:sticky;top:0;z-index:5000;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;align-items:center;padding:8px 14px;background:repeating-linear-gradient(135deg,#ffb020 0 16px,#1a1a1a 16px 32px);color:#fff;font-weight:800;font-size:13px;text-shadow:0 1px 2px #000c}
.app-training-banner span{background:#1a1a1a;padding:4px 12px;border-radius:999px;letter-spacing:.1em;text-transform:uppercase;font-size:11px;text-shadow:none}
.app-training-banner a{color:#ffd48a;font-weight:900}
.ov2-order{position:relative}
.ov2-order.is-training::after{content:"ÉCOLE";position:absolute;top:10px;right:10px;padding:3px 8px;border-radius:999px;background:#ffb020;color:#1a1a1a;font-size:10px;font-weight:900;letter-spacing:.1em}

/* Fenêtre de confirmation caisse : bouton aperçu */
.pos-payment-success-view{display:block;width:100%;margin:0 0 10px;min-height:46px;border:1px solid #cbd6df;border-radius:14px;background:#fff;color:#142238;font:800 14px/1 inherit;cursor:pointer}

/* Application native (Capacitor) */
.native-app a[href^="billing.php"],.native-app a[href^="stripe-"]{display:none}
html.is-offline body::before{content:"Hors connexion · la caisse conserve les encaissements en attente · reconnexion automatique";position:fixed;left:0;right:0;top:0;z-index:6000;padding:8px 14px;text-align:center;background:#1a1a1a;color:#ffd48a;font:800 12px/1.3 system-ui,sans-serif;letter-spacing:.04em}

.pos-printer-settings{display:none}
.native-app .pos-printer-settings{display:inline-flex}
/* V129.180 · Commandes : choix de l'imprimante de la page quand deux imprimantes sont réglées dans l'application */
.orders-printer-choice{display:inline-flex;align-items:stretch;border:1px solid #dbe5ed;border-radius:10px;background:#fff;overflow:hidden}
.orders-printer-choice[hidden]{display:none}
.orders-toolbar-actions .orders-printer-choice button{min-height:36px;padding:0 10px;border:0;border-radius:0;background:transparent;color:#4b647a;font-size:9px;font-weight:900}
.orders-toolbar-actions .orders-printer-choice button+button{border-left:1px solid #dbe5ed}
.orders-toolbar-actions .orders-printer-choice button.is-active{background:#142238;color:#fff}
@media(max-width:680px){.orders-toolbar-actions .orders-printer-choice{width:100%}.orders-toolbar-actions .orders-printer-choice button{flex:1}}

/* V129.118 · Entre 961 et 1365 px (iPad en paysage, fenêtre réduite sur Mac), le menu ouvert se superpose à la page au lieu de la comprimer :
   les mises en page à colonnes (caisse à trois zones, commandes…) gardent la largeur calculée avec le rail. Un clic dans la page réduit le menu. */
@media(min-width:961px) and (max-width:1365px){
  body.app-unified-page.app-shell-menu-expanded{padding-left:var(--hg-shell-collapsed-width)!important}
  body.app-unified-page.app-shell-menu-expanded .app-shell-sidebar{box-shadow:26px 0 64px rgba(20,34,56,.24)!important}
}

/* V129.117 · ACCÈS PAR DÉFAUT (restaurant-settings.php) */
.access-default-card{display:grid;gap:18px}
.access-default-intro small{display:block;font-size:11px;font-weight:900;letter-spacing:.14em;color:#69798a}
.access-default-intro h2{margin:6px 0 8px}
.access-default-intro p{margin:0;color:#4a5866;line-height:1.5}
.access-default-state{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border:1px solid #e6ecf2;border-radius:16px;background:#f8fafc}
.access-default-state.warning{background:#fff7ed;border-color:#fed7aa}
.access-default-icon{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border:1px solid #e6ecf2;border-radius:12px;background:#fff;font-size:20px}
.access-default-state strong{display:block;margin-bottom:4px}
.access-default-state p{margin:0 0 12px;color:#4a5866;line-height:1.5}
.access-default-state form{margin:0}
.access-default-state .primary-action,.access-default-state .secondary-action{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:12px;font-weight:800;cursor:pointer;text-decoration:none}
.access-default-state .primary-action{border:0;background:#087cf0;color:#fff}
.access-default-state .secondary-action{border:1px solid #cbd6df;background:#fff;color:#142238}

/* V129.119 · CAISSE (pos.php) : ligne de note en cours de modification (⋯) sur téléphone.
   Le bouton ⋯ reste dans sa colonne ; les actions (quantité à retirer, − Quantité, Supprimer) sont
   positionnées sous la ligne, sur toute sa largeur, dans une réserve de 48 px ajoutée à la ligne ouverte. */
.pv3-line{position:relative}
.pv3-line:has(.pv3-tools[open]){padding-bottom:48px}
.pv3-tools[open]{position:static} /* le conteneur de positionnement redevient la ligne, pas le <details> */
.pv3-tools[open]>summary{background:#EEF2F7}
.pv3-tools[open]>.pos-item-remove-actions{position:absolute;left:6px;right:6px;bottom:8px;margin:0;flex-wrap:wrap;justify-content:flex-end;gap:6px}

/* V129.124 · CAISSE (pos.php) : panier du panneau « Nouvelle commande serveur » — plusieurs produits avant validation */
.pos-add-cart{position:sticky;bottom:0;margin:6px 15px 15px;padding:12px 14px 14px;border:1px solid #cfe0ee;border-radius:14px;background:#f5faff;box-shadow:0 -10px 30px rgba(15,28,46,.08)}
.pos-add-cart-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.pos-add-cart-head small{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--blue)}
.pos-add-cart-head b{font-size:13px;font-weight:800;color:var(--ink)}
.pos-add-cart-lines{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:190px;overflow:auto}
.pos-add-cart-lines li{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto 34px;align-items:center;gap:10px;padding:8px 10px;border:1px solid #dce5ec;border-radius:10px;background:#fff}
.pos-add-cart-lines li>b{min-width:34px;height:28px;display:grid;place-items:center;border-radius:8px;background:#eaf5ff;color:var(--blue);font-size:13px;font-weight:800}
.pos-add-cart-lines li>span{display:grid;gap:2px;min-width:0}
.pos-add-cart-lines li>span strong{font-size:14px;font-weight:800;line-height:1.25}
.pos-add-cart-lines li>span small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos-add-cart-lines li>em{font-style:normal;font-size:14px;font-weight:800;white-space:nowrap}
.pos-add-cart-lines li>button{width:34px;height:34px;border:1px solid #f0c9c5;border-radius:50%;background:#fff0ee;color:#c8473d;font-size:18px;font-weight:700;cursor:pointer}
.pos-add-cart>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px}
.pos-add-cart>footer div{display:grid;gap:2px}
.pos-add-cart>footer span{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--muted)}
.pos-add-cart>footer strong{font-size:20px;font-weight:800}
.pos-add-validate{min-height:48px;padding:0 20px;border:0;border-radius:12px;background:var(--red);color:#fff;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 12px 24px rgba(244,71,58,.25)}
.pos-add-validate:disabled{opacity:.6;cursor:default;box-shadow:none}
@media(max-width:700px){.pos-add-cart{margin:6px 10px 10px}.pos-add-cart>footer{flex-direction:column;align-items:stretch}.pos-add-validate{width:100%}}

/* V129.125 · CAISSE (pos.php) : article divers (montant libre) dans « Nouvelle commande serveur » */
.pos-add-custom-open{margin:4px 15px 12px;padding:12px 16px;display:flex;align-items:center;gap:12px;width:calc(100% - 30px);border:1px dashed #9ac7ee;border-radius:12px;background:#f5faff;color:var(--ink);text-align:left;cursor:pointer}
.pos-add-custom-open:hover{border-style:solid;background:#eaf5ff}
.pos-add-custom-open i{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-size:22px;font-style:normal}
.pos-add-custom-open span{display:grid;gap:2px}
.pos-add-custom-open b{font-size:15px;font-weight:800}
.pos-add-custom-open small{font-size:12px;color:var(--muted)}
.pos-add-custom{padding:18px 21px}
.pos-add-custom-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;margin-top:14px}
.pos-add-custom-fields label{margin:0;display:grid;gap:6px}
.pos-add-custom-fields label.is-wide{grid-column:1/-1}
.pos-add-custom-fields input,.pos-add-custom-fields select{height:46px;padding:0 12px;border:1px solid #cbd6df;border-radius:11px;background:#fff;font-size:15px;font-weight:600}
.pos-add-custom-kitchen{grid-column:1/-1;display:flex!important;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #e1e8ee;border-radius:11px;cursor:pointer}
.pos-add-custom-kitchen input{width:22px!important;height:22px!important;padding:0!important;margin:2px 0 0;flex:0 0 auto}
.pos-add-custom-kitchen span{display:grid;gap:2px}
.pos-add-custom-kitchen b{font-size:14px;font-weight:800}
.pos-add-custom-kitchen small{font-size:12px;color:var(--muted)}
.pos-add-custom>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px}
.pos-add-custom>footer div{display:grid;gap:2px}
.pos-add-custom>footer span{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--muted)}
.pos-add-custom>footer strong{font-size:20px;font-weight:800}
.pos-add-custom>footer button{min-height:48px;padding:0 20px;border:0;border-radius:12px;background:var(--blue);color:#fff;font-size:15px;font-weight:800;cursor:pointer}
@media(max-width:700px){.pos-add-custom-fields{grid-template-columns:1fr}.pos-add-custom-open{margin:4px 10px 10px;width:calc(100% - 20px)}.pos-add-custom>footer{flex-direction:column;align-items:stretch}}

/* V129.126 · CAISSE (pos.php) : choix « Commandes » / « Cuisine » avant validation d'une commande serveur */
.pos-add-cart-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.pos-add-cart-options label{margin:0;display:flex;align-items:flex-start;gap:10px;padding:9px 11px;border:1px solid #dce5ec;border-radius:11px;background:#fff;cursor:pointer}
.pos-add-cart-options input{width:22px!important;height:22px!important;margin:1px 0 0;padding:0!important;flex:0 0 auto;accent-color:var(--blue)}
.pos-add-cart-options span{display:grid;gap:2px;min-width:0}
.pos-add-cart-options b{font-size:13px;font-weight:800}
.pos-add-cart-options small{font-size:11px;color:var(--muted);line-height:1.3}
@media(max-width:700px){.pos-add-cart-options{grid-template-columns:1fr}.pos-add-cart-options>small{grid-column:1/-1}}

/* V129.127 · CAISSE (pos.php) : choix Commandes / Cuisine ligne par ligne dans le panier serveur */
.pos-add-line-flags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pos-add-line-flag{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 10px 0 6px;border-radius:999px;border:1px solid #cbd6df;background:#fff;color:#5d7081;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
.pos-add-line-flag i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:#e6ecf2;color:#5d7081;font-size:11px;font-style:normal;font-weight:900}
.pos-add-line-flag.is-on{border-color:var(--blue);background:#eaf5ff;color:#0b5cad}
.pos-add-line-flag.is-on i{background:var(--blue);color:#fff}
.pos-add-line-flag.is-off{text-decoration:line-through;text-decoration-color:#c8473d;text-decoration-thickness:2px}
.pos-add-cart-options{grid-template-columns:auto 1fr 1fr;align-items:center}
.pos-add-cart-options>small{font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--muted);white-space:nowrap}
@media(max-width:700px){.pos-add-cart-lines li{grid-template-columns:auto minmax(0,1fr) auto 34px}.pos-add-line-flags{grid-column:2/-1;justify-content:flex-start}}

/* ==============================================================
   V129.128 · MODE TÉLÉPHONE (≤ 680 px) : le smartphone du restaurateur est un complément.
   On garde les fonctions rapides (commandes, caisse, cuisine, saisie) et on retire les liens
   vers les autres pages — la barre « Menu » en haut suffit pour naviguer.
   V129.131 : le téléphone tenu en paysage (hauteur ≤ 500 px, écran tactile) suit les mêmes règles.
   ============================================================== */
@media (max-width:680px),((max-height:500px) and (hover:none)){
  /* Liens de page en page */
  body.app-unified-page .app-dashboard-button,
  body.app-unified-page .pos-head-links a:not(.pos-printer-settings),
  body.app-unified-page .orders-toolbar-actions a,
  body.app-unified-page .staff-order-head-link,
  body.app-unified-page .staff-order-pos-link,
  body.app-unified-page .room-plan-head-links,
  body.app-unified-page .builder-topbar a.preview{display:none!important}
  body.app-unified-page .pos-head-links{gap:8px}
  body.app-unified-page .orders-toolbar-actions{gap:8px}
  /* Tableau de bord : titre court, actions rapides, activité en direct ; pas de grille de liens ni de check-list */
  body.app-unified-page .dashboard-plan-chip,
  body.app-unified-page .dashboard-premium-hero-copy p,
  body.app-unified-page .dashboard-premium-hero-stats,
  body.app-unified-page .dashboard-premium-section:not(.dashboard-activity-section):not(.dashboard-ca){display:none!important} /* V129.180 : la vue CA reste visible sur téléphone et tablette */
  body.app-unified-page .dashboard-premium-hero{padding-bottom:18px}
  /* Caisse : ni statistiques de période, ni historique, ni clôture sur téléphone */
  body.app-unified-page .pv2-stats,
  body.app-unified-page .pv2-history,
  body.app-unified-page .pos-close-only{display:none!important}
  /* Commandes : le texte d'ambiance du bandeau est superflu, les compteurs restent */
  body.app-unified-page .ov2-hero-copy p{display:none!important}
}

/* V129.129 · CAISSE (pos.php) : glisser une ligne de la note vers la gauche (tactile) pour retirer / changer la quantité */
.pv3-line{touch-action:pan-y}
.pv3-line.is-swiping{transition:none;background:#fff5f4;border-color:#f0c9c5}
.pv3-line.is-swiping .pv3-tools>summary{background:#ffe6e2;border-color:#e8aaa3;color:#c8473d}
@media(hover:none) and (pointer:coarse){.pv3-tools>summary{position:relative}.pv3-note:not(.is-picking) .pv3-line:not(.is-paid):has(.pv3-tools:not([open])) .pv3-tools>summary::after{content:'';position:absolute;right:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:#c8473d}}

/* V129.131 · TÉLÉPHONE EN PAYSAGE (hauteur ≤ 500 px, tactile) : une seule colonne, barre Menu compacte */
@media (max-height:500px) and (hover:none){
  .app-shell-mobile-bar{height:calc(42px + env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .app-shell-mobile-toggle{min-height:32px;padding:0 10px}
  body.app-unified-page{padding-top:calc(42px + env(safe-area-inset-top))!important;padding-left:env(safe-area-inset-left)!important;padding-right:env(safe-area-inset-right)!important}
  body.app-unified-page.app-shell-menu-open{overflow:hidden!important}
  .pv3-layout{grid-template-columns:minmax(0,1fr)!important}
  .pv3-layout .pv2-tables{grid-column:auto;position:static}
  .pv3-terminal{position:static}
  .pv2-stats,.pv2-history,.pos-close-only{display:none!important}
  .dashboard-quick-grid{grid-template-columns:1fr 1fr}
}

/* V129.180 · Menu latéral sur téléphone : ne pas passer sous l'encoche / le haut-parleur (marges de sécurité iOS) */
@media(max-width:960px){
  .app-shell-sidebar{padding-top:max(20px,env(safe-area-inset-top))!important;padding-left:max(14px,env(safe-area-inset-left))!important;padding-bottom:max(16px,env(safe-area-inset-bottom))!important}
}

/* V129.180 · Téléphone : menu latéral lisible (textes plus grands, logo et carte du restaurant compacts, moins de défilement) */
@media(max-width:680px){
  .app-shell-sidebar{width:min(88vw,330px)!important}
  .app-shell-sidebar-top{min-height:52px}
  .app-shell-logo{width:112px!important;height:50px!important}
  .app-shell-mobile-close{top:4px;width:40px;height:40px}
  .app-shell-sidebar .app-shell-restaurant{margin:6px 2px 14px}
  .app-shell-sidebar .app-shell-restaurant.has-logo{padding:10px 12px!important;display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:0 12px!important}
  .app-shell-sidebar .app-shell-restaurant-logo{width:64px;height:56px;padding:4px}
  .app-shell-sidebar .app-shell-restaurant-logo img{max-height:46px}
  .app-shell-sidebar .app-shell-restaurant-copy{padding:0;gap:3px}
  .app-shell-restaurant small{font-size:9px}
  .app-shell-restaurant strong{font-size:15px;white-space:normal}
  .app-shell-restaurant span{font-size:11px}
  .app-shell-nav{gap:16px!important}
  .app-shell-nav-group{gap:3px}
  .app-shell-nav-group>small{margin:0 10px 4px;font-size:9px}
  .app-shell-nav a{min-height:46px;padding:6px 10px!important;grid-template-columns:36px minmax(0,1fr) auto!important;gap:10px!important;font-size:14px!important}
  .app-shell-nav a>span{width:36px;height:36px;border-radius:10px}
  .app-shell-nav svg{width:20px;height:20px}
  .app-shell-nav a>b,.app-shell-nav a>i{font-size:11px}
}
/* V129.180 · Application sur Mac (app iPad exécutée sur Mac) : la vue est agrandie par native-bridge.js (zoom selon la largeur de la fenêtre) */
html.native-mac{-webkit-text-size-adjust:100%}

/* V129.180 · Guide pas à pas Cuisine autonome / imprimante Epson (guide-cuisine-autonome.php) */
.guide-page .subpage-main{max-width:960px}
.guide-head-links{margin-left:auto}.guide-head-links a{color:#087cf0;font-size:12px;font-weight:800}
.guide-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.guide-status{margin:0;padding:12px 14px;border-radius:12px;background:#f3f7fa;color:#4b647a;font-size:12px;line-height:1.5}
.guide-ok{color:#1f7a42;font-weight:800}.guide-off{color:#a32020;font-weight:800}
.guide-steps{display:grid;gap:12px}
.guide-step{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;padding:18px 20px;border:1px solid #e6ecf2;border-radius:16px;background:#fff}
.guide-step>b{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#142238;color:#fff;font-size:17px;font-weight:900}
.guide-step-warn>b{background:#f4473a}.guide-step-optional>b{background:#eaf3ff;color:#087cf0}
.guide-step h3{margin:6px 0 8px;color:#142238;font-size:16px}
.guide-step p,.guide-step li{margin:0 0 8px;color:#4b647a;font-size:13px;line-height:1.55}
.guide-step ul{margin:0 0 8px;padding-left:18px}
.guide-step code{padding:2px 6px;border-radius:6px;background:#f0f5f9;color:#142238;font-size:12px}
.guide-step em{color:#142238;font-style:normal;font-weight:700}
.guide-tip{padding:10px 12px;border-left:3px solid #087cf0;border-radius:0 10px 10px 0;background:#f3f8fe}
.guide-url{display:block;margin:0 0 10px;padding:10px 12px;border:1px solid #e6ecf2;border-radius:10px;background:#fff;word-break:break-all;user-select:all;font-size:12px}
.guide-button{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:12px;background:#087cf0;color:#fff;font-size:13px;font-weight:800}
.guide-faq details{padding:12px 14px;border:1px solid #e6ecf2;border-radius:12px;background:#fff}
.guide-faq details+details{margin-top:8px}
.guide-faq summary{cursor:pointer;color:#142238;font-size:13px;font-weight:800}
.guide-faq p{margin:8px 0 0;color:#4b647a;font-size:12px;line-height:1.55}
@media(max-width:680px){.guide-step{grid-template-columns:36px minmax(0,1fr);gap:12px;padding:14px}.guide-step>b{width:36px;height:36px;font-size:14px;border-radius:10px}.guide-head-links{display:none}}
/* V129.180 · Guide Cuisine autonome : photos et captures d'écran */
.guide-figure{margin:12px 0 4px;display:grid;gap:6px}
.guide-figure img{display:block;width:100%;max-width:640px;height:auto;border:1px solid #e6ecf2;border-radius:12px;background:#fff;box-shadow:0 10px 30px rgba(20,34,56,.08)}
.guide-figure figcaption{color:#69798a;font-size:11px;line-height:1.45}
.guide-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0 4px}
.guide-figures .guide-figure{margin:0}
.guide-figure.is-portrait img{max-width:320px}

/* V129.180 · Terminal de paiement Stripe (Caisse) */
.pos-terminal-modal{position:fixed;inset:0;z-index:6000;display:grid;place-items:center;padding:20px;background:rgba(10,20,33,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.pos-terminal-modal[hidden]{display:none}
.pos-terminal-card{width:min(440px,100%);padding:26px 24px 20px;border-radius:22px;background:#fff;color:#142238;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.35);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.pos-terminal-card>small{display:block;color:#69798a;font-size:11px;font-weight:800;letter-spacing:.12em}
.pos-terminal-card h2{margin:6px 0 4px;font-size:22px}
.pos-terminal-reader{margin:0 0 14px;color:#69798a;font-size:13px}
.pos-terminal-amount{display:block;margin:0 0 16px;font-size:40px;font-weight:900;letter-spacing:-.02em}
.pos-terminal-status{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 14px;border-radius:14px;background:#f3f7fa;color:#142238;font-size:14px;font-weight:700}
.pos-terminal-status i{width:12px;height:12px;border-radius:50%;background:#087cf0;animation:posTerminalPulse 1s ease-in-out infinite}
.pos-terminal-status[data-kind="ok"]{background:#eaf7ed;color:#1f7a42}.pos-terminal-status[data-kind="ok"] i{background:#1f7a42;animation:none}
.pos-terminal-status[data-kind="warn"]{background:#fff7ed;color:#a86427}.pos-terminal-status[data-kind="warn"] i{background:#f0a13a;animation:none}
.pos-terminal-status[data-kind="error"]{background:#fff0ee;color:#a32020}.pos-terminal-status[data-kind="error"] i{background:#f4473a;animation:none}
@keyframes posTerminalPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}
.pos-terminal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}
.pos-terminal-actions button{min-height:46px;padding:0 18px;border:1px solid #cbd6df;border-radius:12px;background:#fff;color:#142238;font:800 14px/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}
.pos-terminal-actions button[hidden]{display:none}
.pos-terminal-simulate{border-color:#087cf0!important;color:#087cf0!important}
.pos-terminal-close{border:0!important;background:#087cf0!important;color:#fff!important}
/* Mon restaurant · Terminal de paiement */
.terminal-reader-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:10px}
.terminal-reader-form label{display:grid;gap:4px;font-size:11px;font-weight:800;letter-spacing:.06em;color:#69798a}
.terminal-reader-form input{height:42px;padding:0 12px;border:1px solid #cbd6df;border-radius:10px;font:600 14px system-ui,sans-serif}
@media(max-width:680px){.terminal-reader-form{grid-template-columns:1fr}}
/* V129.180 · Mon restaurant : colonne de droite des cartes à plusieurs états (Cuisine autonome + imprimante Epson alignées) */
.access-default-states{display:grid;gap:12px;align-content:start;min-width:0}
/* V129.180 · Commandes sur iPad (paysage) : cartes qui se chevauchaient — la hauteur des lignes de la grille était mal calculée par WebKit iOS.
   Disposition en lignes souples (flex) : même rendu, chaque ligne prend la hauteur de sa carte la plus haute. */
.ov2-stream:not(.ov2-stream-requests) .ov2-list{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}
.ov2-stream:not(.ov2-stream-requests) .ov2-list>.ov2-order{flex:1 1 300px;min-width:0;max-width:100%}
.ov2-stream:not(.ov2-stream-requests) .ov2-list>.ov2-empty{flex:1 1 100%}
@media(min-width:1180px){.ov2-stream:not(.ov2-stream-requests) .ov2-list>.ov2-order{flex-basis:320px}}
@media(max-width:680px){.ov2-stream:not(.ov2-stream-requests) .ov2-list>.ov2-order{flex-basis:100%}}

/* V129.180 · Lisibilité sur ordinateur : l'interface est dessinée pour l'iPad (textes 9–12 px). Sur un écran avec souris et fenêtre
   large, la page entière est agrandie (comme l'app sur Mac), progressivement selon la largeur. Tablettes et téléphones inchangés. */
@media (min-width:1280px) and (hover:hover) and (pointer:fine){
  html:not(.native-mac):not(:has(body.menu-builder-page)){zoom:1.1}
  html:has(body.menu-builder-page){zoom:1}
  .app-shell-sidebar{height:auto}
}
@media (min-width:1440px) and (hover:hover) and (pointer:fine){html:not(.native-mac):not(:has(body.menu-builder-page)){zoom:1.2}}
@media (min-width:1600px) and (hover:hover) and (pointer:fine){html:not(.native-mac):not(:has(body.menu-builder-page)){zoom:1.35}}
@media (min-width:1800px) and (hover:hover) and (pointer:fine){html:not(.native-mac):not(:has(body.menu-builder-page)){zoom:1.5}html:has(body.menu-builder-page){zoom:1.1}}
@media (min-width:2100px) and (hover:hover) and (pointer:fine){html:not(.native-mac):not(:has(body.menu-builder-page)){zoom:1.6}}
/* Connexion et inscription : pages dessinées à taille réelle (titres 40 px, champs 56 px), elles ne sont pas agrandies,
   sinon la carte dépasse l'écran sur un grand moniteur (Safari centre alors une zone plus haute que la fenêtre et coupe le bas). */
@media (min-width:1280px) and (hover:hover) and (pointer:fine){html:not(.native-mac):has(body.auth-login),html:not(.native-mac):has(body.auth-register){zoom:1}}
@media (min-width:1800px) and (min-height:1080px) and (hover:hover) and (pointer:fine){html:not(.native-mac):has(body.auth-login),html:not(.native-mac):has(body.auth-register){zoom:1.15}}

/* V129.180 · Nouvelle commande serveur : quantité sans clavier (− / +, raccourcis 1 à 6) */
.pos-add-fields{grid-template-columns:auto minmax(0,1fr)!important}
.pos-add-field-qty{min-width:0}
.pos-qty{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px}
.pos-qty input{width:56px!important;height:43px;margin:0!important;padding:0!important;text-align:center;font-size:18px!important;font-weight:900;border:1px solid #cbd6df;border-radius:10px;background:#fff;-moz-appearance:textfield;appearance:textfield}
.pos-qty input::-webkit-outer-spin-button,.pos-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pos-qty-btn{width:44px;height:43px;border:1px solid #cbd6df;border-radius:10px;background:#f3f7fa;color:#142238;font:900 20px/1 system-ui,-apple-system,sans-serif;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pos-qty-btn:active{background:#e3ecf4}
.pos-qty-quick{display:flex;gap:4px;flex-wrap:wrap}
.pos-qty-quick button{min-width:34px;height:34px;padding:0 8px;border:1px solid #dbe5ed;border-radius:9px;background:#fff;color:#4b647a;font:800 13px/1 system-ui,-apple-system,sans-serif;cursor:pointer}
.pos-qty-quick button.is-on{border-color:#087cf0;background:#087cf0;color:#fff}
.pos-add-line-qty{display:inline-flex!important;align-items:center;gap:2px;min-width:0!important;height:auto!important;padding:2px;background:#eaf5ff}
.pos-add-line-qty i{min-width:34px;text-align:center;font-style:normal;font-weight:800;color:var(--blue)}
.pos-add-line-qty button{width:28px;height:28px;border:0;border-radius:7px;background:#fff;color:#142238;font:900 16px/1 system-ui,-apple-system,sans-serif;cursor:pointer}
@media(max-width:520px){.pos-add-fields{grid-template-columns:minmax(0,1fr)!important}}
/* V129.180 · Inscription : champ piège invisible pour les robots (jamais rempli par un humain) */
.auth-register-hp{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}
/* V129.180 · Administration : suppression d'un compte, comptes non confirmés */
.admin-user-meta i.admin-unverified{padding:4px 8px;border-radius:999px;background:#fff7ed;color:#a86427;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.06em}
.admin-user-meta i.admin-origin{color:#8695a2;font-size:9px;font-style:normal}
.admin-user-meta .admin-delete-form button{padding:8px 11px!important;border:1px solid #f3b2ab!important;border-radius:9px!important;background:#fff0ee!important;color:#b53e35!important;box-shadow:none!important;font-size:10px;font-weight:900;cursor:pointer}
.admin-purge{margin:0 0 14px;padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border:1px solid #fed7aa;border-radius:12px;background:#fff7ed;color:#7a4b12;font-size:12px}
.admin-purge button{padding:9px 13px;border:0;border-radius:9px;background:#a86427;color:#fff;font-size:11px;font-weight:900;cursor:pointer}
/* V129.180 · Administration : clôture / archive / compte de test */
.admin-user-meta i.admin-archived{padding:4px 8px;border-radius:999px;background:#eef3f7;color:#4b647a;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.06em}
.admin-user-meta i.admin-test{padding:4px 8px;border-radius:999px;background:#eaf3ff;color:#1769aa;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.06em}
.admin-user-meta i.admin-real{padding:4px 8px;border-radius:999px;background:#eaf7ed;color:#1f7a42;font-size:9px;font-style:normal;font-weight:900}
.admin-user-meta .admin-inline-form button{padding:8px 10px!important;border:1px solid #dbe5ed!important;border-radius:9px!important;background:#fff!important;color:#4b647a!important;box-shadow:none!important;font-size:10px;font-weight:900;cursor:pointer}
.admin-user-meta .admin-close-form button{padding:8px 11px!important;border:1px solid #cbd6df!important;border-radius:9px!important;background:#142238!important;color:#fff!important;box-shadow:none!important;font-size:10px;font-weight:900;cursor:pointer}
.admin-user-meta .admin-keep{color:#8695a2;font-size:9px;font-weight:800;cursor:help}
/* V129.180 · Administration : en-tête de compte — identité sur toute la largeur, actions en dessous (plus de nom ni d'e-mail tronqués) */
.admin-page .admin-user-top{flex-direction:column!important;align-items:stretch!important;gap:12px!important}
.admin-page .admin-user-identity{min-width:0}
.admin-page .admin-user-identity div{min-width:0}
.admin-page .admin-user-identity h3,.admin-page .admin-user-identity p,.admin-page .admin-user-identity strong{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:break-word}
.admin-page .admin-user-meta{max-width:none!important;justify-content:flex-start!important;gap:8px!important}
.admin-page .admin-user-meta>span:first-child{margin-right:auto}
/* V129.180 · Administration : interrupteur « Compte actif » sur une ligne (la règle générale label{flex-direction:column} l'empilait) */
.admin-page .admin-user .access-status .account-switch{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:12px!important;height:50px!important;min-height:0!important;margin:0!important;padding:0 5px!important;overflow:hidden}
.admin-page .admin-user .access-status .account-switch span{width:44px!important;height:24px!important;flex:0 0 44px!important;padding:3px!important;display:block!important}
.admin-page .admin-user .access-status .account-switch b{display:inline!important;font-size:13px!important;white-space:nowrap}

/* V129.180 · « Créer ma carte » (menu-admin) a sa propre typographie, déjà grande : pas d'agrandissement en dessous de 1800 px, 1,1 au-delà */
/* V129.180 · Bandeau « Mise à jour disponible » (application native) */
.hg-update-banner{position:fixed;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:6500;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;background:#142238;color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.35);font:600 13px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif}
.hg-update-banner>span{flex:1 1 220px;min-width:0;display:grid;gap:2px}
.hg-update-banner b{font-size:14px}.hg-update-banner small{color:#b7c6d8;font-size:12px}
.hg-update-banner button{min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.28);border-radius:11px;background:transparent;color:#fff;font:800 13px/1 system-ui,-apple-system,sans-serif;cursor:pointer}
.hg-update-banner button.is-primary{border:0;background:#087cf0}
@media(min-width:700px){.hg-update-banner{left:auto;right:20px;width:min(460px,calc(100vw - 40px))}}

/* V129.180 · Cadre légal : liens de pied de page, case d'acceptation des conditions à l'inscription, mention CGV dans Abonnement. */
.auth-legal-links{margin:14px 0 0;text-align:center;font-size:12px;color:#7a8794;line-height:1.7}.auth-legal-links a{color:#5b6b7a;text-decoration:none;border-bottom:1px solid #d5dee6}.auth-legal-links a:hover{color:#1B1E26;border-color:#1B1E26}
.auth-register-terms{grid-column:1/-1;margin:18px 0 0}.auth-register-terms input{flex:none;width:18px;height:18px;accent-color:#1B1E26}.auth-register-terms span{display:flex;flex-direction:column;gap:2px}.auth-register-terms b{font-size:13px;line-height:1.4}.auth-register-terms small{font-size:12px;color:#66727f;line-height:1.4}.auth-register-terms a{color:inherit}
.app-shell-legal{margin:8px 0 0;padding:0 4px;font-size:10.5px;line-height:1.6;color:rgba(255,255,255,.45)}.app-shell-legal a{color:inherit;text-decoration:none}.app-shell-legal a:hover{color:#fff}
.billing-legal{margin:14px 0 0;font-size:13px;line-height:1.6;color:#66727f}.billing-legal a{color:inherit}

/* V129.180 · Mode dégradé : encaissements en attente de réseau (caisse), saisie différée. */
.pos-pending{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:6500;width:min(560px,calc(100% - 32px));display:grid;gap:10px;padding:14px 16px;border-radius:16px;background:#1B1E26;color:#F4F1EA;box-shadow:0 14px 36px rgba(20,22,28,.35);font:500 13px/1.45 system-ui,sans-serif}.pos-pending[hidden]{display:none}
.pos-pending b{font-size:14px}.pos-pending small{color:#c9ccd6}.pos-pending-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.07)}.pos-pending-row span{display:grid;gap:2px}.pos-pending-row button{flex:none;border:0;border-radius:999px;padding:8px 12px;background:transparent;color:#ffd48a;font:700 12px system-ui,sans-serif;cursor:pointer;border:1px solid rgba(255,212,138,.5)}.pos-pending-row.is-done{background:rgba(64,180,110,.22)}
.pos-pending-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ffd48a;margin-right:6px;animation:posPendingBlink 1.2s infinite}@keyframes posPendingBlink{50%{opacity:.25}}
.pv2-deferred{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:#4b5563}.pv2-deferred input[type=time]{padding:6px 8px;border:1px solid #dce6ef;border-radius:8px;font:inherit}
.pv2-pay.is-offline-hint::after{content:" · hors connexion"}

/* V129.180 · Aide & support (aide.php) */
.aide-intro{display:grid;gap:14px}.aide-intro h2{margin:6px 0 4px;font-size:22px;line-height:1.2}.aide-intro p{margin:0;color:#5b6b7a;font-size:14px}
.aide-search{display:flex;align-items:center;gap:10px;padding:0 14px;min-height:48px;border:1px solid #dce6ef;border-radius:14px;background:#f7fafc}.aide-search span{color:#7a8794;font-size:18px}.aide-search input{flex:1;border:0;background:transparent;font:inherit;font-size:15px;outline:none;min-width:0}
.aide-nav{display:flex;flex-wrap:wrap;gap:8px}.aide-nav a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid #dce6ef;border-radius:999px;background:#fff;color:#1B1E26;font-size:13px;font-weight:700;text-decoration:none}.aide-nav a:hover{border-color:#087cf0;color:#087cf0}.aide-nav a i{font-style:normal}
.aide-section{scroll-margin-top:90px}.aide-section-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.aide-section-head span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eef4fa;font-size:18px}.aide-section-head h2{margin:0;font-size:20px}
.aide-item{border-top:1px solid #edf1f5}.aide-item:first-of-type{border-top:0}.aide-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 4px;font-weight:700;font-size:15px}.aide-item summary::-webkit-details-marker{display:none}.aide-item summary::after{content:"＋";color:#7a8794;font-weight:500}.aide-item[open] summary::after{content:"－"}.aide-item div{padding:0 4px 14px}.aide-item p{margin:0;font-size:14px;line-height:1.6;color:#2B2F38}.aide-item a{color:#087cf0}
.aide-support-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:start}.aide-support-grid>div>p{margin:0 0 12px;font-size:14px;line-height:1.6;color:#2B2F38}.aide-diag{display:grid;gap:8px;padding:14px;border-radius:14px;background:#f7fafc;border:1px solid #e6ecf2}.aide-diag small{font-weight:800;color:#7a8794;letter-spacing:.06em;font-size:10px}.aide-diag pre{margin:0;white-space:pre-wrap;font:12px/1.5 "IBM Plex Mono",ui-monospace,monospace;color:#2B2F38}.aide-diag button{justify-self:start}
@media(max-width:760px){.aide-support-grid{grid-template-columns:1fr}}
.aide-page .settings-card{grid-template-columns:1fr;gap:14px}.aide-page .aide-intro{gap:14px}
.aide-copy{justify-self:start;border:1px solid #cfd8e3;border-radius:10px;padding:8px 12px;background:#fff;color:#1B1E26;font:700 12px/1 inherit;cursor:pointer}.aide-copy:hover{border-color:#087cf0;color:#087cf0}

/* V129.180 · Bandeau d'essai (compte administrateur, formule payante sans abonnement) */
.app-trial-banner{position:sticky;top:0;z-index:4900;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;align-items:center;padding:8px 14px;background:#eaf3fd;color:#0b3d6e;font-weight:600;font-size:13px;border-bottom:1px solid #cfe1f5}.app-trial-banner span{font-weight:900;letter-spacing:.04em;text-transform:uppercase;font-size:11px}.app-trial-banner a{color:#087cf0;font-weight:900}
.app-trial-banner.is-soon{background:#fff4e0;color:#7a4b00;border-color:#ffd48a}.app-trial-banner.is-soon a{color:#b26a00}
.app-trial-banner.is-over{background:#1B1E26;color:#F4F1EA;border-color:#1B1E26}.app-trial-banner.is-over a{color:#ffd48a}

/* V129.180 · Tableau de bord : vue chiffre d'affaires (CA du jour + courbe 30 jours) */
.dashboard-ca-section header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.dashboard-ca-section header h2{font-variant-numeric:tabular-nums}.dashboard-ca-section header p b{font-weight:900;padding:2px 7px;border-radius:999px}.dashboard-ca-section header p b.is-up{color:#146c3a;background:#e3f6ea}.dashboard-ca-section header p b.is-down{color:#a12525;background:#fdeaea}
.dashboard-ca-link{align-self:center;white-space:nowrap;font-weight:800;font-size:13px;color:#087cf0;text-decoration:none}
.dashboard-ca-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.dashboard-ca-kpis span{display:grid;gap:2px;padding:12px 14px;border:1px solid #e6ecf2;border-radius:14px;background:#f8fafc}.dashboard-ca-kpis small{font-size:10px;font-weight:800;letter-spacing:.06em;color:#69798a}.dashboard-ca-kpis strong{font-size:19px;font-variant-numeric:tabular-nums;color:#142238}.dashboard-ca-kpis em{font-style:normal;font-size:11px;color:#69798a}
.dashboard-ca-chart{margin:16px 0 0;position:relative}.dashboard-ca-chart svg{display:block;width:100%;height:190px}.dashboard-ca-chart .ca-grid{stroke:#e6ecf2;stroke-width:1;vector-effect:non-scaling-stroke}.dashboard-ca-chart .ca-area{fill:url(#caGradient);fill:rgba(8,124,240,.10)}.dashboard-ca-chart .ca-line{fill:none;stroke:#087cf0;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.dashboard-ca-chart .ca-dot{fill:#fff;stroke:#087cf0;stroke-width:2;vector-effect:non-scaling-stroke}.dashboard-ca-chart .ca-dot.is-today{fill:#087cf0}
.dashboard-ca-chart figcaption{position:relative;height:18px;margin-top:6px;font-size:11px;color:#69798a}.dashboard-ca-chart figcaption span{position:absolute;transform:translateX(-50%);white-space:nowrap}.dashboard-ca-chart figcaption span:last-child{transform:translateX(-100%);font-weight:800;color:#087cf0}
.dashboard-ca-scale,.dashboard-ca-empty{margin:10px 0 0;font-size:12px;color:#69798a}
@media(max-width:760px){.dashboard-ca-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-ca-chart svg{height:150px}.dashboard-ca-chart figcaption span:nth-child(even){display:none}}

/* V129.180 · Vue CA sur téléphone / tablette : compacte, chiffres lisibles, courbe pleine largeur */
@media(max-width:1024px){.dashboard-ca-section{padding:16px}.dashboard-ca-section header h2{font-size:22px}.dashboard-ca-section header p{font-size:12px}.dashboard-ca-kpis{margin-top:10px;gap:8px}.dashboard-ca-kpis span{padding:10px 12px}.dashboard-ca-kpis strong{font-size:17px}.dashboard-ca-chart svg{height:160px}}
@media(max-width:600px){.dashboard-ca-section header h2{font-size:20px}.dashboard-ca-link{font-size:12px}.dashboard-ca-chart svg{height:130px}.dashboard-ca-chart figcaption span:nth-child(even){display:none}}

/* V129.180 · Tableau de bord : carte « Chiffre d'affaires » (accueil, tous écrans) */
.dashboard-ca{position:relative;overflow:hidden;margin-top:18px;padding:26px 28px 22px;border-radius:26px;color:#fff;background:linear-gradient(135deg,#0f1f36 0%,#16304d 55%,#1f4a6e 100%);border:1px solid rgba(255,255,255,.10);box-shadow:0 22px 55px rgba(15,33,58,.18)}
.dashboard-ca-glow{position:absolute;right:-120px;top:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,rgba(95,180,255,.32),rgba(95,180,255,0));pointer-events:none}
.dashboard-ca-top{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px 32px;align-items:end}
.dashboard-ca-today small{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;color:#9cc4ec}.dashboard-ca-today strong{display:block;margin-top:8px;font-size:clamp(40px,5vw,58px);line-height:1;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.dashboard-ca-today strong i{font-style:normal;font-size:.5em;margin-left:6px;color:#9cc4ec;font-weight:700;vertical-align:.35em}
.dashboard-ca-meta{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:13px;color:#c9dcee;flex-wrap:wrap}
.dashboard-ca-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.02em}.dashboard-ca-pill.is-up{background:rgba(64,200,120,.18);color:#7ff0a8;border:1px solid rgba(64,200,120,.35)}.dashboard-ca-pill.is-down{background:rgba(255,110,110,.16);color:#ffb0b0;border:1px solid rgba(255,110,110,.35)}
.dashboard-ca-kpis{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.dashboard-ca-kpis div{display:grid;gap:3px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px)}.dashboard-ca-kpis small{font-size:9.5px;font-weight:800;letter-spacing:.1em;color:#9cc4ec}.dashboard-ca-kpis strong{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.dashboard-ca-kpis em{font-style:normal;font-size:11px;color:#a9bfd6}
.dashboard-ca-chart{position:relative;margin-top:22px}.dashboard-ca-chart-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:800;letter-spacing:.1em;color:#9cc4ec;margin-bottom:8px}.dashboard-ca-chart-head a{color:#ffd48a;letter-spacing:0;font-size:12px;text-decoration:none}
.dashboard-ca-chart svg{display:block;width:100%;height:200px;touch-action:pan-y}.dashboard-ca-chart .ca-grid{stroke:rgba(255,255,255,.09);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:3 5}.dashboard-ca-chart .ca-area{fill:url(#caFill)}.dashboard-ca-chart .ca-line{fill:none;stroke:url(#caStroke);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 6px 10px rgba(95,180,255,.35))}
.dashboard-ca-chart .ca-today{fill:#ffd48a;stroke:#0f1f36;stroke-width:2.5;vector-effect:non-scaling-stroke}.dashboard-ca-chart .ca-today-halo{fill:rgba(255,212,138,.25);animation:caHalo 2.2s ease-out infinite}@keyframes caHalo{0%{r:6;opacity:.9}100%{r:16;opacity:0}}
.dashboard-ca-chart .ca-cursor{stroke:rgba(255,255,255,.45);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:4 4}.dashboard-ca-chart .ca-focus{fill:#fff;stroke:#5fb4ff;stroke-width:3;vector-effect:non-scaling-stroke}
.dashboard-ca-tip{position:absolute;top:34px;transform:translateX(-50%);display:grid;justify-items:center;gap:2px;padding:8px 12px;border-radius:12px;background:#fff;color:#142238;box-shadow:0 10px 26px rgba(0,0,0,.28);pointer-events:none;white-space:nowrap;z-index:2}.dashboard-ca-tip b{font-size:15px;font-variant-numeric:tabular-nums}.dashboard-ca-tip span{font-size:11px;color:#69798a}.dashboard-ca-tip::after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.dashboard-ca-axis{position:relative;height:16px;margin-top:8px;font-size:11px;color:#9cc4ec}.dashboard-ca-axis span{position:absolute;transform:translateX(-50%);white-space:nowrap}.dashboard-ca-axis span.is-today{transform:translateX(-100%);color:#ffd48a;font-weight:800}
.dashboard-ca-empty{position:relative;margin:18px 0 0;font-size:13px;color:#c9dcee}
@media(prefers-reduced-motion:reduce){.dashboard-ca-chart .ca-today-halo{animation:none}}
@media(max-width:1024px){.dashboard-ca{padding:20px 20px 18px}.dashboard-ca-top{grid-template-columns:1fr;gap:16px;align-items:start}.dashboard-ca-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:680px){.dashboard-ca{margin-top:12px;padding:18px 16px 16px;border-radius:22px}.dashboard-ca-today strong{font-size:40px}.dashboard-ca-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dashboard-ca-kpis div{padding:10px 12px}.dashboard-ca-kpis strong{font-size:16px}.dashboard-ca-chart svg{height:150px}.dashboard-ca-axis span:nth-child(even){display:none}.dashboard-ca-chart-head a{display:none}}
.dashboard-ca-tip[hidden]{display:none}.dashboard-ca-chart .ca-cursor[hidden],.dashboard-ca-chart .ca-focus[hidden]{display:none}
body .dashboard-ca .dashboard-ca-kpis strong,body .dashboard-ca .dashboard-ca-today strong{color:#fff}body .dashboard-ca .dashboard-ca-kpis em{color:#a9bfd6}

/* V129.180 · Page Abonnement dans l'application (lecture seule) */
.billing-native-note{margin-top:4px;padding:22px 24px;border:1px solid #cfe1f2;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(20,34,56,.05)}.billing-native-note h2{margin:0 0 8px;font-size:19px}.billing-native-note p{margin:0 0 10px;font-size:14px;line-height:1.6;color:#33475b}.billing-native-url{display:inline-block;padding:8px 14px;border-radius:999px;background:#eef4fa;color:#142238;font-weight:800;font-size:15px!important;letter-spacing:.01em;user-select:all}.billing-native-hint{font-size:12px!important;color:#69798a!important;margin:0!important}
/* V129.180 · Application : les trois formules en lecture seule, formule actuelle mise en avant */
.billing-native-grid{margin-bottom:18px}.billing-native-grid .pricing-card h2{font-size:24px}.billing-native-grid .pricing-card.is-current{border:2px solid #087cf0;box-shadow:0 14px 34px rgba(8,124,240,.14)}.billing-native-grid .pricing-card:not(.is-current){opacity:.82}.billing-native-grid .pricing-card .current-plan{margin-top:auto}

/* V129.217 · Adresses NFC des tables */
.nfc-page .settings-card{grid-template-columns:1fr;gap:14px}.nfc-intro h2{margin:6px 0 4px;font-size:20px}.nfc-intro p{margin:0 0 8px;font-size:14px;line-height:1.6;color:#33475b}.nfc-warn{padding:10px 12px;border-left:3px solid #ffb020;border-radius:0 10px 10px 0;background:#fff8ea}.nfc-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.nfc-rows{list-style:none;margin:0;padding:0;display:grid;gap:10px}.nfc-rows li{display:grid;gap:6px;padding:12px 14px;border:1px solid #e6ecf2;border-radius:14px;background:#f8fafc}.nfc-rows li.is-inactive{opacity:.6}.nfc-row-head{display:flex;align-items:center;gap:10px;font-size:15px}.nfc-row-head span{font-size:11px;font-weight:800;color:#7a8794;letter-spacing:.06em;text-transform:uppercase}
.nfc-row-url{display:flex;gap:8px;align-items:center}.nfc-row-url input{flex:1;min-width:0;padding:9px 10px;border:1px solid #dce6ef;border-radius:10px;background:#fff;font:12.5px/1.3 "IBM Plex Mono",ui-monospace,monospace;color:#142238}

/* V129.187 · ENVOI PAR SUITES (page Commandes) */
.ov2-pill.is-kitchen.k-held{background:#efe9ff;color:#4b2fb0}
.ov2-pill.is-course{background:#14223a;color:#fff}
.ov2-order.is-held{border-style:dashed}
.ov2 .ov2-order-foot .ov2-course{flex:1 1 100%;display:grid;gap:8px}
.ov2 .ov2-course form{flex:none}
.ov2 .ov2-course-label{color:var(--ov2-mut);font-size:12px;font-weight:800}
.ov2 .ov2-course-delays{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:6px}
.ov2 .ov2-course-delays button{min-height:46px;padding:0 10px;border:1px solid #d5dfe8;border-radius:13px;background:#fff;color:var(--ov2-ink);font-size:13px;font-weight:900;cursor:pointer}
.ov2 .ov2-course-delays button.is-default{border-color:var(--ov2-blue);background:var(--ov2-blue);color:#fff}
.ov2 .ov2-course-delays button:disabled{opacity:.6;cursor:wait}
.ov2 .ov2-course-cancel{min-height:44px;padding:0 12px;border:0;background:none;color:var(--ov2-mut);font-size:12px;font-weight:800;text-decoration:underline;cursor:pointer}
.ov2 .ov2-order-foot>form:has(.ov2-course-cancel){flex:0 0 auto}
/* V129.188 · Suite : rappel sur la commande des entrées */
.ov2 .ov2-course-hint{flex:1 1 100%;margin:0;padding:8px 10px;border-radius:10px;background:#efe9ff;color:#4b2fb0;font-size:12px;font-weight:800}

/* V129.217 · Chiffre d'affaires masqué par défaut (œil pour afficher) */
.dashboard-ca-eye{position:absolute;top:18px;right:18px;z-index:2;display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff;font:700 12px/1 inherit;cursor:pointer;backdrop-filter:blur(6px)}.dashboard-ca-eye:hover{background:rgba(255,255,255,.18)}.dashboard-ca-eye svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dashboard-ca-eye .eye-open{display:none}.dashboard-ca-eye[aria-pressed="true"] .eye-open{display:block}.dashboard-ca-eye[aria-pressed="true"] .eye-closed{display:none}
.dashboard-ca.is-masked .dashboard-ca-pill{visibility:hidden}.dashboard-ca.is-masked .dashboard-ca-kpis em{visibility:hidden}.dashboard-ca.is-masked .dashboard-ca-chart svg{filter:blur(10px);opacity:.55;pointer-events:none}.dashboard-ca.is-masked .dashboard-ca-chart-head span::after{content:" · masqué"}.dashboard-ca.is-masked .ca-amount{letter-spacing:.08em}
.hg-masked-stat{cursor:pointer}.hg-masked-stat.is-masked strong{letter-spacing:.08em}
@media(max-width:680px){.dashboard-ca-eye{top:12px;right:12px;padding:7px 10px}.dashboard-ca-eye span{display:none}}
.dashboard-ca-kpis .ca-amount,.dashboard-premium-hero-stats .ca-amount,.dashboard-ca-meta .ca-amount{display:inline;padding:0;margin:0;border:0;background:none;border-radius:0;box-shadow:none;backdrop-filter:none;grid-template-columns:none}
/* V129.217 · remasquage automatique après 10 s : anneau qui se vide sur le bouton œil */
.dashboard-ca-eye{overflow:hidden}.dashboard-ca-eye::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:#ffd48a;border-radius:3px}.dashboard-ca-eye.is-counting::after{width:100%;animation:caEyeCountdown 10s linear forwards}@keyframes caEyeCountdown{from{width:100%}to{width:0}}

/* V129.217 · Plus de zoom au double-tap sur les boutons de l'application (quantités, pavé numérique, pourboires) */
html,body,button,a,label,input,select,textarea,[role="button"]{touch-action:manipulation}

/* QR unique de l'établissement (Tables & QR) · refonte V129.217 : aperçu, adresse, actions en lignes, étiquettes 5 × 5 */
.table-restaurant-qr-body{display:grid;grid-template-columns:1fr;gap:12px;padding:14px}
.table-restaurant-qr-top{display:grid;grid-template-columns:124px minmax(0,1fr);gap:12px;align-items:center}
.table-restaurant-qr-preview{margin:0;display:grid;gap:6px;justify-items:center;padding:8px 8px 7px;border:1px solid #e0e8ef;border-radius:14px;background:#fff}
.table-restaurant-qr-preview img{width:106px;height:106px;display:block}
.table-restaurant-qr-preview figcaption{color:#718395;font-size:8px;font-weight:700;line-height:1.3;text-align:center}
.table-restaurant-qr-url{display:grid;gap:5px;min-width:0}
.table-restaurant-qr-url span{color:#718395;font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.table-restaurant-qr-url input{width:100%;min-width:0;padding:9px 11px;border:1px solid #dce6ef;border-radius:11px;background:#f7fafc;font:11px/1.3 "IBM Plex Mono",ui-monospace,monospace;color:#142238;text-overflow:ellipsis}
.table-restaurant-qr-actions{display:grid;gap:9px}
.table-restaurant-qr-actions a{min-height:65px;padding:11px 12px;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:2px 10px;border:1px solid #e0e8ef;border-radius:14px;background:#fbfdff;color:#142238;text-align:left;text-decoration:none}
.table-restaurant-qr-actions a>span{grid-row:1/3;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#eaf5ff;color:#087cf0;font-size:18px;font-weight:900}
.table-restaurant-qr-actions a b{font-size:10px}.table-restaurant-qr-actions a small{color:#718395;font-size:8px;font-weight:500}
.table-restaurant-qr-actions a:hover,.table-restaurant-qr-actions button:hover{border-color:#087cf0}
@media(max-width:380px){.table-restaurant-qr-top{grid-template-columns:1fr}.table-restaurant-qr-preview{width:100%}}
.table-label-sheet{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:20px;background:rgba(10,20,33,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.table-label-sheet[hidden]{display:none}
.table-label-form{width:min(440px,100%);margin:0;padding:22px 22px 18px;border-radius:20px;background:#fff;color:#142238;box-shadow:0 30px 80px rgba(0,0,0,.35);display:grid;grid-template-columns:1fr;gap:14px}
.table-label-form>*{grid-column:1}
.table-label-form>small{color:#f4473a;font-size:8px;font-weight:900;letter-spacing:.14em}
.table-label-form h3{margin:-8px 0 0;font-size:20px;color:#142238}
.table-label-form>p{margin:-6px 0 0;color:#69798a;font-size:11px;line-height:1.5}
.table-label-count{display:grid;gap:6px;color:#142238;font-size:9px;font-weight:800}
.table-label-count input{height:50px;padding:0 14px;border:1px solid #cbd6df;border-radius:12px;background:#fbfcfe;color:#142238;font:800 20px/1 inherit;font-variant-numeric:tabular-nums}
.table-label-check{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid #e0e8ef;border-radius:14px;background:#fbfdff;cursor:pointer}
.table-label-check input{width:20px;height:20px;margin:1px 0 0;accent-color:#087cf0}
.table-label-check b{display:block;font-size:10px}.table-label-check small{display:block;margin-top:3px;color:#718395;font-size:8px;line-height:1.45}
.table-label-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}
.table-label-actions button{min-height:46px;max-height:46px;padding:0 18px;border:1px solid #cbd6df;border-radius:12px;background:#fff;color:#142238;font:800 11px/1 inherit;cursor:pointer;flex:0 0 auto}
.table-label-actions button.is-primary{border:0;background:#087cf0;color:#fff}
@media(max-width:520px){.table-label-sheet{align-items:end;padding:0}.table-label-form{width:100%;border-radius:22px 22px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.table-label-actions button{flex:1}}

/* V129.217 · Mon restaurant › Carte client : sélecteur de mode */
.client-mode-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:10px!important}.client-mode-form label{display:grid;gap:4px;font-size:12px;font-weight:700;color:#5b6b7a}.client-mode-form select{min-height:40px;padding:0 12px;border:1px solid #dce6ef;border-radius:10px;background:#fff;font:600 14px inherit;color:#142238}.client-mode-form button{min-height:40px;padding:0 16px;border:0;border-radius:10px;background:#087cf0;color:#fff;font:800 13px inherit;cursor:pointer}

/* Impression d'étiquettes QR 5 × 5 cm (V129.217) : logo du restaurant (ou nom), QR, nom de la table, logo Hey Garçon · 3 × 5 par page A4 */
@media print{
  body.printing-qr .qr-label-sheet{display:grid!important;grid-template-columns:repeat(3,50mm)!important;grid-auto-rows:50mm!important;justify-content:center!important;align-content:start!important;gap:4mm 6mm!important;width:100%!important;margin:0!important;padding:0!important;background:#fff!important}
  body.printing-qr .qr-label-sheet+.qr-label-sheet{break-before:page!important;page-break-before:always!important}
  body.printing-qr .qr-label{width:50mm!important;height:50mm!important;box-sizing:border-box!important;padding:1.8mm 2mm 1.3mm!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;border:.2mm dashed #b9c3cd!important;border-radius:2mm!important;background:#fff!important;overflow:hidden!important;break-inside:avoid!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.printing-qr .qr-label-brand{max-height:7.5mm!important;max-width:40mm!important;width:auto!important;height:auto!important;display:block!important;object-fit:contain!important}
  body.printing-qr .qr-label-restaurant{width:100%!important;height:7.5mm!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#142238!important;font:900 9pt/1.15 Arial,Helvetica,sans-serif!important;text-transform:uppercase!important;letter-spacing:.04em!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body.printing-qr .qr-label-code{width:29mm!important;height:29mm!important;margin-top:.4mm!important;display:block!important;image-rendering:pixelated!important}
  body.printing-qr .qr-label-table{max-width:100%!important;margin-top:.8mm!important;color:#142238!important;font:900 10pt/1.1 Arial,Helvetica,sans-serif!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body.printing-qr .qr-label-hg{height:4.2mm!important;width:auto!important;margin-top:auto!important;display:block!important}
}
