:root { --ink:#2d251f; --muted:#7f7065; --line:#dfd1c5; --surface:#fffbf7; --canvas:#eee4da; --brand:#7a4b2a; --brand-dark:#3f281c; --brand-soft:#f1e2d5; --gold:#d5a64d; --gold-soft:#f8e8c7; --danger:#b94250; --shadow:0 14px 38px rgba(73,48,30,.11); }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:radial-gradient(circle at 10% 15%,rgba(213,166,77,.22),transparent 31%),radial-gradient(circle at 92% 6%,rgba(122,75,42,.15),transparent 30%),linear-gradient(145deg,#eadfd4,#f4eadf 55%,#e7dbd0); font-family:Inter,"Segoe UI",Arial,sans-serif; }
a { color:var(--brand); text-decoration:none; }
button,input,select,textarea { font:inherit; }
.app-shell { min-height:100vh; display:block; }
.sidebar { position:sticky; top:0; height:100vh; padding:26px 18px; color:#fff7fb; background:linear-gradient(165deg,#40152f 0%,#250d1c 58%,#170811 100%); overflow-y:auto; box-shadow:12px 0 35px rgba(42,12,30,.08); }
.brand { display:flex; align-items:center; gap:12px; padding:0 10px 28px; color:#fff; }
.brand-mark { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:#3f281c; background:linear-gradient(145deg,#f0ca78,#ca9238); font-family:Georgia,serif; font-weight:900; font-size:23px; box-shadow:0 8px 24px rgba(0,0,0,.25); }
.brand-mark img { width:100%; height:100%; display:block; object-fit:cover; border-radius:inherit; }
.login-brand .brand-mark { width:54px; height:54px; border-radius:16px; }
.brand strong,.brand small { display:block; }
.brand strong { font-size:18px; }
.brand small { color:#c8aebb; margin-top:2px; font-size:11px; }
.main-nav { display:grid; gap:4px; }
.nav-label { margin:20px 12px 6px; color:#a98094; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:1.4px; }
.main-nav a { display:flex; align-items:center; gap:12px; padding:11px 13px; color:#dac8d1; border-radius:10px; font-size:14px; font-weight:600; transition:.18s ease; }
.main-nav a span { width:20px; text-align:center; color:#c99cae; font-size:17px; }
.main-nav a:hover,.main-nav a.active { color:#fff; background:rgba(255,255,255,.09); }
.main-nav a.active { box-shadow:inset 3px 0 var(--gold); background:linear-gradient(90deg,rgba(213,166,77,.16),rgba(255,255,255,.07)); }
.main-nav a.active span { color:#f0c76d; }
.workspace { min-width:0; min-height:100vh; display:flex; flex-direction:column; }
.topbar { position:sticky; top:0; z-index:20; height:94px; display:flex; align-items:center; justify-content:space-between; padding:0 40px; background:linear-gradient(110deg,#111b2b 0%,#18202d 48%,#3f281c 100%); border-bottom:3px solid var(--gold); box-shadow:0 10px 30px rgba(16,14,25,.25); }
.topbar-brand { display:flex; align-items:center; gap:16px; color:#fff; }
.topbar-brand:hover { color:#fff; }
.topbar-brand .brand-mark { width:66px; height:66px; padding:4px; background:#fff; border:2px solid rgba(213,166,77,.75); border-radius:17px; box-shadow:0 9px 24px rgba(0,0,0,.32); }
.topbar-brand strong,.topbar-brand small { display:block; }
.topbar-brand strong { color:#fff; font-size:21px; letter-spacing:.2px; }
.topbar-brand small { margin-top:4px; color:#d6c4ce; font-size:12px; }
.topbar small,.topbar strong { display:block; }
.topbar small { color:#d6c4ce; font-size:11px; }
.topbar strong { margin-top:2px; font-size:17px; }
.topbar-actions { display:flex; align-items:center; gap:9px; color:#eadde4; font-size:13px; }
.status-dot { width:8px; height:8px; border-radius:50%; background:#2ab66d; box-shadow:0 0 0 4px #e0f5e9; }
.content { width:min(1480px,100%); flex:1; margin:0 auto; padding:38px 34px 54px; }
.app-footer { width:100%; display:flex; justify-content:center; align-items:center; min-height:48px; padding:13px 25px; color:#f0e4da; background:linear-gradient(90deg,#2d211b,#68432e,#2d211b); border-top:1px solid rgba(255,255,255,.08); text-align:center; font-size:12px; font-weight:650; letter-spacing:.2px; }
.content > h1 { position:relative; margin-bottom:26px; padding-left:19px; }
.content > h1::before { content:""; position:absolute; left:0; top:5px; bottom:4px; width:5px; border-radius:9px; background:linear-gradient(var(--gold),var(--brand)); }
.content > h1 + table,.content > table { display:table; width:100%; border:1px solid var(--line); border-radius:15px; box-shadow:var(--shadow); }
.content > form:not(.delete-form),.content > h1 + form:not(.delete-form) { max-width:980px; padding:27px; background:#fff; border:1px solid var(--line); border-radius:17px; box-shadow:var(--shadow); }
.content > table + a,.content > form + a,.content > a { display:inline-flex; align-items:center; min-height:40px; margin:18px 8px 0 0; padding:0 15px; border:1px solid var(--line); border-radius:9px; background:#fff; font-weight:700; }
.page-header { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:25px; }
.eyebrow { margin:0 0 7px; color:var(--brand); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:1.5px; }
h1 { margin:0 0 22px; font-size:clamp(26px,3vw,38px); line-height:1.1; letter-spacing:-1.2px; }
.page-header h1 { margin:0; }
.page-header p:not(.eyebrow) { margin:8px 0 0; color:var(--muted); }
.btn,button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:0 17px; border:0; border-radius:9px; cursor:pointer; color:#fff; background:linear-gradient(135deg,var(--brand),var(--brand-dark)); font-weight:700; box-shadow:0 7px 18px rgba(122,75,42,.22); transition:transform .18s ease,box-shadow .18s ease; }
.btn:hover,button:hover { transform:translateY(-1px); box-shadow:0 10px 22px rgba(122,75,42,.28); }
.btn-danger,.delete-form button { background:linear-gradient(135deg,#c4505b,#922e3a); box-shadow:none; }
.btn-secondary { color:var(--ink); background:#fff; border:1px solid var(--line); box-shadow:none; }
.action-link { display:inline-flex; padding:6px 9px; border-radius:7px; background:var(--brand-soft); font-size:12px; font-weight:700; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:24px; }
.stat-card,.panel { background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.stat-card { position:relative; overflow:hidden; padding:22px; }
.stat-card::after { content:""; position:absolute; width:80px; height:80px; right:-30px; bottom:-35px; border-radius:50%; background:var(--brand-soft); }
.stat-card small { color:var(--muted); font-weight:600; }
.stat-card strong { display:block; margin:9px 0 3px; font-size:29px; }
.stat-card span { color:var(--brand); font-size:12px; }
.dashboard-grid { display:grid; grid-template-columns:1.45fr .75fr; gap:20px; }
.dashboard-welcome { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:25px; padding:27px 30px; color:#fff; background:linear-gradient(125deg,#3f281c,#7a4b2a 62%,#a6754e); border-radius:22px; box-shadow:0 18px 42px rgba(73,48,30,.22); }
.dashboard-welcome h1 { margin:0; color:#fff; font-size:clamp(25px,3vw,39px); }.dashboard-welcome p:not(.eyebrow){margin:9px 0 0;color:#e9dbe3}.dashboard-welcome .eyebrow{color:#f0ca78}
.welcome-date{flex:0 0 auto;min-width:125px;padding:15px 18px;text-align:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);border-radius:15px}.welcome-date small,.welcome-date strong{display:block}.welcome-date small{color:#decbd6;font-size:11px;text-transform:uppercase;letter-spacing:.8px}.welcome-date strong{margin-top:5px;font-size:18px}
.dashboard-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.dashboard-tile{position:relative;min-height:168px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:22px;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:22px;box-shadow:0 13px 28px rgba(39,19,31,.12);transition:.2s ease;isolation:isolate}.dashboard-tile::before{content:"";position:absolute;z-index:-1;width:140px;height:140px;right:-48px;top:-52px;border-radius:50%;background:rgba(255,255,255,.13)}.dashboard-tile::after{content:"";position:absolute;z-index:-1;width:75px;height:75px;right:30px;bottom:-42px;border-radius:50%;background:rgba(255,255,255,.08)}.dashboard-tile:hover{color:#fff;transform:translateY(-5px);box-shadow:0 20px 38px rgba(39,19,31,.19)}
.tile-icon{width:48px;height:48px;display:grid;place-items:center;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.2);border-radius:14px;font-size:24px}.tile-text{padding-top:18px}.tile-text strong,.tile-text small{display:block}.tile-text strong{max-width:90%;font-size:18px;line-height:1.18}.tile-text small{margin-top:7px;color:rgba(255,255,255,.79);font-size:12px;line-height:1.35}.tile-arrow{position:absolute;right:20px;bottom:20px;width:31px;height:31px;display:grid;place-items:center;color:#2a1e27;background:#fff;border-radius:50%;font-weight:900}
.tile-plum{background:linear-gradient(145deg,#8a5630,#3f281c)}.tile-gold{background:linear-gradient(145deg,#d7a63e,#a56b10)}.tile-blue{background:linear-gradient(145deg,#3184d8,#17539e)}.tile-green{background:linear-gradient(145deg,#34a36a,#17633e)}.tile-orange{background:linear-gradient(145deg,#d98942,#9b501d)}.tile-cyan{background:linear-gradient(145deg,#1ca7b8,#126677)}.tile-rose{background:linear-gradient(145deg,#55b9e9,#267cae)}.tile-violet{background:linear-gradient(145deg,#8a5bd7,#56319d)}.tile-indigo{background:linear-gradient(145deg,#5368d9,#303f94)}.tile-emerald{background:linear-gradient(145deg,#21a68d,#116556)}.tile-slate{background:linear-gradient(145deg,#64758b,#344155)}.tile-dark{background:linear-gradient(145deg,#34303a,#17131c)}.dashboard-lower{margin-top:22px}.dashboard-lower .panel{background:linear-gradient(145deg,#fff8ef,#f2e7dc);border-color:#d9c9b9}
.panel { padding:24px; }
.panel-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:19px; }
.panel-head h2 { margin:0; font-size:18px; }
.quick-actions { display:grid; gap:10px; }
.quick-actions a { display:flex; justify-content:space-between; align-items:center; padding:15px; color:var(--ink); background:var(--canvas); border-radius:11px; font-weight:700; }
.quick-actions a:hover { color:var(--brand); background:var(--brand-soft); }
.table-wrap { overflow-x:auto; background:var(--surface); border:1px solid var(--line); border-radius:15px; box-shadow:var(--shadow); }
table { width:100%; border-collapse:collapse; background:#fff; }
th,td { padding:14px 16px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap; }
th { color:var(--muted); background:#fbf8fa; font-size:11px; text-transform:uppercase; letter-spacing:.7px; }
td { font-size:13px; }
tbody tr:hover { background:#fdf9fb; }
td a { display:inline-flex; margin:2px; padding:6px 9px; border-radius:7px; background:var(--brand-soft); font-size:12px; font-weight:750; }
td a + a { color:#76551d; background:var(--gold-soft); }
.table tbody th { width:220px; color:var(--ink); text-transform:none; font-size:13px; }
.badge { display:inline-flex; padding:5px 9px; border-radius:99px; background:var(--brand-soft); color:var(--brand-dark); font-size:11px; font-weight:800; }
.badge-warning { background:#fff3d8; color:#8a5c09; }
.badge-danger { background:#fde9e9; color:#9e3131; }
.empty-state { padding:45px!important; color:var(--muted); text-align:center; }
form > div { margin-bottom:15px; }
label { display:block; margin-bottom:6px; color:#435149; font-size:13px; font-weight:700; }
input,select,textarea { width:100%; padding:11px 12px; color:var(--ink); background:#fff; border:1px solid #ced8d2; border-radius:9px; outline:none; }
input:focus,select:focus,textarea:focus { border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-soft); }
input[type="checkbox"] { width:auto; }
.alert { margin-bottom:18px; padding:13px 16px; border-radius:10px; background:#e9f4ee; color:#185b3b; font-weight:600; }
.alert-danger { background:#fdeaea; color:#9f3030; }
.alert-warning { background:#fff3d9; color:#875b0a; }
.logout-link { margin-left:9px; padding:9px 13px; border:1px solid rgba(255,255,255,.14); border-radius:9px; color:#fff; background:rgba(255,255,255,.1); font-weight:700; }
.logout-link:hover { color:#24141d; background:var(--gold); }
.login-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 15% 10%,rgba(213,166,77,.22),transparent 32%),linear-gradient(145deg,#3f281c,#18120f); }
.login-card { position:relative; overflow:hidden; width:min(460px,100%); padding:40px; background:rgba(255,255,255,.98); border:1px solid rgba(255,255,255,.4); border-radius:24px; box-shadow:0 30px 80px rgba(0,0,0,.28); }
.login-card::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,var(--brand),var(--gold),var(--brand)); }
.login-brand { padding:0 0 34px; color:var(--ink); }
.login-brand small { color:var(--muted); }
.login-card h1 { margin-bottom:8px; }
.login-intro { margin:0 0 26px; color:var(--muted); }
.login-card button { width:100%; margin-top:8px; }
.form-collection { margin:24px 0; padding:20px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.barcode-scanner { margin-bottom:22px; padding:18px; color:#fff; background:linear-gradient(120deg,#12324a,#285e78); border:1px solid #d4a94f; border-radius:14px; box-shadow:0 12px 28px rgba(18,50,74,.16); }
.scanner-heading { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.scanner-heading strong,.scanner-heading small { display:block; }.scanner-heading small { margin-top:3px; color:#dcebf2; }
.scanner-icon { display:grid; place-items:center; width:45px; height:45px; font-size:25px; background:rgba(255,255,255,.12); border-radius:10px; }
.scanner-controls { display:grid; grid-template-columns:minmax(220px,2fr) minmax(100px,.5fr) auto; gap:12px; align-items:end; }
.scanner-controls label { color:#fff; font-size:12px; font-weight:700; }.scanner-controls input { margin-top:6px; background:#fff; }
.scanner-message { min-height:20px; margin-top:10px; color:#bff4d7; font-size:13px; font-weight:700; }.scanner-message.is-error { color:#ffd2c8; }
.catalog-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:18px; }
.catalog-card { display:flex; flex-direction:column; min-height:250px; overflow:hidden; color:#172433; border:1px solid rgba(35,65,82,.14); border-radius:14px; box-shadow:0 10px 24px rgba(39,46,54,.10); transition:.18s ease; }
.catalog-card:hover { transform:translateY(-3px); box-shadow:0 15px 30px rgba(39,46,54,.16); }
.catalog-card.color-0{background:#ccecf0}.catalog-card.color-1{background:#eadfc9}.catalog-card.color-2{background:#d8e2f4}.catalog-card.color-3{background:#dce9d5}.catalog-card.color-4{background:#eadbed}.catalog-card.color-5{background:#f3dfca}
.catalog-card-top { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:15px 17px 0; }.catalog-card-top small{font-weight:700;color:#52636c}
.catalog-card>.badge { align-self:flex-start; margin:15px 17px 0; }
.catalog-card-body { flex:1; display:flex; flex-direction:column; justify-content:center; padding:20px 22px; text-align:center; }.catalog-card-body h2{margin:0 0 10px;font-size:23px}.catalog-card-body p{margin:4px 0;color:#53636d}.catalog-card-body>strong{margin-top:8px}
.product-price { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 18px; color:#fff; background:#245d78; }.product-price small{font-weight:700}.product-price strong{font-size:21px}
.catalog-card-actions { display:flex; justify-content:flex-end; gap:9px; padding:11px 15px; background:rgba(255,255,255,.58); }.catalog-card-actions a{padding:7px 11px;color:#633715;background:#fff;border-radius:8px;font-weight:800}
.category-card { min-height:220px; }.category-card .catalog-card-actions{margin-top:auto}
.category-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.category-tile{position:relative;display:flex;min-width:0;min-height:150px;overflow:hidden;flex-direction:column;background:var(--category-color);border:1px solid rgba(34,69,87,.15);border-radius:12px;box-shadow:0 9px 22px rgba(36,78,96,.1);transition:transform .18s ease,box-shadow .18s ease}.category-tile::before{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(140deg,rgba(255,255,255,.28),transparent 52%,rgba(20,59,75,.05))}.category-tile:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(36,78,96,.16)}.category-tile.is-inactive{filter:saturate(.35);opacity:.72}.category-tile-main{position:relative;z-index:1;display:flex;flex:1;align-items:center;justify-content:center;flex-direction:column;min-height:100px;padding:16px 14px;color:#183346;text-align:center}.category-tile-main:hover{color:#183346}.category-tile-main h2{margin:6px 0 4px;font-size:clamp(16px,1.4vw,20px);line-height:1.15}.category-tile-main small{color:#4b6674;font-size:10.5px;font-weight:750}.category-tile-status{position:absolute;top:9px;right:10px;padding:3px 7px;color:#315263;background:rgba(255,255,255,.58);border-radius:999px;font-size:8.5px;font-weight:850;text-transform:uppercase;letter-spacing:.45px}.category-tile-actions{position:relative;z-index:1;padding:6px;background:rgba(255,255,255,.52);border-top:1px solid rgba(35,72,89,.09)}.category-tile-actions .index-actions{justify-content:center}.category-tile-actions .action-icon{width:34px;height:34px}.category-color-input{width:110px!important;min-width:110px;padding:5px!important;cursor:pointer}.category-color-swatch{display:inline-block;width:34px;height:24px;margin-right:10px;vertical-align:middle;background:var(--category-color);border:1px solid rgba(20,50,65,.22);border-radius:6px}
@media(max-width:900px){.category-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.category-tile-grid{grid-template-columns:1fr}.category-tile{min-height:135px}}
.route-app-categorie-show.page-kind-show .content{width:min(1480px,100%)}.category-products-header{position:relative;overflow:hidden;padding:24px 26px!important;background:linear-gradient(120deg,var(--category-color),rgba(255,255,255,.82))!important}.category-products-header::after{position:absolute;right:-45px;bottom:-70px;width:180px;height:180px;content:"";pointer-events:none;background:rgba(255,255,255,.25);border-radius:50%}.category-products-header>div{position:relative;z-index:1}.category-products-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:210px;background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.category-products-empty strong{margin-bottom:7px;color:var(--ink);font-size:18px}.category-products-empty span{color:var(--muted);font-size:12px}
/* Feste Spur (minmax(0,1fr)): sonst wächst die Rasterzeile auf die Originalhöhe des Fotos, und overflow:hidden zeigt nur dessen oberen Teil. */
.catalog-cover { display:grid; grid-template:minmax(0,1fr) / minmax(0,1fr); place-items:center; height:210px; padding:10px; overflow:hidden; background:#fff; }
.catalog-cover img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.catalog-cover span { font-size:48px; }
.index-actions { display:flex; flex-direction:row; flex-wrap:nowrap; justify-content:center; gap:7px; align-items:center; }.index-actions form{margin:0}.action-icon{display:grid!important;place-items:center;width:42px;height:42px;padding:0!important;border:0;border-radius:10px!important;color:#172433!important;font-size:19px;cursor:pointer}.action-view{background:#23bdd8!important}.action-edit{background:#f4b719!important}.action-delete{background:#d73b48!important;color:#fff!important}
.action-toggle{min-width:118px;min-height:40px;padding:0 12px!important;border:0;border-radius:9px!important;color:#fff!important;font-size:12px!important;font-weight:800!important;cursor:pointer}.action-activate{background:linear-gradient(135deg,#279b65,#167247)!important}.action-deactivate{background:linear-gradient(135deg,#d78324,#a44f18)!important}
.user-index-actions{display:grid;grid-template-columns:repeat(2,128px)}.user-index-actions .action-icon,.user-index-actions .action-toggle{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;width:128px!important;height:42px!important;min-width:128px!important;min-height:42px!important;font-size:14px!important}.user-index-actions .action-icon span{font-size:12px;font-weight:800}
.detail-gallery { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 20px}.detail-gallery a{display:block;height:190px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 20px rgba(30,40,50,.1)}.detail-gallery img{width:100%;height:100%;object-fit:contain}
.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content{width:min(1100px,100%)}
.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .page-header{margin-bottom:18px;padding:20px 24px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 24px rgba(35,99,125,.08)}
.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .page-header h1{font-size:clamp(25px,2.2vw,33px)}
.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table{table-layout:fixed;overflow:hidden;background:#fff}
.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table th{width:30%;padding:13px 18px;color:#285269;background:#e7f4fa;font-size:12px}
.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table td{padding:13px 20px;white-space:normal;overflow-wrap:anywhere;background:#fff;font-size:14px}
.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table tr:last-child th,.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table tr:last-child td{border-bottom:0}
.page-kind-edit .content{width:min(1048px,100%)}
.page-kind-edit .page-header{margin-bottom:18px;padding:20px 24px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 24px rgba(35,99,125,.08)}
.page-kind-edit .content>form:not(.delete-form){width:100%;max-width:none;padding:24px}
.page-kind-index .content>table.table{overflow:hidden}
.page-kind-new:not(.route-app-commande-vente-new):not(.route-app-facture-vente-en-ligne-new) .content{width:min(1048px,100%)}
.page-kind-new .page-header{margin-bottom:18px;padding:20px 24px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 24px rgba(35,99,125,.08)}
.page-kind-new:not(.route-app-commande-vente-new):not(.route-app-facture-vente-en-ligne-new) .content>form:not(.delete-form){width:100%;max-width:none;padding:24px}
.route-app-commande-vente-new .content,.route-app-facture-vente-en-ligne-new .content{width:min(1280px,100%)}
.route-app-commande-vente-new .content>form:not(.delete-form){width:100%;max-width:none;padding:24px}
.route-app-commande-vente-edit .content{width:min(1280px,100%)}
.entity-form{position:relative}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px}.form-grid>div{min-width:0;margin:0}.form-grid-wide,.auto-form-grid>div:has(textarea),.auto-form-grid>div:has(input[type="file"]),.auto-form-grid>div:has(input[name*="[roles]"]),.auto-form-grid>fieldset,.auto-form-grid>ul{grid-column:1/-1}.auto-form-grid>div:has(>input[type="checkbox"]){display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 13px;background:#f0f8fc;border:1px solid #cfe4ee;border-radius:10px}.auto-form-grid>div:has(>input[type="checkbox"]) label{margin:0}.entity-form label{color:#294d5e;font-size:12px;letter-spacing:.15px}.entity-form input:not([type="checkbox"]):not([type="radio"]),.entity-form select,.entity-form textarea{min-height:46px;border-color:#bfd4df;background:#fff}.entity-form textarea{min-height:105px;resize:vertical}.entity-form input[type="file"]{padding:9px}.entity-form .help-text,.entity-form .form-text{display:block;margin-top:6px;color:#718690;font-size:11px;line-height:1.4}.entity-form .form-actions{grid-column:1/-1;margin-top:22px;padding-top:18px;border-top:1px solid #d8e8ef}.entity-form .form-actions .btn,.entity-form>.form-actions button{min-width:190px}.entity-form .generated-number{grid-column:1/-1}.sale-form,.purchase-form{max-width:none!important}.sale-form .form-main-grid,.purchase-form .form-main-grid{margin-bottom:20px}.sale-form .form-collection,.purchase-form .form-collection{margin-top:18px}.online-sale-form{max-width:none!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}.online-sale-form>.form-actions{padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.cash-session-form .auto-form-grid{margin-bottom:18px}.password-change-form{max-width:760px}.password-security-panel{max-width:820px;padding:28px}.password-security-intro{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding:16px 18px;border:1px solid #c7e0eb;border-radius:14px;background:linear-gradient(135deg,#edf9fd,#eef2ff)}.password-security-intro>span{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:13px;background:linear-gradient(135deg,#20a8e8,#2868e7);font-size:22px;box-shadow:0 8px 18px rgba(35,118,211,.2)}.password-security-intro div{display:grid;gap:3px}.password-security-intro strong{color:#173f55;font-size:16px}.password-security-intro small{color:#637e8b;line-height:1.45}.password-change-grid{grid-template-columns:1fr}.password-change-grid>div{min-width:0}.password-change-form .form-actions{display:flex;flex-wrap:wrap;gap:12px}.password-change-form .form-actions .btn{min-width:220px}
@media(max-width:760px){.user-index-actions{grid-template-columns:1fr}.user-index-actions .action-icon,.user-index-actions .action-toggle{width:110px!important;min-width:110px!important}.detail-gallery{grid-template-columns:1fr}.detail-gallery a{height:210px}.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .page-header,.page-kind-edit .page-header,.page-kind-new .page-header{padding:17px}.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table th{width:38%;padding:11px}.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table td{padding:11px}}
@media(max-width:760px){.form-grid{grid-template-columns:1fr;gap:14px}.form-grid-wide,.auto-form-grid>div:has(textarea),.auto-form-grid>div:has(input[type="file"]),.auto-form-grid>fieldset,.auto-form-grid>ul{grid-column:auto}.entity-form .form-actions{align-items:stretch;flex-direction:column}.entity-form .form-actions .btn,.entity-form>.form-actions button,.entity-form .form-actions a{width:100%;min-width:0}}
.cash-count{margin:22px 0;padding:18px;background:#eef5f7;border:1px solid #c8dce3;border-radius:14px}.cash-count .panel-head{align-items:center}.cash-total{padding:11px 16px;color:#fff;background:#245d78;border-radius:10px;font-size:23px}.denomination-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:10px}.denomination{padding:11px;background:#fff;border:1px solid #cedce1;border-radius:10px;font-weight:800}.denomination span{display:block;margin-bottom:6px;color:#264e62}.denomination input{margin:0}.previous-cash{margin-bottom:20px;padding:18px;background:#f4e4ca;border-radius:14px}.previous-cash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.previous-cash-grid>div{display:flex;flex-direction:column;padding:13px;background:#fff;border-radius:9px}.previous-cash-grid b{margin:5px 0;font-size:20px;color:#70411f}
.line-items { display:grid; gap:12px; }
.line-item { display:grid; grid-template-columns:minmax(260px,2fr) minmax(110px,.7fr) auto; gap:12px; align-items:end; padding:16px; background:var(--canvas); border-radius:10px; }
.line-item > div { margin:0; }
.remove-line { min-height:38px; background:var(--danger); box-shadow:none; }
.sale-form .line-item{grid-template-columns:minmax(135px,.55fr) minmax(260px,1.6fr) minmax(105px,.45fr) minmax(135px,.55fr);align-items:start}
.sale-form .line-item>div{min-width:0;margin:0}
.sale-form .line-item .sale-line-product select,.sale-form .line-item .sale-line-quantity input,.sale-form .line-item .sale-line-reference input{width:100%}
.sale-form .line-item .remove-line{width:100%;min-height:46px;margin-top:21px;white-space:nowrap}
@media(max-width:760px){.sale-form .line-item{grid-template-columns:1fr;gap:12px}.sale-form .line-item .remove-line{margin-top:0}}
.product-reference-search label{display:block}.product-reference-search input{width:100%;font-weight:800}.product-reference-result{display:block;min-height:16px;margin-top:6px;color:#66808d;font-size:10px;line-height:1.35}.product-reference-search input.is-match{border-color:#28a56d!important;background:#effbf5!important;box-shadow:0 0 0 3px rgba(40,165,109,.13)!important}.product-reference-search input.is-invalid-reference{border-color:#d4515f!important;background:#fff5f6!important;box-shadow:0 0 0 3px rgba(212,81,95,.12)!important}.product-reference-search:has(input.is-match) .product-reference-result{color:#16744a;font-weight:750}.product-reference-search:has(input.is-invalid-reference) .product-reference-result{color:#ad2f3f;font-weight:750}
.form-panel { max-width:980px; }
.form-actions,.page-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:22px; }
.page-header .page-actions { margin-top:0; }
.primary-document-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:11px; }
.primary-document-actions form { margin:0; }
.primary-document-actions form > div { margin:0; }
.btn-gold { color:#2d1b08; background:linear-gradient(135deg,#f0ca78,#cf9638); box-shadow:0 9px 22px rgba(166,106,16,.25); }
.btn-gold:hover { color:#241506; background:linear-gradient(135deg,#f6d892,#d9a64c); }
.btn-large { min-height:52px; padding:0 22px; font-size:15px; }
.cash-page-header{padding:22px 26px;border-radius:18px;background:linear-gradient(135deg,#fff8ed,#f4e2cf);border:1px solid #ead1b5;box-shadow:0 12px 28px rgba(66,38,24,.09)}
.cash-main-actions{justify-content:flex-end}.cash-main-actions .btn{min-height:58px;padding:0 26px;font-size:17px;border-radius:13px}
.cash-open-button{color:#fff!important;background:linear-gradient(135deg,#16845f,#0e6047)!important;border:0!important;box-shadow:0 12px 25px rgba(17,112,80,.28)!important}
.cash-close-button{color:#fff!important;background:linear-gradient(135deg,#914c25,#552815)!important;border:0!important;box-shadow:0 12px 25px rgba(91,42,20,.28)!important}
.cash-open-status{display:inline-flex;align-items:center;min-height:54px;padding:0 19px;border-radius:12px;color:#17654d;background:#e1f5ed;border:1px solid #b7dfd1;font-weight:800}
.cash-handover{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 20px;padding:20px 24px;border-radius:16px;color:#143c50;background:linear-gradient(135deg,#dff3fa,#f4fbfd);border:1px solid #b5dbe8;box-shadow:0 9px 22px rgba(26,91,116,.09)}
.cash-handover>div{display:flex;align-items:center;gap:16px}.cash-handover h2,.cash-handover p{margin:2px 0}.cash-handover>strong{white-space:nowrap;padding:13px 17px;border-radius:11px;color:#fff;background:#225f7b;font-size:22px}.cash-handover-icon{display:grid;place-items:center;flex:0 0 54px;height:54px;border-radius:14px;background:#fff;font-size:25px}.cash-handover-empty{background:#fff8ea;border-color:#ead4aa}
.cash-ledger{position:relative;margin:0 0 24px;padding:25px;overflow:hidden;background:linear-gradient(145deg,#fbfdff,#f1f8fc);border-color:#bcdce9;box-shadow:0 16px 38px rgba(31,91,117,.11)}
.cash-ledger::before{position:absolute;inset:0 0 auto;height:4px;content:"";background:linear-gradient(90deg,#20a76f,#1f8ee8,#6c57db,#f2a63b)}
.cash-ledger-heading{align-items:flex-start;margin-bottom:20px}.cash-ledger-heading h2{margin:0;font-size:clamp(21px,2vw,29px)}.cash-ledger-heading p:not(.eyebrow){margin:7px 0 0;color:#67808c;font-size:13px}.cash-ledger-status{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;color:#167450;background:#e8f8f1;border:1px solid #bde5d2;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}
.cash-method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cash-method-card{--cash-accent:#247ea7;display:grid;grid-template-columns:46px minmax(0,1fr);gap:11px 13px;min-width:0;padding:17px;color:#163346;background:#fff;border:1px solid color-mix(in srgb,var(--cash-accent) 24%,#d8e5eb);border-radius:15px;box-shadow:0 9px 22px color-mix(in srgb,var(--cash-accent) 11%,transparent)}.cash-method-card.is-cash{--cash-accent:#199866;background:linear-gradient(145deg,#f5fffa,#e9f8f1)}.cash-method-card.is-card{--cash-accent:#237ed9;background:linear-gradient(145deg,#f5faff,#eaf3fd)}.cash-method-card.is-total{--cash-accent:#5546b9;background:linear-gradient(145deg,#f8f7ff,#eeecfc)}.cash-method-card.is-tax{--cash-accent:#dc8521;background:linear-gradient(145deg,#fffaf2,#fff0da)}.cash-method-icon{display:grid;place-items:center;width:46px;height:46px;color:#fff;background:var(--cash-accent);border-radius:13px;font-size:21px;font-weight:900;box-shadow:0 8px 17px color-mix(in srgb,var(--cash-accent) 25%,transparent)}.cash-method-card small{display:block;margin-bottom:2px;color:#718692;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.8px}.cash-method-card h3{margin:0;color:#173347;font-size:18px;line-height:1.15}.cash-method-card div>span{display:block;margin-top:4px;color:#748894;font-size:10px}.cash-method-card>strong{grid-column:1/-1;padding-top:11px;border-top:1px solid color-mix(in srgb,var(--cash-accent) 18%,transparent);color:var(--cash-accent);font-size:clamp(21px,2vw,28px);letter-spacing:-.5px}
.cash-ledger-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:15px 0 22px;padding:12px;background:#eaf4f8;border:1px solid #d1e6ee;border-radius:13px}.cash-ledger-totals>div{display:flex;min-width:0;flex-direction:column;padding:10px 12px;background:rgba(255,255,255,.76);border-radius:9px}.cash-ledger-totals small{color:#64808e;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.55px}.cash-ledger-totals strong{margin-top:4px;color:#193f53;font-size:19px}.cash-ledger-totals span{margin-top:3px;color:#78909a;font-size:9px}
.cash-entries-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 10px}.cash-entries-head h3{margin:0;font-size:17px}.cash-entries-head span{padding:5px 9px;color:#37697e;background:#e4f1f6;border-radius:999px;font-size:10px;font-weight:800}.cash-ledger-table{margin:0;border:1px solid #d6e7ed;border-radius:12px;box-shadow:none}.cash-ledger-table table{min-width:760px}.cash-ledger-table td small{display:block;margin-top:3px;color:#79909a;font-size:9px}.cash-mode-badge{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:10px;font-weight:850;white-space:nowrap}.cash-mode-badge.mode-especes{color:#126c49;background:#dff5ea}.cash-mode-badge.mode-carte{color:#185f9f;background:#e1effc}.cash-mode-badge.mode-virement{color:#53459d;background:#ebe8fc}.cash-mode-badge.mode-autre{color:#8a551b;background:#fff0da}
.cash-closing-panel{width:100%;max-width:none}.cash-count{background:linear-gradient(145deg,#eff8fb,#e8f2f6)}.cash-count-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:11px;margin:16px 0}.cash-count-overview>div{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:13px 15px;background:#fff;border:1px solid #d0e3ea;border-radius:11px}.cash-count-overview small{margin-bottom:5px;color:#6b8390;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.65px}.cash-count-overview strong{color:#1d526a;font-size:21px}.cash-count-overview .cash-total{display:block;padding:0;color:#1d526a;background:none!important;border-radius:0;box-shadow:none!important}.cash-difference.is-negative,.cash-negative{color:#bd3445!important}.cash-difference.is-positive{color:#b56d19!important}.cash-difference.is-balanced,.cash-positive{color:#16825a!important}.cash-audit-summary{margin-bottom:20px}
.cash-daily-entry{margin:0 0 22px;padding:21px;background:linear-gradient(145deg,#f8fcff,#edf6fb);border:1px solid #bfdce8;border-radius:16px}.cash-daily-entry-head{align-items:flex-start;margin-bottom:16px}.cash-daily-entry-head h2{margin:0}.cash-daily-entry-head p:not(.eyebrow){margin:6px 0 0;color:#67818e;font-size:12px}.cash-daily-entry-head>span{padding:7px 10px;color:#1b6f8e;background:#e0f3fb;border-radius:999px;font-size:10px;font-weight:850;white-space:nowrap}.cash-entry-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.cash-entry-field,.cash-entry-total{--entry-accent:#247da5;display:flex;min-width:0;flex-direction:column;padding:14px;background:#fff;border:1px solid #d0e2e9;border-top:4px solid var(--entry-accent);border-radius:12px;box-shadow:0 7px 17px rgba(37,89,111,.07)}.cash-entry-field.is-cash{--entry-accent:#199866}.cash-entry-field.is-card{--entry-accent:#237ed9}.cash-entry-field.is-tax{--entry-accent:#dc8521}.cash-entry-field>span,.cash-entry-total>span{margin-bottom:8px;color:#31586a;font-size:11px;font-weight:850}.cash-entry-field input{min-width:0;width:100%;margin:0;padding:10px 11px;color:var(--entry-accent);background:#f9fcfd;border:1px solid #c7dae2;border-radius:8px;font-size:20px;font-weight:850}.cash-entry-field small,.cash-entry-total small{margin-top:7px;color:#768d98;font-size:9px;line-height:1.35}.cash-entry-total{--entry-accent:#594ab8;justify-content:center;background:linear-gradient(145deg,#f8f7ff,#eeecfc)}.cash-entry-total strong{color:#594ab8;font-size:clamp(22px,2vw,29px)}.cash-entry-reference{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:13px;padding-top:12px;border-top:1px solid #d4e5ec}.cash-entry-reference span{color:#67808c;font-size:10px;font-weight:800;text-transform:uppercase}.cash-entry-reference b{padding:5px 8px;color:#3d687b;background:#fff;border:1px solid #d4e5ec;border-radius:999px;font-size:9px}.cash-declared-summary{margin-bottom:22px;padding:24px;background:linear-gradient(145deg,#fbfdff,#eef7fb);border-color:#bcdde9}.cash-session-table{min-width:1050px}
.cash-z-entry{display:grid;gap:18px}.cash-z-meta{display:grid;grid-template-columns:1.15fr 1fr .75fr;gap:12px}.cash-z-meta label,.cash-z-adjustments label{display:flex;min-width:0;flex-direction:column;gap:7px;color:#31586a;font-size:11px;font-weight:850}.cash-z-meta input,.cash-z-adjustments input{width:100%;min-width:0;margin:0;padding:11px 12px;background:#fff;border:1px solid #c7dae2;border-radius:9px;font-size:15px}.cash-z-subtitle{margin:0 0 -7px;color:#17394a;font-size:14px}.cash-z-rates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cash-z-rate,.cash-z-tax-total{--z-accent:#28a26d;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:15px;background:#fff;border:1px solid #cfdee5;border-left:5px solid var(--z-accent);border-radius:12px;box-shadow:0 7px 17px rgba(37,89,111,.06)}.cash-z-rate.is-rate-19{--z-accent:#dd8520}.cash-z-rate>span,.cash-z-tax-total>span{margin-bottom:8px;color:#31586a;font-size:11px;font-weight:850}.cash-z-rate input{width:100%;min-width:0;margin:0;padding:10px 11px;color:var(--z-accent);background:#f9fcfd;border:1px solid #c7dae2;border-radius:8px;font-size:20px;font-weight:850}.cash-z-rate small,.cash-z-tax-total small{margin-top:7px;color:#68808d;font-size:10px}.cash-z-rate small b,.cash-z-tax-total small b{color:#17394a}.cash-z-tax-total{--z-accent:#594ab8;background:linear-gradient(145deg,#f8f7ff,#eeecfc)}.cash-z-tax-total strong{color:#594ab8;font-size:25px}.cash-entry-field.is-other{--entry-accent:#8762c7}.cash-z-adjustments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.cash-z-before{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;color:#2d5365;background:#e6f2f7;border-radius:10px;font-weight:800}.cash-z-before strong{color:#17394a;font-size:19px}.cash-entry-total small.is-ok{color:#118154;font-weight:800}.cash-entry-total small.is-error{color:#c12d48;font-weight:850}.cash-tax-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.cash-tax-breakdown>div{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:15px;background:#fff;border:1px solid #d0e2e9;border-radius:12px}.cash-tax-breakdown span{grid-column:1/-1;color:#247da5;font-weight:900}.cash-tax-breakdown small{color:#718794}.cash-tax-breakdown b{text-align:right}.cash-tax-breakdown strong{grid-column:1/-1;padding-top:7px;border-top:1px solid #d9e6eb;text-align:right}.cash-tax-breakdown .is-total{background:#f3f0ff;border-color:#cec7ef}.cash-adjustment-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.cash-adjustment-summary span{padding:7px 10px;color:#45697a;background:#fff;border:1px solid #d4e5ec;border-radius:999px;font-size:10px}.cash-date-filter{margin:0 0 14px;padding:12px 14px;background:#eef7fb;border:1px solid #c6dfeb;border-radius:13px}.cash-date-filter form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.cash-date-filter label{display:flex;flex-direction:column;gap:5px;color:#31586a;font-size:11px;font-weight:850}.cash-date-filter input{min-width:190px;margin:0;padding:9px 11px;background:#fff;border:1px solid #bfd6e1;border-radius:8px}
@media(max-width:1050px){.cash-method-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.cash-entry-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-z-meta,.cash-z-rates{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-z-tax-total{grid-column:1/-1}.cash-z-adjustments{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.cash-ledger{padding:18px 14px}.cash-ledger-heading,.cash-daily-entry-head{align-items:flex-start;flex-direction:column}.cash-method-grid,.cash-entry-fields,.cash-z-meta,.cash-z-rates,.cash-z-adjustments,.cash-tax-breakdown{grid-template-columns:1fr}.cash-z-tax-total{grid-column:auto}.cash-method-card{grid-template-columns:42px minmax(0,1fr);padding:14px}.cash-method-icon{width:42px;height:42px}.cash-method-card>strong{font-size:24px}.cash-ledger-totals{grid-template-columns:1fr}.cash-count-overview{grid-template-columns:1fr}.cash-count{padding:14px}.cash-count .denomination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-closing-panel{padding:14px}.cash-daily-entry{padding:16px 13px}.cash-audit-summary{grid-template-columns:1fr 1fr}.cash-z-before{align-items:flex-start;flex-direction:column;gap:5px}.cash-date-filter form>*{width:100%}.cash-date-filter input{min-width:0}}
@media(max-width:430px){.cash-count .denomination-grid,.cash-audit-summary{grid-template-columns:1fr}.cash-page-header .btn{width:100%}}
.invoice-hint { max-width:310px; padding:12px 14px; color:#76551d; background:var(--gold-soft); border:1px solid #e7cd98; border-radius:10px; font-size:12px; font-weight:700; }
.form-actions a,.page-actions a { display:inline-flex; align-items:center; min-height:42px; padding:0 15px; border:1px solid var(--line); border-radius:9px; background:#fff; font-weight:700; }
.help-text { color:var(--muted); font-size:13px; }
.generated-number { margin-bottom:20px; padding:14px 16px; background:linear-gradient(110deg,var(--brand-soft),var(--gold-soft)); border:1px solid var(--line); border-radius:11px; }
.generated-number small,.generated-number strong { display:block; }
.generated-number small { margin-bottom:5px; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.7px; }
.generated-number strong { color:var(--brand-dark); }
.sale-mode-info { display:flex; align-items:center; gap:12px; margin:15px 0; padding:13px 16px; color:#6f4c10; background:var(--gold-soft); border:1px solid #e4c98f; border-radius:11px; }
.sale-mode-info strong { flex:0 0 auto; }.sale-mode-info span { font-size:12px; }
.sale-submit-actions { position:sticky; bottom:15px; z-index:8; display:flex; justify-content:flex-end; gap:12px; margin-top:20px; padding:15px; background:rgba(255,250,252,.94); border:1px solid var(--line); border-radius:14px; box-shadow:0 14px 35px rgba(65,22,48,.16); backdrop-filter:blur(10px); }
.automatic-download { position:absolute; width:1px; height:1px; border:0; opacity:0; pointer-events:none; }
.panel h2,.panel h3 { color:var(--ink); }
.panel table { border-radius:12px; overflow:hidden; }
.content > .delete-form { display:inline-block; margin-top:12px; }
.content > .delete-form div { margin:0; }
.invoice-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:22px; }
.invoice-brand-header { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:25px; padding:20px 23px; background:linear-gradient(120deg,#fff9f1,#f5e4ed); border:1px solid var(--line); border-radius:17px; box-shadow:var(--shadow); }
.invoice-brand { display:flex; align-items:center; gap:14px; }
.invoice-brand img { width:78px; height:78px; object-fit:contain; padding:0; background:transparent; border:0; border-radius:0; box-shadow:none; }
.invoice-brand strong,.invoice-brand small,.invoice-company-placeholder strong,.invoice-company-placeholder small { display:block; }
.invoice-brand strong { color:var(--brand-dark); font-size:24px; }
.invoice-brand small { margin-top:3px; color:var(--muted); }
.invoice-company-placeholder { text-align:right; }
.invoice-company-placeholder small { margin-top:5px; color:var(--muted); font-size:12px; }
.invoice-meta div { padding:18px 20px; background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:var(--shadow); }
.invoice-qr-card { display:flex; align-items:center; gap:22px; margin-bottom:22px; padding:18px 22px; background:linear-gradient(120deg,#fff8ed,#f4e2eb); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.invoice-qr-card img { flex:0 0 auto; width:118px; height:118px; padding:7px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.invoice-qr-card h2 { margin:0 0 7px; font-size:19px; }.invoice-qr-card p:not(.eyebrow){margin:0 0 7px;color:var(--muted)}
.invoice-meta small,.invoice-meta strong { display:block; }
.invoice-meta small { margin-bottom:7px; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.7px; }
.invoice-meta strong { font-size:15px; }
.invoice-status-payee{color:#17613a!important;background:#dff5e8!important}.invoice-status-partiellement_payee{color:#805708!important;background:#fff1bd!important}.invoice-status-annulee{color:#9e3131!important;background:#fde9e9!important}
.invoice-payment-card{margin-bottom:22px;padding:20px;background:linear-gradient(135deg,#f8fcfe,#edf8fc);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.invoice-payment-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.invoice-payment-heading h2{margin:2px 0 5px}.invoice-payment-heading p{margin:0;color:var(--muted)}.invoice-payment-totals{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:10px}.invoice-payment-totals span{padding:12px 15px;background:#fff;border:1px solid var(--line);border-radius:11px}.invoice-payment-totals small,.invoice-payment-totals strong{display:block}.invoice-payment-totals small{margin-bottom:4px;color:var(--muted)}.invoice-payment-totals strong{font-size:18px}.invoice-payment-table{margin-top:18px}.invoice-payment-table table{margin:0}
.invoice-footer-preview{margin:22px 0;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.invoice-footer-preview>.eyebrow{margin:0 0 14px}
.invoice-footer-preview-grid{display:grid;grid-template-columns:1.2fr 1.3fr 1fr;gap:24px;align-items:start}
.invoice-footer-preview-col div{display:flex;gap:8px;padding:3px 0;font-size:13px}
.invoice-footer-preview-col span{flex:0 0 84px;color:var(--muted)}
.invoice-footer-preview-col strong{color:var(--ink)}
.invoice-footer-preview-qr{display:flex;justify-content:flex-end;margin-bottom:10px;padding-bottom:10px;border-bottom:2px solid #75ad69}
.invoice-footer-preview-qr img{width:74px;height:74px;padding:5px;background:#fff;border:1px solid var(--line);border-radius:10px}
@media(max-width:760px){.invoice-footer-preview-grid{grid-template-columns:1fr}.invoice-footer-preview-qr{justify-content:flex-start}}
tfoot th,tfoot td { background:var(--gold-soft); font-weight:800; }
.password-field{position:relative!important;display:block!important;width:100%}.password-field input{width:100%!important;padding-right:52px!important}.password-field>button.password-eye{position:absolute!important;z-index:3!important;right:7px!important;top:50%!important;bottom:auto!important;left:auto!important;transform:translateY(-50%)!important;display:grid!important;place-items:center!important;width:40px!important;min-width:40px!important;max-width:40px!important;height:40px!important;min-height:40px!important;margin:0!important;padding:0!important;color:#203240!important;background:#eef2f4!important;border:1px solid #cbd5da!important;border-radius:9px!important;box-shadow:none!important;font-size:18px!important;line-height:1!important;cursor:pointer!important}
.camera-photo-input{padding:12px!important;border:2px dashed #397d9d!important;background:#eef8fc!important;cursor:pointer}.camera-photo-input::file-selector-button{margin-right:14px;padding:11px 16px;border:0;border-radius:9px;color:#fff;background:#225f7b;font-weight:800;cursor:pointer}
@media (max-width:1200px){.dashboard-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}} @media (max-width:1050px) { .stats-grid{grid-template-columns:repeat(2,1fr)} .dashboard-grid{grid-template-columns:1fr}.dashboard-tiles{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px) { .topbar{position:static;height:84px;padding:0 18px}.topbar-brand .brand-mark{width:57px;height:57px}.topbar-brand strong{font-size:18px} .topbar-actions>span:not(.status-dot){display:none} .content{padding:24px 18px}.app-footer{padding:13px 18px} .stats-grid,.invoice-meta,.dashboard-tiles{grid-template-columns:1fr}.dashboard-welcome,.invoice-brand-header{align-items:flex-start;flex-direction:column;padding:24px}.invoice-company-placeholder{text-align:left}.welcome-date{width:100%;text-align:left} .page-header{align-items:flex-start;flex-direction:column} .line-item,.scanner-controls{grid-template-columns:1fr}.invoice-payment-heading{flex-direction:column}.invoice-payment-totals{width:100%;grid-template-columns:1fr}.invoice-payment-card{padding:15px} }
@media (max-width:760px){
  .topbar{position:sticky;height:70px;padding:0 13px}.topbar-brand{gap:10px}.topbar-brand .brand-mark{width:48px;height:48px;border-radius:13px}.topbar-brand strong{font-size:17px}.topbar-brand small{margin-top:1px;font-size:10px}.topbar-actions{gap:6px}.topbar-actions .status-dot{width:10px;height:10px}.logout-link{min-height:38px;padding:0 11px;font-size:12px}
  .content{padding:16px 12px 28px}
  .dashboard-welcome{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:14px;padding:18px;border-radius:17px}.dashboard-welcome h1{font-size:24px;line-height:1.08}.dashboard-welcome p:not(.eyebrow){margin-top:7px;font-size:13px;line-height:1.35}.dashboard-welcome .eyebrow{font-size:10px}.welcome-date{align-self:end;width:auto;min-width:88px;padding:10px;text-align:center;border-radius:11px}.welcome-date small{font-size:8px}.welcome-date strong{font-size:13px}
  .dashboard-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-tile{min-height:150px;padding:14px;border-radius:16px}.dashboard-tile::before{width:90px;height:90px;right:-34px;top:-34px}.dashboard-tile::after{width:55px;height:55px;right:20px;bottom:-30px}.tile-icon{width:38px;height:38px;border-radius:11px;font-size:19px}.tile-text{padding-top:12px;padding-right:25px}.tile-text strong{max-width:100%;font-size:14px;line-height:1.15}.tile-text small{margin-top:5px;font-size:10px;line-height:1.25}.tile-arrow{right:12px;bottom:12px;width:28px;height:28px;font-size:13px}
  .app-footer{min-height:42px;padding:10px 12px;font-size:10px}
}
@media (max-width:370px){.dashboard-welcome{grid-template-columns:1fr}.welcome-date{width:100%;text-align:left}.dashboard-tiles{gap:8px}.dashboard-tile{min-height:145px;padding:12px}.tile-text strong{font-size:13px}.tile-text small{font-size:9px}}
.report-filter{max-width:none!important;display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr auto;gap:13px;align-items:end;margin-bottom:20px;padding:18px!important}.report-filter>div{margin:0}.report-filter button{white-space:nowrap}.report-period{display:flex;align-items:center;gap:15px;margin-bottom:20px;padding:13px 18px;color:#eaf3ff;background:linear-gradient(110deg,#142238,#274b68);border-radius:13px}.report-period span{font-size:11px;text-transform:uppercase;letter-spacing:1px}.report-period strong{font-size:17px}.report-period small{margin-left:auto;color:#c7d7e4}.report-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}.report-kpi{position:relative;overflow:hidden;padding:21px;color:#fff;border-radius:17px;box-shadow:var(--shadow)}.report-kpi small,.report-kpi strong,.report-kpi span{display:block}.report-kpi small{font-weight:750;opacity:.85}.report-kpi strong{margin:9px 0 6px;font-size:27px}.report-kpi span{font-size:12px;opacity:.8}.kpi-blue{background:linear-gradient(140deg,#1c7ec2,#174979)}.kpi-navy{background:linear-gradient(140deg,#315a91,#1c3154)}.kpi-cyan{background:linear-gradient(140deg,#1da6c4,#17627f)}.kpi-orange{background:linear-gradient(140deg,#c97822,#74401d)}.kpi-green{background:linear-gradient(140deg,#21865d,#15523c)}.kpi-violet{background:linear-gradient(140deg,#7452bd,#463178)}.kpi-red{background:linear-gradient(140deg,#cf5363,#8d2635)}.kpi-teal{background:linear-gradient(140deg,#1ca08d,#126052)}.tax-summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-bottom:18px;padding:22px 25px;border-radius:17px;box-shadow:var(--shadow)}.tax-summary h2,.tax-summary p{margin:3px 0}.tax-summary>strong{font-size:30px;white-space:nowrap}.tax-icon{display:grid;place-items:center;width:55px;height:55px;background:rgba(255,255,255,.7);border-radius:14px;font-size:25px}.tax-payable{color:#632d1e;background:linear-gradient(120deg,#ffe2c9,#f5c59b)}.tax-refund{color:#174f3c;background:linear-gradient(120deg,#d8f5e8,#bce7d6)}.report-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}.report-secondary article{padding:19px;background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:15px}.report-secondary small,.report-secondary strong,.report-secondary span{display:block}.report-secondary small{color:var(--muted);font-weight:700}.report-secondary strong{margin:8px 0;font-size:23px}.report-secondary span{color:var(--muted);font-size:11px}.report-chart,.report-table-panel{margin-bottom:18px}.chart-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px}.chart-legend span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px}.legend-sales:before{background:#277eb8}.legend-buy:before{background:#d69536}.legend-expense:before{background:#ca4455}.bar-chart{display:flex;gap:12px;min-height:250px;overflow-x:auto;padding:15px 5px 0;border-bottom:1px solid var(--line)}.bar-month{display:grid;grid-template-rows:190px auto auto;flex:1;min-width:90px;text-align:center}.bar-values{display:flex;align-items:flex-end;justify-content:center;gap:6px;height:190px}.bar{width:23px;min-height:2px;border-radius:7px 7px 0 0}.bar-sales{background:linear-gradient(#46a9e7,#236a9c)}.bar-buy{background:linear-gradient(#efbd64,#c78023)}.bar-expense{background:linear-gradient(#ec7380,#b83243)}.bar-month strong{margin-top:8px;font-size:12px}.bar-month small{color:var(--muted);font-size:10px}.amount-positive{color:#18724f;font-weight:750}.amount-warning{color:#a04f20;font-weight:750}.online-sales-amount{color:#176f8a}.report-disclaimer{padding:14px 17px;color:#72551c;background:#fff3d5;border:1px solid #ead39d;border-radius:11px;font-size:12px}
@media(max-width:1050px){.report-filter{grid-template-columns:repeat(2,1fr)}.report-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.report-filter{grid-template-columns:1fr}.report-period{align-items:flex-start;flex-direction:column;gap:4px}.report-period small{margin-left:0}.report-kpis,.report-secondary{grid-template-columns:1fr 1fr}.tax-summary{grid-template-columns:auto 1fr}.tax-summary>strong{grid-column:1/-1}.report-kpi strong{font-size:22px}}
@media(max-width:430px){.report-kpis,.report-secondary{grid-template-columns:1fr}}
.list-search{max-width:none!important;display:flex;align-items:center;gap:10px;margin:0 0 20px;padding:13px!important;background:rgba(255,255,255,.82)!important}.list-search>div{margin:0}.search-field{position:relative;flex:1}.search-field span{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:52px;line-height:1}.search-field input{height:60px;padding-left:78px;font-size:19px;border-radius:14px}.list-search select{flex:0 0 auto;width:auto;min-width:170px}.list-search button,.list-search a{min-height:60px;margin:0!important}.search-result-count{white-space:nowrap;padding:0 8px;color:var(--muted);font-size:12px;font-weight:750}
@media(max-width:620px){.list-search{display:grid;grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.list-search button,.list-search a{width:100%}.search-result-count{grid-column:1/-1;text-align:center}}
.instant-search-hint{font-size:.78rem;color:#7b6b62;white-space:nowrap}
.field-validation-error{display:block;margin:6px 0 2px;color:#a32828;font-size:12px;font-weight:750;line-height:1.35}.field-validation-error[hidden]{display:none}.is-invalid{border-color:#c33b3b!important;background:#fff7f7!important;box-shadow:0 0 0 3px rgba(195,59,59,.13)!important}.is-invalid:focus{border-color:#ad2626!important;box-shadow:0 0 0 3px rgba(195,59,59,.2)!important}form ul{color:#a32828;font-size:12px;font-weight:700}

/* Palette AfroLux unifiée : bleu ciel et marron */
:root{--ink:#252f38;--muted:#6f7f89;--line:#c9dce5;--surface:#fafdff;--canvas:#e9f5fa;--brand:#277da4;--brand-dark:#174c66;--brand-soft:#dff2fa;--gold:#9a623c;--gold-soft:#f0e1d5;--danger:#8b4935;--shadow:0 14px 38px rgba(37,83,104,.13)}
body{background:radial-gradient(circle at 10% 12%,rgba(111,198,235,.28),transparent 32%),radial-gradient(circle at 92% 8%,rgba(140,88,52,.14),transparent 30%),linear-gradient(145deg,#e3f3f9,#f8fbfc 52%,#eee0d5)}
.topbar{background:linear-gradient(110deg,#12384d 0%,#1d607d 55%,#65402b 100%);border-bottom-color:#76c7e8}.app-footer{background:linear-gradient(90deg,#173c50,#286e8d,#68422e,#173c50)}
.dashboard-welcome{background:linear-gradient(125deg,#174c66,#2e8cb3 62%,#8b5a3b);box-shadow:0 18px 42px rgba(31,96,124,.22)}
.btn,button{background:linear-gradient(135deg,#399bc3,#1c607e);box-shadow:0 7px 18px rgba(39,125,164,.22)}.btn:hover,button:hover{box-shadow:0 10px 22px rgba(39,125,164,.3)}
.btn-secondary,.form-actions a,.page-actions a{color:#264b5d;background:#fafdff;border-color:#bdd8e4}.btn-gold{color:#fff;background:linear-gradient(135deg,#a96c43,#70442c)}.btn-gold:hover{color:#fff;background:linear-gradient(135deg,#bc7b4e,#805037)}
.tile-plum,.tile-orange{background:linear-gradient(145deg,#a86b43,#633d29)}.tile-gold{background:linear-gradient(145deg,#bf875e,#805039)}.tile-blue,.tile-indigo{background:linear-gradient(145deg,#55b7df,#277da4)}.tile-green,.tile-emerald{background:linear-gradient(145deg,#49a9c3,#226d86)}.tile-cyan,.tile-rose{background:linear-gradient(145deg,#75cbea,#358aac)}.tile-violet{background:linear-gradient(145deg,#8d735f,#5f4432)}.tile-slate{background:linear-gradient(145deg,#628fa4,#37596a)}.tile-dark{background:linear-gradient(145deg,#57483e,#2e3940)}
.dashboard-lower .panel,.cash-page-header{background:linear-gradient(145deg,#f7fcff,#e7f4f9);border-color:#c5dfe9}.table-wrap,table,.panel,.stat-card,.content>form:not(.delete-form){background:#fafdff}th{background:#e8f4f9;color:#526d79}tbody tr:hover{background:#edf8fc}
input:focus,select:focus,textarea:focus{border-color:#4da8cc;box-shadow:0 0 0 3px #d8f0fa}.action-link,td a,.badge{background:#dff2fa;color:#245f79}.product-price,.cash-total{background:linear-gradient(135deg,#348eaf,#205d77)}
.barcode-scanner,.report-period{background:linear-gradient(120deg,#164a63,#337f9d);border-color:#7bc9e5}.login-page{background:radial-gradient(circle at 15% 10%,rgba(103,190,226,.3),transparent 32%),linear-gradient(145deg,#153f54,#5c3b29)}.login-card::before{background:linear-gradient(90deg,#67c4e8,#9a623c,#277da4)}
.generated-number,.invoice-brand-header,.invoice-qr-card{background:linear-gradient(110deg,#e3f5fb,#f0e2d7)}.sale-submit-actions{background:rgba(243,250,253,.95);box-shadow:0 14px 35px rgba(35,99,125,.17)}
.kpi-blue,.kpi-green{background:linear-gradient(140deg,#4eadd3,#216f91)}.kpi-orange,.kpi-violet{background:linear-gradient(140deg,#ae7450,#68432e)}.tax-payable{color:#573723;background:linear-gradient(120deg,#f2dfd1,#d9b79e)}.tax-refund{color:#174f65;background:linear-gradient(120deg,#dff4fb,#bde4f2)}

/* Bleu principal inspiré de la bande VEAK */
:root{--brand:#168fe5;--brand-dark:#2464e8;--brand-soft:#dff2ff;--gold:#168fe5;--gold-soft:#e5f3ff;--line:#c9dff2;--canvas:#eaf5fc;--danger:#ca4455}
body{background:radial-gradient(circle at 8% 10%,rgba(35,163,235,.19),transparent 33%),linear-gradient(145deg,#e8f5fd,#f7fbff 55%,#e5f1fa)}
.topbar,.app-footer,.dashboard-welcome,.barcode-scanner,.report-period{background:linear-gradient(110deg,#18a4eb 0%,#168fe5 48%,#2864e9 100%);border-color:#73d2fa}
.login-page{background:radial-gradient(circle at 15% 10%,rgba(73,194,245,.28),transparent 32%),linear-gradient(145deg,#075c9c,#173b91)}
.btn,button,.btn-gold,.cash-open-button,.cash-close-button{color:#fff!important;background:linear-gradient(135deg,#1aa5eb,#2564e8)!important;box-shadow:0 8px 20px rgba(28,112,220,.25)!important}
.btn:hover,button:hover,.btn-gold:hover{background:linear-gradient(135deg,#36b5f0,#3476ee)!important;box-shadow:0 11px 25px rgba(28,112,220,.32)!important}
.btn-secondary,.form-actions a,.page-actions a{color:#176aa2!important;background:#fff!important;border-color:#b8dcef!important;box-shadow:none!important}
.tile-plum,.tile-gold,.tile-blue,.tile-green,.tile-orange,.tile-cyan,.tile-rose,.tile-violet,.tile-indigo,.tile-emerald,.tile-slate,.tile-dark{background:linear-gradient(145deg,#1ca9ec,#168edf 52%,#2864e9)}
.dashboard-tile:nth-child(3n+2){background:linear-gradient(145deg,#52c5f1,#168fe5 58%,#255fd8)}.dashboard-tile:nth-child(3n){background:linear-gradient(145deg,#138fd4,#2373ea 60%,#294fc5)}
.product-price,.cash-total,.cash-handover>strong,.action-view{background:linear-gradient(135deg,#1aa5eb,#2564e8)!important}
.action-edit{background:#83d6f6!important}.action-delete,.remove-line{background:#ca4455!important}
.generated-number,.invoice-brand-header,.invoice-qr-card,.cash-page-header{background:linear-gradient(110deg,#e4f5fd,#e9f0ff);border-color:#bddff1}
.content>h1::before,.login-card::before{background:linear-gradient(#19a6eb,#2864e9)}
.app-footer{color:#fff}.logout-link:hover{color:#095184;background:#fff}
.kpi-blue,.kpi-orange,.kpi-green,.kpi-violet{background:linear-gradient(140deg,#1ba6eb,#2664e8)}
.tax-payable,.tax-refund{color:#165f94;background:linear-gradient(120deg,#e1f4fd,#dbe8ff)}
.status-pill,.badge,td a,.action-link{color:#12699f;background:#dff2ff}

/* Visuels du tableau de bord : dégradé de couleur par catégorie + une illustration par carte (public/images/dashboard/art/).
   Le template pose l'illustration via la variable --art ; les couleurs viennent de la catégorie (finance, sales, stock, admin). */
.dashboard-visual-finance{--tile-a:#06694d;--tile-b:#0a8a62;--tile-c:#3fdcaa;--tile-rgb:4,71,51}
.dashboard-visual-sales{--tile-a:#b3174f;--tile-b:#dc3860;--tile-c:#ffa24d;--tile-rgb:122,13,54}
.dashboard-visual-stock{--tile-a:#0f49c9;--tile-b:#1a78e6;--tile-c:#45d3ff;--tile-rgb:10,47,134}
.dashboard-visual-admin{--tile-a:#4a2bb8;--tile-b:#7440f0;--tile-c:#d462ff;--tile-rgb:47,26,128}
.dashboard-tile[class*="dashboard-visual-"]{
  background:
    radial-gradient(circle 150px at 6% 112%,rgba(255,255,255,.05) 148px,transparent 150px),
    radial-gradient(circle 110px at 36% -14%,rgba(255,255,255,.05) 108px,transparent 110px),
    linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,0) 46%),
    linear-gradient(110deg,var(--tile-a) 0%,var(--tile-a) 44%,var(--tile-b) 76%,var(--tile-c) 100%);
  border-color:rgba(255,255,255,.34);
  box-shadow:0 16px 34px rgba(14,47,78,.22);
}
.dashboard-tile[class*="dashboard-visual-"]::before{
  inset:0;
  width:auto;
  height:auto;
  border-radius:0;
  background:var(--art) right center/auto 100% no-repeat;
  transform-origin:82% 50%;
  transition:transform .5s ease;
}
.dashboard-tile[class*="dashboard-visual-"]::after{
  display:block;
  inset:0;
  width:auto;
  height:auto;
  border-radius:0;
  background:
    linear-gradient(90deg,rgba(var(--tile-rgb),.38) 0%,rgba(var(--tile-rgb),.14) 50%,rgba(var(--tile-rgb),0) 80%),
    radial-gradient(ellipse 120% 80% at 0% 100%,rgba(var(--tile-rgb),.34),rgba(var(--tile-rgb),0));
}
.dashboard-tile[class*="dashboard-visual-"] .tile-icon{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.32);
  box-shadow:0 8px 20px rgba(0,0,0,.16);
  backdrop-filter:blur(8px);
}
.dashboard-tile[class*="dashboard-visual-"] .tile-text{max-width:76%;text-shadow:0 1px 6px rgba(var(--tile-rgb),.65)}
.dashboard-tile[class*="dashboard-visual-"] .tile-text small{color:rgba(255,255,255,.94)}
.dashboard-tile[class*="dashboard-visual-"]:hover{box-shadow:0 22px 44px rgba(14,47,78,.32)}
.dashboard-tile[class*="dashboard-visual-"]:hover::before{transform:scale(1.07)}
@media (max-width:760px){
  .dashboard-tile[class*="dashboard-visual-"]::before{
    background-size:auto 82%;
    background-position:right -12px top 2px;
    -webkit-mask-image:linear-gradient(180deg,#000 0,#000 40%,rgba(0,0,0,.25) 68%,rgba(0,0,0,.1) 100%);
    mask-image:linear-gradient(180deg,#000 0,#000 40%,rgba(0,0,0,.25) 68%,rgba(0,0,0,.1) 100%);
  }
  .dashboard-tile[class*="dashboard-visual-"]::after{
    background:
      linear-gradient(90deg,rgba(var(--tile-rgb),.46) 0%,rgba(var(--tile-rgb),.24) 60%,rgba(var(--tile-rgb),.06) 100%),
      radial-gradient(ellipse 130% 85% at 0% 100%,rgba(var(--tile-rgb),.34),rgba(var(--tile-rgb),0));
  }
  .dashboard-tile[class*="dashboard-visual-"] .tile-text{max-width:82%}
}

/* Cartes avec une photo (art/<nom>.webp, tirée des PNG du user) : la photo remplit toute la carte, sans couleur autour ;
   seul un voile sombre en bas garde le texte lisible. */
.dashboard-tile.has-art-photo[class*="dashboard-visual-"]::before{
  background:var(--art) center 50%/cover no-repeat;
  -webkit-mask-image:none;
  mask-image:none;
  transform-origin:50% 50%;
}
.dashboard-tile.has-art-photo[class*="dashboard-visual-"]::after{
  background:
    linear-gradient(0deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.58) 30%,rgba(0,0,0,.22) 58%,rgba(0,0,0,0) 80%),
    linear-gradient(90deg,rgba(0,0,0,.36) 0%,rgba(0,0,0,0) 66%);
}
.dashboard-tile.has-art-photo[class*="dashboard-visual-"] .tile-text{text-shadow:0 1px 3px rgba(0,0,0,.75),0 2px 14px rgba(0,0,0,.55)}
.dashboard-tile.has-art-photo[class*="dashboard-visual-"] .tile-text small{color:#fff}
@media (max-width:760px){
  .dashboard-tile.has-art-photo[class*="dashboard-visual-"]::before{
    background-size:cover;
    background-position:center;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .dashboard-tile.has-art-photo[class*="dashboard-visual-"]::after{
    background:linear-gradient(0deg,rgba(0,0,0,.76) 0%,rgba(0,0,0,.58) 36%,rgba(0,0,0,.3) 64%,rgba(0,0,0,.06) 88%);
  }
}

/* Fond qui défile derrière le tableau de bord : images i1, i2… de public/images/dashboard/ (voir assets/controllers/slideshow_controller.js) */
.dashboard-slideshow{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.dashboard-slide{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;transition:opacity 2s ease-in-out;will-change:opacity}
.dashboard-slide.is-top{z-index:1}
.dashboard-slide.is-active{opacity:1}
@media (prefers-reduced-motion:reduce){.dashboard-slide{transition-duration:.01s!important}}

/* Cartes avec les photos du user (c1.jpg, c2.png… de public/images/dashboard/) : photo bien claire, léger voile seulement derrière le texte */
.dashboard-tile.has-photo::before{background:var(--photo) center/cover no-repeat;-webkit-mask-image:none;mask-image:none}
.dashboard-tile.has-photo::after{background:linear-gradient(0deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.42) 30%,rgba(0,0,0,.14) 58%,rgba(0,0,0,0) 78%)}
.dashboard-tile.has-photo .tile-text{text-shadow:0 1px 3px rgba(0,0,0,.75),0 2px 14px rgba(0,0,0,.55)}
.dashboard-tile.has-photo .tile-text small{color:#fff}
@media (max-width:760px){.dashboard-tile.has-photo::after{background:linear-gradient(0deg,rgba(0,0,0,.74) 0%,rgba(0,0,0,.56) 36%,rgba(0,0,0,.3) 64%,rgba(0,0,0,.06) 88%)}}

/* Manuelle Online-Verkäufe */
.online-sale-head{margin-bottom:20px}
.online-customer-panel{margin-bottom:20px}.online-customer-panel .panel-head{gap:18px;margin-bottom:0}.online-customer-panel .panel-head h2{margin:2px 0}.online-customer-panel .panel-head small{color:var(--muted)}.online-customer-toggle{flex:0 0 auto;white-space:nowrap}.online-customer-fields{margin-top:20px;padding-top:20px;border-top:1px solid #d7e8f0}.online-customer-fields[hidden]{display:none}
.invoice-customer-card{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:14px;margin-bottom:22px}.invoice-customer-card>div{display:flex;min-width:0;flex-direction:column;padding:17px 19px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.invoice-customer-card small{margin-bottom:7px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.7px}.invoice-customer-card strong,.invoice-customer-card a{overflow-wrap:anywhere}.invoice-customer-card a{margin-top:5px}
.online-lines-panel{margin:22px 0;padding:20px;border:1px solid #bddff1;border-radius:18px;background:linear-gradient(145deg,#fafdff,#eaf6fc);box-shadow:var(--shadow)}
.online-lines-panel .panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.online-lines-panel .panel-head h2{margin:0}
#online-lines{display:grid;gap:14px}
.online-line{position:relative;display:grid;grid-template-columns:minmax(135px,.55fr) minmax(240px,1.45fr) minmax(105px,.5fr) minmax(145px,.75fr) auto;gap:13px;align-items:end;padding:17px;border:1px solid #c7e2f1;border-radius:15px;background:#fff;box-shadow:0 8px 22px rgba(30,112,153,.08)}
.online-line>div{min-width:0;margin:0}
.btn-remove-line{display:grid!important;place-items:center;width:46px!important;min-width:46px!important;height:46px!important;padding:0!important;border-radius:12px!important;background:#ca4455!important;font-size:21px!important}
.online-totals{max-width:590px;margin:22px 0 22px auto;padding:7px;border:1px solid #bddff1;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(30,112,153,.11)}
.online-totals>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 15px;border-bottom:1px solid #dcebf3}
.online-totals>div:last-child{border-bottom:0}
.online-totals span{color:var(--muted);font-weight:750}
.online-totals strong{font-size:17px}
.online-totals .grand{margin-top:4px;color:#fff;background:linear-gradient(135deg,#1aa5eb,#2564e8);border-radius:12px}
.online-totals .grand span{color:#fff}.online-totals .grand strong{font-size:22px}
@media(max-width:1100px) and (min-width:761px){.online-line{grid-template-columns:repeat(2,minmax(0,1fr))}.online-line .btn-remove-line{grid-column:1/-1;width:100%!important}.sale-form .line-item{grid-template-columns:minmax(135px,.6fr) minmax(240px,1.4fr) minmax(105px,.5fr)}.sale-form .line-item .remove-line{grid-column:1/-1;margin-top:0}}
@media(max-width:760px){.online-lines-panel{padding:14px}.online-lines-panel .panel-head,.online-customer-panel .panel-head{align-items:stretch;flex-direction:column}.online-customer-toggle{width:100%}.online-line{grid-template-columns:1fr}.btn-remove-line{width:100%!important}.online-totals{max-width:none}.invoice-customer-card{grid-template-columns:1fr}.product-reference-result{font-size:11px}}
/* Auswertung: getrennte Steuerkonten und Gegenrechnung */
.tax-ledgers{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.tax-ledger{padding:0;overflow:hidden}.tax-ledger .panel-head{padding:20px}.tax-ledger-credit{border-top:5px solid #26a66f}.tax-ledger-debit{border-top:5px solid #dc654f}.tax-ledger-credit .panel-head>strong{color:#14724a}.tax-ledger-debit .panel-head>strong{color:#ad3628}.tax-balance-pay{color:#bd3028!important;font-weight:800}.tax-balance-refund{color:#168457!important;font-weight:800}.tax-reconciliation tfoot th{background:#edf6fb;border-top:2px solid #76c7eb}.report-profit{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:20px 0;padding:25px 28px;border-radius:17px;box-shadow:var(--shadow)}.report-profit h2,.report-profit p{margin:3px 0}.report-profit span{font-size:12px;opacity:.8}.report-profit>strong{font-size:32px;white-space:nowrap}.profit-positive{color:#125b3d;background:linear-gradient(120deg,#d8f5e8,#aee2cc);border:1px solid #8bd0b1}.profit-negative{color:#8d291f;background:linear-gradient(120deg,#ffe1dc,#f2b8ae);border:1px solid #e39b90}
.global-calculation-panel{overflow:hidden;border-top:5px solid #248ed5}.global-calculation-panel>.panel-head{padding-bottom:16px}.global-calculation-panel .panel-head small{display:block;max-width:950px;margin-top:6px;color:var(--muted);line-height:1.5}.global-calculation-table{min-width:1050px}.global-calculation-table td{vertical-align:middle}.global-calculation-table td:first-child{background:#f2f8fc}.global-calculation-table .global-subtotal td{background:#eaf4fa;font-weight:800;border-top:2px solid #b8d9e9}.global-calculation-table .global-result td{background:#ddf4e8;font-weight:850;border-top:2px solid #79c89f}.global-info{display:inline-block;max-width:240px;color:var(--muted);font-size:11px;line-height:1.4}.global-calculation-note{margin:0;padding:13px 18px;color:#5d6570;background:#f3f8fb;border-top:1px solid var(--line);font-size:11px;line-height:1.5}
@media(max-width:980px){.tax-ledgers{grid-template-columns:1fr}}
@media(max-width:760px){.report-profit{align-items:flex-start;flex-direction:column}.report-profit>strong{font-size:27px}}
.page-actions { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.expiry-alert { display: block; margin: .65rem 1rem 0; padding: .7rem .85rem; border-radius: .75rem; font-size: .88rem; line-height: 1.35; }
.expiry-alert.expiry-warning { background: #fff1b8; color: #704f00; border: 1px solid #e8c64e; }
.expiry-alert.expiry-danger { background: #ffe0e0; color: #9e1c1c; border: 1px solid #ef7777; }
.expiry-alert.expiry-ok { background: #dff5e8; color: #17613a; border: 1px solid #8bd0aa; }
td > .expiry-alert { display: inline-block; margin: 0; }
.expired-product-card { border: 2px solid #d94757; }

/* Produits : cartes compactes et défilement vertical automatique */
.route-app-produit-index .content{width:min(1580px,100%)}
.product-catalog-viewport{position:relative;height:clamp(420px,52vh,540px);padding:5px 7px 14px;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;scroll-snap-type:y proximity;scrollbar-color:#69bfe8 #e6f3f9;scrollbar-width:thin;background:rgba(255,255,255,.24);border:1px solid rgba(142,197,226,.55);border-radius:16px;outline:none}
.product-catalog-viewport:focus-visible{box-shadow:0 0 0 3px rgba(22,143,229,.22)}
.route-app-produit-index .product-card-grid{grid-template-columns:repeat(auto-fill,minmax(180px,220px));justify-content:center;gap:11px}
.route-app-produit-index .product-card{min-height:0;border-radius:12px;box-shadow:0 8px 20px rgba(33,81,107,.10);scroll-snap-align:start}
.route-app-produit-index .product-card:hover{transform:translateY(-2px)}
.route-app-produit-index .catalog-cover{height:140px;padding:6px}
.route-app-produit-index .catalog-cover span{font-size:32px}
.route-app-produit-index .catalog-card-top{padding:9px 11px 0}
.route-app-produit-index .catalog-card-body{padding:10px 11px}.route-app-produit-index .catalog-card-body h2{margin-bottom:5px;font-size:16px}.route-app-produit-index .catalog-card-body p{margin:2px 0;font-size:12px}
.route-app-produit-index .product-price{padding:8px 11px}.route-app-produit-index .product-price strong{font-size:15px}
.route-app-produit-index .catalog-card-actions{padding:6px 8px;gap:7px}.route-app-produit-index .catalog-card-actions .action-icon{width:32px;height:32px;font-size:14px}
.route-app-produit-index .expiry-alert{margin:7px 10px 0;padding:6px 7px;font-size:9.5px}

/* Création d'un produit : scan matériel et caméra avant les autres champs */
.product-scan-panel{grid-column:1/-1;margin:0 0 22px;padding:18px;color:#fff;background:linear-gradient(125deg,#0c668f,#168fe5 58%,#295fd8);border:1px solid #72cef4;border-radius:16px;box-shadow:0 14px 30px rgba(24,112,182,.18)}
.product-scan-heading{display:flex;align-items:center;gap:13px;margin-bottom:15px}.product-scan-heading strong,.product-scan-heading small{display:block}.product-scan-heading strong{font-size:17px}.product-scan-heading small{margin-top:3px;color:#ddf3ff;font-size:12px}
.product-scan-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:12px;font-size:27px}
.product-scan-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.product-scan-controls>div{margin:0}.product-scan-controls label{color:#fff}.product-scan-controls input{font-size:20px!important;font-weight:800;letter-spacing:1.4px}.product-camera-button{min-height:46px;white-space:nowrap;background:rgba(255,255,255,.16)!important;border:1px solid rgba(255,255,255,.55)!important;box-shadow:none!important}.product-camera-button[hidden]{display:none!important}
.product-camera-preview{position:relative;max-width:640px;margin:14px auto 0;overflow:hidden;background:#072c40;border:1px solid rgba(255,255,255,.42);border-radius:13px}.product-camera-preview[hidden]{display:none}.product-camera-preview video{display:block;width:100%;max-height:300px;object-fit:cover}.product-camera-preview span{position:absolute;right:10px;bottom:10px;left:10px;padding:7px 10px;color:#fff;background:rgba(3,31,48,.75);border-radius:8px;text-align:center;font-size:11px;font-weight:750}
.btn-torch{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;width:42px;height:42px;padding:0;color:#fff;font-size:19px;line-height:1;background:rgba(3,31,48,.65);border:1px solid rgba(255,255,255,.5);border-radius:50%;cursor:pointer}.btn-torch[hidden]{display:none!important}.btn-torch.is-active{color:#072c40;background:#ffd15c;border-color:#ffd15c;box-shadow:0 0 0 4px rgba(255,209,92,.35)}
.product-scan-status{min-height:18px;margin:10px 0 0;color:#d9f7ff;font-size:12px;font-weight:750}.product-scan-status.is-success{color:#baffdb}.product-scan-status.is-error{color:#ffd5d5}

/* Formulaire produit compact : trois colonnes sur grand écran */
.product-entity-form{padding:20px!important}
.product-entity-form .product-scan-panel{margin-bottom:15px;padding:14px 16px;border-radius:14px}
.product-entity-form .product-scan-heading{margin-bottom:10px}
.product-entity-form .product-scan-icon{flex-basis:40px;width:40px;height:40px;font-size:23px}
.product-entity-form .product-scan-heading strong{font-size:15px}
.product-entity-form .product-scan-heading small{font-size:11px}
.product-entity-form .product-scan-controls input{min-height:42px!important;font-size:17px!important}
.product-entity-form .product-camera-button{min-height:42px;padding-inline:14px;font-size:13px}
.product-entity-form .product-scan-status{margin-top:7px;font-size:11px}
.product-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px 14px}
.product-form-grid>div{margin:0}
.product-form-grid label{margin-bottom:4px}
.product-form-grid input:not([type="checkbox"]):not([type="radio"]),.product-form-grid select{min-height:42px;padding-block:8px}
.product-form-grid .help-text,.product-form-grid .form-text{margin-top:4px;font-size:10px}
.product-form-grid .product-form-active{align-self:end;min-height:42px!important;padding-block:8px!important}
.product-form-grid .product-form-date{grid-column:span 2}
.product-form-grid .product-form-photos{grid-column:1/-1}
.product-form-grid .camera-photo-input{min-height:48px!important;padding:7px!important}
.product-form-grid .camera-photo-input::file-selector-button{padding:8px 13px}
.product-entity-form>.form-actions{margin-top:15px;padding-top:14px}

@media(max-width:900px){.product-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-form-grid .product-form-date{grid-column:auto}}
@media(max-width:760px){.product-catalog-viewport{height:62vh;padding-inline:3px}.route-app-produit-index .product-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.route-app-produit-index .catalog-cover{height:150px}.route-app-produit-index .catalog-card-body{padding:11px 9px}.route-app-produit-index .catalog-card-body h2{font-size:17px}.route-app-produit-index .product-price{align-items:flex-start;flex-direction:column;gap:3px}.product-scan-controls{grid-template-columns:1fr}.product-camera-button{width:100%}.product-camera-preview video{max-height:240px}.product-form-grid{grid-template-columns:1fr}.product-form-grid .product-form-date,.product-form-grid .product-form-photos{grid-column:auto}.product-entity-form{padding:15px!important}}
@media(max-width:460px){.route-app-produit-index .product-card-grid{grid-template-columns:1fr}.route-app-produit-index .product-card{width:min(285px,100%);justify-self:center}.route-app-produit-index .catalog-cover{height:200px}.product-scan-panel{padding:14px}.product-scan-heading{align-items:flex-start}.product-scan-heading small{line-height:1.45}}
@media(prefers-reduced-motion:reduce){.product-catalog-viewport{scroll-behavior:auto}.route-app-produit-index .product-card{animation:none!important;transition:none}}

/* Mobile : formulaires, fiches et listes */
@media (max-width:760px){
  body{overflow-x:hidden}
  .page-header{width:100%;gap:14px}.page-header>div,.page-header .page-actions,.page-header>.btn{width:100%}.page-header .btn,.page-header .page-actions .btn{width:100%;min-height:46px}
  .entity-form,.content>form:not(.delete-form){padding:16px!important;border-radius:14px!important}
  .entity-form input:not([type="checkbox"]):not([type="radio"]),.entity-form select,.entity-form textarea{min-height:48px;font-size:16px}
  .form-collection{margin:18px 0;padding:13px}.form-collection .panel-head{align-items:flex-start;flex-direction:column;gap:12px}.form-collection .panel-head .btn{width:100%}
  .scanner-controls .btn,.remove-line{width:100%;min-height:46px}
  .sale-submit-actions{position:static;align-items:stretch;flex-direction:column;padding:12px}.sale-submit-actions .btn{width:100%}
  .table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.page-kind-index .table-wrap table{min-width:760px}.route-app-user-index .table-wrap table{min-width:980px}
  .index-actions{justify-content:flex-start}.user-index-actions{grid-template-columns:repeat(2,110px)}
  .page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table,.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table tbody{display:block;width:100%}
  .page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table tr{display:grid;grid-template-columns:minmax(105px,38%) minmax(0,1fr);width:100%}
  .page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table th,.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table td{display:block;width:auto;min-width:0}
  .invoice-qr-card{align-items:flex-start;flex-direction:column}.invoice-qr-card img{width:100px;height:100px}.primary-document-actions{width:100%}.primary-document-actions .btn,.primary-document-actions form,.primary-document-actions form .btn{width:100%}
  .cash-handover{align-items:flex-start;flex-direction:column}.cash-handover>div{align-items:flex-start}.cash-main-actions,.cash-main-actions .btn{width:100%}
}
@media (max-width:390px){
  .content{padding-left:10px!important;padding-right:10px!important}.topbar{padding-left:10px!important;padding-right:10px!important}.topbar-brand .brand-mark{width:43px;height:43px}.topbar-brand strong{font-size:15px}.logout-link{padding:0 9px!important}
  .user-index-actions{grid-template-columns:1fr}.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table tr{grid-template-columns:1fr}.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table th{border-bottom:0!important;padding-bottom:5px!important}.page-kind-show:not(.route-app-facture-vente-show):not(.route-app-session-caisse-show) .content>table.table td{padding-top:5px!important}
}

/* Betriebsausgaben */
.expense-filter{display:grid!important;grid-template-columns:minmax(260px,1fr) 210px auto auto!important;gap:12px!important;align-items:end!important}.expense-month-field{display:grid;gap:5px}.expense-month-field label{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px}.expense-month-field input{height:46px}.expense-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:15px;margin-bottom:18px}.expense-summary article{padding:20px;background:linear-gradient(145deg,#fff,#edf7fc);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.expense-summary small,.expense-summary strong,.expense-summary span{display:block}.expense-summary small{color:var(--muted);font-weight:750}.expense-summary strong{margin:7px 0 4px;color:#175f91;font-size:24px}.expense-summary .expense-loss strong{color:#b33e51}.expense-summary span{color:var(--muted);font-size:11px}.expense-row-note{display:block;max-width:280px;margin-top:4px;color:var(--muted);font-weight:400;white-space:normal}.expense-form-note{display:flex;gap:12px;margin:18px 0;padding:14px 16px;color:#714d13;background:#fff4d7;border:1px solid #ead296;border-radius:12px}.expense-form-note strong{flex:0 0 auto}.expense-form-note span{line-height:1.45}.expense-report-panel{border-top:5px solid #ca4455}.expense-table{min-width:1120px}
@media(max-width:980px){.expense-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-filter{grid-template-columns:1fr 1fr!important}.expense-filter .search-field{grid-column:1/-1}}
@media(max-width:620px){.expense-filter{grid-template-columns:1fr!important}.expense-filter .search-field{grid-column:auto}.expense-filter button,.expense-filter .btn{width:100%}.expense-summary{grid-template-columns:1fr}.expense-form-note{align-items:flex-start;flex-direction:column}.expense-report-panel .panel-head{align-items:stretch;flex-direction:column}.expense-report-panel .panel-head .btn{width:100%}}
/* Monthly operating expenses */
.expense-recurrence-field{grid-column:1/-1!important;margin:5px 0;padding:17px 18px!important;background:linear-gradient(120deg,#e8f7ff,#f3f0ff);border:1px solid #bcdcf0;border-radius:14px}.expense-recurrence-field>label{display:flex!important;align-items:center;gap:10px;color:#154f78!important;font-size:15px!important}.expense-recurrence-field input[type=checkbox]{width:21px!important;height:21px!important;margin:0!important;accent-color:#2285cf}.expense-recurrence-field .help-text{margin:7px 0 0 31px;color:#587487}.expense-recurring-badge{color:#145f42!important;background:#d9f5e8!important}.expense-auto-badge{color:#185a83!important;background:#dceffc!important}.expense-once{color:var(--muted);font-size:12px}
.expense-recurrence-guide{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:16px 18px;color:#154f78;background:linear-gradient(120deg,#e7f7ff,#f1f0ff);border:1px solid #b8dcef;border-radius:14px}.expense-recurrence-guide>span{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;color:#fff;background:linear-gradient(135deg,#1ca4eb,#2768e8);border-radius:12px;font-size:24px;font-weight:900}.expense-recurrence-guide strong,.expense-recurrence-guide small{display:block}.expense-recurrence-guide small{margin-top:3px;color:#587487;line-height:1.45}
.report-check{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px;padding:18px 22px;border-radius:16px;box-shadow:var(--shadow)}.report-check h2,.report-check p{margin:2px 0}.report-check p:last-child{font-size:12px;opacity:.82}.report-check>strong{display:grid;flex:0 0 62px;width:62px;height:62px;place-items:center;border-radius:50%;font-size:17px}.report-check-ok{color:#135f43;background:linear-gradient(120deg,#ddf7e9,#effbf5);border:1px solid #9dd9bd}.report-check-ok>strong{color:#fff;background:#1d9a67}.report-check-error{color:#922d3d;background:#ffeaed;border:1px solid #e9a8b2}.report-check-error>strong{color:#fff;background:#ca4054;font-size:11px}
@media(max-width:620px){.expense-recurrence-guide,.report-check{align-items:flex-start}.report-check>strong{flex-basis:52px;width:52px;height:52px}.report-check p:last-child{line-height:1.45}}

/* Compact, aligned sales rows */
.sale-form .line-items,#online-lines{gap:10px}.sale-form .line-item,.online-line{grid-template-columns:minmax(125px,.48fr) minmax(270px,1.5fr) minmax(85px,.36fr) 42px;gap:10px;align-items:start;padding:12px 13px;background:linear-gradient(135deg,#fff,#f7fbfd);border:1px solid #c8e0eb;border-radius:12px;box-shadow:0 5px 15px rgba(30,90,120,.07)}.online-line{grid-template-columns:minmax(125px,.48fr) minmax(250px,1.35fr) minmax(85px,.34fr) minmax(125px,.52fr) 42px}.sale-form .line-item>div,.online-line>div{min-width:0;margin:0}.sale-form .line-item>div>label,.online-line>div>label,.product-reference-search>label{display:block;height:auto;margin:0;color:#31586a;font-size:11px;font-weight:800;line-height:18px}.product-reference-search>label{display:grid;grid-template-rows:18px 42px}.sale-form .line-item input,.sale-form .line-item select,.online-line input,.online-line select{width:100%;height:42px!important;min-height:42px!important;margin:0!important;padding-top:7px!important;padding-bottom:7px!important;border-color:#bed7e3;background:#fff;font-size:15px}.sale-form .line-item .form-text,.sale-form .line-item .help-text,.online-line .form-text,.online-line .help-text{display:none!important}.product-reference-result{height:14px;min-height:14px;margin-top:4px;overflow:hidden;font-size:9px;line-height:14px;text-overflow:ellipsis;white-space:nowrap}.sale-form .line-item .remove-line,.online-line .btn-remove-line{display:grid!important;place-items:center;width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;margin:18px 0 0!important;padding:0!important;border-radius:10px!important;background:linear-gradient(145deg,#dc5262,#bf3547)!important;box-shadow:0 5px 12px rgba(190,50,70,.18)!important;color:#fff;font-size:23px!important;line-height:1}.online-lines-panel{padding:16px}.online-lines-panel .panel-head{margin-bottom:12px}
@media(max-width:1100px) and (min-width:761px){.sale-form .line-item,.online-line{grid-template-columns:repeat(2,minmax(0,1fr))}.sale-form .line-item .remove-line,.online-line .btn-remove-line{grid-column:1/-1;width:100%!important;margin-top:0!important}}
@media(max-width:760px){.sale-form .line-item,.online-line{grid-template-columns:1fr;padding:11px}.sale-form .line-item .remove-line,.online-line .btn-remove-line{width:100%!important;margin-top:0!important}.product-reference-result{font-size:10px}}

/* Online-Verkauf: kompakter Desktop und klare Smartphone-Anordnung */
.online-sale-form .online-sale-head{margin-bottom:14px;padding:16px}.online-sale-form .online-sale-head textarea{min-height:78px}.online-sale-form .online-lines-panel{margin:15px 0;padding:13px 14px;border-radius:15px}.online-sale-form .online-lines-panel .panel-head{gap:12px;margin-bottom:9px}.online-sale-form .online-lines-panel .panel-head h2{font-size:18px}.online-sale-form .online-lines-panel .panel-head small{display:block;margin-top:3px;font-size:11px;line-height:1.35}.online-sale-form #add-online-line{min-height:40px;padding:9px 14px;font-size:13px}.online-sale-form #online-lines{gap:8px}.online-sale-form .online-line{gap:8px;padding:9px 10px;border-radius:10px}.online-sale-form .online-line input,.online-sale-form .online-line select{height:38px!important;min-height:38px!important;font-size:13px}.online-sale-form .online-line .product-reference-search>label{grid-template-rows:16px 38px;font-size:10px;line-height:16px}.online-sale-form .online-line>div>label{font-size:10px;line-height:16px}.online-sale-form .online-line .product-reference-result{height:12px;min-height:12px;margin-top:2px;font-size:8px;line-height:12px}.online-sale-form .online-line .btn-remove-line{width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;margin-top:16px!important;border-radius:9px!important}.online-sale-form .online-totals{max-width:520px;margin:14px 0 14px auto;padding:5px;border-radius:13px}.online-sale-form .online-totals>div{padding:9px 12px}.online-sale-form .online-totals strong{font-size:15px}.online-sale-form .online-totals .grand strong{font-size:19px}.online-sale-form>.form-actions{gap:10px;padding:12px 14px}
.online-sale-form .online-customer-panel{margin-bottom:14px;padding:16px;border:1px solid #ecdcc9;border-radius:15px;background:linear-gradient(145deg,#fffaf3,#fbeee1);box-shadow:0 8px 20px rgba(122,75,42,.08)}
.online-sale-form .online-customer-panel .panel-head{gap:14px}
.online-sale-form .online-customer-panel .panel-head h2{font-size:17px}
.online-sale-form .online-customer-panel .panel-head small{font-size:12px;line-height:1.35}
.online-sale-form .online-customer-toggle{min-height:38px;padding:0 15px;font-size:13px}
.online-sale-form .online-customer-fields{margin-top:14px;padding-top:14px}
.online-sale-form .form-grid{gap:12px 16px}
.online-sale-form label{margin-bottom:5px;font-size:11px}
.online-sale-form .online-sale-head textarea{min-height:70px}
@media(min-width:761px){.online-sale-form input:not([type="checkbox"]):not([type="radio"]),.online-sale-form select,.online-sale-form textarea{min-height:42px}}
@media(max-width:760px){.online-sale-form .online-customer-panel,.online-sale-form .online-sale-head{margin-bottom:12px;padding:13px}.online-sale-form .online-sale-head .form-grid{grid-template-columns:1fr;gap:10px}.online-sale-form .online-sale-head textarea{min-height:68px}.online-sale-form .online-lines-panel{margin:12px 0;padding:11px;border-radius:13px}.online-sale-form .online-lines-panel .panel-head{align-items:stretch;gap:9px}.online-sale-form #add-online-line{width:100%}.online-sale-form .online-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px;padding:9px}.online-sale-form .online-line-reference,.online-sale-form .online-line-product{grid-column:1/-1}.online-sale-form .online-line-quantity{grid-column:1}.online-sale-form .online-line-price{grid-column:2}.online-sale-form .online-line .btn-remove-line{grid-column:1/-1;width:100%!important;height:38px!important;min-height:38px!important;margin-top:0!important}.online-sale-form .online-totals{max-width:none;margin:12px 0}.online-sale-form .online-totals>div{padding:9px 10px}.online-sale-form>.form-actions{align-items:stretch;flex-direction:column}.online-sale-form>.form-actions .btn,.online-sale-form>.form-actions a{width:100%;text-align:center}}
@media(max-width:420px){.online-sale-form .online-line{gap:7px;padding:8px}.online-sale-form .online-line input,.online-sale-form .online-line select{font-size:12px}.online-sale-form .online-totals span{font-size:12px}.online-sale-form .online-totals strong{font-size:14px}}

/* Private purchase-invoice document */
.invoice-document-upload{margin:18px 0 22px;padding:18px;background:linear-gradient(145deg,#f8fcff,#edf7fb);border:1px solid #bdddea;border-radius:16px}.invoice-upload-heading{display:flex;align-items:center;gap:13px;margin-bottom:14px}.invoice-upload-heading h2{margin:1px 0 3px;font-size:18px}.invoice-upload-heading small{color:var(--muted)}.invoice-upload-icon{display:grid;place-items:center;flex:0 0 45px;width:45px;height:45px;color:#fff;background:linear-gradient(145deg,#24a4dc,#2369d8);border-radius:12px;font-size:24px;box-shadow:0 7px 16px rgba(31,112,182,.2)}.invoice-upload-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.invoice-upload-option{position:relative;display:grid!important;grid-template-columns:42px 1fr;grid-template-rows:auto auto;gap:2px 10px;min-height:82px;margin:0!important;padding:14px 15px;color:#234c61!important;background:#fff;border:1px solid #c4dce6;border-radius:13px;cursor:pointer;transition:.18s ease}.invoice-upload-option:hover{border-color:#2b91cc;box-shadow:0 7px 18px rgba(32,111,153,.11);transform:translateY(-1px)}.invoice-upload-option>span{grid-row:1/3;align-self:center;font-size:27px}.invoice-upload-option>strong{align-self:end;font-size:14px}.invoice-upload-option>small{align-self:start;color:#6b8490;font-size:10px}.invoice-upload-option input[type=file]{position:absolute!important;inset:0;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;cursor:pointer;opacity:0}.invoice-document-preview{display:grid;grid-template-columns:62px 1fr;align-items:center;gap:13px;margin-top:13px;padding:11px 13px;background:#fff;border:1px solid #b9dbc9;border-radius:12px}.invoice-document-preview[hidden]{display:none}.invoice-document-preview img,.invoice-document-file-icon{width:62px;height:52px;object-fit:cover;border-radius:8px}.invoice-document-file-icon{display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#d95362,#a9283b);font-size:14px;font-weight:900}.invoice-document-file-icon[hidden],.invoice-document-preview img[hidden]{display:none}.invoice-document-preview strong,.invoice-document-preview small{display:block;overflow-wrap:anywhere}.invoice-document-preview small{margin-top:4px;color:#64808d;font-size:10px}.invoice-document-card{display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:20px;padding:17px;background:linear-gradient(135deg,#fff,#edf7fb);border:1px solid #bdddea;border-radius:16px;box-shadow:var(--shadow)}.invoice-document-visual{display:grid;place-items:center;width:105px;height:88px;overflow:hidden;color:#fff;background:linear-gradient(145deg,#d65362,#a52d40);border-radius:12px;font-size:20px;font-weight:900}.invoice-document-visual img{width:100%;height:100%;object-fit:cover}.invoice-document-card h2{margin:2px 0 5px;font-size:18px}.invoice-document-card small{color:var(--muted)}.invoice-document-actions{display:flex;gap:9px}.invoice-attachment-link{display:block;margin-top:5px;color:#1678af;font-size:10px;font-weight:800;white-space:nowrap}.purchase-form .invoice-document-upload .field-validation-error{margin-top:7px}
@media(max-width:760px){.invoice-upload-options{grid-template-columns:1fr}.invoice-document-card{grid-template-columns:75px 1fr}.invoice-document-visual{width:75px;height:68px}.invoice-document-actions{grid-column:1/-1;align-items:stretch;flex-direction:column}.invoice-document-actions .btn{width:100%}}

/* Ladenverkauf: kompakte, moderne Produktsuche */
.sale-form .form-collection{padding:16px 18px}.sale-form .barcode-scanner{margin-bottom:17px;padding:14px 16px;border-radius:15px}.sale-form .scanner-heading{margin-bottom:10px}.sale-form .scanner-icon{width:39px;height:39px;font-size:21px}.sale-form .line-items{max-width:1120px;margin-inline:auto}.sale-form .line-item{grid-template-columns:minmax(195px,.72fr) minmax(300px,1.35fr) minmax(90px,.35fr) 40px;gap:9px;padding:10px 11px;border-left:4px solid #24a5e6;border-radius:11px;background:linear-gradient(120deg,#fff 0%,#f6fbfe 72%,#eef8fd 100%)}.sale-form .line-item input,.sale-form .line-item select{height:40px!important;min-height:40px!important;font-size:14px}.sale-form .line-item .product-reference-search>label{grid-template-rows:17px 40px}.sale-form .line-item>div>label,.sale-form .line-item .product-reference-search>label{font-size:10px;line-height:17px}.sale-line-reference{position:relative}.sale-line-reference::after{position:absolute;top:28px;left:11px;z-index:2;color:#2589bd;content:'⌕';font-size:19px;font-weight:900;line-height:1;pointer-events:none}.sale-form .line-item .sale-line-reference input{padding-left:34px!important}.sale-form .line-item .remove-line{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;margin-top:17px!important}.sale-form .product-reference-result{height:13px;min-height:13px;margin-top:3px;font-size:9px;line-height:13px}
.sale-form .scanner-controls{grid-template-columns:minmax(240px,1fr) minmax(90px,.24fr) auto auto}.sale-camera-button{min-height:46px;white-space:nowrap;background:rgba(255,255,255,.16)!important;border:1px solid rgba(255,255,255,.5)!important;box-shadow:none!important}.sale-camera-button[hidden]{display:none!important}.sale-camera-preview{position:relative;max-width:620px;margin:13px auto 0;overflow:hidden;background:#072c40;border:1px solid rgba(255,255,255,.45);border-radius:13px}.sale-camera-preview[hidden]{display:none}.sale-camera-preview video{display:block;width:100%;max-height:280px;object-fit:cover}.sale-camera-preview span{position:absolute;right:10px;bottom:10px;left:10px;padding:7px 10px;color:#fff;background:rgba(3,31,48,.78);border-radius:8px;text-align:center;font-size:11px;font-weight:750}
@media(max-width:1100px) and (min-width:761px){.sale-form .line-item{grid-template-columns:repeat(2,minmax(0,1fr))}.sale-form .line-item .remove-line{grid-column:1/-1;width:100%!important;margin-top:0!important}}
@media(max-width:760px){.sale-form .form-collection{padding:12px}.sale-form .barcode-scanner{padding:13px}.sale-form .scanner-controls{grid-template-columns:1fr!important;gap:9px}.sale-form .scanner-controls>label,.sale-form .scanner-controls>.btn{width:100%;min-width:0}.sale-form .scanner-controls .btn{min-height:43px}.sale-form .scanner-heading{align-items:flex-start}.sale-form .scanner-heading small{font-size:11px;line-height:1.35}.sale-form .line-item{grid-template-columns:1fr;padding:10px}.sale-form .line-item .remove-line{width:100%!important;margin-top:0!important}.sale-camera-preview video{max-height:230px}}

/* Ausgangsrechnung: kompakteres, edleres Layout (Desktop & Mobil) */
.route-app-facture-vente-show .content{width:min(940px,100%)}
.route-app-facture-vente-show .page-header{margin-bottom:14px;padding:16px 20px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 20px rgba(35,99,125,.08)}
.route-app-facture-vente-show .page-header h1{font-size:clamp(19px,2vw,25px)}
.route-app-facture-vente-show .page-header .eyebrow{font-size:10px}
.route-app-facture-vente-show .page-header p:not(.eyebrow){font-size:12px}
.route-app-facture-vente-show .page-actions .btn{min-height:38px;padding:0 14px;font-size:12.5px}
.route-app-facture-vente-show .badge{font-size:10px}
.invoice-brand-header{gap:16px;margin-bottom:14px;padding:14px 18px;border-radius:13px}
.invoice-brand{gap:10px}
.invoice-brand img{width:52px;height:52px}
.invoice-brand strong{font-size:17px}
.invoice-brand small{font-size:11px}
.invoice-company-placeholder strong{font-size:14px}
.invoice-company-placeholder small{font-size:10.5px}
.invoice-meta{gap:10px;margin-bottom:14px}
.invoice-meta div{padding:11px 13px;border-radius:10px}
.invoice-meta small{margin-bottom:4px;font-size:9.5px}
.invoice-meta strong{font-size:13px}
.invoice-customer-card{gap:10px;margin-bottom:14px}
.invoice-customer-card>div{padding:11px 13px;border-radius:10px}
.invoice-customer-card small{margin-bottom:4px;font-size:9.5px}
.invoice-customer-card strong,.invoice-customer-card a{font-size:12.5px}
.invoice-payment-card{margin-bottom:14px;padding:14px 15px;border-radius:12px}
.invoice-payment-heading h2{margin:1px 0 4px;font-size:15px}
.invoice-payment-heading p{font-size:11.5px}
.invoice-payment-totals span{padding:9px 11px;border-radius:9px}
.invoice-payment-totals small{font-size:10px}
.invoice-payment-totals strong{font-size:14px}
.invoice-payment-table{margin-top:12px}
.invoice-payment-table th,.invoice-payment-table td{padding:9px 12px;font-size:12px}
.invoice-qr-card{gap:14px;margin-bottom:14px;padding:13px 16px;border-radius:12px}
.invoice-qr-card img{width:76px;height:76px;padding:5px}
.invoice-qr-card h2{margin:0 0 5px;font-size:14px}
.invoice-qr-card p:not(.eyebrow){font-size:11.5px}
.invoice-qr-card strong{font-size:12.5px}
.route-app-facture-vente-show .table-wrap th,.route-app-facture-vente-show .table-wrap td{padding:10px 13px;font-size:12px}
.route-app-facture-vente-show .table-wrap tfoot th,.route-app-facture-vente-show .table-wrap tfoot td{font-size:12.5px}
.route-app-facture-vente-show .content>a{margin-top:14px;font-size:13px}
@media(max-width:760px){
  .route-app-facture-vente-show .page-header{padding:14px 16px}
  .invoice-brand-header{padding:12px 14px}
  .invoice-brand img{width:44px;height:44px}
  .invoice-brand strong{font-size:15px}
  .invoice-meta,.invoice-customer-card{gap:8px}
  .invoice-meta div,.invoice-customer-card>div{padding:10px 12px}
  .invoice-payment-card{padding:12px}
  .invoice-payment-totals{gap:8px}
  .invoice-qr-card{padding:12px}
  .invoice-qr-card img{width:64px;height:64px}
  .route-app-facture-vente-show .table-wrap{margin:0 -2px}
  .route-app-facture-vente-show .table-wrap th,.route-app-facture-vente-show .table-wrap td{padding:8px 10px;font-size:11px;white-space:normal}
}

.etiquette-filter{margin-bottom:14px}
.etiquette-filter select{min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:600;width:180px!important;flex:0 0 180px!important}
.etiquette-filter .search-field{flex:1 1 auto!important;min-width:0;width:auto}
.etiquette-filter .search-field input{width:100%}
.etiquette-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px}
.etiquette-select-all{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--ink)}
.etiquette-checkbox,.etiquette-select-all input{width:18px;height:18px}
.etiquette-pagination{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.etiquette-pagination .btn{min-height:36px;padding:0 13px}
.etiquette-pagination .is-current{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-dark))}
@media(max-width:620px){.etiquette-filter{display:grid;grid-template-columns:1fr}.etiquette-toolbar{flex-direction:column;align-items:stretch}.etiquette-toolbar .btn{width:100%}}

/* Bandeau AfroLux Dortmund (nouveau design de la barre de navigation) */
.topbar{background:#f7f4ed!important;border-bottom:3px solid #d8a928!important;box-shadow:0 6px 20px rgba(20,60,40,.12)!important}
.topbar-brand-banner img{display:block;height:72px;width:auto;max-width:100%}
.topbar-actions{color:#0f4d2e!important}
.topbar-actions .status-dot{background:#0f4d2e}
.topbar .logout-link{color:#fff!important;background:#0f4d2e!important;border:1px solid #0f4d2e!important;box-shadow:none!important}
.topbar .logout-link:hover{color:#0f4d2e!important;background:#d8a928!important;border-color:#d8a928!important}
@media (max-width:760px){.topbar-brand-banner img{height:48px}}

/* Thème AfroLux : vert profond, or et crème */
body{background:radial-gradient(circle at 8% 10%,rgba(15,77,46,.10),transparent 33%),radial-gradient(circle at 92% 6%,rgba(216,169,40,.14),transparent 30%),linear-gradient(145deg,#f7f4ed,#fcfbf7 55%,#efeadc)!important}
.topbar{height:auto!important;min-height:94px;padding-top:10px!important;padding-bottom:10px!important}
.topbar-brand-banner{flex:0 1 auto;min-width:0}
.topbar-brand-banner img{height:72px!important;width:auto!important;max-width:100%;object-fit:contain!important;border-radius:0!important}
.app-footer{background:linear-gradient(90deg,#0a3a22,#0f4d2e,#0a3a22)!important;border-top:3px solid #d8a928!important}
.dashboard-welcome{background:linear-gradient(125deg,#0a3a22 0%,#0f4d2e 55%,#17653d 100%)!important;border:1px solid #d8a928!important;box-shadow:0 18px 42px rgba(10,58,34,.25)!important}
.dashboard-welcome .eyebrow{color:#f0cf6a!important}
.dashboard-welcome .welcome-date{background:rgba(255,255,255,.10)!important;border:1px solid rgba(216,169,40,.6)!important}
.dashboard-welcome .welcome-date small{color:#f0cf6a!important}
.dashboard-tile{border:1px solid rgba(216,169,40,.35)!important;box-shadow:0 12px 28px rgba(10,58,34,.22)!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.dashboard-tile:hover{transform:translateY(-4px);border-color:#d8a928!important;box-shadow:0 18px 36px rgba(10,58,34,.32)!important}
.dashboard-tile .tile-arrow{color:#0f4d2e!important}
.btn,button:not(.logout-link),.btn-gold{background:linear-gradient(135deg,#17653d,#0f4d2e)!important;box-shadow:0 8px 20px rgba(15,77,46,.25)!important}
.btn:hover,button:not(.logout-link):hover,.btn-gold:hover{background:linear-gradient(135deg,#1f7a4b,#0f4d2e)!important}
@media (max-width:760px){.topbar-brand-banner img{height:46px!important}}

/* Bannière d'accueil : fond vert avec feuille, filet doré en bas */
.dashboard-welcome{min-height:190px;padding:30px 40px 30px 150px!important;border:0!important;border-radius:20px!important;background:linear-gradient(90deg,#d8a928,#f0b54f 50%,#d8a928) bottom/100% 5px no-repeat,url('/images/welcome-leaf.png') left center/auto 100% no-repeat,#0d4431!important;box-shadow:0 18px 42px rgba(10,58,34,.28)!important}
.dashboard-welcome .eyebrow{color:#e3b23c!important;font-size:13px!important;letter-spacing:3px!important;font-weight:600!important}
.dashboard-welcome h1{font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:clamp(28px,3.6vw,48px)!important;letter-spacing:-.5px;color:#fff}
.dashboard-welcome p:not(.eyebrow){color:#f1f5ef!important;font-size:clamp(14px,1.4vw,19px)}
@media (max-width:760px){.dashboard-welcome{padding:22px 20px 24px 70px!important;min-height:0}}

/* Page de connexion : image de fond (public/images/login-bg.webp, tirée de login.PNG du user) ; la carte blanche se pose sur la zone claire du centre. */
body.login-page{background:var(--login-bg,none) center top/cover no-repeat,#efe9d2!important}
.login-card{background:rgba(255,255,255,.94);border-color:rgba(216,169,40,.4);box-shadow:0 24px 60px rgba(14,47,30,.28)}

/* Wareneingang (Produkt bearbeiten) */
.barcode-photo-capture{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0;opacity:0;pointer-events:none}
.product-stock-entry{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 14px;padding:12px 16px;background:#f4fafd;border:1px solid #b8dcef;border-radius:14px}
.product-stock-entry strong,.product-stock-entry small{display:block}.product-stock-entry strong{color:#173f55;font-size:15px}.product-stock-entry small{margin-top:2px;color:#637e8b;font-size:11px}
.product-stock-entry .product-stock-entry-button{min-width:0;min-height:42px;padding-inline:16px;font-size:13px}
.product-scan-panel .help-text{color:#d9f7ff}
.product-stock-entry-status{flex-basis:100%;margin:0;color:#225f7b;font-size:12px;font-weight:750}.product-stock-entry-status:empty{display:none}.product-stock-entry-status.is-success{color:#1d7a4a}.product-stock-entry-status.is-error{color:#ad2f3f}
.stock-scan-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:22px;color:var(--ink);background:#fff;border:1px solid #b8dcef;border-radius:16px;box-shadow:0 24px 60px rgba(12,61,92,.3)}
.stock-scan-dialog::backdrop{background:rgba(7,32,48,.55)}
.stock-scan-dialog h2{margin:0;color:#173f55;font-size:20px;line-height:1.25}
.stock-scan-meta{margin:6px 0 14px;color:#637e8b;font-size:12px;line-height:1.45}
.stock-scan-error[hidden]{display:none}
.stock-scan-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.stock-scan-fields input{min-height:46px;font-size:16px}
.stock-scan-error{margin:12px 0 0;padding:9px 11px;color:#ad2f3f;background:#fff5f6;border:1px solid #f0c3c9;border-radius:9px;font-size:12px;font-weight:700}
.stock-scan-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.stock-scan-actions .btn{min-width:130px}
@media(max-width:520px){.stock-scan-dialog{padding:18px}.stock-scan-fields{grid-template-columns:1fr}.stock-scan-actions{flex-direction:column-reverse}.stock-scan-actions .btn{width:100%}}

/* Produktfotos mit der Kamera aufnehmen */
.product-photo-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.product-photo-actions .camera-photo-input{flex:1 1 280px;min-width:0}
.product-form-grid .product-photo-camera-button{min-width:0;min-height:48px;padding-inline:18px;font-size:14px;white-space:nowrap}.product-photo-camera-button[hidden]{display:none!important}
.product-photo-camera{position:relative;max-width:640px;margin:12px 0 0;overflow:hidden;background:#072c40;border:1px solid #b8dcef;border-radius:13px}.product-photo-camera[hidden]{display:none}
.product-photo-camera video{display:block;width:100%;max-height:380px;object-fit:contain;background:#000}
.product-form-grid .product-photo-shutter{position:absolute;bottom:12px;left:50%;min-width:160px;min-height:46px;transform:translateX(-50%);box-shadow:0 6px 18px rgba(0,0,0,.35)}
.product-photo-status{margin:8px 0 0;color:#225f7b;font-size:12px;font-weight:750}.product-photo-status[hidden]{display:none}.product-photo-status.is-success{color:#1d7a4a}.product-photo-status.is-error{color:#ad2f3f}
.product-photo-thumbs{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 0;padding:0;list-style:none}.product-photo-thumbs[hidden]{display:none}
.product-photo-thumbs li{position:relative;width:96px;height:96px;overflow:hidden;background:#fff;border:1px solid #b8dcef;border-radius:10px}
.product-photo-thumbs img{display:block;width:100%;height:100%;object-fit:cover}
.product-photo-thumbs button{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:26px;height:26px;min-height:0;padding:0;color:#fff;background:rgba(173,47,63,.92);border:0;border-radius:50%;font-size:13px;line-height:1;cursor:pointer}
@media(max-width:760px){.product-photo-actions{flex-direction:column}.product-photo-actions .camera-photo-input{flex-basis:auto}.product-form-grid .product-photo-camera-button{width:100%}}

/* Zweitrangige Schaltflächen: Der grüne !important-Stil für .btn machte z. B. „Zurücksetzen“ grün mit blauer Schrift (kaum lesbar). */
.btn.btn-secondary,button.btn-secondary{color:#176aa2!important;background:#fff!important;border:1px solid #b8dcef!important;box-shadow:none!important}
.btn.btn-secondary:hover,button.btn-secondary:hover{color:#0f4d2e!important;background:#f1f9f4!important;border-color:#8cc5a5!important}
.etiquette-pagination .btn.is-current{color:#fff!important;background:linear-gradient(135deg,#17653d,#0f4d2e)!important;border-color:#0f4d2e!important}

/* Produktfotos zuschneiden */
.product-photo-thumbs button{background:rgba(173,47,63,.92)!important;box-shadow:none!important}
.product-photo-thumbs .product-photo-crop{top:auto;right:auto;bottom:4px;left:4px;width:30px;height:30px;font-size:15px;background:rgba(15,77,46,.92)!important}
.product-photo-thumbs .product-photo-crop[hidden]{display:none}
.product-photo-current{margin-top:12px}.product-photo-current small{display:block;color:#637e8b;font-size:12px;font-weight:700}.product-photo-current .product-photo-thumbs li{background:#fff}.product-photo-current .product-photo-thumbs img{object-fit:contain}
.photo-crop-dialog{width:min(680px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:18px 20px;color:var(--ink);background:#fff;border:1px solid #b8dcef;border-radius:16px;box-shadow:0 24px 60px rgba(12,61,92,.3)}
.photo-crop-dialog::backdrop{background:rgba(7,32,48,.7)}
.photo-crop-dialog h2{margin:0;color:#173f55;font-size:19px}
.photo-crop-help{margin:4px 0 12px;color:#637e8b;font-size:12px;line-height:1.4}
.photo-crop-area{padding:14px;text-align:center;background:#1d2a33;border-radius:12px}
.photo-crop-stage{position:relative;display:inline-block;max-width:100%;line-height:0;vertical-align:top;touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair}
.photo-crop-stage canvas{display:block;max-width:100%;max-height:min(58vh,520px);max-height:min(58dvh,520px);width:auto;height:auto}
.photo-crop-shade{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.photo-crop-shade div{position:absolute;box-shadow:0 0 0 9999px rgba(0,0,0,.55)}
.photo-crop-box{position:absolute;outline:2px solid #fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.35);cursor:move}
.photo-crop-box span{position:absolute;width:32px;height:32px;margin:-16px 0 0 -16px}
.photo-crop-box span::after{content:"";position:absolute;inset:9px;background:#fff;border:2px solid #0f4d2e;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.photo-crop-box [data-crop-handle="nw"]{top:0;left:0;cursor:nwse-resize}.photo-crop-box [data-crop-handle="n"]{top:0;left:50%;cursor:ns-resize}.photo-crop-box [data-crop-handle="ne"]{top:0;left:100%;cursor:nesw-resize}.photo-crop-box [data-crop-handle="e"]{top:50%;left:100%;cursor:ew-resize}
.photo-crop-box [data-crop-handle="se"]{top:100%;left:100%;cursor:nwse-resize}.photo-crop-box [data-crop-handle="s"]{top:100%;left:50%;cursor:ns-resize}.photo-crop-box [data-crop-handle="sw"]{top:100%;left:0;cursor:nesw-resize}.photo-crop-box [data-crop-handle="w"]{top:50%;left:0;cursor:ew-resize}
.photo-crop-tools,.photo-crop-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.photo-crop-actions{justify-content:flex-end}.photo-crop-actions .btn{min-width:150px}
@media(max-width:520px){.photo-crop-dialog{padding:14px}.photo-crop-area{padding:12px}.photo-crop-tools .btn{flex:1}.photo-crop-actions{flex-direction:column-reverse}.photo-crop-actions .btn{width:100%}}
