:root{--ink:#172039;--muted:#69758a;--brand:#5c4ad9;--bg:#f6f7fb;--line:#e6e9f1;--danger:#c54d5b}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px Inter,Arial,sans-serif;color:var(--ink)}.hidden,.page{display:none}.page.active{display:block}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#e3defe,#f8f8fc 55%)}.auth section{width:min(400px,calc(100% - 36px));padding:36px;background:white;border-radius:18px;box-shadow:0 16px 50px #403d751c;text-align:center}.logo{margin:auto;width:47px;height:47px;display:grid;place-items:center;background:var(--brand);color:white;font-size:23px;font-weight:800;border-radius:13px}.auth h1{margin:15px 0 6px}.auth p{color:var(--muted);margin:0 0 22px}label{display:grid;gap:6px;text-align:left;font-size:12px;font-weight:700;margin-top:13px}input{width:100%;padding:11px;border:1px solid #dce0ea;border-radius:8px;font:14px inherit;outline:0}input:focus{border-color:var(--brand)}button{border:0;border-radius:8px;padding:10px 13px;cursor:pointer;font:700 13px inherit}.auth form button{width:100%;margin-top:20px}.primary{color:white;background:var(--brand)}.error{color:var(--danger)!important;min-height:20px;margin-top:12px!important}#app{min-height:100vh;display:grid;grid-template-columns:245px 1fr}aside{padding:25px 14px;background:#19162e;color:#c6c3dc;display:flex;flex-direction:column;gap:5px}.side-brand{color:white;font-weight:800;font-size:17px;margin:0 9px 24px}.side-brand i{font-style:normal;display:inline-grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#897bf0;margin-right:7px}.nav{background:transparent;color:inherit;text-align:left}.nav.active,.nav:hover{background:#2e2a4c;color:white}.user{margin:auto 9px 4px;padding-top:19px;border-top:1px solid #353151;display:grid;gap:3px}.user small{color:#aaa5cf}.user button{background:transparent;color:#bdb8e0;text-align:left;padding-left:0;margin-top:8px}.content{max-width:1300px;width:100%;margin:auto;padding:34px 42px}header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:26px}h1{font-size:26px;margin:0}h2{font-size:15px;margin:0}header p{margin:5px 0;color:#178c64;font-size:12px;font-weight:700}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:16px}.card,.box{border:1px solid var(--line);background:#fff;border-radius:13px}.card{padding:18px}.card small{color:var(--muted);font-weight:650}.card b{display:block;font-size:23px;margin-top:9px}.box{padding:20px}.low-line{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.low-line:last-child{border:0}.orange{color:#bd680f;font-weight:800}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:15px}.toolbar input{max-width:310px}.toolbar span{color:var(--muted)}.table-wrap{padding:0;overflow:auto}table{border-collapse:collapse;width:100%;min-width:610px}th{background:#fafbfc;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:13px 16px}td{padding:14px 16px;border-top:1px solid var(--line)}.empty{padding:28px;color:var(--muted);text-align:center}.sale-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:13px}.product{padding:15px;background:#fff;border:1px solid var(--line);border-radius:11px;cursor:pointer}.product:hover{border-color:var(--brand)}.product small{display:block;color:var(--muted);margin:5px 0 9px}.product b{color:var(--brand)}.title-row,.total{display:flex;justify-content:space-between;align-items:center}.text{background:#eeecfc;color:#5141c3}.line{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:11px 0}.line .q{margin-left:auto;display:flex;align-items:center;gap:6px}.q button{border:1px solid var(--line);background:#fff;padding:2px 7px}.total{font-size:17px;margin:20px 0}.wide{width:100%}dialog{border:0;border-radius:14px;padding:23px;width:min(430px,calc(100% - 28px));box-shadow:0 20px 60px #11142c55}dialog::backdrop{background:#14112773}.actions{display:flex;justify-content:flex-end;gap:9px;margin-top:21px}.actions button:first-child{background:#eeecfc;color:#5141c3}#toast{position:fixed;bottom:22px;right:22px;background:#1b2d27;color:#fff;padding:12px 16px;border-radius:8px;opacity:0;transition:.2s}.show{opacity:1!important}@media(max-width:800px){#app{grid-template-columns:1fr}aside{display:none}.content{padding:23px 16px}.cards{grid-template-columns:repeat(2,1fr)}.sale-grid{grid-template-columns:1fr}.product-grid{grid-template-columns:1fr}}
.auth form button{background:var(--brand);color:#fff}.auth form button:hover{background:#4b3ac6}
.auth.hidden{display:none}
.users-heading{margin-bottom:16px}.users-heading p{margin:5px 0 0;color:var(--muted)}#sellerDialog h2{margin-bottom:18px}button:disabled{opacity:.6;cursor:wait}
.user #changePassword{margin-top:8px}.user #logout{margin-top:2px}.dialog-error{color:var(--danger);min-height:18px;margin:12px 0 0;font-size:12px}#passwordDialog h2{margin-bottom:18px}
.account-status{display:inline-block;padding:5px 9px;border-radius:99px;font-size:11px;font-weight:800}.account-status.enabled{background:#e6f6ef;color:#137451}.account-status.disabled{background:#fdebee;color:#a63343}.account-actions{display:flex;gap:7px}.disable-account{color:var(--danger)!important}.enable-account{color:#137451!important}
.job-status.annule{background:#fdebee;color:#a63343}.cancelled-sale td{color:#8b8b96;background:#fffafa}.cancelled-sale td:not(:first-child){text-decoration-color:#c54d5b}
.login-logo{width:118px;height:118px;object-fit:contain;border-radius:18px;display:block;margin:0 auto 14px}.side-brand{display:flex;align-items:center;gap:9px}.side-brand img{width:38px;height:38px;object-fit:contain;border-radius:9px;background:#fff}.side-brand span{line-height:1.15}.report-company{display:flex;align-items:center;gap:14px}.report-company img{width:70px;height:70px;object-fit:contain;border-radius:10px}
.printing-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.printing-head p{margin:5px 0;color:var(--muted)}.printing-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:16px}.toolbar select,#sellerRole,#printJobStatus{padding:11px;border:1px solid #dce0ea;border-radius:8px;background:#fff}.job-status{display:inline-block;padding:5px 8px;border-radius:99px;font-size:11px;font-weight:800}.job-status.en_attente{background:#fff3dd;color:#9b6209}.job-status.en_cours{background:#e9efff;color:#3456a8}.job-status.termine{background:#e5f5ee;color:#177153}.job-status.livre{background:#eeeafc;color:#5944a7}.danger-text{color:var(--danger)!important}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}textarea{width:100%;padding:11px;border:1px solid #dce0ea;border-radius:8px;font:14px inherit;resize:vertical}.printing-services{margin-top:16px}.printing-services h2{margin-bottom:10px}.service-summary{display:grid;grid-template-columns:1fr auto auto;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}.service-summary:last-child{border:0}.service-summary span{color:var(--muted)}@media(max-width:800px){.printing-cards{grid-template-columns:1fr}.printing-head{align-items:flex-start;gap:12px}.form-two{grid-template-columns:1fr}.service-summary{grid-template-columns:1fr}}
.printing-head-actions{display:flex;gap:10px;align-items:center}.wide-dialog{width:min(650px,calc(100% - 28px))}.dialog-help{color:var(--muted);margin:6px 0 16px}.service-price-row{display:grid;grid-template-columns:1fr 140px 90px;gap:10px;align-items:center;margin-bottom:9px}.service-price-row span{color:var(--muted);font-size:12px}@media(max-width:650px){.printing-head-actions{flex-direction:column;align-items:stretch}.service-price-row{grid-template-columns:1fr 110px}.service-price-row span{display:none}}
.printing-tabs{display:flex;gap:8px;margin-bottom:16px;padding:5px;background:#ebeaf2;border-radius:10px;width:max-content}.printing-tabs button{background:transparent;color:var(--muted)}.printing-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 2px 8px #21213b18}
.rate-selectors{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.rate-selectors label{margin:0}.rate-selectors select,#printCustomerProfile{padding:11px;border:1px solid #dce0ea;border-radius:8px;background:#fff;width:100%}
.print-sale-dialog{width:min(760px,calc(100% - 28px))}.sale-items-title{display:flex;align-items:center;justify-content:space-between;margin:18px 0 10px}.sale-items-title h3{margin:0;font-size:14px}.print-sale-item{display:grid;grid-template-columns:2fr 90px 125px 120px 35px;gap:8px;align-items:center;margin-bottom:8px}.print-sale-item select,.print-sale-item input{padding:9px;border:1px solid #dce0ea;border-radius:8px;background:#fff;width:100%}.print-sale-item .line-total{text-align:right;font-weight:800}.print-sale-item .remove-line{padding:7px;color:var(--danger);background:#fdebee}.print-sale-total{display:flex;justify-content:flex-end;align-items:center;gap:25px;padding:15px 0;border-top:1px solid var(--line);font-size:16px}.print-sale-total b{font-size:21px;color:var(--brand)}@media(max-width:700px){.print-sale-item{grid-template-columns:1fr 70px 100px}.print-sale-item .line-total{grid-column:1/3}.print-sale-item .remove-line{grid-column:3}}
.receipt-dialog{width:min(600px,calc(100% - 28px))}.receipt-sheet{color:#111;background:#fff}.receipt-head{text-align:center;border-bottom:2px dashed #555;padding-bottom:14px}.receipt-head img{width:76px;height:76px;object-fit:contain}.receipt-head h2{font-size:20px;margin:5px 0}.receipt-head p,.receipt-meta p{margin:4px 0}.receipt-meta{padding:12px 0;border-bottom:1px dashed #777}.receipt-table{width:100%;min-width:0;margin:12px 0}.receipt-table th,.receipt-table td{padding:7px 3px;background:#fff;border-top:0;border-bottom:1px solid #ddd;font-size:12px}.receipt-table th:nth-child(n+2),.receipt-table td:nth-child(n+2){text-align:right}.receipt-total{display:flex;justify-content:space-between;font-size:19px;padding:12px 0;border-top:2px solid #111}.receipt-thanks{text-align:center;margin:14px 0 0;font-size:12px}.receipt-actions{border-top:1px solid var(--line);padding-top:15px}
.cancelled-receipt{text-align:center;color:#b1273b;border:2px solid #b1273b;padding:8px;margin:10px 0!important;font-size:16px}
.report-filters{margin-bottom:16px}.report-filters h2{margin-bottom:16px}.report-filter-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.report-filter-grid label{margin:0}.report-filter-grid select{width:100%;padding:11px;border:1px solid #dce0ea;border-radius:8px;background:#fff}.report-filter-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.report-sheet{padding:28px}.report-brand{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--brand);padding-bottom:18px}.report-brand p{margin:5px 0;color:var(--muted)}.report-brand>strong{text-transform:capitalize}.report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.report-summary>div{padding:16px;background:#f7f7fc;border-radius:10px}.report-summary small{display:block;color:var(--muted);margin-bottom:8px}.report-summary b{font-size:20px}.report-footer{text-align:center;color:var(--muted);font-size:11px;margin:24px 0 0}@media(max-width:1000px){.report-filter-grid{grid-template-columns:repeat(2,1fr)}}@media print{body{background:#fff}aside,.content>header,.report-filters,#dashboard,#products,#sale,#history,#users{display:none!important}#app{display:block!important}.content{padding:0;max-width:none}.page{display:none!important}#report{display:block!important}.report-sheet{border:0;box-shadow:none;padding:0}.report-footer{margin-top:30px}}

/* Interface bleu et rouge inspirée du tableau de bord Antama Space TIC */
:root{--brand:#0750b8;--brand-dark:#073687;--brand-deep:#062d75;--accent:#e3131b;--bg:#f2f5fb;--ink:#101f42;--muted:#66728b;--line:#e4eaf4}
body{background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}
#app{grid-template-columns:186px 1fr;min-height:calc(100vh - 34px);padding-top:66px}
aside{position:fixed;z-index:20;left:0;top:0;bottom:34px;width:186px;padding:6px 7px 14px;background:linear-gradient(180deg,#0752b8 0%,#073989 65%,#062d75 100%);color:#fff;gap:0;overflow-y:auto}
.side-logo{height:134px;background:#fff;border-radius:7px;display:grid;place-items:center;margin-bottom:8px}.side-logo img{width:126px;height:122px;object-fit:contain}
.side-brand{display:none}.side-nav{display:grid;gap:3px}.nav{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border-radius:5px;color:#fff;font-size:12px;font-weight:650}.nav i{font-style:normal;width:18px;text-align:center;font-size:15px}.nav.active,.nav:hover{background:var(--accent);color:#fff;box-shadow:0 4px 10px #041a5640}
.user{margin:18px 8px 0;padding:15px 4px 0;border-top:1px solid #ffffff28;font-size:10px}.user>small{font-size:10px;font-weight:800;color:#dce8ff;margin-bottom:8px}.user>strong{font-size:11px}.user>span{color:#d8e5ff}.user button{color:#fff;font-size:10px;margin-top:5px;padding:5px 0}.side-footer{text-align:center;color:#cbdcff;font-size:9px;line-height:1.6;margin-top:14px}
.content{grid-column:2;max-width:none;width:auto;margin:0;padding:18px 20px 28px}
.content>header{position:fixed;z-index:15;left:186px;right:0;top:0;height:66px;margin:0;padding:0 22px;background:linear-gradient(90deg,#0748aa,#062e86);color:#fff;align-items:center;box-shadow:0 2px 12px #062b6b2b}
.header-title h1{font-size:21px;letter-spacing:.01em}.header-title p{color:#dce8ff;font-size:10px;margin:3px 0 0;font-weight:500}.header-meta{margin-left:auto;display:flex;align-items:center;gap:15px;font-size:11px}.header-meta span{padding-right:15px;border-right:1px solid #ffffff40}.header-meta .online-dot{color:#26cf68;border:0;padding:0}.header-meta strong{font-size:11px}.content>header>#addProduct{margin-left:15px;background:#fff;color:#0750b8;padding:8px 11px}
.card,.box{border:1px solid #e9edf5;border-radius:7px;box-shadow:0 3px 12px #123b7710;background:#fff}.cards{gap:10px}.dashboard-cards{grid-template-columns:repeat(4,1fr);margin-bottom:12px}.dashboard-cards .card{min-height:92px;padding:14px;display:flex;align-items:center;gap:12px}.dashboard-cards .card-icon{flex:0 0 47px;height:54px;border-radius:8px;color:#fff;display:grid;place-items:center;font-size:26px;font-weight:900}.card-sales .card-icon{background:linear-gradient(145deg,#0873df,#0546a9)}.card-profit .card-icon{background:linear-gradient(145deg,#20b965,#078a43)}.card-stock .card-icon{background:linear-gradient(145deg,#815af5,#5831d3)}.card-alert .card-icon{background:linear-gradient(145deg,#ff9319,#ed5f00)}.dashboard-cards .card small{display:block;color:#0750b8;text-transform:uppercase;font-size:9px;font-weight:800}.dashboard-cards .card b{font-size:18px;margin:5px 0;color:#17244a}.dashboard-cards .card em{display:block;color:#66728b;font-size:9px;font-style:normal}
.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:12px}.dashboard-panel{padding:15px}.stock-panel{grid-row:span 2}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.panel-heading h2,.dashboard-panel>h2{color:#092d79;text-transform:uppercase;font-size:11px}.mini-link{background:#eef4ff;color:#0750b8;padding:6px 9px;font-size:10px}.low-line{padding:12px 6px;font-size:12px}.recent-sale{display:grid;grid-template-columns:1fr auto;gap:3px;padding:10px 4px;border-bottom:1px solid var(--line)}.recent-sale:last-child{border:0}.recent-sale strong{font-size:11px}.recent-sale span{font-size:11px;color:#0750b8;font-weight:800}.recent-sale small{color:var(--muted);font-size:9px}.shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.shortcuts button{min-height:70px;border:1px solid var(--line);background:#fff;color:#12366f;display:grid;place-items:center;gap:3px;padding:8px 4px}.shortcuts button:hover{border-color:#0750b8;background:#f5f8ff}.shortcuts b{font-size:23px;color:#0750b8}.shortcuts span{font-size:9px}
.toolbar{background:#fff;padding:12px;border:1px solid var(--line);border-radius:7px}.primary{background:#0750b8}.primary:hover{background:#063d92}.text{background:#eef4ff;color:#0750b8}table{font-size:12px}th{background:#f5f8fd;color:#17427e;font-size:9px}td{padding:12px 14px}.product{border-radius:7px}.product:hover{border-color:#0750b8}.product b{color:#0750b8}.printing-tabs{background:#e9eff9}.printing-tabs button.active{color:#0750b8}.print-sale-total b{color:#0750b8}.report-brand{border-bottom-color:#0750b8}.module-welcome{min-height:180px;display:flex;align-items:center;gap:18px}.module-welcome .module-icon{width:64px;height:64px;border-radius:10px;background:#0750b8;color:#fff;display:grid;place-items:center;font-size:28px}.module-welcome h2{font-size:20px;color:#073687}.module-welcome p{color:var(--muted)}.module-welcome button,.backup-status{margin-left:auto}.backup-status{color:#098744;font-weight:800}
.app-footer{position:fixed;z-index:30;bottom:0;left:0;right:0;height:34px;padding:0 18px;background:#062d75;color:#d9e6ff;display:flex;align-items:center;justify-content:space-between;font-size:9px}.auth{background:linear-gradient(145deg,#eaf2ff,#f7f9fd)}.auth section{border-top:5px solid #0750b8}.auth form button{background:#0750b8}
.auth:not(.hidden)~.app-footer{display:none}
@media(max-width:1000px){.dashboard-cards{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.stock-panel{grid-row:auto}.header-meta{display:none}}
@media(max-width:800px){#app{display:block;padding-top:62px;padding-bottom:48px}aside{position:static;width:100%;height:auto;padding:8px;display:block}.side-logo{height:80px}.side-logo img{height:72px}.side-nav{grid-template-columns:repeat(2,1fr)}.user,.side-footer{display:none}.content{padding:14px}.content>header{left:0;height:62px;padding:0 14px}.header-title h1{font-size:16px}.dashboard-cards{grid-template-columns:1fr}.shortcuts{grid-template-columns:repeat(2,1fr)}.app-footer{height:36px}.app-footer span:first-child{display:none}}
@media print{.app-footer{display:none!important}}
.service-price-row .delete-saved-rate{margin-left:auto;white-space:nowrap}
