/* OVC Pos v7 */
:root{--brand-dark:#071B49;--brand-dark-2:#0C275E;--brand-coffee:#12397B;--brand-gold:#D5AF55;--brand-gold-2:#E7C877;--brand-terracotta:#1F4E92;--brand-green:#2EAA59;--app-bg:#F6F2E8;--workspace-bg:#FCFBF7;--card:#FFFFFF;--order-bg:#071B49;--line:#E6D7AF;--text:#14243F;--muted:#6B6B76;--shadow:0 18px 45px rgba(9,32,82,.10);--font:Inter,Segoe UI,Roboto,Arial,sans-serif}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);background:var(--app-bg);color:var(--text);overflow:hidden}button,input,select{font-family:inherit}button{border:0;cursor:pointer}svg{width:1.25rem;height:1.25rem;display:block;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.hidden{display:none!important}
.pos-app{height:100vh;display:grid;grid-template-columns:260px minmax(760px,1fr) 410px;background:radial-gradient(circle at 35% 8%,rgba(255,246,230,.95),transparent 32%),linear-gradient(135deg,var(--workspace-bg) 0%,var(--app-bg) 100%)}
.sidebar{background:linear-gradient(180deg,var(--brand-dark-2) 0%,var(--brand-dark) 100%);color:#FAE8CA;padding:22px 16px;display:flex;flex-direction:column;gap:18px;border-radius:0 28px 28px 0;box-shadow:10px 0 35px rgba(40,24,12,.08);z-index:3}.brand{display:flex;flex-direction:column;align-items:center;text-align:center;min-height:122px}.brand-logo{width:118px;height:74px;display:grid;place-items:center;overflow:hidden;margin-bottom:8px}.brand-logo img{max-width:100%;max-height:100%;object-fit:contain}.brand-name{width:100%;line-height:1.1}.brand-name span{font-family:Georgia,serif;font-size:24px;color:#FFF6E7;letter-spacing:-.5px;display:block;overflow-wrap:anywhere}
.nav{display:flex;flex-direction:column;gap:7px;overflow:auto}.nav-item{width:100%;display:flex;align-items:center;gap:12px;background:transparent;color:#F0E0CB;padding:12px 14px;border-radius:15px;text-align:left;font-size:14px}.nav-item span[data-icon]{color:var(--brand-gold)}.nav-item:hover{background:rgba(255,255,255,.05)}.nav-item.active{background:linear-gradient(135deg,rgba(217,154,50,.38),rgba(85,55,22,.48));box-shadow:inset 0 0 0 1px rgba(240,185,80,.45),0 10px 22px rgba(0,0,0,.17);color:#FFE8B7}
.cloud-card{margin-top:auto;position:relative;padding:18px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025));border:1px solid rgba(255,230,188,.18)}.cloud-card>span[data-icon]{color:var(--brand-gold);display:block;margin-bottom:12px}.cloud-card strong{display:block;font-size:15px;margin-bottom:8px}.cloud-card p{margin:0;color:#E3D4BE;font-size:13px;line-height:1.55}.cloud-dot{position:absolute;right:18px;top:18px;width:9px;height:9px;border-radius:50%;background:#79D878}.version{font-size:13px;color:#DED0BC;display:flex;align-items:center;gap:10px;padding-left:10px}.version span{width:7px;height:7px;border-radius:50%;background:#61D36F}
.workspace{padding:28px 24px;overflow:auto}.topbar{display:grid;grid-template-columns:1.25fr .9fr 1fr auto auto auto auto;gap:14px;align-items:center;margin-bottom:28px}.select-wrap{position:relative}.select-pill,.sync-pill,.time-pill,.round-btn,.logout-btn{height:54px;border-radius:16px;background:rgba(255,255,255,.70);border:1px solid var(--line);box-shadow:0 8px 24px rgba(74,51,26,.055);display:flex;align-items:center;gap:10px;padding:0 18px;color:var(--text)}.select-pill{width:100%;justify-content:space-between}.sync-pill{justify-content:center;color:var(--brand-green);background:#F1FBF2;font-weight:800;border-color:#D4EBD9}.time-pill{flex-direction:column;justify-content:center;gap:0;min-width:118px;padding:0 14px}.time-pill strong{font-size:15px}.time-pill span{font-size:12px;color:var(--muted)}.round-btn,.logout-btn{width:54px;padding:0;justify-content:center;position:relative}.logout-btn{color:var(--brand-terracotta)}.notif-dot{position:absolute;right:15px;top:13px;width:8px;height:8px;border-radius:50%;background:var(--brand-terracotta)}
.dropdown-panel{position:absolute;right:0;top:62px;width:290px;background:var(--card);border:1px solid var(--line);box-shadow:0 20px 55px rgba(20,10,0,.18);border-radius:18px;padding:12px;z-index:40}.dropdown-panel h3{margin:4px 6px 10px}.dropdown-panel p{margin:0;color:var(--muted)}.dropdown-panel button,.drop-item{width:100%;background:transparent;text-align:left;padding:12px;border-radius:12px;color:var(--text);display:block}.dropdown-panel button:hover,.drop-item:hover{background:#FFF4E3}.notification-panel{width:320px}.notice{padding:12px;border-radius:12px;background:#FFF8EA;border:1px solid #EAD1A6;margin:8px 0}.order-dropdown{top:34px;background:#211713;color:#fff;width:210px}.order-dropdown button{color:#fff}.order-dropdown button:hover{background:rgba(255,255,255,.08)}
.screen{display:none}.screen.active{display:block}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.kpi-card{height:150px;background:rgba(255,255,255,.76);border:1px solid var(--line);border-radius:24px;padding:22px;display:flex;align-items:center;gap:18px;box-shadow:var(--shadow)}.kpi-icon{width:66px;height:66px;border-radius:50%;display:grid;place-items:center}.kpi-icon svg{width:31px;height:31px}.kpi-icon.beige{background:#F3E8D6;color:#6D4C32}.kpi-icon.coral{background:#FADED4;color:var(--brand-terracotta)}.kpi-icon.gold{background:#F7E7C8;color:#C88116}.kpi-icon.orange{background:#FAD8CA;color:var(--brand-terracotta)}.kpi-card p{margin:0 0 8px;font-weight:700}.kpi-card strong{display:block;font-size:27px}.kpi-card em{font-style:normal;font-size:14px;color:#5E5147}.kpi-card a{color:var(--brand-terracotta);font-weight:800;font-size:14px}
.tabs{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:22px}.tab-btn{min-width:110px;height:50px;border-radius:16px;background:rgba(255,255,255,.70);border:1px solid var(--line);font-weight:800;color:#221C18;box-shadow:0 6px 16px rgba(75,52,28,.045);display:flex;align-items:center;justify-content:center;gap:8px}.tab-btn svg{width:20px;height:20px}.tab-btn.active{background:linear-gradient(135deg,var(--brand-coffee),var(--brand-dark));color:#FFE2A7;border-color:#5A3920}
.pos-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px}.catalog-panel{background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:24px;padding:16px;min-height:620px;box-shadow:var(--shadow)}.catalog-tools{display:grid;grid-template-columns:1.25fr .85fr;gap:14px;margin-bottom:18px}.input-wrap{height:54px;border-radius:15px;background:rgba(255,255,255,.85);border:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 16px;color:#8C7B6A}.input-wrap input{border:0;background:transparent;outline:0;width:100%;height:100%;font-size:16px;color:var(--text)}
.catalog-empty{height:525px;border:1.5px dashed #E8D8C6;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,248,237,.42))}.empty-icon{width:106px;height:106px;border-radius:50%;display:grid;place-items:center;background:#F0E6DA;color:#4D3829;margin-bottom:22px}.empty-icon svg{width:54px;height:54px}.catalog-empty h2,.empty-page h2{font-size:22px;margin:0 0 10px}.catalog-empty p,.empty-page p{margin:0;color:var(--muted);font-size:16px}.empty-actions{display:flex;gap:12px}.ghost-add{margin-top:24px;height:46px;padding:0 18px;border-radius:14px;background:#FFF8EF;border:1px solid #E8D8C6;color:#6B4B2C;font-weight:800;display:flex;align-items:center;gap:8px}
.right-widgets{display:flex;flex-direction:column;gap:16px}.service-card,.small-card{background:rgba(255,255,255,.58);border:1px solid var(--line);border-radius:22px;padding:16px;box-shadow:0 10px 24px rgba(74,51,26,.05)}.service-card h3,.small-card h3{margin:0 0 12px;font-size:17px}.service-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.service-btn{min-height:78px;border-radius:15px;background:rgba(255,255,255,.82);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#3B2F27}.service-btn svg{width:28px;height:28px}.service-btn b{font-size:12px}.service-btn.active{background:linear-gradient(135deg,var(--brand-coffee),var(--brand-dark));color:#FFF0D0}.small-card header{display:flex;align-items:center;justify-content:space-between}.small-card header button{background:transparent}.mini-empty{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;color:#4D4038}.mini-empty>span{width:70px;height:70px;border-radius:50%;background:#F0E8DF;display:grid;place-items:center;margin-bottom:12px}
.order-panel{background:radial-gradient(circle at 45% 10%,#2A211B 0%,var(--order-bg) 54%,#0D0A09 100%);color:#FFF9EF;padding:26px 24px;border-radius:24px 0 0 24px;margin:18px 18px 18px 0;box-shadow:-18px 0 45px rgba(43,28,14,.14);overflow:auto}.order-panel header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:20px}.order-panel h2{margin:0;font-size:21px}.order-panel header button{background:transparent;color:#FFF}.order-empty{min-height:265px;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;border-bottom:1px solid rgba(255,255,255,.08)}.order-empty-icon{width:105px;height:105px;border-radius:50%;background:rgba(255,255,255,.06);color:var(--brand-gold);display:grid;place-items:center;margin-bottom:20px}.order-empty-icon svg{width:52px;height:52px}.cart-list{min-height:265px;border-bottom:1px solid rgba(255,255,255,.08);padding:18px 0}.cart-line{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}.order-note{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px;margin:14px 0;color:#E7D9C8}.totals{padding:24px 0;display:flex;flex-direction:column;gap:16px;border-bottom:1px dashed rgba(255,255,255,.12)}.totals div{display:flex;justify-content:space-between;color:#E4D7CA}.totals strong{color:#FFF}.total-line{border-top:1px solid rgba(255,255,255,.08);padding-top:22px}.total-line span{font-size:22px;font-weight:900;color:#FFF}.total-line strong{font-size:30px;color:#FFC15B}.pay-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 16px}.pay-btn{min-height:86px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);color:#F6E9DB;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px}.pay-btn.active{color:#FFC15B;border-color:var(--brand-gold)}.checkout-btn,.print-btn,.kitchen-btn,.primary-btn,.plain-btn{height:62px;border-radius:16px;font-size:16px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:10px;width:100%}.checkout-btn{background:linear-gradient(135deg,var(--brand-gold-2),var(--brand-gold));color:white}.print-btn{margin-top:14px;background:rgba(255,255,255,.06);color:white;border:1px solid rgba(255,255,255,.13)}.kitchen-btn{margin-top:14px;background:linear-gradient(135deg,#ED704B,var(--brand-terracotta));color:white}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-head h1{margin:0 0 6px;font-size:32px}.page-head p{margin:0;color:var(--muted)}.primary-btn{width:auto;padding:0 20px;background:linear-gradient(135deg,var(--brand-gold),#B77617);color:white}.plain-btn{width:auto;padding:0 20px;background:#F6EFE6;color:#4F4035;border:1px solid var(--line)}.danger-btn{height:40px;border-radius:12px;background:#FDECEC;color:#B93222;border:1px solid #F2C8C1;font-weight:800;padding:0 12px}.edit-btn{height:40px;border-radius:12px;background:#FFF4E3;color:#6D4A20;border:1px solid #E9D2AC;font-weight:800;padding:0 12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.empty-page{min-height:530px;background:rgba(255,255,255,.62);border:1px dashed #E5D4C0;border-radius:24px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;box-shadow:var(--shadow);padding:30px}.empty-page .primary-btn{margin-top:22px}.cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.category-card,.point-card,.product-card{background:rgba(255,255,255,.76);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}.category-visual,.point-visual{width:74px;height:74px;border-radius:18px;margin-bottom:12px;display:grid;place-items:center;overflow:hidden;color:white}.category-visual img,.point-visual img{width:100%;height:100%;object-fit:cover}.category-visual svg,.point-visual svg{width:34px;height:34px}.category-card strong,.point-card strong{font-size:18px}.category-card p,.point-card p{color:var(--muted);margin:8px 0 14px}.info-banner{background:#FFF8EA;border:1px solid #EAD1A6;border-radius:18px;padding:18px 20px;margin-bottom:18px;display:flex;gap:16px;align-items:center;color:#6B4B2C}
.settings-layout{display:grid;grid-template-columns:1fr 320px;gap:18px}.settings-grid{background:rgba(255,255,255,.66);border:1px solid var(--line);border-radius:24px;padding:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;box-shadow:var(--shadow)}.settings-grid label,.modal-form label{display:flex;flex-direction:column;gap:8px;font-weight:800;color:#42382F}.settings-grid input,.settings-grid select,.modal-form input,.modal-form select{height:54px;border-radius:14px;border:1px solid var(--line);padding:0 14px;background:#FFF;color:var(--text);outline:0}.settings-grid input[type=file],.modal-form input[type=file]{display:flex;align-items:center;padding:13px 14px;line-height:26px}.settings-grid input[type=color],.modal-form input[type=color]{width:54px!important;height:54px!important;padding:5px!important;border-radius:12px!important;cursor:pointer;display:block}.logo-preview-card{background:rgba(255,255,255,.66);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.brand-preview{height:170px;border:1px dashed var(--line);border-radius:18px;display:grid;place-items:center;margin-bottom:16px;background:#FFF8EE}.brand-preview img{max-width:90%;max-height:140px;object-fit:contain}.table-card{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:16px;border-bottom:1px solid var(--line);vertical-align:middle}th{background:#FFF8EE;color:#5E5147}.thumb{width:58px;height:58px;border-radius:14px;background:#F0E6DA;display:grid;place-items:center;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.thumb svg{width:30px;height:30px}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.product-card{text-align:left}.product-photo{height:140px;border-radius:16px;background:#F0E6DA;margin-bottom:14px;overflow:hidden;display:grid;place-items:center;color:#7B6B5D}.product-photo img{width:100%;height:100%;object-fit:cover}.product-photo svg{width:42px;height:42px}.product-card strong{display:block;font-size:17px}.product-card p{margin:6px 0;color:var(--muted)}.product-card button{margin-top:12px;background:#FFF4E3;color:#6D4A20;border:1px solid #E9D2AC;border-radius:12px;padding:10px 14px;font-weight:800}
.login-layer{position:fixed;inset:0;z-index:50;background:radial-gradient(circle at 20% 20%,rgba(217,154,50,.18),transparent 30%),linear-gradient(135deg,#110C0A,#2C1D14);display:grid;place-items:center;padding:30px}.auth-card{width:min(460px,94vw);background:rgba(255,253,249,.96);border-radius:28px;padding:30px;box-shadow:0 30px 90px rgba(0,0,0,.35)}.auth-brand{text-align:center;margin-bottom:24px}.auth-logo{max-width:100px;max-height:90px;object-fit:contain}.auth-brand h1{margin:0 0 8px;font-size:28px}.auth-brand p{margin:0;color:var(--muted)}.auth-form{display:grid;gap:14px}.auth-form label{display:flex;flex-direction:column;gap:8px;font-weight:800}.auth-form input,.badge-login input{height:54px;border-radius:14px;border:1px solid var(--line);padding:0 14px;font-size:16px;width:100%}.primary-btn.full{width:100%}.badge-login{margin-top:20px;border-top:1px solid var(--line);padding-top:18px;width:100%}.badge-title{font-weight:900;color:#5D3F1C;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.modal{position:fixed;inset:0;background:rgba(16,12,10,.48);display:grid;place-items:center;z-index:60}.modal-card{width:min(720px,92vw);background:#FFFDF9;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.28);overflow:hidden}.modal-card.large{width:min(900px,94vw)}.modal-card header,.modal-card footer{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-card footer{border-bottom:0;border-top:1px solid var(--line);justify-content:flex-end;gap:12px}.modal-card h2{margin:0}.modal-card header button{font-size:32px;background:transparent;color:#4E4035}.modal-form{padding:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.full-row{grid-column:1/-1}.check-line{flex-direction:row!important;align-items:center}.check-line input{width:auto!important;height:auto}.photo-preview{min-height:150px;border:1px dashed var(--line);border-radius:18px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);background:#FFF8EE}.photo-preview img{max-width:100%;max-height:170px;border-radius:16px;object-fit:contain}

.theme-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;border:1px dashed var(--line);border-radius:18px;background:rgba(255,255,255,.55)}
.theme-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;font-size:12px;font-weight:800;color:var(--text)}
.theme-swatch{width:28px;height:28px;border-radius:8px;border:1px solid rgba(0,0,0,.12);flex:0 0 auto}
.settings-grid .full-row{grid-column:1/-1}
@media(max-width:1500px){.pos-app{grid-template-columns:240px minmax(650px,1fr) 360px}.kpi-card{padding:16px}.kpi-icon{width:58px;height:58px}.kpi-card strong{font-size:23px}.topbar{grid-template-columns:1fr .8fr .8fr auto auto auto auto}.cards-grid{grid-template-columns:repeat(3,1fr)}}

/* v7 OVC fixes */
.user-pill{justify-content:flex-start;gap:12px}.user-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand-dark-2),var(--brand-dark));border:2px solid rgba(213,175,85,.55);color:#fff;font-weight:900;letter-spacing:.4px;flex:0 0 auto}.user-avatar.small{width:34px;height:34px}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.thumb.avatar{border-radius:50%;background:linear-gradient(135deg,#F2E6C7,#E8D29B)}.thumb.avatar img{object-fit:cover}.name-stack{display:flex;flex-direction:column;gap:4px}.name-stack small{color:var(--muted);font-size:12px}.dropdown-panel{z-index:9999!important}.select-wrap,.order-menu-wrap{z-index:50}.order-panel{overflow:visible}.order-dropdown{right:0!important;top:38px!important}.notification-panel,.order-dropdown,#posDropdown{pointer-events:auto}.photo-preview .user-avatar{margin-right:8px}.photo-preview .user-avatar img{border-radius:50%}.category-visual svg,.product-photo svg,.thumb svg{stroke:currentColor!important}.drop-actions{display:flex;gap:8px;margin-top:10px}.notice button{height:34px;border-radius:10px;background:var(--brand-gold);color:#fff;font-weight:800;padding:0 10px;margin-top:8px}.select-pill:disabled{opacity:.82;cursor:not-allowed}.brand-logo{height:78px}.auth-logo{max-width:150px;max-height:110px}.brand-name span{font-family:Inter,Segoe UI,Arial,sans-serif;font-weight:900;color:#fff}.primary-btn{background:linear-gradient(135deg,var(--brand-gold),#B58E37)!important}.checkout-btn{background:linear-gradient(135deg,var(--brand-gold-2),var(--brand-gold))!important}.kitchen-btn{background:linear-gradient(135deg,#2B5FAA,var(--brand-terracotta))!important}.nav-item.active{background:linear-gradient(135deg,rgba(213,175,85,.36),rgba(12,39,94,.68))!important}.login-layer{background:radial-gradient(circle at 22% 18%,rgba(213,175,85,.22),transparent 30%),linear-gradient(135deg,#030B20,#071B49 62%,#0E2460)!important}


/* Correctif select uniquement — design original conservé */
select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;

    padding-right: 72px !important;

    background-color: #fff !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1 1.5L7 7.5L13 1.5' stroke='%236B6B76' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: calc(100% - 34px) center !important;
    background-size: 14px 9px !important;
}

select::-ms-expand {
    display: none !important;
}


/* v8.2.37 — modules fonctionnels tables / clients / stock / ticket */
.status-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;white-space:nowrap}
.status-free,.stock-ok{background:#EAF8EE;color:#1D7B3D}
.status-occupied,.stock-low{background:#FDECEC;color:#B93222}
.status-reserved,.stock-warning{background:#FFF4E3;color:#8A5B13}
.table-card-mini{background:rgba(255,255,255,.76);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}
.table-card-mini .table-icon{width:74px;height:74px;border-radius:18px;background:linear-gradient(135deg,var(--brand-coffee),var(--brand-dark));color:#fff;display:grid;place-items:center;margin-bottom:12px}
.table-card-mini .table-icon svg{width:36px;height:36px}
.table-card-mini strong{display:block;font-size:18px;margin-bottom:6px}
.table-card-mini p{margin:0 0 14px;color:var(--muted);line-height:1.45}
.kpi-card a{cursor:pointer;text-decoration:none}
#stockTableCard table td .actions,#clientsTableCard table td .actions{display:flex;gap:8px;flex-wrap:wrap}

/* =========================================================
   v8.2.37 — Fix logo sidebar + gradients adaptatifs au thème
   ========================================================= */

/* Logo sidebar : ne plus couper le visuel, même avec un logo large */
.sidebar .brand{
    min-height: 148px !important;
    justify-content: flex-start !important;
}
.sidebar .brand-logo{
    width: 158px !important;
    height: 96px !important;
    min-height: 96px !important;
    max-width: 100% !important;
    margin: 0 auto 8px !important;
    padding: 0 !important;
    overflow: visible !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.sidebar .brand-logo img{
    width: auto !important;
    height: auto !important;
    max-width: 158px !important;
    max-height: 96px !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
    border-radius: 0 !important;
    clip-path: none !important;
}

/* Logo page login / preview : même logique contain */
.auth-logo,
.brand-preview img,
#logoPreview img{
    object-fit: contain !important;
    object-position: center center !important;
    clip-path: none !important;
}

/* Les gradients ne restent plus bleus : ils suivent les couleurs du thème */
.nav-item.active{
    background: linear-gradient(135deg, var(--brand-gold), var(--brand-terracotta)) !important;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand-gold) 45%, #ffffff 20%), 0 10px 22px rgba(0,0,0,.17) !important;
    color: #fff !important;
}
.nav-item.active span[data-icon],
.nav-item.active b{
    color: #fff !important;
}
.kitchen-btn{
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-coffee)) !important;
    color: #fff !important;
}

/* Bonus : boutons service actifs et tables gardent aussi le thème */
.service-btn.active,
.tab-btn.active,
.table-card-mini .table-icon{
    background: linear-gradient(135deg, var(--brand-gold), var(--brand-terracotta)) !important;
    color: #fff !important;
}

/* v8.2.37 — style demandé : nav active, cuisine et avatars selon thème */
.nav-item.active {
    background: linear-gradient(135deg, rgba(213, 175, 85, .36), rgb(52 20 18 / 0%)) !important;
    box-shadow: inset 0 0 0 1px rgba(213, 175, 85, .42), 0 10px 22px rgba(0,0,0,.17) !important;
    color: #FFE8B7 !important;
}
.nav-item.active span[data-icon],
.nav-item.active b {
    color: #FFE8B7 !important;
}
.kitchen-btn {
    background: linear-gradient(135deg, var(--brand-gold), #B58E37) !important;
    color: #fff !important;
}
.user-avatar,
.thumb.avatar {
    background: linear-gradient(135deg, var(--brand-gold), var(--brand-terracotta)) !important;
    border-color: color-mix(in srgb, var(--brand-gold) 65%, #ffffff 15%) !important;
}


/* v8.2.37 UI theme hover + login background */
:root{
  --brand-gold-rgb:213,175,85;
  --brand-terracotta-rgb:31,78,146;
  --brand-dark-rgb:7,27,73;
  --login-bg-opacity:.20;
  --login-glow-opacity:.28;
}

.dropdown-panel button:hover,
.drop-item:hover{
  background:#ffc15b !important;
  color:#3A271C !important;
}

.nav-item.active{
  background:linear-gradient(135deg, rgba(var(--brand-gold-rgb), .36), rgba(var(--brand-terracotta-rgb), 0)) !important;
  box-shadow:inset 0 0 0 1px rgba(var(--brand-gold-rgb), .45), 0 10px 22px rgba(0,0,0,.17) !important;
  color:#FFE8B7 !important;
}

.kitchen-btn{
  background:linear-gradient(135deg, var(--brand-gold), var(--brand-terracotta)) !important;
  color:#fff !important;
}

.user-avatar,
.thumb.avatar{
  background:linear-gradient(135deg, var(--brand-gold), var(--brand-terracotta)) !important;
  border-color:rgba(var(--brand-gold-rgb), .55) !important;
}

.login-layer{
  position:fixed;
  inset:0;
  z-index:50;
  isolation:isolate;
  background:linear-gradient(135deg, rgba(var(--brand-dark-rgb), .98), rgba(var(--brand-dark-rgb), .84));
  display:grid;
  place-items:center;
  padding:30px;
  overflow:hidden;
}
.login-layer::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 22%, rgba(var(--brand-gold-rgb), var(--login-glow-opacity)), transparent 32%),
    radial-gradient(circle at 82% 16%, rgba(var(--brand-terracotta-rgb), calc(var(--login-glow-opacity) * .85)), transparent 26%),
    linear-gradient(135deg, rgba(var(--brand-dark-rgb), .58), rgba(var(--brand-dark-rgb), .34)),
    url('login-bg.svg') center center / cover no-repeat;
  opacity:var(--login-bg-opacity);
  transform:scale(1.03);
}
.login-layer::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(135deg, rgba(0,0,0,.12), rgba(0,0,0,.32));
}
.auth-card{
  position:relative;
  z-index:1;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  background:rgba(255,253,249,.94);
}


/* =========================================================
   v8.2.37 — Image exacte en background login + overlay premium
   ========================================================= */
.login-layer{
  position:fixed !important;
  inset:0 !important;
  z-index:50 !important;
  isolation:isolate !important;
  overflow:hidden !important;
  display:grid !important;
  place-items:center !important;
  padding:30px !important;
  background:#071B49 !important;
}

.login-layer::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
  background-image:
    linear-gradient(135deg, rgba(var(--brand-dark-rgb, 7,27,73), .78), rgba(0,0,0,.50)),
    radial-gradient(circle at 22% 18%, rgba(var(--brand-gold-rgb, 213,175,85), .30), transparent 34%),
    radial-gradient(circle at 88% 72%, rgba(var(--brand-terracotta-rgb, 31,78,146), .24), transparent 38%),
    url("login-bg-pos.jpg") !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  opacity:1 !important;
  transform:scale(1.015) !important;
  filter:saturate(1.04) contrast(1.04) brightness(.92) !important;
}

.login-layer::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:
    linear-gradient(90deg, rgba(0,0,0,.18), rgba(0,0,0,.04) 44%, rgba(0,0,0,.28)),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.05), transparent 42%);
}

.login-layer .auth-card{
  position:relative !important;
  z-index:2 !important;
  background:rgba(255,253,249,.94) !important;
  border:1px solid rgba(255,255,255,.45) !important;
  box-shadow:0 32px 95px rgba(0,0,0,.42) !important;
  backdrop-filter:blur(10px) saturate(1.05) !important;
  -webkit-backdrop-filter:blur(10px) saturate(1.05) !important;
}


/* =========================================================
   v8.2.37 — Login background ONLY when login is visible
   ========================================================= */

/* Quand l'application est ouverte, aucune image login ne doit rester visible */
body.ovc-app-mode .login-layer,
body.ovc-app-mode .login-layer::before,
body.ovc-app-mode .login-layer::after {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* La couche login couvre tout uniquement pendant la connexion */
body.ovc-login-mode .login-layer:not(.hidden) {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: grid !important;
    place-items: center !important;
    overflow: hidden !important;
    background: #071B49 !important;
}

/* Image exacte uniquement dans la page login */
body.ovc-login-mode .login-layer:not(.hidden)::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    background-image:
        linear-gradient(135deg, rgba(var(--brand-dark-rgb, 7,27,73), .72), rgba(0,0,0,.62)),
        radial-gradient(circle at 35% 35%, rgba(var(--brand-gold-rgb, 213,175,85), .22), transparent 34%),
        url("login-bg-pos.jpg") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
}

/* Overlay premium lisibilité */
body.ovc-login-mode .login-layer:not(.hidden)::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    background:
        linear-gradient(90deg, rgba(7, 16, 34, .72), rgba(7, 16, 34, .36) 45%, rgba(7, 16, 34, .76)),
        linear-gradient(180deg, rgba(0,0,0,.20), rgba(0,0,0,.36)) !important;
}

/* Carte login au-dessus de l'image */
body.ovc-login-mode .login-layer .auth-card {
    position: relative !important;
    z-index: 2 !important;
}

/* Quand login caché, on supprime totalement le calque */
.login-layer.hidden,
.login-layer.hidden::before,
.login-layer.hidden::after {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}


/* v8.2.37 — styles demandés + stock non suivi */
.category-visual img,
.point-visual img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
}

.tab-btn.active{
    background:linear-gradient(135deg, var(--brand-coffee), var(--brand-dark)) !important;
    color:#FFE2A7 !important;
    border-color:var(--brand-dark) !important;
    padding:10px 25px !important;
}

.stock-disabled-label{
    opacity:.48;
}
.stock-disabled-label input{
    background:#f6f2ea !important;
    cursor:not-allowed;
}
.status-badge.stock-none{
    background:#EEF2F7 !important;
    color:#475569 !important;
    border:1px solid #CBD5E1 !important;
}
.product-card .stock-muted{
    color:var(--muted);
    font-weight:800;
}


/* =========================================================
   v8.2.37 — Rapports commandes / exports / graphiques
   ========================================================= */
.report-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.report-actions .plain-btn,
.report-actions .primary-btn{
    width:auto;
    height:48px;
    padding:0 18px;
}
.report-filters{
    display:grid;
    grid-template-columns:1.4fr .8fr .8fr auto;
    gap:14px;
    align-items:end;
    background:rgba(255,255,255,.76);
    border:1px solid var(--line);
    border-radius:24px;
    padding:18px;
    box-shadow:var(--shadow);
    margin-bottom:18px;
}
.report-filters label{
    font-weight:900;
    color:var(--text);
    display:flex;
    flex-direction:column;
    gap:8px;
}
.report-filter-buttons{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.report-filter-buttons .plain-btn{
    width:auto;
    height:54px;
    white-space:nowrap;
}
.report-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
    margin-bottom:18px;
}
.report-kpi{
    background:rgba(255,255,255,.78);
    border:1px solid var(--line);
    border-radius:22px;
    padding:18px;
    box-shadow:var(--shadow);
}
.report-kpi span{
    display:block;
    color:var(--muted);
    font-weight:900;
    margin-bottom:8px;
}
.report-kpi strong{
    font-size:26px;
    color:var(--text);
}
.report-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-bottom:18px;
}
.report-card,
.report-table-card{
    background:rgba(255,255,255,.78);
    border:1px solid var(--line);
    border-radius:24px;
    padding:18px;
    box-shadow:var(--shadow);
}
.report-card-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    margin-bottom:14px;
}
.report-card-head h2{
    margin:0;
    color:var(--text);
}
.report-card-head p{
    margin:4px 0 0;
    color:var(--muted);
    font-weight:700;
}
.report-chart{
    min-height:260px;
    display:flex;
    align-items:flex-end;
    gap:12px;
    padding:18px 10px 8px;
    border-radius:18px;
    background:linear-gradient(180deg,rgba(255,255,255,.65),rgba(255,255,255,.30));
    border:1px dashed var(--line);
    overflow-x:auto;
}
.report-bar-wrap{
    min-width:64px;
    height:220px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
}
.report-bar{
    width:38px;
    min-height:8px;
    border-radius:12px 12px 5px 5px;
    background:linear-gradient(180deg,var(--brand-gold),var(--brand-terracotta));
    box-shadow:0 12px 20px rgba(0,0,0,.12);
    position:relative;
}
.report-bar:hover::after{
    content:attr(data-value);
    position:absolute;
    left:50%;
    bottom:calc(100% + 8px);
    transform:translateX(-50%);
    background:var(--brand-dark);
    color:#fff;
    padding:7px 9px;
    border-radius:10px;
    font-size:12px;
    white-space:nowrap;
    z-index:5;
}
.report-bar-label{
    font-size:12px;
    font-weight:900;
    color:var(--muted);
    text-align:center;
    white-space:nowrap;
}
.report-empty{
    width:100%;
    text-align:center;
    color:var(--muted);
    padding:50px 10px;
    font-weight:900;
}
.report-table-card{
    overflow:auto;
}
.report-table-card table{
    min-width:1120px;
}
.report-table-card tbody td{
    vertical-align:top;
}
.report-articles{
    max-width:260px;
    white-space:normal;
    line-height:1.45;
}
@media(max-width:1500px){
    .report-filters{grid-template-columns:1fr 1fr}
    .report-layout{grid-template-columns:1fr}
    .report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* =========================================================
   Style premium filtres rapports : select + date
   ========================================================= */

.report-filters {
    align-items: end !important;
    gap: 16px !important;
    padding: 18px !important;
    background: rgba(255, 255, 255, .82) !important;
    border: 1px solid rgba(213, 175, 85, .38) !important;
    box-shadow: 0 18px 45px rgba(9, 32, 82, .08) !important;
}

.report-filters label {
    position: relative;
    gap: 9px !important;
    font-weight: 900 !important;
    color: var(--text) !important;
}

/* Select + date du filtre */
.report-filters select,
.report-filters input[type="date"] {
    height: 56px !important;
    width: 100% !important;
    border-radius: 16px !important;
    border: 1px solid rgba(213, 175, 85, .42) !important;
    background-color: #fffdf8 !important;
    color: var(--text) !important;
    font-weight: 850 !important;
    font-size: 14px !important;
    padding: 0 46px 0 16px !important;
    outline: none !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .95),
        0 8px 18px rgba(9, 32, 82, .04) !important;
    transition: all .18s ease !important;
}

/* Hover */
.report-filters select:hover,
.report-filters input[type="date"]:hover {
    border-color: var(--brand-gold) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .95),
        0 10px 24px rgba(213, 175, 85, .12) !important;
}

/* Focus */
.report-filters select:focus,
.report-filters input[type="date"]:focus {
    border-color: var(--brand-gold) !important;
    background-color: #ffffff !important;
    box-shadow:
        0 0 0 4px rgba(var(--brand-gold-rgb, 213, 175, 85), .16),
        0 12px 26px rgba(9, 32, 82, .08) !important;
}

/* Select : flèche custom plus propre */
.report-filters select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;

    background-image:
        linear-gradient(135deg, rgba(var(--brand-gold-rgb, 213, 175, 85), .14), rgba(var(--brand-terracotta-rgb, 31, 78, 146), .06)),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='10' viewBox='0 0 15 10' fill='none'%3E%3Cpath d='M1.5 1.75L7.5 7.75L13.5 1.75' stroke='%236B6B76' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat, no-repeat !important;
    background-position: center, calc(100% - 20px) center !important;
    background-size: cover, 15px 10px !important;
}

.report-filters select::-ms-expand {
    display: none !important;
}

/* Input date : icône calendrier plus premium */
.report-filters input[type="date"] {
    position: relative !important;
    cursor: pointer !important;
    color-scheme: light !important;
}

/* Icône calendrier Chrome / Edge */
.report-filters input[type="date"]::-webkit-calendar-picker-indicator {
    width: 22px !important;
    height: 22px !important;
    margin-right: 2px !important;
    cursor: pointer !important;
    opacity: .75 !important;
    padding: 6px !important;
    border-radius: 10px !important;
    background-color: rgba(var(--brand-gold-rgb, 213, 175, 85), .16) !important;
    filter: sepia(1) saturate(1.4) hue-rotate(345deg) brightness(.85) !important;
    transition: all .18s ease !important;
}

.report-filters input[type="date"]::-webkit-calendar-picker-indicator:hover {
    opacity: 1 !important;
    background-color: rgba(var(--brand-gold-rgb, 213, 175, 85), .28) !important;
}

/* Placeholder date / texte vide */
.report-filters input[type="date"]:invalid {
    color: var(--muted) !important;
}

/* Boutons filtres */
.report-filter-buttons {
    align-items: end !important;
    gap: 10px !important;
}

.report-filter-buttons .plain-btn {
    height: 56px !important;
    border-radius: 16px !important;
    padding: 0 18px !important;
    background: linear-gradient(135deg, #fff8eb, #f7ead1) !important;
    border: 1px solid rgba(213, 175, 85, .42) !important;
    color: #6d4d13 !important;
    font-weight: 900 !important;
    box-shadow: 0 8px 18px rgba(9, 32, 82, .05) !important;
    transition: all .18s ease !important;
}

.report-filter-buttons .plain-btn:hover {
    transform: translateY(-1px);
    background: #ffc15b !important;
    color: #3a271c !important;
    border-color: #ffc15b !important;
    box-shadow: 0 12px 26px rgba(213, 175, 85, .22) !important;
}

/* Responsive */
@media (max-width: 1500px) {
    .report-filters {
        grid-template-columns: 1fr 1fr !important;
    }

    .report-filter-buttons {
        grid-column: 1 / -1;
    }
}

@media (max-width: 800px) {
    .report-filters {
        grid-template-columns: 1fr !important;
    }

    .report-filter-buttons {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
}


/* v8.2.37 — Fix padding input date rapports + suppression trait label */
.report-filters label::after {
    display: none !important;
    content: none !important;
}

.report-filters input[type="date"] {
    padding: 0 10px 0 16px !important;
}


/* v8.2.37 Cloud status */
.sync-pill.cloud-ok {
    background: rgba(46,170,89,.12) !important;
    color: #1D7B3D !important;
    border-color: rgba(46,170,89,.25) !important;
}
.sync-pill.cloud-warn {
    background: rgba(213,175,85,.14) !important;
    color: #7B5A20 !important;
    border-color: rgba(213,175,85,.35) !important;
}
.sync-pill.cloud-error {
    background: rgba(217,74,56,.12) !important;
    color: #B93222 !important;
    border-color: rgba(217,74,56,.25) !important;
}


/* =========================================================
   v8.2.37 — Scroll caisse + lisibilité catalogue
   ========================================================= */

.workspace {
    max-height: 100vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-bottom: 120px !important;
    scroll-behavior: smooth;
}

.order-panel {
    max-height: calc(100vh - 36px) !important;
    overflow-y: auto !important;
    padding-bottom: 120px !important;
}

.sidebar {
    max-height: 100vh !important;
    overflow-y: auto !important;
}

.catalog-panel {
    min-height: calc(100vh - 360px) !important;
    padding-bottom: 70px !important;
}

.product-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important;
    gap: 14px !important;
    padding-bottom: 90px !important;
}

.product-card {
    min-height: 245px !important;
}

.product-card .product-photo img,
.product-photo img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

#categoryTabs {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding-bottom: 4px !important;
}

.tab-btn {
    flex: 0 0 auto !important;
}

@media (max-height: 850px) {
    .workspace {
        padding-bottom: 180px !important;
    }
    .order-panel {
        padding-bottom: 180px !important;
    }
    .catalog-panel {
        min-height: 520px !important;
    }
}


/* v8.2.37 — corrections visuelles catalogue/stock */
.badge-soft{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:4px 10px;
    border-radius:999px;
    background:rgba(31,78,146,.10);
    border:1px solid rgba(31,78,146,.18);
    color:var(--brand-dark);
    font-weight:900;
    font-size:12px;
}
.product-card p{
    min-height:34px;
}
.workspace,
.order-panel,
.sidebar{
    scrollbar-width: thin;
}
.workspace{
    padding-bottom: 180px !important;
}
.order-panel{
    padding-bottom: 180px !important;
}


/* =========================================================
   v8.2.37 — scopes points de vente + commande conditionnelle
   ========================================================= */
.pos-app.no-pos-selected{
    grid-template-columns:260px minmax(760px, 1fr) !important;
}
.pos-app.no-pos-selected .order-panel{
    display:none !important;
}
.pos-app.no-pos-selected .workspace{
    padding-right:28px !important;
}
.scope-points select[multiple]{
    min-height:138px !important;
    height:138px !important;
    padding:10px 14px !important;
}
.scope-points small{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-weight:700;
}
.scope-label{
    display:inline-flex;
    margin-top:7px;
    padding:5px 9px;
    border-radius:999px;
    background:rgba(var(--brand-gold-rgb,213,175,85),.13);
    border:1px solid rgba(var(--brand-gold-rgb,213,175,85),.24);
    color:var(--text);
    font-weight:900;
    font-size:11px;
}
.product-card button:disabled{
    opacity:.45;
    cursor:not-allowed;
    filter:grayscale(.25);
}
@media(max-width:1300px){
    .pos-app.no-pos-selected{
        grid-template-columns:220px minmax(520px,1fr) !important;
    }
}


/* =========================================================
   v8.2.37 — style scope + points utilisateurs
   ========================================================= */
.scope-label {
    display: inline-flex;
    margin-top: 7px;
    margin-bottom: 7px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(var(--brand-gold-rgb), .13);
    border: 1px solid rgba(var(--brand-gold-rgb), .24);
    color: var(--text);
    font-weight: 900;
    font-size: 11px;
}
#userPointIds {
    min-height: 138px !important;
    height: 138px !important;
    padding: 10px 14px !important;
}
#userPointMultiWrap small {
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-weight:700;
}
.category-visual svg {
    width: 34px !important;
    height: 34px !important;
    color: var(--brand-terracotta);
}
.pos-app:not(.no-pos-selected) .order-panel {
    display:block;
}


/* =========================================================
   v8.2.37 — Permissions rôles UI
   ========================================================= */
.readonly-note{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:5px 10px;
    border-radius:999px;
    background:rgba(var(--brand-gold-rgb),.10);
    border:1px solid rgba(var(--brand-gold-rgb),.22);
    color:var(--muted);
    font-weight:900;
    font-size:12px;
}
.nav-item[style*="display: none"]{
    display:none !important;
}
#screen-commandes .table-card table td{
    vertical-align:top;
}
.pos-app.no-pos-selected{
    grid-template-columns:260px minmax(760px, 1fr) !important;
}
.pos-app.no-pos-selected .order-panel{
    display:none !important;
}


/* =========================================================
   v8.2.37 — tableau utilisateurs + icônes catégorie thème
   ========================================================= */
#usersTbody td{
    vertical-align: middle !important;
}
#usersTbody .user-photo-cell{
    width: 96px !important;
    text-align: center !important;
}
#usersTbody .user-photo-cell .user-avatar{
    margin: 0 auto !important;
}
.category-visual{
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold)) !important;
    color: #ffffff !important;
}
.category-visual svg,
.category-visual svg *{
    color: #ffffff !important;
    stroke: #ffffff !important;
}
.category-visual img{
    background: #fff !important;
    border-radius: 16px !important;
}
#productPointIds{
    min-height: 138px !important;
    height: 138px !important;
    padding: 10px 14px !important;
}
#productPointIdsWrap small{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-weight:700;
}


/* =========================================================
   v8.2.37 — disponibilité produit et modal utilisateur
   ========================================================= */
#productPointIdsWrap{
    display:block;
}
#productPointIdsWrap.hidden{
    display:none !important;
}
#productPointIds{
    min-height:138px !important;
    height:138px !important;
    padding:10px 14px !important;
}
#productPointIdsWrap small{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-weight:700;
}
.category-visual,
.product-photo .category-visual{
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold)) !important;
    color:#fff !important;
}
.category-visual svg,
.category-visual svg *,
.tab-btn svg,
.tab-btn svg *{
    stroke: currentColor !important;
}


/* =========================================================
   v8.2.37 — corrections scroll modal produit + choix points propre
   ========================================================= */
#productPointIds.ovc-hidden-multi{
    position:absolute !important;
    left:-99999px !important;
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
    pointer-events:none !important;
}
.ovc-point-checks{
    display:grid !important;
    grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)) !important;
    gap:8px !important;
    margin-top:8px !important;
}
.ovc-point-check{
    display:flex !important;
    align-items:center !important;
    gap:9px !important;
    min-height:42px !important;
    border:1px solid var(--line) !important;
    border-radius:12px !important;
    padding:9px 12px !important;
    background:rgba(255,255,255,.72) !important;
    font-weight:900 !important;
    cursor:pointer !important;
}
.ovc-point-check input{
    width:18px !important;
    height:18px !important;
    margin:0 !important;
    accent-color:var(--brand-terracotta) !important;
}
.ovc-point-empty{
    border:1px dashed var(--line);
    border-radius:12px;
    padding:12px;
    color:var(--muted);
    font-weight:800;
}
#productPointIdsWrap{
    grid-column:1 / -1 !important;
}
.modal-card{
    max-height:92vh !important;
}
.modal-body{
    overflow:visible !important;
}
#productModal .modal-card{
    width:min(820px, 94vw) !important;
}
.category-visual{
    background:linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold)) !important;
    color:#fff !important;
}
.category-visual svg,
.category-visual svg *{
    stroke:#fff !important;
}
.product-grid{
    min-height:unset !important;
}


/* =========================================================
   v8.2.37 — modal produit sauvegarde visible + choix points sans scroll
   ========================================================= */
.modal{
    align-items:flex-start !important;
    overflow-y:auto !important;
    padding:22px !important;
}
.modal-card{
    display:flex !important;
    flex-direction:column !important;
    max-height:calc(100vh - 44px) !important;
    overflow:hidden !important;
}
.modal-body{
    overflow-y:auto !important;
    overflow-x:hidden !important;
    max-height:calc(100vh - 180px) !important;
    padding-bottom:24px !important;
}
.modal-footer{
    position:sticky !important;
    bottom:0 !important;
    z-index:5 !important;
    background:var(--card) !important;
    border-top:1px solid var(--line) !important;
}
#productModal .modal-card{
    width:min(820px, 94vw) !important;
}
#productPointIds.ovc-hidden-multi{
    position:absolute !important;
    left:-99999px !important;
    width:1px !important;
    height:1px !important;
    opacity:0 !important;
    pointer-events:none !important;
}
#productPointIdsWrap{
    grid-column:1 / -1 !important;
}
.ovc-point-checks{
    display:grid !important;
    grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)) !important;
    gap:8px !important;
    margin-top:8px !important;
}
.ovc-point-check{
    display:flex !important;
    align-items:center !important;
    gap:9px !important;
    min-height:42px !important;
    border:1px solid var(--line) !important;
    border-radius:12px !important;
    padding:9px 12px !important;
    background:rgba(255,255,255,.78) !important;
    font-weight:900 !important;
    cursor:pointer !important;
}
.ovc-point-check input{
    width:18px !important;
    height:18px !important;
    margin:0 !important;
    accent-color:var(--brand-terracotta) !important;
}
.ovc-point-empty{
    border:1px dashed var(--line);
    border-radius:12px;
    padding:12px;
    color:var(--muted);
    font-weight:800;
}
.category-visual{
    background:linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold)) !important;
    color:#fff !important;
}
.category-visual svg,
.category-visual svg *{
    stroke:#fff !important;
}
.product-grid{
    min-height:unset !important;
}
.catalog-panel{
    overflow:visible !important;
}


/* =========================================================
   v8.2.37 — correctif final CSS modal + caisse
   ========================================================= */
#productModal .modal-form,
.ovc-v8222-final #productModal .modal-form{
    overflow: visible !important;
    overflow-y: visible !important;
    max-height: none !important;
}
#productModal .modal-card{
    max-height: calc(100vh - 36px) !important;
    display:flex !important;
    flex-direction:column !important;
}
#productModal .modal-body{
    overflow-y: auto !important;
    overflow-x: hidden !important;
    max-height: calc(100vh - 172px) !important;
    padding-bottom: 22px !important;
}
#productModal .modal-footer,
#productModal footer{
    position: sticky !important;
    bottom: 0 !important;
    z-index: 30 !important;
    background: var(--card) !important;
    border-top: 1px solid var(--line) !important;
}
#productModal #productPhotoPreview{
    min-height: 95px !important;
    max-height: 135px !important;
    overflow: hidden !important;
}
#productModal #productPhotoPreview img{
    max-height: 120px !important;
    object-fit: contain !important;
}
#productGrid.product-grid{
    display:grid !important;
    grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)) !important;
    gap:14px !important;
}
#productGrid .product-card{
    display:flex !important;
    flex-direction:column !important;
    gap:8px !important;
}
.catalog-panel #catalogArea.hidden{
    display:none !important;
}


/* =========================================================
   v8.2.37 — URGENT : scroll demandé sur .modal-form
   ========================================================= */
.modal-form {
    padding: 24px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    overflow-y: scroll;
}

/* Override nécessaire car les anciennes règles #productModal .modal-form étaient en !important */
#productModal .modal-form,
#categoryModal .modal-form,
#clientModal .modal-form,
#userModal .modal-form,
#tableModal .modal-form,
#pointModal .modal-form {
    padding: 24px !important;
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
    overflow-y: scroll !important;
}


/* =========================================================
   v8.2.37 — vrai scroll modal-form
   Le scroll ne peut fonctionner que si une hauteur/max-height existe.
   ========================================================= */
.modal {
    align-items: flex-start !important;
    overflow-y: auto !important;
    padding: 18px !important;
}
.modal-card {
    display: flex !important;
    flex-direction: column !important;
    max-height: calc(100vh - 34px) !important;
    overflow: hidden !important;
}
.modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
}
.modal-footer {
    flex: 0 0 auto !important;
    position: relative !important;
    z-index: 50 !important;
    background: var(--card) !important;
    border-top: 1px solid var(--line) !important;
}
.modal-form {
    padding: 24px !important;
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
    height: calc(100vh - 190px) !important;
    max-height: calc(100vh - 190px) !important;
    min-height: 0 !important;
    overflow-y: scroll !important;
    overflow-x: hidden !important;
    padding-bottom: 120px !important;
    scrollbar-gutter: stable !important;
}

/* Produit : le formulaire peut être long, donc scroll obligatoire */
#productModal .modal-form {
    overflow-y: scroll !important;
    height: calc(100vh - 190px) !important;
    max-height: calc(100vh - 190px) !important;
}

/* Évite que les anciennes règles cachent le footer ou annulent le scroll */
#productModal .modal-body,
#categoryModal .modal-body,
#clientModal .modal-body,
#userModal .modal-body,
#tableModal .modal-body,
#pointModal .modal-body {
    overflow: hidden !important;
    min-height: 0 !important;
}
#productModal .modal-footer,
#categoryModal .modal-footer,
#clientModal .modal-footer,
#userModal .modal-footer,
#tableModal .modal-footer,
#pointModal .modal-footer {
    position: relative !important;
    bottom: auto !important;
}

/* Les points produit ne doivent pas créer un scroll parasite */
#productPointIds.ovc-hidden-multi {
    position: absolute !important;
    left: -99999px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.ovc-point-checks {
    max-height: none !important;
    overflow: visible !important;
}


/* =========================================================
   v8.2.37 — tooltip rapports visible au-dessus de tout
   ========================================================= */

/* On désactive l'ancien tooltip pseudo-element, car il était coupé par les conteneurs */
.report-bar:hover::after,
.report-bar:hover::before {
    display: none !important;
    content: none !important;
}

/* Les cartes/graphiques ne doivent pas couper le tooltip */
.report-card,
.report-chart,
.report-bar-wrap,
#monthlyChart,
#yearlyChart,
#screen-rapports {
    overflow: visible !important;
}

.report-chart {
    position: relative !important;
    padding-top: 34px !important;
}

/* Nouveau tooltip global injecté dans body */
.ovc-report-tooltip {
    position: fixed !important;
    z-index: 999999 !important;
    pointer-events: none !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
    max-width: min(280px, calc(100vw - 24px));
    padding: 9px 12px;
    border-radius: 12px;
    background: var(--brand-dark, #071B49);
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.25;
    white-space: nowrap;
    box-shadow: 0 16px 38px rgba(0,0,0,.28);
    border: 1px solid rgba(255,255,255,.14);
}

.ovc-report-tooltip.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Petit indicateur visuel au hover */
.report-bar:hover {
    filter: brightness(1.08);
    transform: translateY(-2px);
}


/* =========================================================
   v8.2.37 — Cloud data sync status
   ========================================================= */
.sync-pill.cloud-ok {
    background: rgba(46,170,89,.13) !important;
    color: #1D7B3D !important;
    border-color: rgba(46,170,89,.28) !important;
}
.sync-pill.cloud-warn {
    background: rgba(var(--brand-gold-rgb),.16) !important;
    color: #7B5A20 !important;
    border-color: rgba(var(--brand-gold-rgb),.34) !important;
}
.sync-pill.cloud-error {
    background: rgba(217,74,56,.13) !important;
    color: #B93222 !important;
    border-color: rgba(217,74,56,.28) !important;
}


/* =========================================================
   v8.2.37 — tables par point de vente
   ========================================================= */
#tablePoint {
    width: 100% !important;
    height: 54px !important;
    border-radius: 14px !important;
    border: 1px solid var(--line) !important;
    padding: 0 48px 0 14px !important;
    background-color: #fff !important;
    color: var(--text) !important;
    font-weight: 800 !important;
}
.table-point-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 2px 0 10px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(var(--brand-gold-rgb), .14);
    border: 1px solid rgba(var(--brand-gold-rgb), .26);
    color: var(--text);
    font-weight: 900;
    font-size: 11px;
}
.table-card-mini[data-point-id] {
    position: relative;
}


/* =========================================================
   v8.2.37 — Floor Plan Drag & Drop
   ========================================================= */
.tables-view-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:18px 0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:22px;
    background:rgba(255,255,255,.72);
    box-shadow:0 14px 34px rgba(0,0,0,.04);
}
.segmented{
    display:inline-flex;
    gap:8px;
    padding:6px;
    border-radius:18px;
    background:rgba(var(--brand-gold-rgb),.08);
    border:1px solid rgba(var(--brand-gold-rgb),.22);
}
.seg-btn{
    min-height:42px;
    padding:0 18px;
    border-radius:14px;
    border:1px solid transparent;
    background:transparent;
    color:var(--text);
    font-weight:950;
    cursor:pointer;
}
.seg-btn.active{
    background:linear-gradient(135deg,var(--brand-gold),var(--brand-terracotta));
    color:#fff;
    box-shadow:0 12px 24px rgba(0,0,0,.10);
}
.plan-actions{
    display:flex;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
}
.plan-actions .plain-btn.active,
#togglePlanEditBtn.active{
    background:linear-gradient(135deg,var(--brand-terracotta),var(--brand-gold)) !important;
    color:#fff !important;
    border-color:transparent !important;
}
.floor-plan-panel{
    display:grid;
    gap:14px;
    margin-top:14px;
}
.floor-plan-help{
    padding:12px 14px;
    border-radius:16px;
    border:1px solid rgba(var(--brand-gold-rgb),.24);
    background:rgba(var(--brand-gold-rgb),.10);
    color:var(--text);
    font-weight:800;
}
.floor-plan-wrap{
    position:relative;
    width:100%;
    min-height:680px;
    border-radius:28px;
    border:1px solid var(--line);
    background:
        linear-gradient(180deg,rgba(255,255,255,.96),rgba(250,247,241,.96)),
        repeating-linear-gradient(0deg,transparent 0,transparent 39px,rgba(0,0,0,.035) 40px),
        repeating-linear-gradient(90deg,transparent 0,transparent 39px,rgba(0,0,0,.035) 40px);
    overflow:hidden;
    box-shadow:0 24px 60px rgba(0,0,0,.08);
}
.floor-plan-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:contain;
    background:#f7f4ef;
    pointer-events:none;
    z-index:1;
}
.floor-plan-bg.hidden{
    display:none !important;
}
.floor-plan-placeholder{
    position:absolute;
    inset:24px;
    z-index:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:8px;
    border:2px dashed rgba(var(--brand-gold-rgb),.36);
    border-radius:24px;
    color:var(--muted);
    background:rgba(255,255,255,.36);
}
.floor-plan-placeholder strong{
    color:var(--text);
    font-size:22px;
    font-weight:950;
}
.floor-plan-placeholder.hidden{
    display:none !important;
}
.floor-plan-nodes{
    position:absolute;
    inset:0;
    z-index:3;
}
.floor-plan-no-tables{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--muted);
    font-weight:950;
    font-size:18px;
}
.floor-table-node{
    position:absolute;
    z-index:4;
    border:2px solid rgba(255,255,255,.56);
    border-radius:22px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    color:#fff;
    cursor:pointer;
    user-select:none;
    touch-action:none;
    box-shadow:0 16px 36px rgba(0,0,0,.22);
    transition:box-shadow .16s ease, filter .16s ease;
    text-align:center;
    overflow:hidden;
}
.floor-table-node strong{
    font-size:13px;
    font-weight:950;
    line-height:1.05;
    max-width:92%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.floor-table-node small{
    font-size:10px;
    font-weight:900;
    opacity:.92;
}
.floor-table-node:hover{
    filter:brightness(1.06);
    box-shadow:0 22px 46px rgba(0,0,0,.28);
}
.floor-table-node.dragging{
    z-index:10;
    opacity:.92;
    box-shadow:0 30px 70px rgba(0,0,0,.34);
}
.floor-table-node.editable{
    cursor:grab;
    outline:2px dashed rgba(255,255,255,.58);
    outline-offset:3px;
}
.floor-table-node.editable:active{
    cursor:grabbing;
}
.floor-table-node.free{
    background:linear-gradient(135deg,#22B86D,#128247);
}
.floor-table-node.occupied{
    background:linear-gradient(135deg,#FF5A4F,#CF241F);
}
.floor-table-node.reserved{
    background:linear-gradient(135deg,#F3C451,#B98118);
}
.floor-table-node.cleaning{
    background:linear-gradient(135deg,#8B97A8,#596579);
}
.floor-table-node.circle{
    border-radius:999px;
}
.floor-table-node.rect{
    border-radius:20px;
}
.floor-table-icon{
    line-height:1;
    display:flex;
}
.floor-table-icon svg{
    width:28px;
    height:28px;
}
.floor-plan-preview{
    min-height:130px !important;
}
.floor-plan-preview img{
    width:100% !important;
    max-height:220px !important;
    object-fit:contain !important;
}
.table-card-mini .table-icon{
    background:linear-gradient(135deg,var(--brand-terracotta),var(--brand-gold)) !important;
    color:#fff !important;
}
.table-card-mini .table-icon:empty::before{
    content:"";
    width:34px;
    height:34px;
    display:block;
    background:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M12 20h40a4 4 0 0 1 4 4v12a4 4 0 0 1-4 4H12a4 4 0 0 1-4-4V24a4 4 0 0 1 4-4Zm6 24h6v12h-6V44Zm22 0h6v12h-6V44Z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='black' d='M12 20h40a4 4 0 0 1 4 4v12a4 4 0 0 1-4 4H12a4 4 0 0 1-4-4V24a4 4 0 0 1 4-4Zm6 24h6v12h-6V44Zm22 0h6v12h-6V44Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media (max-width:900px){
    .tables-view-toolbar{
        align-items:stretch;
        flex-direction:column;
    }
    .plan-actions{
        justify-content:stretch;
    }
    .plan-actions button{
        flex:1;
    }
    .floor-plan-wrap{
        min-height:520px;
    }
}


/* =========================================================
   v8.2.37 — Floor plan : palette gauche + tailles
   ========================================================= */
#screen-tables.ovc-plan-mode #tablesGrid,
#screen-tables.ovc-plan-mode #tablesEmpty {
    display: none !important;
}
.floor-plan-layout {
    display: grid;
    grid-template-columns: 205px minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
}
.floor-table-palette {
    border: 1px solid var(--line);
    border-radius: 22px;
    background: rgba(255,255,255,.84);
    padding: 12px;
    min-height: 680px;
    max-height: 680px;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(0,0,0,.06);
}
.floor-palette-head {
    display: grid;
    gap: 2px;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}
.floor-palette-head strong {
    color: var(--text);
    font-size: 16px;
    font-weight: 950;
}
.floor-palette-head small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}
.floor-table-palette-list {
    display: grid;
    gap: 10px;
    max-height: 600px;
    overflow-y: auto;
    padding-right: 4px;
}
.floor-palette-item {
    display: grid;
    grid-template-columns: 44px 1fr;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 58px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    color: var(--text);
    padding: 8px;
    cursor: grab;
    text-align: left;
    transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.floor-palette-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(0,0,0,.10);
    border-color: rgba(var(--brand-gold-rgb), .46);
}
.floor-palette-item:active,
.floor-palette-item.dragging-source {
    cursor: grabbing;
    opacity: .6;
}
.floor-palette-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold));
    box-shadow: 0 10px 22px rgba(0,0,0,.13);
}
.floor-palette-item.free .floor-palette-icon { background: linear-gradient(135deg, #22B86D, #128247); }
.floor-palette-item.occupied .floor-palette-icon { background: linear-gradient(135deg, #FF5A4F, #CF241F); }
.floor-palette-item.reserved .floor-palette-icon { background: linear-gradient(135deg, #F3C451, #B98118); }
.floor-palette-item.cleaning .floor-palette-icon { background: linear-gradient(135deg, #8B97A8, #596579); }
.floor-palette-item strong {
    display: block;
    font-size: 13px;
    font-weight: 950;
    line-height: 1.1;
    color: var(--text);
}
.floor-palette-item small {
    display: block;
    margin-top: 3px;
    font-size: 10.5px;
    font-weight: 850;
    color: var(--muted);
    line-height: 1.15;
}
.floor-palette-empty {
    padding: 16px;
    border: 1px dashed rgba(var(--brand-gold-rgb), .35);
    border-radius: 16px;
    background: rgba(var(--brand-gold-rgb), .08);
    color: var(--muted);
    font-weight: 900;
    font-size: 12px;
    text-align: center;
}
.floor-drag-ghost {
    position: fixed;
    z-index: 999999;
    width: 84px;
    height: 84px;
    pointer-events: none;
    border-radius: 22px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold));
    box-shadow: 0 24px 55px rgba(0,0,0,.28);
    border: 2px solid rgba(255,255,255,.55);
}
.floor-drag-ghost.free { background: linear-gradient(135deg, #22B86D, #128247); }
.floor-drag-ghost.occupied { background: linear-gradient(135deg, #FF5A4F, #CF241F); }
.floor-drag-ghost.reserved { background: linear-gradient(135deg, #F3C451, #B98118); }
.floor-drag-ghost strong {
    font-size: 11px;
    font-weight: 950;
    max-width: 72px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.floor-table-node.ovc-unplaced-hidden {
    display: none !important;
}
.floor-table-node.selected {
    outline: 4px solid var(--brand-gold) !important;
    outline-offset: 5px !important;
    box-shadow: 0 0 0 8px rgba(var(--brand-gold-rgb), .18), 0 24px 60px rgba(0,0,0,.28) !important;
}
.floor-size-tools {
    display: inline-flex;
    gap: 8px;
    align-items: center;
}
.floor-size-tools .plain-btn {
    min-height: 42px !important;
    padding: 0 14px !important;
}
#screen-tables.ovc-plan-mode #floorPlanPanel {
    display: grid !important;
}
#screen-tables.ovc-plan-mode .floor-plan-wrap {
    min-height: 680px;
}
@media (max-width: 1050px) {
    .floor-plan-layout { grid-template-columns: 1fr; }
    .floor-table-palette { min-height: auto; max-height: 220px; }
    .floor-table-palette-list { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); max-height: 150px; }
}

/* =========================================================
   v8.2.37 — déplacement après drop + taille intelligente
   ========================================================= */
.floor-table-node {
    touch-action: none !important;
}

.floor-table-node.editable,
.floor-table-node.selected {
    cursor: grab !important;
}

.floor-table-node.dragging {
    cursor: grabbing !important;
    z-index: 999 !important;
    opacity: .94;
    box-shadow: 0 30px 70px rgba(0,0,0,.36) !important;
}

.floor-table-node.selected {
    outline: 4px solid var(--brand-gold) !important;
    outline-offset: 5px !important;
    box-shadow:
        0 0 0 8px rgba(var(--brand-gold-rgb), .18),
        0 24px 60px rgba(0,0,0,.30) !important;
}

/* Quand la table est petite, on garde uniquement le numéro */
.floor-table-node.is-small {
    gap: 0 !important;
    padding: 0 !important;
}

.floor-table-node.is-small .floor-table-icon,
.floor-table-node.is-small small {
    display: none !important;
}

.floor-table-node.is-small strong {
    max-width: 100% !important;
    width: 100% !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    font-weight: 950 !important;
}

.floor-table-node.is-tiny strong {
    font-size: 10px !important;
    letter-spacing: -.2px !important;
}

.floor-table-node.is-tiny {
    border-radius: 14px !important;
}


/* =========================================================
   v8.2.37 — stable drag/sélection plan
   ========================================================= */
.floor-table-node {
    touch-action: none !important;
}

.floor-table-node.ovc-selected-8231 {
    outline: 4px solid var(--brand-gold) !important;
    outline-offset: 5px !important;
    box-shadow:
        0 0 0 8px rgba(var(--brand-gold-rgb), .22),
        0 26px 64px rgba(0,0,0,.34) !important;
    z-index: 40 !important;
}

.floor-table-node.ovc-dragging-8231 {
    cursor: grabbing !important;
    opacity: .94 !important;
    z-index: 9999 !important;
    box-shadow: 0 34px 80px rgba(0,0,0,.42) !important;
}

.floor-table-node.ovc-size-small-8231 {
    gap: 0 !important;
    padding: 0 !important;
}

.floor-table-node.ovc-size-small-8231 .floor-table-icon,
.floor-table-node.ovc-size-small-8231 small {
    display: none !important;
}

.floor-table-node.ovc-size-small-8231 strong {
    display: block !important;
    max-width: 100% !important;
    width: 100% !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    font-weight: 950 !important;
}

.floor-table-node.ovc-size-tiny-8231 {
    border-radius: 13px !important;
}


/* =========================================================
   v8.2.37 — Floor Plan final stable + Multi commandes
   ========================================================= */

/* Le plan final masque les anciennes nodes et les cartes sous le plan */
#screen-tables.ovc-final-plan-mode #tablesGrid,
#screen-tables.ovc-final-plan-mode #tablesEmpty {
    display: none !important;
}

#floorPlanNodes > .floor-table-node {
    display: none !important;
}

.ovc-final-table-node {
    position: absolute;
    z-index: 20;
    border: 2px solid rgba(255,255,255,.58);
    border-radius: 22px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    color: #fff;
    cursor: pointer;
    user-select: none;
    touch-action: none;
    box-shadow: 0 16px 36px rgba(0,0,0,.22);
    transition: box-shadow .12s ease, filter .12s ease;
    overflow: hidden;
    text-align: center;
}

.ovc-final-table-node svg {
    width: 27px;
    height: 27px;
}

.ovc-final-table-node strong {
    font-weight: 950;
    line-height: 1;
    max-width: 92%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ovc-final-table-node small {
    font-size: 10px;
    font-weight: 900;
    opacity: .92;
}

.ovc-final-table-node.free { background: linear-gradient(135deg,#22B86D,#128247); }
.ovc-final-table-node.occupied { background: linear-gradient(135deg,#FF5A4F,#CF241F); }
.ovc-final-table-node.reserved { background: linear-gradient(135deg,#F3C451,#B98118); }
.ovc-final-table-node.cleaning { background: linear-gradient(135deg,#8B97A8,#596579); }

.ovc-final-table-node.editable {
    cursor: grab;
    outline: 2px dashed rgba(255,255,255,.58);
    outline-offset: 3px;
}

.ovc-final-table-node.dragging {
    cursor: grabbing !important;
    z-index: 9999 !important;
    opacity: .94;
    box-shadow: 0 34px 80px rgba(0,0,0,.42) !important;
}

.ovc-final-table-node.selected {
    outline: 4px solid var(--brand-gold) !important;
    outline-offset: 5px !important;
    box-shadow:
        0 0 0 8px rgba(var(--brand-gold-rgb), .22),
        0 26px 64px rgba(0,0,0,.34) !important;
    z-index: 50 !important;
}

/* Palette gauche finale */
.ovc-final-palette-item {
    display: grid;
    grid-template-columns: 44px 1fr;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 58px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    color: var(--text);
    padding: 8px;
    cursor: grab;
    text-align: left;
    transition: transform .14s ease, box-shadow .14s ease;
}

.ovc-final-palette-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(0,0,0,.10);
}

.ovc-final-palette-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold));
}

.ovc-final-palette-icon svg {
    width: 24px;
    height: 24px;
}

.ovc-final-palette-item.free .ovc-final-palette-icon { background: linear-gradient(135deg,#22B86D,#128247); }
.ovc-final-palette-item.occupied .ovc-final-palette-icon { background: linear-gradient(135deg,#FF5A4F,#CF241F); }
.ovc-final-palette-item.reserved .ovc-final-palette-icon { background: linear-gradient(135deg,#F3C451,#B98118); }
.ovc-final-palette-item.cleaning .ovc-final-palette-icon { background: linear-gradient(135deg,#8B97A8,#596579); }

.ovc-final-palette-item strong {
    display: block;
    font-size: 13px;
    font-weight: 950;
    color: var(--text);
}

.ovc-final-palette-item small {
    display: block;
    margin-top: 3px;
    font-size: 10.5px;
    font-weight: 850;
    color: var(--muted);
}

.ovc-final-drag-ghost {
    position: fixed;
    z-index: 999999;
    width: 84px;
    height: 84px;
    pointer-events: none;
    border-radius: 22px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg,var(--brand-terracotta),var(--brand-gold));
    box-shadow: 0 24px 55px rgba(0,0,0,.28);
    border: 2px solid rgba(255,255,255,.55);
}

.ovc-final-drag-ghost svg {
    width: 26px;
    height: 26px;
}

.ovc-final-drag-ghost strong {
    font-size: 11px;
    font-weight: 950;
}

/* Plusieurs commandes */
.multi-order-bar {
    padding: 0 0 12px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    margin-bottom: 12px;
}

.order-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.order-tab,
.new-order-btn {
    flex: 0 0 auto;
    min-width: 112px;
    min-height: 52px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.06);
    color: #fff;
    padding: 8px 10px;
    cursor: pointer;
    text-align: left;
}

.order-tab.active {
    border-color: var(--brand-gold);
    background: linear-gradient(135deg, rgba(var(--brand-gold-rgb),.42), rgba(255,255,255,.06));
    box-shadow: 0 12px 24px rgba(0,0,0,.18);
}

.order-tab strong {
    display: block;
    font-size: 12px;
    font-weight: 950;
    white-space: nowrap;
}

.order-tab small {
    display: block;
    margin-top: 3px;
    font-size: 10px;
    font-weight: 800;
    opacity: .82;
    white-space: nowrap;
}

.new-order-btn {
    min-width: 52px;
    text-align: center;
    font-weight: 950;
    display: flex;
    align-items: center;
    justify-content: center;
}


/* =========================================================
   v8.2.37 — style demandé + fix table add
   ========================================================= */
.multi-order-bar {
    padding: 12px 0 12px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
    margin-bottom: 12px !important;
}

/* Sécurité : le modal table doit rester cliquable au-dessus du plan */
#tableModal {
    z-index: 999999 !important;
}
#tableModal .modal-card,
#tableModal input,
#tableModal select,
#tableModal button {
    pointer-events: auto !important;
}


/* =========================================================
   v8.2.37 — vue cartes autorisée + ajout table final
   ========================================================= */

/* Style demandé conservé */
.multi-order-bar {
    padding: 12px 0 12px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
    margin-bottom: 12px !important;
}

/* Quand on passe en vue Cartes, on cache vraiment le plan */
#screen-tables.ovc-card-mode-8234 #floorPlanPanel {
    display: none !important;
}
#screen-tables.ovc-card-mode-8234 #tablesGrid {
    display: grid !important;
}
#screen-tables.ovc-card-mode-8234 #tablesGrid.hidden {
    display: none !important;
}

/* Quand on est en vue Plan, les cartes ne s'affichent pas dessous */
#screen-tables.ovc-plan-mode #tablesGrid,
#screen-tables.ovc-final-plan-mode #tablesGrid,
#screen-tables.ovc-plan-mode #tablesEmpty,
#screen-tables.ovc-final-plan-mode #tablesEmpty {
    display: none !important;
}

/* Bouton Cartes actif fonctionne et ne déclenche plus d'alerte */
#tablesCardsViewBtn,
#tablesPlanViewBtn {
    pointer-events: auto !important;
}

/* Modal table toujours au-dessus et cliquable */
#tableModal {
    z-index: 999999 !important;
}
#tableModal .modal-card,
#tableModal input,
#tableModal select,
#tableModal button {
    pointer-events: auto !important;
}

/* Cartes tables propres */
.table-card-v8234 .table-icon {
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold)) !important;
    color: #fff !important;
}


/* =========================================================
   v8.2.37 — Tables final : Cartes + Plan
   ========================================================= */

/* Style demandé conservé */
.multi-order-bar {
    padding: 12px 0 12px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
    margin-bottom: 12px !important;
}

/* Modal ajout table centré */
#tableModal.ovc35-centered-modal:not(.hidden),
#tableModal:not(.hidden) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
}

#tableModal .modal-card {
    margin: auto !important;
    width: min(760px, calc(100vw - 48px)) !important;
    max-height: calc(100vh - 48px) !important;
    display: flex !important;
    flex-direction: column !important;
    transform: none !important;
}

#tableModal .modal-form {
    max-height: calc(100vh - 190px) !important;
    overflow-y: auto !important;
    padding: 24px !important;
    gap: 16px !important;
}

#tableModal footer {
    position: sticky !important;
    bottom: 0 !important;
    background: var(--card, #fff) !important;
    z-index: 5 !important;
}

/* Toolbar : en Cartes, pas d'options du plan */
#screen-tables.ovc35-card-view #ovc35PlanActions,
#screen-tables.ovc35-card-view .plan-actions {
    display: none !important;
}

#screen-tables.ovc35-card-view #floorPlanPanel {
    display: none !important;
}

#screen-tables.ovc35-card-view #openTableModal {
    display: inline-flex !important;
}

#screen-tables.ovc35-plan-view #openTableModal {
    display: none !important;
}

/* En Plan, pas de cartes dessous */
#screen-tables.ovc35-plan-view #tablesGrid,
#screen-tables.ovc35-plan-view #tablesEmpty {
    display: none !important;
}

/* Toolbar final */
.ovc35-toolbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    margin: 18px 0 !important;
}

.ovc35-toolbar .segmented {
    display: inline-flex !important;
    gap: 8px !important;
    padding: 6px !important;
    border-radius: 18px !important;
    background: rgba(var(--brand-gold-rgb), .08) !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .22) !important;
}

.ovc35-toolbar .seg-btn {
    min-height: 42px !important;
    padding: 0 18px !important;
    border-radius: 14px !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    color: var(--text) !important;
    font-weight: 950 !important;
    cursor: pointer !important;
}

.ovc35-toolbar .seg-btn.active {
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold)) !important;
    color: #fff !important;
    box-shadow: 0 12px 24px rgba(0,0,0,.10) !important;
}

#ovc35PlanActions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    flex-wrap: wrap;
}

#ovc35EditPlanBtn.active {
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold)) !important;
    color: #fff !important;
}

/* Plan */
.ovc35-plan-panel {
    display: grid;
    gap: 14px;
    margin-top: 14px;
}

.ovc35-plan-layout {
    display: grid;
    grid-template-columns: 205px minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
}

.ovc35-palette {
    border: 1px solid var(--line);
    border-radius: 22px;
    background: rgba(255,255,255,.84);
    padding: 12px;
    min-height: 680px;
    max-height: 680px;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(0,0,0,.06);
}

.ovc35-palette-head {
    display: grid;
    gap: 2px;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}

.ovc35-palette-head strong {
    color: var(--text);
    font-size: 16px;
    font-weight: 950;
}

.ovc35-palette-head small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.ovc35-palette-list {
    display: grid;
    gap: 10px;
    max-height: 600px;
    overflow-y: auto;
    padding-right: 4px;
}

.ovc35-palette-item {
    display: grid;
    grid-template-columns: 44px 1fr;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 58px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    color: var(--text);
    padding: 8px;
    cursor: grab;
    text-align: left;
    transition: transform .14s ease, box-shadow .14s ease;
}

.ovc35-palette-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(0,0,0,.10);
}

.ovc35-palette-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold));
}

.ovc35-palette-icon svg {
    width: 24px;
    height: 24px;
}

.ovc35-palette-item.free .ovc35-palette-icon { background: linear-gradient(135deg,#22B86D,#128247); }
.ovc35-palette-item.occupied .ovc35-palette-icon { background: linear-gradient(135deg,#FF5A4F,#CF241F); }
.ovc35-palette-item.reserved .ovc35-palette-icon { background: linear-gradient(135deg,#F3C451,#B98118); }
.ovc35-palette-item.cleaning .ovc35-palette-icon { background: linear-gradient(135deg,#8B97A8,#596579); }

.ovc35-palette-item strong {
    display: block;
    font-size: 13px;
    font-weight: 950;
    color: var(--text);
}

.ovc35-palette-item small {
    display: block;
    margin-top: 3px;
    font-size: 10.5px;
    font-weight: 850;
    color: var(--muted);
}

.ovc35-palette-empty {
    padding: 16px;
    border: 1px dashed rgba(var(--brand-gold-rgb), .35);
    border-radius: 16px;
    background: rgba(var(--brand-gold-rgb), .08);
    color: var(--muted);
    font-weight: 900;
    font-size: 12px;
    text-align: center;
}

.ovc35-plan-wrap {
    position: relative;
    width: 100%;
    min-height: 680px;
    border-radius: 28px;
    border: 1px solid var(--line);
    background:
        linear-gradient(180deg,rgba(255,255,255,.96),rgba(250,247,241,.96)),
        repeating-linear-gradient(0deg,transparent 0,transparent 39px,rgba(0,0,0,.035) 40px),
        repeating-linear-gradient(90deg,transparent 0,transparent 39px,rgba(0,0,0,.035) 40px);
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(0,0,0,.08);
}

.ovc35-plan-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #f7f4ef;
    pointer-events: none;
    z-index: 1;
}

.ovc35-plan-bg.hidden {
    display: none !important;
}

.ovc35-plan-placeholder {
    position: absolute;
    inset: 24px;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
    border: 2px dashed rgba(var(--brand-gold-rgb), .36);
    border-radius: 24px;
    color: var(--muted);
    background: rgba(255,255,255,.36);
}

.ovc35-plan-placeholder strong {
    color: var(--text);
    font-size: 22px;
    font-weight: 950;
}

.ovc35-plan-placeholder.hidden {
    display: none !important;
}

.ovc35-plan-nodes {
    position: absolute;
    inset: 0;
    z-index: 3;
}

.ovc35-no-tables {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-weight: 950;
    font-size: 18px;
}

.ovc35-node {
    position: absolute;
    z-index: 20;
    border: 2px solid rgba(255,255,255,.58);
    border-radius: 22px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    color: #fff;
    cursor: pointer;
    user-select: none;
    touch-action: none;
    box-shadow: 0 16px 36px rgba(0,0,0,.22);
    overflow: hidden;
    text-align: center;
}

.ovc35-node svg {
    width: 27px;
    height: 27px;
}

.ovc35-node strong {
    font-weight: 950;
    line-height: 1;
    max-width: 92%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ovc35-node small {
    font-size: 10px;
    font-weight: 900;
    opacity: .92;
}

.ovc35-node.free { background: linear-gradient(135deg,#22B86D,#128247); }
.ovc35-node.occupied { background: linear-gradient(135deg,#FF5A4F,#CF241F); }
.ovc35-node.reserved { background: linear-gradient(135deg,#F3C451,#B98118); }
.ovc35-node.cleaning { background: linear-gradient(135deg,#8B97A8,#596579); }

.ovc35-node.editable {
    cursor: grab;
    outline: 2px dashed rgba(255,255,255,.58);
    outline-offset: 3px;
}

.ovc35-node.dragging {
    cursor: grabbing !important;
    z-index: 9999 !important;
    opacity: .94;
    box-shadow: 0 34px 80px rgba(0,0,0,.42) !important;
}

.ovc35-node.selected {
    outline: 4px solid var(--brand-gold) !important;
    outline-offset: 5px !important;
    box-shadow:
        0 0 0 8px rgba(var(--brand-gold-rgb), .22),
        0 26px 64px rgba(0,0,0,.34) !important;
    z-index: 50 !important;
}

.ovc35-ghost {
    position: fixed;
    z-index: 999999;
    width: 84px;
    height: 84px;
    pointer-events: none;
    border-radius: 22px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg,var(--brand-terracotta),var(--brand-gold));
    box-shadow: 0 24px 55px rgba(0,0,0,.28);
    border: 2px solid rgba(255,255,255,.55);
}

.ovc35-ghost svg {
    width: 26px;
    height: 26px;
}

.ovc35-ghost strong {
    font-size: 11px;
    font-weight: 950;
}

.ovc35-table-card .table-icon {
    background: linear-gradient(135deg, var(--brand-terracotta), var(--brand-gold)) !important;
    color: #fff !important;
}

@media (max-width:1050px) {
    .ovc35-plan-layout {
        grid-template-columns: 1fr;
    }
    .ovc35-palette {
        min-height: auto;
        max-height: 220px;
    }
    .ovc35-palette-list {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        max-height: 150px;
    }
}


/* v8.2.37 — après sauvegarde du plan, la sélection est retirée côté JS */


/* =========================================================
   v8.2.37 — Icône commande + bouton annuler commande
   ========================================================= */
.order-empty-icon,
.order-panel .empty-icon,
.order-panel .order-icon,
.order-panel .current-order-icon,
.order-panel .circle-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.order-empty-icon svg,
.order-panel .empty-icon svg,
.order-panel .order-icon svg,
.order-panel .current-order-icon svg,
.order-panel .circle-icon svg,
.ovc-order-empty-svg {
    width: 52px !important;
    height: 52px !important;
    color: var(--brand-gold) !important;
    display: block !important;
}

#orderMenu {
    min-width: 220px !important;
    z-index: 99999 !important;
}

#orderMenu .danger-menu-btn,
#cancelOrderBtn {
    color: #DC2626 !important;
    background: rgba(220,38,38,.10) !important;
    border-top: 1px solid rgba(220,38,38,.18) !important;
    font-weight: 950 !important;
}

#orderMenu .danger-menu-btn:hover,
#cancelOrderBtn:hover {
    background: rgba(220,38,38,.18) !important;
    color: #B91C1C !important;
}

#cancelOrderBtn {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
}

#cancelOrderBtn svg {
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 auto !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Achats & fournisseurs
   ========================================================= */
.nav-item[data-screen="achats"] span[data-icon] svg{width:22px;height:22px}.achats-actions-head{display:flex;gap:10px;flex-wrap:wrap}.achats-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.achats-kpis article,.achats-kpi{padding:18px;border-radius:22px;border:1px solid var(--line);background:rgba(255,255,255,.92);box-shadow:0 18px 42px rgba(0,0,0,.06);display:grid;gap:5px}.achats-kpis span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.4px}.achats-kpis strong{color:var(--text);font-size:26px;font-weight:950}.achats-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0;padding:12px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.78);box-shadow:0 12px 28px rgba(0,0,0,.04)}.achats-filters{display:grid;grid-template-columns:minmax(220px,360px) 180px;gap:10px;align-items:center}.achats-filters input,.achats-filters select{height:46px!important}.achats-table-card{border:1px solid var(--line);border-radius:24px;overflow:auto;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.06)}.achats-table{width:100%;border-collapse:collapse}.achats-table th{text-align:left;padding:15px;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);background:rgba(var(--brand-gold-rgb),.08)}.achats-table td{padding:14px 15px;border-top:1px solid var(--line);color:var(--text);font-weight:750}.purchase-status{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:950;border:1px solid rgba(0,0,0,.06)}.purchase-status.draft{background:#f3f4f6;color:#374151}.purchase-status.ordered{background:#fef3c7;color:#92400e}.purchase-status.received{background:#dcfce7;color:#166534}.purchase-status.cancelled{background:#fee2e2;color:#991b1b}.mini-actions{display:flex;gap:7px;flex-wrap:wrap}.mini-actions .receive{background:rgba(22,163,74,.12)!important;color:#166534!important;border-color:rgba(22,163,74,.28)!important}.supplier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}.supplier-card{position:relative;display:grid;grid-template-columns:58px 1fr;gap:13px;padding:18px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 18px 46px rgba(0,0,0,.06)}.supplier-avatar{width:58px;height:58px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand-terracotta),var(--brand-gold));color:#fff;font-weight:950;font-size:18px;box-shadow:0 12px 28px rgba(0,0,0,.12)}.supplier-card h3{margin:2px 0 3px;color:var(--text);font-size:18px;font-weight:950}.supplier-card p{margin:0;color:var(--muted);font-weight:850}.supplier-info{grid-column:1/-1;display:grid;gap:7px;padding:12px;border-radius:16px;background:rgba(var(--brand-gold-rgb),.07);color:var(--muted);font-size:13px}.supplier-info b{color:var(--text)}.supplier-actions{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end}.achats-modal-card{width:min(860px,calc(100vw - 40px))!important;max-height:calc(100vh - 40px)!important}.achats-purchase-modal{width:min(1100px,calc(100vw - 40px))!important}.achats-purchase-form{max-height:calc(100vh - 190px);overflow-y:auto}.achat-lines-box{border:1px solid var(--line);border-radius:20px;padding:14px;background:rgba(255,255,255,.68)}.achat-lines-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.achat-lines-head strong{color:var(--text);font-size:17px;font-weight:950}.purchase-line{display:grid;grid-template-columns:1.6fr .55fr .75fr .55fr 44px;gap:8px;margin-bottom:8px}.purchase-line input,.purchase-line select{height:46px!important}.purchase-line .danger-btn{height:46px;padding:0!important;border-radius:14px!important}.achat-total-box{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:15px;border-radius:20px;background:linear-gradient(135deg,rgba(var(--brand-gold-rgb),.12),rgba(255,255,255,.75));border:1px solid rgba(var(--brand-gold-rgb),.22)}.achat-total-box span{font-size:12px;color:var(--muted);font-weight:900;text-transform:uppercase}.achat-total-box strong{color:var(--text);font-size:18px;font-weight:950}.achats-empty{border:1px dashed rgba(var(--brand-gold-rgb),.35);border-radius:24px;background:rgba(var(--brand-gold-rgb),.06)}@media(max-width:980px){.achats-kpis{grid-template-columns:repeat(2,1fr)}.achats-toolbar{align-items:stretch;flex-direction:column}.achats-filters{grid-template-columns:1fr}.purchase-line{grid-template-columns:1fr 1fr}.purchase-line .remove-purchase-line{grid-column:1/-1;width:100%}}@media(max-width:640px){.achats-kpis{grid-template-columns:1fr}}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Paiements, retours, stats achats
   ========================================================= */
.achats-kpis {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
}

.achats-kpi-extra {
    background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(var(--brand-gold-rgb),.06)) !important;
}

.supplier-balance-box {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 8px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(var(--brand-gold-rgb), .07);
    border: 1px solid rgba(var(--brand-gold-rgb), .16);
}

.supplier-balance-box span {
    display: grid;
    gap: 3px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}

.supplier-balance-box b {
    color: var(--text);
    font-size: 13px;
    font-weight: 950;
}

.purchase-status.paid,
.purchase-status.validated {
    background: #DCFCE7;
    color: #166534;
}

.purchase-status.pending {
    background: #FEF3C7;
    color: #92400E;
}

.achats-return-modal {
    width: min(1100px, calc(100vw - 40px)) !important;
}

.purchase-report-card {
    grid-column: 1 / -1;
    padding: 20px;
    border-radius: 24px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.94);
    box-shadow: 0 20px 50px rgba(0,0,0,.06);
}

.report-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.report-card-head h2 {
    margin: 0 0 5px;
    color: var(--text);
    font-size: 22px;
    font-weight: 950;
}

.report-card-head p {
    margin: 0;
    color: var(--muted);
    font-weight: 800;
}

.purchase-report-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.purchase-report-kpis article {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(var(--brand-gold-rgb), .18);
    background: linear-gradient(180deg, rgba(var(--brand-gold-rgb), .08), rgba(255,255,255,.9));
    display: grid;
    gap: 6px;
}

.purchase-report-kpis span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .35px;
}

.purchase-report-kpis strong {
    color: var(--text);
    font-size: 21px;
    font-weight: 950;
}

.purchase-chart-box {
    padding: 16px;
    border-radius: 20px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.70);
    margin-bottom: 16px;
}

.purchase-chart-bars {
    display: grid;
    gap: 12px;
}

.purchase-chart-row {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 12px;
    align-items: center;
}

.purchase-chart-row strong {
    color: var(--text);
    font-weight: 950;
    font-size: 13px;
}

.purchase-bar-group {
    position: relative;
    display: grid;
    gap: 4px;
}

.purchase-bar-group .bar {
    display: block;
    height: 11px;
    border-radius: 999px;
    min-width: 3%;
}

.purchase-bar-group .bar.purchases {
    background: linear-gradient(90deg, var(--brand-terracotta), var(--brand-gold));
}

.purchase-bar-group .bar.payments {
    background: linear-gradient(90deg, #16A34A, #22C55E);
}

.purchase-bar-group .bar.returns {
    background: linear-gradient(90deg, #2563EB, #60A5FA);
}

.purchase-report-empty {
    padding: 18px;
    text-align: center;
    color: var(--muted);
    font-weight: 900;
}

.purchase-report-table-wrap {
    margin-top: 12px;
}

@media (max-width: 880px) {
    .purchase-report-kpis,
    .supplier-balance-box {
        grid-template-columns: repeat(2, minmax(0,1fr));
    }
}

@media (max-width: 560px) {
    .purchase-report-kpis,
    .supplier-balance-box {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Fix menu Achats, scroll sidebar, logo point
   ========================================================= */

/* Scroll premium du menu de gauche */
.sidebar {
    overflow: hidden !important;
}

.sidebar .nav,
.nav {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 6px !important;
    margin-right: -6px !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(var(--brand-gold-rgb), .72) rgba(255,255,255,.06) !important;
}

.sidebar .nav::-webkit-scrollbar,
.nav::-webkit-scrollbar {
    width: 8px !important;
}

.sidebar .nav::-webkit-scrollbar-track,
.nav::-webkit-scrollbar-track {
    background: rgba(255,255,255,.055) !important;
    border-radius: 999px !important;
    margin: 6px 0 !important;
}

.sidebar .nav::-webkit-scrollbar-thumb,
.nav::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--brand-gold), rgba(255,255,255,.28)) !important;
    border-radius: 999px !important;
    border: 2px solid rgba(0,0,0,.10) !important;
}

.sidebar .nav::-webkit-scrollbar-thumb:hover,
.nav::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #FFD66B, var(--brand-gold)) !important;
}

/* Menu Achats */
.nav-item[data-screen="achats"] span[data-icon],
.ovc-achats-nav-item span[data-icon] {
    color: var(--brand-gold) !important;
}

.nav-item[data-screen="achats"] svg,
.ovc-achats-nav-item svg {
    width: 22px !important;
    height: 22px !important;
    display: block !important;
}

.nav-item[data-screen="achats"].active {
    background: linear-gradient(135deg, rgba(var(--brand-gold-rgb), .42), rgba(20,40,80,.42)) !important;
    color: #FFE8B7 !important;
}

/* Logo point de vente : jamais de débordement */
#pointLogoPreview {
    height: 154px !important;
    min-height: 154px !important;
    max-height: 154px !important;
    overflow: hidden !important;
    padding: 12px !important;
    box-sizing: border-box !important;
}

#pointLogoPreview img {
    max-width: 86% !important;
    max-height: 126px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    margin: auto !important;
    border-radius: 16px !important;
}

#pointLogoPreview p,
#pointLogoPreview span[data-icon] {
    margin: 0 !important;
}

/* Prévisualisation plan : garde une taille propre aussi */
#pointFloorPlanPreview,
.floor-plan-preview {
    overflow: hidden !important;
}

#pointFloorPlanPreview img,
.floor-plan-preview img {
    max-width: 92% !important;
    max-height: 170px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    margin: auto !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Design achats : notes + filtres + empty state
   ========================================================= */

/* Champs note dans tous les écrans achats */
.achats-modal-card .modal-form textarea,
.achats-modal-card textarea,
#screen-achats textarea {
    width: 100% !important;
    min-height: 104px !important;
    resize: vertical !important;
    border-radius: 18px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .28) !important;
    background: linear-gradient(180deg, #FFFDF8 0%, #FFF8EC 100%) !important;
    padding: 14px 16px !important;
    color: var(--text) !important;
    outline: 0 !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85), 0 10px 24px rgba(74,51,26,.05) !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
}

.achats-modal-card .modal-form textarea::placeholder,
.achats-modal-card textarea::placeholder,
#screen-achats textarea::placeholder {
    color: #9F8F79 !important;
    font-weight: 700 !important;
}

.achats-modal-card .modal-form textarea:hover,
.achats-modal-card textarea:hover,
#screen-achats textarea:hover {
    border-color: rgba(var(--brand-gold-rgb), .45) !important;
    background: linear-gradient(180deg, #FFFFFF 0%, #FFF8EF 100%) !important;
}

.achats-modal-card .modal-form textarea:focus,
.achats-modal-card textarea:focus,
#screen-achats textarea:focus {
    border-color: rgba(var(--brand-gold-rgb), .78) !important;
    box-shadow: 0 0 0 4px rgba(var(--brand-gold-rgb), .12), 0 14px 30px rgba(74,51,26,.08) !important;
    background: #FFFFFF !important;
}

/* Labels des notes plus premium */
.achats-modal-card .modal-form label.full-row,
.achats-modal-card .modal-form label:has(textarea) {
    position: relative;
}

/* Filtres achats */
.achats-toolbar {
    gap: 16px !important;
    padding: 14px !important;
}

.achats-filters {
    display: grid !important;
    grid-template-columns: minmax(260px, 360px) 190px !important;
    gap: 12px !important;
    align-items: center !important;
}

.achats-filters input,
.achats-filters select,
#screen-achats .achats-toolbar input[type="search"],
#screen-achats .achats-toolbar select {
    height: 50px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .26) !important;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,248,236,.92)) !important;
    color: var(--text) !important;
    padding: 0 16px !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 10px 24px rgba(74,51,26,.05) !important;
    outline: none !important;
    font-weight: 800 !important;
}

.achats-filters input::placeholder {
    color: #9F8F79 !important;
    font-weight: 700 !important;
}

.achats-filters input:hover,
.achats-filters select:hover,
#screen-achats .achats-toolbar input[type="search"]:hover,
#screen-achats .achats-toolbar select:hover {
    border-color: rgba(var(--brand-gold-rgb), .42) !important;
    background: linear-gradient(180deg, #FFFFFF, #FFF9F0) !important;
}

.achats-filters input:focus,
.achats-filters select:focus,
#screen-achats .achats-toolbar input[type="search"]:focus,
#screen-achats .achats-toolbar select:focus {
    border-color: rgba(var(--brand-gold-rgb), .8) !important;
    box-shadow: 0 0 0 4px rgba(var(--brand-gold-rgb), .12), 0 14px 30px rgba(74,51,26,.08) !important;
    background: #FFFFFF !important;
}

/* Container vides : Aucun achat trouvé / aucun paiement / aucun retour */
.achats-empty,
#achatsPurchasesView .empty-state,
#achatsPaymentsView .empty-state,
#achatsReturnsView .empty-state,
#achatsSuppliersView .empty-state {
    padding: 34px 28px !important;
}

.achats-empty h2,
#screen-achats .empty-state h2 {
    margin: 0 0 10px !important;
}

.achats-empty p,
#screen-achats .empty-state p {
    margin: 0 0 18px !important;
}

/* Petit ajustement responsive */
@media (max-width: 980px) {
    .achats-filters {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Achats libres + stabilité rendu
   ========================================================= */
#screen-achats .purchase-product-cell {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
}

#screen-achats .purchase-product-free,
#screen-achats .return-product-free {
    height: 42px !important;
    border-radius: 14px !important;
    border: 1px dashed rgba(var(--brand-gold-rgb), .45) !important;
    background: linear-gradient(180deg, #fffdfa 0%, #fff8ef 100%) !important;
    padding: 0 14px !important;
    color: var(--text) !important;
    font-weight: 700 !important;
}

#screen-achats .purchase-product-free::placeholder,
#screen-achats .return-product-free::placeholder {
    color: #9F8F79 !important;
    font-weight: 700 !important;
}

#screen-achats .purchase-product-free:focus,
#screen-achats .return-product-free:focus {
    outline: none !important;
    border-color: rgba(var(--brand-gold-rgb), .82) !important;
    box-shadow: 0 0 0 4px rgba(var(--brand-gold-rgb), .10) !important;
    background: #fff !important;
}

#screen-achats .purchase-line {
    align-items: start !important;
}

#screen-achats .supplier-card,
#screen-achats .achats-kpis article,
#screen-achats .achats-kpi {
    animation: none !important;
    transition: box-shadow .18s ease, transform .18s ease !important;
    will-change: auto !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Toggle produit + autocomplete
   ========================================================= */
#screen-achats .purchase-line-toggle {
    display: inline-flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin-bottom: 8px !important;
}
#screen-achats .purchase-mode-btn {
    height: 34px !important;
    padding: 0 12px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .35) !important;
    background: #fffdf8 !important;
    color: #7b5b15 !important;
    font-weight: 800 !important;
    cursor: pointer !important;
}
#screen-achats .purchase-mode-btn.active {
    background: linear-gradient(135deg, rgba(var(--brand-gold-rgb), .18) 0%, rgba(var(--brand-gold-rgb), .34) 100%) !important;
    border-color: rgba(var(--brand-gold-rgb), .72) !important;
    color: #5c430e !important;
    box-shadow: 0 6px 18px rgba(var(--brand-gold-rgb), .14) !important;
}
#screen-achats .purchase-existing-wrap,
#screen-achats .purchase-free-wrap,
#screen-achats .return-existing-wrap,
#screen-achats .return-free-wrap {
    width: 100% !important;
}
#screen-achats .purchase-product-search,
#screen-achats .return-product-search,
#screen-achats .purchase-product-free,
#screen-achats .return-product-free {
    width: 100% !important;
    height: 42px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .45) !important;
    background: linear-gradient(180deg, #fffdfa 0%, #fff8ef 100%) !important;
    padding: 0 14px !important;
    color: var(--text) !important;
    font-weight: 700 !important;
}
#screen-achats .purchase-product-free,
#screen-achats .return-product-free {
    border-style: dashed !important;
}
#screen-achats .purchase-product-search::placeholder,
#screen-achats .return-product-search::placeholder,
#screen-achats .purchase-product-free::placeholder,
#screen-achats .return-product-free::placeholder {
    color: #9F8F79 !important;
    font-weight: 700 !important;
}
#screen-achats .purchase-product-search:focus,
#screen-achats .return-product-search:focus,
#screen-achats .purchase-product-free:focus,
#screen-achats .return-product-free:focus {
    outline: none !important;
    border-color: rgba(var(--brand-gold-rgb), .82) !important;
    box-shadow: 0 0 0 4px rgba(var(--brand-gold-rgb), .10) !important;
    background: #fff !important;
}
#screen-achats .product-pill-list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
}
#screen-achats .product-pill {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 28px !important;
    padding: 4px 10px !important;
    border-radius: 999px !important;
    background: #fbf4e5 !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .28) !important;
    color: #6e5517 !important;
    font-weight: 800 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}
#screen-achats .product-pill-more {
    background: #f3ead5 !important;
}
#screen-achats .product-pill-empty {
    color: #9b8b71 !important;
    background: #faf7f1 !important;
}
#screen-achats .achats-table-products td:nth-child(4),
#screen-achats .achats-table-products td:nth-child(5),
#screen-achats .achats-table-products td:nth-child(6) {
    vertical-align: top !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — TVA 0 + Total ligne modifiable
   ========================================================= */
#screen-achats .purchase-line {
    grid-template-columns: minmax(220px, 1.7fr) minmax(78px, .55fr) minmax(100px, .75fr) minmax(118px, .8fr) minmax(82px, .55fr) 44px !important;
    align-items: start !important;
}

#screen-achats .purchase-line-total,
#screen-achats .return-line-total {
    width: 100% !important;
    height: 46px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .45) !important;
    background: linear-gradient(180deg, #fffdfa 0%, #fff8ef 100%) !important;
    padding: 0 12px !important;
    color: var(--text) !important;
    font-weight: 850 !important;
}

#screen-achats .purchase-line-total:focus,
#screen-achats .return-line-total:focus {
    outline: none !important;
    border-color: rgba(var(--brand-gold-rgb), .85) !important;
    box-shadow: 0 0 0 4px rgba(var(--brand-gold-rgb), .10) !important;
    background: #fff !important;
}

#screen-achats .achat-total-box {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto !important;
    align-items: start !important;
}

#screen-achats .achat-total-box span:nth-of-type(1) { grid-column: 1 !important; grid-row: 1 !important; }
#screen-achats .achat-total-box strong:nth-of-type(1) { grid-column: 1 !important; grid-row: 2 !important; }
#screen-achats .achat-total-box span:nth-of-type(2) { grid-column: 2 !important; grid-row: 1 !important; }
#screen-achats .achat-total-box strong:nth-of-type(2) { grid-column: 2 !important; grid-row: 2 !important; }
#screen-achats .achat-total-box span:nth-of-type(3) { grid-column: 3 !important; grid-row: 1 !important; }
#screen-achats .achat-total-box strong:nth-of-type(3) { grid-column: 3 !important; grid-row: 2 !important; }

@media(max-width:980px){
    #screen-achats .purchase-line {
        grid-template-columns: 1fr 1fr !important;
    }
    #screen-achats .purchase-line .danger-btn {
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }
}

/* =========================================================
   OVC Restauration Pos v1.0.48 — Rapports CA + achats premium
   ========================================================= */
:root {
    --stat-green: #22c55e;
    --stat-green-dark: #16a34a;
    --stat-green-soft: rgba(34, 197, 94, .14);
    --stat-red: #ef4444;
    --stat-red-dark: #dc2626;
    --stat-red-soft: rgba(239, 68, 68, .14);
    --stat-orange: #f59e0b;
    --stat-blue: #3b82f6;
}

.text-green { color: var(--stat-green-dark) !important; }
.text-red { color: var(--stat-red-dark) !important; }

.report-revenue-section,
.purchase-report-card108 {
    margin-top: 30px !important;
    margin-bottom: 28px !important;
    padding: 22px !important;
    border-radius: 26px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .25) !important;
    background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,250,240,.88)) !important;
    box-shadow: 0 20px 55px rgba(15, 23, 42, .06) !important;
}

.report-revenue-header,
.purchase-head108 {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin-bottom: 18px !important;
}

.report-revenue-header h2,
.purchase-head108 h2 {
    margin: 0 0 6px !important;
    font-size: 24px !important;
    font-weight: 950 !important;
    color: var(--text) !important;
}

.report-revenue-header p,
.purchase-head108 p {
    margin: 0 !important;
    color: var(--muted) !important;
    font-weight: 850 !important;
}

.report-legend {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    font-size: 12px !important;
    color: var(--muted) !important;
    font-weight: 900 !important;
}

.report-legend span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 7px 10px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.72) !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .18) !important;
}

.report-legend i {
    width: 10px !important;
    height: 10px !important;
    border-radius: 999px !important;
    display: inline-block !important;
}
.legend-green { background: var(--stat-green) !important; }
.legend-red { background: var(--stat-red) !important; }
.legend-gold { background: var(--brand-gold) !important; }
.legend-blue { background: var(--stat-blue) !important; }

.report-revenue-kpis,
.kpis108 {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)) !important;
    gap: 14px !important;
    margin-bottom: 20px !important;
}

.report-revenue-kpis article,
.kpis108 article {
    padding: 17px 18px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .18) !important;
    background: #fff !important;
    box-shadow: 0 12px 30px rgba(15,23,42,.045) !important;
}

.report-revenue-kpis span,
.kpis108 span {
    display: block !important;
    font-size: 11px !important;
    color: var(--muted) !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    margin-bottom: 7px !important;
}

.report-revenue-kpis strong,
.kpis108 strong {
    font-size: 21px !important;
    font-weight: 950 !important;
    color: var(--text) !important;
}

.evolution-up,
.evolution-down,
.evolution-flat {
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
    padding: 7px 12px !important;
    border-radius: 999px !important;
    font-size: 15px !important;
    font-weight: 950 !important;
}
.evolution-up { color: var(--stat-green-dark) !important; background: var(--stat-green-soft) !important; }
.evolution-down { color: var(--stat-red-dark) !important; background: var(--stat-red-soft) !important; }
.evolution-flat { color: #64748b !important; background: rgba(100,116,139,.12) !important; }

.report-revenue-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
}
.report-revenue-grid .full { grid-column: 1 / -1 !important; }

.report-chart-card,
.purchase-chart-box108,
.purchase-report-table108 {
    margin-top: 16px !important;
    padding: 18px !important;
    border-radius: 22px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .18) !important;
    background: #fff !important;
    box-shadow: 0 12px 34px rgba(15,23,42,.045) !important;
}

.chart-title {
    margin-bottom: 14px !important;
    color: var(--text) !important;
    font-weight: 950 !important;
    font-size: 16px !important;
}

.ovc-bar-chart {
    min-height: 245px !important;
    display: flex !important;
    align-items: flex-end !important;
    gap: 10px !important;
    overflow-x: auto !important;
    padding: 8px 4px 2px !important;
}

.ovc-vbar-wrap {
    min-width: 42px !important;
    display: grid !important;
    align-items: end !important;
    justify-items: center !important;
    gap: 8px !important;
    cursor: help !important;
}

.ovc-vbar {
    width: 24px !important;
    border-radius: 999px 999px 8px 8px !important;
    box-shadow: 0 10px 22px rgba(15,23,42,.12) !important;
}

.ovc-vbar.green {
    background: linear-gradient(180deg, #4ade80 0%, #16a34a 100%) !important;
}

.ovc-vbar-label {
    color: var(--muted) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    writing-mode: vertical-rl !important;
    transform: rotate(180deg) !important;
    white-space: nowrap !important;
}

.ovc-line-chart {
    min-height: 270px !important;
}
.evo-svg {
    width: 100% !important;
    height: 230px !important;
    overflow: visible !important;
}
.evo-dot {
    fill: #fff !important;
    stroke: var(--stat-green-dark) !important;
    stroke-width: 6 !important;
    cursor: help !important;
}
.evo-labels {
    display: flex !important;
    justify-content: space-between !important;
    gap: 8px !important;
    color: var(--muted) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.purchase-chart-bars108 {
    display: grid !important;
    gap: 14px !important;
}
.purchase-chart-row108 {
    display: grid !important;
    grid-template-columns: 92px 1fr !important;
    gap: 12px !important;
    align-items: center !important;
    cursor: help !important;
}
.purchase-chart-row108 strong {
    color: var(--text) !important;
    font-weight: 950 !important;
}
.purchase-bar-group108 {
    display: grid !important;
    gap: 5px !important;
    padding: 6px !important;
    border-radius: 16px !important;
    background: rgba(248,250,252,.72) !important;
}
.purchase-bar-group108 .bar {
    height: 12px !important;
    border-radius: 999px !important;
    display: block !important;
    min-width: 3% !important;
}
.purchase-bar-group108 .bar.encaissements {
    background: linear-gradient(90deg, #4ade80, #16a34a) !important;
}
.purchase-bar-group108 .bar.paiements {
    background: linear-gradient(90deg, #fb7185, #dc2626) !important;
}
.purchase-bar-group108 .bar.purchases {
    background: linear-gradient(90deg, var(--brand-gold), #b88717) !important;
}
.purchase-bar-group108 .bar.returns {
    background: linear-gradient(90deg, #60a5fa, #2563eb) !important;
}
.purchase-report-table108 table th,
.purchase-report-table108 table td {
    white-space: nowrap !important;
}

.ovc-report-tooltip108 {
    position: fixed !important;
    z-index: 999999 !important;
    min-width: 210px !important;
    max-width: 280px !important;
    padding: 12px 13px !important;
    border-radius: 16px !important;
    background: rgba(15, 23, 42, .96) !important;
    color: #fff !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    box-shadow: 0 18px 46px rgba(0,0,0,.24) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    pointer-events: none !important;
    opacity: 0 !important;
    transform: translateY(6px) !important;
    transition: opacity .12s ease, transform .12s ease !important;
}
.ovc-report-tooltip108.show {
    opacity: 1 !important;
    transform: translateY(0) !important;
}
.ovc-report-tooltip108 .tt-title {
    font-size: 13px !important;
    font-weight: 950 !important;
    margin-bottom: 7px !important;
    color: #fff !important;
}
.ovc-report-tooltip108 .tt-line {
    display: flex !important;
    justify-content: space-between !important;
    gap: 14px !important;
    padding: 2px 0 !important;
}
.ovc-report-tooltip108 .tt-line span {
    color: rgba(255,255,255,.72) !important;
}
.ovc-report-tooltip108 .tt-line strong {
    color: #fff !important;
    font-weight: 950 !important;
}

@media (max-width: 980px){
    .report-revenue-grid { grid-template-columns: 1fr !important; }
    .report-revenue-header,
    .purchase-head108 { flex-direction: column !important; }
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Achats ligne unique + points de vente
   ========================================================= */

/* Ligne d'achat réellement sur une seule ligne */
#screen-achats .purchase-line,
.achats-purchase-modal .purchase-line {
    display: grid !important;
    grid-template-columns: minmax(390px, 1.9fr) 72px 96px 112px 72px 42px !important;
    gap: 8px !important;
    align-items: center !important;
    margin-bottom: 8px !important;
}

#screen-achats .purchase-product-cell,
.achats-purchase-modal .purchase-product-cell {
    display: grid !important;
    grid-template-columns: 138px minmax(170px, 1fr) !important;
    gap: 8px !important;
    align-items: center !important;
}

#screen-achats .purchase-line-toggle,
.achats-purchase-modal .purchase-line-toggle {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    gap: 5px !important;
    margin: 0 !important;
    white-space: nowrap !important;
}

#screen-achats .purchase-mode-btn,
.achats-purchase-modal .purchase-mode-btn {
    height: 38px !important;
    min-width: 62px !important;
    padding: 0 8px !important;
    border-radius: 13px !important;
    font-size: 11px !important;
    line-height: 1 !important;
}

#screen-achats .purchase-existing-wrap,
#screen-achats .purchase-free-wrap,
.achats-purchase-modal .purchase-existing-wrap,
.achats-purchase-modal .purchase-free-wrap {
    min-width: 0 !important;
    width: 100% !important;
}

#screen-achats .purchase-product-search,
#screen-achats .purchase-product-free,
.achats-purchase-modal .purchase-product-search,
.achats-purchase-modal .purchase-product-free,
.achats-purchase-modal .purchase-qty,
.achats-purchase-modal .purchase-unit,
.achats-purchase-modal .purchase-line-total,
.achats-purchase-modal .purchase-tva {
    height: 42px !important;
    min-height: 42px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

#screen-achats .remove-purchase-line,
.achats-purchase-modal .remove-purchase-line {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Supprime le retour à la ligne disgracieux du bouton supprimer */
.achats-purchase-modal .purchase-line .danger-btn {
    grid-column: auto !important;
}

/* Fournisseurs par point de vente */
.supplier-point-scope-box {
    padding: 14px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .22) !important;
    border-radius: 18px !important;
    background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(var(--brand-gold-rgb),.06)) !important;
}

.supplier-point-scope-box .scope-title {
    display: block !important;
    font-weight: 900 !important;
    color: var(--text) !important;
    margin-bottom: 9px !important;
}

.supplier-scope-toggle {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
}

.scope-toggle-btn {
    min-height: 38px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .35) !important;
    background: #fff !important;
    color: #6e5517 !important;
    font-weight: 850 !important;
    cursor: pointer !important;
}

.scope-toggle-btn.active {
    background: linear-gradient(135deg, var(--brand-gold), #f5c85b) !important;
    color: #1a2c4d !important;
    border-color: rgba(var(--brand-gold-rgb), .70) !important;
}

.supplier-point-checkboxes {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
    gap: 8px !important;
}

.point-check {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .20) !important;
    background: rgba(255,255,255,.78) !important;
    font-weight: 800 !important;
}

.point-check input {
    width: 16px !important;
    height: 16px !important;
}

.supplier-scope-card {
    grid-column: 1 / -1 !important;
}

.scope-label {
    display: inline-flex !important;
    width: fit-content !important;
    align-items: center !important;
    padding: 5px 10px !important;
    border-radius: 999px !important;
    background: rgba(var(--brand-gold-rgb), .13) !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .24) !important;
    color: var(--text) !important;
    font-weight: 900 !important;
    font-size: 11px !important;
}

@media (max-width: 1120px) {
    #screen-achats .purchase-line,
    .achats-purchase-modal .purchase-line {
        grid-template-columns: minmax(320px, 1.6fr) 66px 88px 100px 66px 40px !important;
        gap: 6px !important;
    }

    #screen-achats .purchase-product-cell,
    .achats-purchase-modal .purchase-product-cell {
        grid-template-columns: 120px minmax(140px, 1fr) !important;
    }

    #screen-achats .purchase-mode-btn,
    .achats-purchase-modal .purchase-mode-btn {
        min-width: 52px !important;
        padding: 0 6px !important;
        font-size: 10px !important;
    }
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Points de vente / fournisseurs
   ========================================================= */
#supplierPointCheckboxes.hidden {
    display: none !important;
}

#supplierPointCheckboxes {
    display: grid;
}

.scope-toggle-btn.active[data-supplier-scope="all"] + .scope-toggle-btn {
    opacity: .92;
}

.pos-all-btn {
    background: linear-gradient(135deg, rgba(var(--brand-gold-rgb), .16), rgba(var(--brand-gold-rgb), .05)) !important;
    border-left: 4px solid var(--brand-gold) !important;
}

#posDropdown button strong {
    font-weight: 900 !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Forms achat/paiement/avoir point de vente
   ========================================================= */
.purchase-point-label.hidden,
.supplier-payment-point-label.hidden,
.supplier-return-point-label.hidden,
#supplierPointCheckboxes.hidden {
    display: none !important;
}

.purchase-supplier-label {
    display: flex !important;
}

#purchaseSupplier,
#supplierPaymentSupplier,
#supplierReturnSupplier {
    min-width: 100% !important;
}

.achats-purchase-modal .modal-form,
#supplierPaymentModal .modal-form,
#supplierReturnModal .modal-form {
    scroll-behavior: auto !important;
}



/* =========================================================
   OVC Restauration Pos v1.0.48 — boutons paiement / avoir
   ========================================================= */
#openSupplierPaymentModal,
#openSupplierReturnModal {
    pointer-events: auto !important;
    cursor: pointer !important;
    position: relative !important;
    z-index: 5 !important;
}

#supplierPaymentModal.modal.hidden,
#supplierReturnModal.modal.hidden {
    display: none !important;
}

#supplierPaymentModal.modal:not(.hidden),
#supplierReturnModal.modal:not(.hidden) {
    display: flex !important;
}

.supplier-payment-point-label.hidden,
.supplier-return-point-label.hidden {
    display: none !important;
}

/* =========================================================
   OVC Restauration Pos v1.0.48 — centrage modal paiement / avoir
   ========================================================= */
#supplierPaymentModal.modal,
#supplierReturnModal.modal {
    align-items: center !important;
    justify-content: center !important;
    padding: 22px !important;
}

#supplierPaymentModal .modal-card,
#supplierReturnModal .modal-card {
    margin: 0 auto !important;
    width: min(900px, calc(100vw - 44px)) !important;
    max-height: calc(100vh - 44px) !important;
}

#supplierPaymentModal .modal-form,
#supplierReturnModal .modal-form {
    align-content: start !important;
}

@media (max-width: 768px) {
    #supplierPaymentModal.modal,
    #supplierReturnModal.modal {
        align-items: flex-start !important;
        padding: 12px !important;
    }

    #supplierPaymentModal .modal-card,
    #supplierReturnModal .modal-card {
        width: min(100%, calc(100vw - 24px)) !important;
        max-height: calc(100vh - 24px) !important;
    }
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — Note libre commande
   ========================================================= */
.order-note-free-wrapper {
    display: block !important;
    margin: 12px 0 14px !important;
    padding: 10px !important;
    border-radius: 14px !important;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.13) !important;
}

.order-note-free-label {
    display: block !important;
    margin-bottom: 7px !important;
    color: rgba(255,255,255,.86) !important;
    font-weight: 850 !important;
    font-size: 12px !important;
}

.order-note-free-field {
    width: 100% !important;
    min-height: 76px !important;
    resize: vertical !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
    padding: 10px 12px !important;
    outline: none !important;
    font-family: inherit !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}

.order-note-free-field::placeholder {
    color: rgba(255,255,255,.50) !important;
}

.order-note-free-field:focus {
    border-color: var(--brand-gold) !important;
    box-shadow: 0 0 0 3px rgba(var(--brand-gold-rgb), .18) !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — note libre / menu / remise
   ========================================================= */
#addOrderNoteBtn,
#addOrderNoteBtn.hidden {
    display: none !important;
}

.order-note-free-wrapper {
    display: block !important;
    margin: 12px 0 16px !important;
    padding: 10px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    background: rgba(255,255,255,.05) !important;
}

.order-note-free-label {
    display: block !important;
    margin-bottom: 6px !important;
    color: rgba(255,255,255,.88) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.order-note-free-field {
    width: 100% !important;
    min-height: 62px !important;
    resize: vertical !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    background: rgba(255,255,255,.07) !important;
    color: #fff !important;
    padding: 10px !important;
    font-weight: 700 !important;
    box-sizing: border-box !important;
}

.order-note-free-field::placeholder {
    color: rgba(255,255,255,.48) !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — remise annulable
   ========================================================= */
#cancelDiscountBtn {
    color: #ff4b4b !important;
    font-weight: 900 !important;
}

#cancelDiscountBtn:hover {
    background: rgba(255, 75, 75, .14) !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — switch point commandes en cours
   ========================================================= */
#posDropdown .pos-all-btn {
    border-left: 4px solid var(--brand-gold) !important;
}

#clearCartBtn {
    cursor: pointer !important;
    pointer-events: auto !important;
}

/* =========================================================
   OVC Restauration Pos v1.0.48 — opérations, filtres, cuisine, sous-catégories
   ========================================================= */
.version{font-size:11px!important;line-height:1.45!important;color:rgba(255,255,255,.86)!important;padding:10px 8px 0!important}.version .footer-contact{display:block;color:rgba(255,255,255,.72)!important;font-weight:700!important;margin-top:4px!important;word-break:break-word}.ovc-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:14px 0 18px;padding:12px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.55)}.ovc-filters input,.ovc-filters select{height:44px;border:1px solid var(--line);border-radius:14px;padding:0 12px;background:#fff;font-weight:800;color:var(--text)}.subcat-field textarea{width:100%;min-height:82px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;font-weight:800}.subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.subtab{height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:900;color:var(--text)}.subtab.active{background:linear-gradient(135deg,var(--brand-gold),var(--brand-terracotta));color:#fff;border-color:transparent}.nav-item[data-screen="achats"].active{background:rgba(255,255,255,.11)!important;border:1px solid rgba(255,255,255,.22)!important;color:#fff!important}.nav-item[data-screen="achats"].active svg{color:var(--brand-gold)!important}.is-cancelled{opacity:.62;text-decoration:line-through}.status-badge.danger{background:rgba(239,68,68,.12);color:#dc2626;border:1px solid rgba(239,68,68,.25)}.report-legend.purchase,.report-legend.purchase *{margin-bottom:14px!important}.report-legend.purchase{padding-bottom:12px!important}.report-legend.purchase span{display:inline-flex!important;margin-right:16px!important;margin-bottom:12px!important}.kitchen-btn{cursor:pointer!important}.product-card small{color:var(--muted)}


/* =========================================================
   OVC Restauration Pos v1.0.48 — footer sidebar liens
   ========================================================= */
.sidebar .version,
.version {
    font-size: 10.5px !important;
    line-height: 1.35 !important;
    color: rgba(255,255,255,.86) !important;
    padding: 8px 8px 0 !important;
    min-height: auto !important;
}

.version .footer-copy {
    display: block !important;
    color: rgba(255,255,255,.90) !important;
    font-weight: 800 !important;
    margin-bottom: 5px !important;
    word-break: normal !important;
}

.version .footer-contact {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 3px !important;
    color: rgba(255,255,255,.78) !important;
    font-weight: 800 !important;
    margin-top: 0 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

.version .footer-contact a {
    color: rgba(255,255,255,.86) !important;
    text-decoration: none !important;
    display: inline-block !important;
    max-width: 100% !important;
}

.version .footer-contact a:hover {
    color: var(--brand-gold) !important;
    text-decoration: underline !important;
}

.cloud-card strong {
    white-space: normal !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — footer sidebar propre
   ========================================================= */
.sidebar .version {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow: visible !important;
}

.sidebar .version .footer-copy,
.sidebar .version .footer-contact {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    max-width: 100% !important;
}

.sidebar .version a {
    display: inline-block !important;
    color: inherit !important;
    text-decoration: none !important;
    word-break: break-word !important;
}

.sidebar .version a:hover {
    text-decoration: underline !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — footer sidebar sans clignotement
   Corrige l'ancien .version span { width:7px; height:7px; background:green }
   ========================================================= */
.sidebar .version,
.sidebar .version.ovc-footer-stable,
.ovc-footer-stable {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    width: 100% !important;
    min-height: auto !important;
    height: auto !important;
    padding: 8px 8px 0 !important;
    margin: 0 !important;
    color: rgba(255,255,255,.88) !important;
    font-size: 10.5px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow: visible !important;
    background: transparent !important;
    border-radius: 0 !important;
    animation: none !important;
    transition: none !important;
    transform: none !important;
}

.sidebar .version *,
.sidebar .version span,
.sidebar .version a,
.ovc-footer-stable *,
.ovc-footer-stable span,
.ovc-footer-stable a {
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    animation: none !important;
    transition: none !important;
    transform: none !important;
}

.sidebar .version .footer-copy,
.ovc-footer-stable .footer-copy {
    display: block !important;
    color: rgba(255,255,255,.92) !important;
    font-weight: 800 !important;
    margin-bottom: 2px !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.sidebar .version .footer-contact,
.ovc-footer-stable .footer-contact {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 3px !important;
    color: rgba(255,255,255,.78) !important;
    font-weight: 800 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.sidebar .version .footer-contact a,
.ovc-footer-stable .footer-contact a {
    display: inline-block !important;
    color: rgba(255,255,255,.86) !important;
    text-decoration: none !important;
    line-height: 1.25 !important;
}

.sidebar .version .footer-contact a:hover,
.ovc-footer-stable .footer-contact a:hover {
    color: var(--brand-gold) !important;
    text-decoration: underline !important;
}

/* garde le bas de sidebar stable */
.sidebar .cloud-card {
    flex-shrink: 0 !important;
}

.sidebar .version {
    flex-shrink: 0 !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — variantes + frais fixe
   ========================================================= */
.variant-chip {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: rgba(var(--brand-gold-rgb), .14) !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .24) !important;
    color: var(--text) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.muted {
    opacity: .55 !important;
}

#fixedFeeLine {
    border-top: 1px dashed rgba(255,255,255,.10) !important;
    margin-top: 4px !important;
    padding-top: 8px !important;
}

#fixedFeeLine span,
#fixedFeeLine strong {
    color: rgba(255,255,255,.92) !important;
}

#settingFixedOrderFee {
    font-weight: 900 !important;
}

#productSubcategoryWrap {
    display: flex;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — caisse produits/variantes
   ========================================================= */
.product-grid {
    align-items: start !important;
}

.product-card {
    overflow: hidden !important;
    min-width: 0 !important;
}

.product-visual {
    width: 100% !important;
    height: 140px !important;
    max-height: 140px !important;
    border-radius: 16px !important;
    background: #F0E6DA !important;
    margin-bottom: 14px !important;
    overflow: hidden !important;
    display: grid !important;
    place-items: center !important;
    color: #7B6B5D !important;
}

.product-visual img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.product-visual svg {
    width: 42px !important;
    height: 42px !important;
}

.product-meta {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
    min-height: 32px !important;
    line-height: 1.2 !important;
}

.product-variant-chip,
.variant-tabs .subtab span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 4px 8px !important;
    border-radius: 999px !important;
    background: rgba(var(--brand-gold-rgb), .15) !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .28) !important;
    color: var(--text) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.product-no-variant {
    display: inline-flex !important;
    padding: 4px 8px !important;
    border-radius: 999px !important;
    background: rgba(220,38,38,.08) !important;
    border: 1px solid rgba(220,38,38,.16) !important;
    color: rgba(220,38,38,.86) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.product-price {
    margin-top: 8px !important;
}

.variant-tabs {
    margin-top: 10px !important;
}

.variant-tabs .subtab.active .product-variant-chip,
.variant-tabs .subtab.active span {
    background: rgba(255,255,255,.22) !important;
    color: inherit !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — variante carte + commande
   ========================================================= */
.product-card .product-variant-chip {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 4px 8px !important;
    border-radius: 999px !important;
    background: rgba(220, 38, 38, .10) !important;
    border: 1px solid rgba(220, 38, 38, .22) !important;
    color: #B91C1C !important;
    font-size: 11px !important;
    font-weight: 950 !important;
}

.product-card .product-base-name {
    margin: -2px 0 7px !important;
    color: rgba(29, 24, 20, .68) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
}

.cart-line.has-variant {
    align-items: flex-start !important;
}

.cart-product-title {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    min-width: 0 !important;
}

.cart-product-title strong {
    display: block !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 1000 !important;
    line-height: 1.1 !important;
}

.cart-product-title small {
    display: block !important;
    color: rgba(255,255,255,.62) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    line-height: 1.15 !important;
}

.variant-tabs .subtab span {
    margin-left: 4px !important;
    opacity: .9 !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — anti doublons / anti clignotement produits
   ========================================================= */
.catalog-panel > #productGrid {
    display: none !important;
}

#catalogArea.product-grid {
    contain: layout paint !important;
}

#catalogArea .product-card {
    animation: none !important;
    transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — catalogue stable
   ========================================================= */
#catalogArea.product-grid {
    contain: layout paint !important;
    min-height: 410px !important;
}

#catalogArea .product-card {
    will-change: auto !important;
    transform: translateZ(0) !important;
}

#catalogArea[data-ovc-stable="1"] {
    animation: none !important;
}

#catalogArea .product-visual {
    overflow: hidden !important;
}

#catalogArea .product-visual img {
    object-fit: cover !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — catalogue définitif stable
   ========================================================= */
#catalogArea.product-grid {
    min-height: 420px !important;
    align-items: start !important;
    contain: layout paint !important;
}

#catalogArea[data-ovc-master-catalog="1"] {
    animation: none !important;
    transition: none !important;
}

#catalogArea [data-ovc-product-card="1"] {
    animation: none !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}

#catalogArea .product-visual {
    width: 100% !important;
    height: 140px !important;
    max-height: 140px !important;
    overflow: hidden !important;
    display: grid !important;
    place-items: center !important;
}

#catalogArea .product-visual img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.product-variant-chip {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 4px 8px !important;
    border-radius: 999px !important;
    background: rgba(220,38,38,.10) !important;
    border: 1px solid rgba(220,38,38,.22) !important;
    color: #b91c1c !important;
    font-size: 11px !important;
    font-weight: 950 !important;
}

.product-base-name {
    margin: -2px 0 7px !important;
    color: rgba(29,24,20,.66) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
}

.cart-product-title {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
}
.cart-product-title small {
    color: rgba(255,255,255,.62) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — légende, sidebar active, frais fixe
   ========================================================= */
.report-legend {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    font-size: 12px !important;
    color: var(--muted) !important;
    font-weight: 900 !important;
    margin-bottom: 15px !important;
}

.report-legend.purchase,
.report-legend.purchase * {
    margin-bottom: 15px !important;
}

.sidebar .nav .nav-item.active,
.nav .nav-item.active,
.nav-item.active,
.nav-item[data-screen="achats"].active,
.ovc-achats-nav-item.active {
    background: linear-gradient(135deg, rgba(var(--brand-gold-rgb), .42), rgba(var(--brand-terracotta-rgb), .34)) !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .46) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 10px 22px rgba(0,0,0,.17) !important;
    color: #FFE8B7 !important;
}

.sidebar .nav .nav-item.active span[data-icon],
.sidebar .nav .nav-item.active b,
.nav .nav-item.active span[data-icon],
.nav .nav-item.active b,
.nav-item.active span[data-icon],
.nav-item.active b,
.nav-item[data-screen="achats"].active span[data-icon],
.nav-item[data-screen="achats"].active b,
.ovc-achats-nav-item.active span[data-icon],
.ovc-achats-nav-item.active b {
    color: #FFE8B7 !important;
}

.fixed-fee-line {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    border-top: 1px dashed rgba(255,255,255,.10) !important;
    margin-top: 5px !important;
    padding-top: 8px !important;
}

.fixed-fee-line span,
.fixed-fee-line strong {
    color: rgba(255,255,255,.94) !important;
}

#settingTpeUrl,
#settingFixedOrderFee {
    font-weight: 900 !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — menu actif + frais fixe
   ========================================================= */
.nav-item.active {
    background: linear-gradient(135deg, rgba(var(--brand-gold-rgb), .36), rgba(var(--brand-terracotta-rgb), 0)) !important;
    box-shadow: inset 0 0 0 1px rgba(var(--brand-gold-rgb), .45), 0 10px 22px rgba(0, 0, 0, .17) !important;
    color: #FFE8B7 !important;
}

.nav-item.active svg,
.nav-item.active [data-icon],
.nav-item.active span {
    color: #FFE8B7 !important;
}

#settingFixedOrderFee {
    font-weight: 950 !important;
    letter-spacing: .01em !important;
}

.product-card .product-base-name:empty {
    display: none !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — menu actif pour tous les menus
   ========================================================= */

/* Base : tous les boutons de navigation doivent accepter le même rendu actif */
.sidebar .nav-item.active,
.sidebar button.nav-item.active,
.sidebar .nav-item.is-active,
.sidebar button.nav-item.is-active,
.sidebar [data-screen].active,
.sidebar button[data-screen].active,
.sidebar [data-target].active,
.sidebar button[data-target].active,
.sidebar [data-route].active,
.sidebar button[data-route].active,
.sidebar [aria-current="page"],
.sidebar button[aria-current="page"] {
    background: linear-gradient(135deg, rgba(var(--brand-gold-rgb), .36), rgba(var(--brand-terracotta-rgb), 0)) !important;
    box-shadow: inset 0 0 0 1px rgba(var(--brand-gold-rgb), .45), 0 10px 22px rgba(0, 0, 0, .17) !important;
    color: #FFE8B7 !important;
    border-color: rgba(var(--brand-gold-rgb), .45) !important;
}

/* Icône + texte de tous les menus actifs */
.sidebar .nav-item.active *,
.sidebar button.nav-item.active *,
.sidebar .nav-item.is-active *,
.sidebar button.nav-item.is-active *,
.sidebar [data-screen].active *,
.sidebar button[data-screen].active *,
.sidebar [data-target].active *,
.sidebar button[data-target].active *,
.sidebar [data-route].active *,
.sidebar button[data-route].active *,
.sidebar [aria-current="page"] *,
.sidebar button[aria-current="page"] * {
    color: #FFE8B7 !important;
    stroke: #FFE8B7 !important;
}

/* SVG inline / lucide */
.sidebar .nav-item.active svg,
.sidebar button.nav-item.active svg,
.sidebar [data-screen].active svg,
.sidebar button[data-screen].active svg,
.sidebar [data-target].active svg,
.sidebar button[data-target].active svg,
.sidebar [data-route].active svg,
.sidebar button[data-route].active svg {
    color: #FFE8B7 !important;
    stroke: #FFE8B7 !important;
}

/* Si l'ancien JS laisse une classe active seulement sur un sous élément */
.sidebar .nav-item:has(.active),
.sidebar button.nav-item:has(.active) {
    background: linear-gradient(135deg, rgba(var(--brand-gold-rgb), .36), rgba(var(--brand-terracotta-rgb), 0)) !important;
    box-shadow: inset 0 0 0 1px rgba(var(--brand-gold-rgb), .45), 0 10px 22px rgba(0, 0, 0, .17) !important;
    color: #FFE8B7 !important;
    border-color: rgba(var(--brand-gold-rgb), .45) !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — champ frais fixe stable
   ========================================================= */
#settingFixedOrderFee {
    font-weight: 950 !important;
    letter-spacing: .01em !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — widgets caisse synchronisés
   ========================================================= */
.synced-mini-list {
    display: grid !important;
    gap: 8px !important;
    padding: 6px 0 0 !important;
}
.synced-mini-list .mini-row {
    width: 100% !important;
    text-align: left !important;
    border: 1px solid rgba(var(--brand-gold-rgb), .18) !important;
    background: rgba(255,255,255,.56) !important;
    border-radius: 14px !important;
    padding: 10px 12px !important;
    color: var(--text) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    font-weight: 950 !important;
}
.synced-mini-list .mini-row span {
    font-size: 12px !important;
    color: var(--muted) !important;
    font-weight: 850 !important;
}
.synced-mini-list .mini-row:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 12px 26px rgba(0,0,0,.08) !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — frais fixe stable
   ========================================================= */
#settingFixedOrderFee {
    font-variant-numeric: tabular-nums !important;
    font-weight: 950 !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — service table/cuisine
   ========================================================= */
.service-btn.service-locked {
    opacity: .46 !important;
    cursor: not-allowed !important;
    filter: grayscale(.15) !important;
}

.service-btn.active {
    box-shadow: 0 12px 28px rgba(var(--brand-terracotta-rgb), .22) !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — service final
   ========================================================= */
.service-btn.service-locked {
    opacity: .42 !important;
    cursor: not-allowed !important;
    filter: grayscale(.2) !important;
}
.service-btn.active {
    transform: translateY(-1px) !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — cuisine variant inline
   ========================================================= */
.kitchen-item-text strong em {
    font-style: normal !important;
    color: #6B4F3F !important;
    font-size: 13px !important;
    font-weight: 950 !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — numéro commande synchronisé
   ========================================================= */
.kitchen-item-text strong {
    display: inline !important;
}


/* =========================================================
   OVC Restauration Pos v1.0.48 — commandes frais/variations
   ========================================================= */
#commandsTbody td:nth-child(4),
#reportOrdersBody .report-articles {
    font-weight: 900 !important;
    line-height: 1.45 !important;
}
#commandsTbody td:nth-child(5),
#reportOrdersBody td:nth-child(8) {
    white-space: nowrap !important;
    font-weight: 900 !important;
    color: var(--text) !important;
}


/* OVC POS v53 — corrections demandées */
#categoryTabs .tab-btn svg,
.variant-tabs .subtab svg,
.tab-btn svg{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  color:currentColor !important;
  stroke:currentColor !important;
}
#categoryTabs .tab-btn:not(.active),
.variant-tabs .subtab:not(.active){
  color:var(--brand-dark) !important;
}
#categoryTabs .tab-btn.active,
.variant-tabs .subtab.active{
  color:#fff !important;
}
.product-card .product-photo{background:#f3eadc !important; overflow:hidden !important;}
.product-card .product-photo img{width:100% !important;height:100% !important;object-fit:cover !important;display:block !important;}
.product-card .product-photo img.ovc-img-fallback{object-fit:contain !important; padding:16px !important; box-sizing:border-box !important;}
.order-panel.ovc-cart-open{display:block !important; visibility:visible !important; opacity:1 !important;}
.cart-line.has-variant{align-items:flex-start !important; gap:12px !important;}
.cart-product-title strong{font-size:17px !important; font-weight:1000 !important; color:#fff !important; line-height:1.08 !important;}
.cart-product-title small{margin-top:4px !important; color:#D5AF55 !important; font-size:12px !important; font-weight:900 !important;}
.cart-line > span{white-space:nowrap !important; font-weight:900 !important; color:#fff !important;}

/* OVC v67 - Commandes propre */
.ovc-cmd-filters{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;margin:0 0 14px 0;align-items:center}
.ovc-cmd-filters select{height:42px;border:1px solid rgba(217,154,50,.28);border-radius:12px;background:#fff;color:#102247;padding:0 12px;font-weight:700;outline:none}
.ovc-commandes-table th,.ovc-commandes-table td{vertical-align:top}
.ovc-cmd-item{display:grid;grid-template-columns:1fr auto;gap:2px 8px;margin:0 0 7px 0;padding-bottom:7px;border-bottom:1px dashed rgba(15,34,71,.12)}
.ovc-cmd-item:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.ovc-cmd-item strong{font-size:13px;color:#102247;font-weight:900;line-height:1.15}
.ovc-cmd-item small{display:block;color:#d22f4f;font-weight:800;font-size:11px;grid-column:1/2}
.ovc-cmd-item em{grid-column:2/3;grid-row:1/3;font-style:normal;font-weight:900;color:#d99a32;align-self:center}
.ovc-cmd-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ovc-cmd-actions .edit-btn,.ovc-cmd-actions .danger-btn{margin:0!important;min-width:88px;border-radius:12px!important}
.ovc-status{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:900;background:#eef3ff;color:#102247}
.ovc-status.active{background:#fff3d6;color:#9c6500}.ovc-status.paid{background:#e9fff1;color:#138342}
@media(max-width:1100px){.ovc-cmd-filters{grid-template-columns:1fr 1fr}.ovc-commandes-table{min-width:900px}}

/* OVC v72 — table/service dans commande en cours */
.ovc-table-service-summary{
  margin:12px 0 14px!important;
  padding:14px 14px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.055)!important;
  color:#fff!important;
}
.ovc-table-service-summary span{
  display:block!important;
  font-size:11px!important;
  font-weight:800!important;
  color:rgba(255,255,255,.68)!important;
  margin-bottom:5px!important;
}
.ovc-table-service-summary strong{
  display:block!important;
  font-size:24px!important;
  line-height:1.05!important;
  font-weight:950!important;
  color:#f5bf3b!important;
}
.ovc-table-service-summary em{
  display:block!important;
  margin-top:7px!important;
  font-style:normal!important;
  font-size:12px!important;
  font-weight:900!important;
  color:rgba(255,255,255,.9)!important;
}
.service-btn.ovc-service-disabled{
  opacity:.45!important;
  cursor:not-allowed!important;
  filter:grayscale(.25)!important;
}

/* =========================================================
   OVC v80 — order-panel 100vh SANS JS / SANS OBSERVER
   ========================================================= */
html,
body,
#app,
.pos-app {
  height: 100vh !important;
  min-height: 100vh !important;
  max-height: 100vh !important;
}

body {
  overflow: hidden !important;
}

.pos-app:not(.no-pos-selected) {
  display: grid !important;
  align-items: stretch !important;
  height: 100vh !important;
  min-height: 100vh !important;
  max-height: 100vh !important;
}

.pos-app:not(.no-pos-selected) > aside.order-panel,
.pos-app:not(.no-pos-selected) .order-panel {
  height: 100vh !important;
  min-height: 100vh !important;
  max-height: 100vh !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 18px !important;
  padding-bottom: 18px !important;
  box-sizing: border-box !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  border-radius: 24px 0 0 24px !important;
  overscroll-behavior: contain !important;
  scrollbar-width: thin !important;
}

.pos-app:not(.no-pos-selected) > aside.order-panel::-webkit-scrollbar,
.pos-app:not(.no-pos-selected) .order-panel::-webkit-scrollbar {
  width: 8px !important;
}

.pos-app:not(.no-pos-selected) > aside.order-panel::-webkit-scrollbar-track,
.pos-app:not(.no-pos-selected) .order-panel::-webkit-scrollbar-track {
  background: rgba(255,255,255,.05) !important;
  border-radius: 999px !important;
}

.pos-app:not(.no-pos-selected) > aside.order-panel::-webkit-scrollbar-thumb,
.pos-app:not(.no-pos-selected) .order-panel::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.25) !important;
  border-radius: 999px !important;
}

.pos-app:not(.no-pos-selected) .order-panel > header,
.pos-app:not(.no-pos-selected) .order-panel .multi-order-bar,
.pos-app:not(.no-pos-selected) .order-panel #cartZone,
.pos-app:not(.no-pos-selected) .order-panel #cartZone.cart-list,
.pos-app:not(.no-pos-selected) .order-panel #cartZone.order-empty,
.pos-app:not(.no-pos-selected) .order-panel .order-note,
.pos-app:not(.no-pos-selected) .order-panel .totals,
.pos-app:not(.no-pos-selected) .order-panel #ovcTableServiceSummary,
.pos-app:not(.no-pos-selected) .order-panel .pay-row,
.pos-app:not(.no-pos-selected) .order-panel .checkout-btn,
.pos-app:not(.no-pos-selected) .order-panel .print-btn,
.pos-app:not(.no-pos-selected) .order-panel .kitchen-btn {
  flex: 0 0 auto !important;
}

.pos-app:not(.no-pos-selected) .order-panel #cartZone,
.pos-app:not(.no-pos-selected) .order-panel #cartZone.cart-list,
.pos-app:not(.no-pos-selected) .order-panel .cart-list {
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: visible !important;
  overflow-y: visible !important;
  overflow-x: visible !important;
}

.pos-app.no-pos-selected > aside.order-panel,
.pos-app.no-pos-selected .order-panel {
  display: none !important;
}


/* v85 - bouton Commander table : gold 20% opacity */
.table-card-mini [data-table-order] {
  background: rgba(var(--brand-gold-rgb, 213, 175, 85), .2) !important;
  background: color-mix(in srgb, var(--brand-gold) 20%, transparent) !important;
  color: #111 !important;
  border-color: transparent !important;
  font-weight: 950 !important;
}


/* v86 - Modal card style demandé */
.modal-card {
    width: min(50%, 92vw) !important;
    background: #FFFDF9 !important;
    border-radius: 24px !important;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .28) !important;
    overflow: hidden !important;
}


/* =========================================================
   OVC v91 — Achats millimes + lignes avoir sur une seule ligne
   ========================================================= */
#supplierPaymentAmount,
#purchaseLines .purchase-unit,
#purchaseLines .purchase-line-total,
#supplierReturnLines .return-unit,
#supplierReturnLines .return-line-total{
  text-align:left !important;
  font-weight:900 !important;
}
#supplierReturnLines .supplier-return-line,
#screen-achats #supplierReturnLines .purchase-line,
.achats-return-modal .supplier-return-line{
  display:grid !important;
  grid-template-columns:minmax(260px,1.6fr) 90px 120px 130px 90px 42px !important;
  gap:8px !important;
  align-items:end !important;
  margin-bottom:8px !important;
}
#supplierReturnLines .supplier-return-line .purchase-product-cell,
.achats-return-modal .supplier-return-line .purchase-product-cell{
  min-width:0 !important;
}
#supplierReturnLines .supplier-return-line input,
#supplierReturnLines .supplier-return-line select,
.achats-return-modal .supplier-return-line input,
.achats-return-modal .supplier-return-line select{
  height:46px !important;
  min-width:0 !important;
}
#supplierReturnLines .supplier-return-line .danger-btn,
.achats-return-modal .supplier-return-line .danger-btn{
  height:46px !important;
  width:42px !important;
  min-width:42px !important;
  padding:0 !important;
  border-radius:14px !important;
}
@media(max-width:980px){
  #supplierReturnLines .supplier-return-line,
  #screen-achats #supplierReturnLines .purchase-line,
  .achats-return-modal .supplier-return-line{
    grid-template-columns:1fr 1fr !important;
  }
  #supplierReturnLines .supplier-return-line .danger-btn,
  .achats-return-modal .supplier-return-line .danger-btn{
    width:100% !important;
    grid-column:1/-1 !important;
  }
}


/* v93 — Rapports : espacement tooltip + articles produit/variation */
.ovc-report-tooltip108 .tt-title {
    margin-bottom: 12px !important;
    padding-bottom: 7px !important;
    border-bottom: 1px solid rgba(255,255,255,.16) !important;
}
.ovc-report-tooltip108 .tt-line {
    margin-top: 4px !important;
}
.ovc-report-tooltip108 .tt-line span {
    margin-right: 18px !important;
}
.report-articles {
    line-height: 1.45 !important;
}
