:root{
  --bg:#f3f6fb; --panel:#fff; --nav:#0d2346; --text:#14213d; --muted:#667085;
  --line:#dbe3ef; --accent:#0d5bd7; --ok:#0b8f55; --warn:#b66a00; --danger:#c52a35;
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit} button{cursor:pointer}
.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:13px}.wide{width:100%}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef4ff,#f8fbff)}
.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:0 18px 50px rgba(21,45,88,.12)}
.brand-mark{width:58px;height:58px;border-radius:18px;background:var(--nav);color:#fff;display:grid;place-items:center;font-weight:800;font-size:22px}
.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:16px}

.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:24px 0 4px;padding:4px;background:#eef3fa;border-radius:12px}
.auth-tab{border:0;border-radius:9px;padding:10px 12px;background:transparent;color:#45617f;font-weight:800}
.auth-tab.active{background:#fff;color:var(--nav);box-shadow:0 2px 8px rgba(21,45,88,.08)}
.login-card.signup-open{width:min(760px,100%)}
.registration-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.signup-intro{margin:16px 0;padding:12px 14px;border-radius:12px;background:#eaf6ef;color:#075f3b;display:grid;gap:3px}
.signup-intro span{font-size:13px;color:#32614e}
.auth-check{display:flex;align-items:flex-start;gap:10px;margin:14px 0;font-size:13px;line-height:1.45;color:#344054}
.auth-check input{width:auto;margin:3px 0 0;flex:none}
.auth-check.optional{color:#667085}
.auth-check em{font-style:normal;color:#8a94a6}
.pending-card h1{font-size:30px}
.pending-box{margin:18px 0;padding:16px;border:1px solid #f0cf83;background:#fff8e8;border-radius:14px;display:grid;gap:5px}
.pending-box>span{font-size:13px;color:#667085}
.pending-box p{margin:8px 0 0;line-height:1.5}
@media(max-width:680px){.registration-grid{grid-template-columns:1fr}.login-card.signup-open{width:min(430px,100%)}}
.login-card h1{margin:20px 0 0;font-size:34px}.login-card>p{margin-top:4px}
.field{display:flex;flex-direction:column;gap:7px;margin:14px 0}.field label{font-weight:700;font-size:14px}
input,select,textarea{border:1px solid #cfd9e7;border-radius:11px;padding:12px 13px;background:#fff;color:var(--text);outline:none}
input:focus,select:focus,textarea:focus{border-color:#7aa9ef;box-shadow:0 0 0 3px rgba(13,91,215,.09)}
.primary,.ghost{border:0;border-radius:11px;padding:11px 16px;font-weight:750}
.primary{background:var(--nav);color:#fff}.primary:hover{filter:brightness(1.08)}
.ghost{background:#eaf0fa;color:#16396f}.ghost:hover{background:#dde7f6}
.app{min-height:100vh;display:grid;grid-template-columns:255px 1fr}
.sidebar{background:var(--nav);color:#fff;padding:22px 17px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px;padding:4px 4px 24px}.brand span{display:block;color:#b9c8df;font-size:12px;margin-top:3px}
nav{display:grid;gap:7px}.nav-btn{border:0;background:transparent;color:#d8e2f2;text-align:left;padding:12px 14px;border-radius:11px;font-weight:700}
.nav-btn:hover,.nav-btn.active{background:#173664;color:#fff}.sidebar-bottom{margin-top:auto}.company-mini{font-size:12px;color:#c6d2e5;margin:0 6px 12px;line-height:1.5}
main{min-width:0;padding:0 28px 35px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:25px 0 18px}
.topbar h2{margin:0;font-size:27px}.topbar p{margin:4px 0 0}.view{display:none}.view.active{display:block}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.stat{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px}.stat span{display:block;color:var(--muted);font-weight:650;font-size:13px}.stat strong{display:block;font-size:28px;margin-top:9px}
.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.panel-head{margin-bottom:12px}.panel-head h3,.form-panel h3{margin:0 0 4px}.panel-head p,.form-panel>p{margin:0}.split{display:flex;align-items:center;justify-content:space-between;gap:12px}
.toolbar{display:flex;gap:12px;margin:14px 0}.toolbar input{min-width:310px}
.table-wrap{overflow:auto} table{border-collapse:collapse;width:100%;font-size:14px} th,td{padding:12px 10px;border-bottom:1px solid #e7edf5;text-align:left;white-space:nowrap} th{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.03em}
.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:800;background:#e9eef7}.badge.ok{background:#e4f7ed;color:#087447}.badge.warn{background:#fff2dc;color:#a15c00}.badge.danger{background:#fde8ea;color:#b3222e}
.row-actions{display:flex;gap:6px}.row-actions button{border:0;padding:7px 9px;border-radius:8px;background:#edf2f9;color:#173b70;font-weight:700}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-panel{max-width:880px}
.modal{position:fixed;inset:0;background:rgba(10,24,48,.45);display:grid;place-items:center;padding:20px;z-index:50}.modal-card{width:min(850px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:20px}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h3{margin:0}.icon-btn{border:0;background:#eef2f7;width:36px;height:36px;border-radius:10px;font-size:24px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.toast{position:fixed;right:22px;bottom:22px;z-index:100;background:#12223d;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.2);opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s}.toast.show{opacity:1;transform:translateY(0)}
.empty{padding:28px;text-align:center;color:var(--muted)}.qty-neg{color:var(--danger);font-weight:800}.qty-pos{color:var(--ok);font-weight:800}
@media(max-width:950px){.app{grid-template-columns:80px 1fr}.brand>div:last-child,.nav-btn{font-size:0}.nav-btn:after{font-size:12px}.cards{grid-template-columns:1fr 1fr}.sidebar{padding:16px 10px}.brand{justify-content:center}.company-mini{display:none}}
@media(max-width:680px){main{padding:0 14px 25px}.app{grid-template-columns:1fr}.sidebar{height:auto;position:static;display:block}.brand{justify-content:flex-start;padding-bottom:10px}.brand>div:last-child{display:block}.nav-btn{font-size:13px}.sidebar nav{grid-template-columns:repeat(4,1fr);overflow:auto}.sidebar-bottom{display:none}.cards{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.toolbar input{min-width:0;width:100%}.topbar{padding-top:16px}}

.link-btn{display:inline-flex;align-items:center;text-decoration:none;border:0;padding:7px 10px;border-radius:8px;background:#e6eefb;color:#123b77;font-weight:750;font-size:13px}
.link-btn:hover{background:#d7e5f8}.supplier-cell{display:flex;align-items:center;gap:8px}.small-modal{max-width:620px}

.danger-btn{border:0;border-radius:11px;padding:11px 16px;font-weight:750;background:#fde8ea;color:#b3222e}
.danger-btn:hover{background:#fbd9dd}
.inventory-start-row{display:flex;align-items:flex-end;gap:14px;max-width:760px}
.inventory-start-row .grow{flex:1}
.inventory-start-row .primary{margin-bottom:14px;white-space:nowrap}
.inventory-history-panel{margin-top:18px}
.inventory-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:16px;flex-wrap:wrap}
.inventory-actions #inventorySaveMsg{margin-right:auto}
.inventory-input{width:120px;padding:8px 10px}
.diff-pos{color:#0b8f55;font-weight:800}.diff-neg{color:#c52a35;font-weight:800}.diff-zero{color:#667085;font-weight:700}
@media(max-width:680px){.inventory-start-row{display:block}.inventory-start-row .primary{width:100%}}

.restock-orders-panel{margin-top:18px}
.restock-group{border:1px solid #e3e9f2;border-radius:15px;padding:15px;margin-top:14px}
.restock-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.restock-group-head h4{margin:0;font-size:17px}
.restock-group-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.order-code{font-weight:800;color:#173b70}
.order-lines{font-size:12px;color:#667085;white-space:normal;line-height:1.45}
.order-actions{display:flex;gap:7px;flex-wrap:wrap}
.order-total{font-weight:800}
@media(max-width:680px){.restock-group-head{align-items:flex-start;flex-direction:column}}

.support-banner{position:sticky;top:0;z-index:80;display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 16px;background:#fff3cd;border-bottom:1px solid #e8c861;color:#664d03;font-weight:750}
.support-banner.support-active{background:#e7f0ff;color:#123b77;border-color:#abc7ef}
.support-banner-btn{border:0;border-radius:9px;padding:8px 12px;background:#8c1d27;color:#fff;font-weight:800}
.inventory-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.inventory-review-actions{display:flex;gap:6px;flex-wrap:wrap}
.inventory-review-actions button{border:0;border-radius:8px;padding:7px 9px;font-weight:750;cursor:pointer}
.review-accept{background:#e4f7ed;color:#087447}
.review-keep{background:#e7eef9;color:#183d75}
.review-recount{background:#fff2dc;color:#995600}
.review-note{min-width:180px}
.review-needed{background:#fffaf0}
.support-request{border:1px solid #dbe3ef;border-radius:14px;padding:16px;margin:12px 0}
.support-request h4{margin:0 0 8px}
.support-meta{font-size:13px;color:#667085;line-height:1.55}
.support-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.client-readonly .row-actions button,
.client-readonly #newProductBtn,
.client-readonly #newSupplierBtn,
.client-readonly #saveMovementBtn,
.client-readonly #startInventoryBtn,
.client-readonly #saveInventoryBtn,
.client-readonly #submitInventoryBtn,
.client-readonly #beginRecountBtn,
.client-readonly #validateSecureInventoryBtn,
.client-readonly #cancelInventoryBtn,
.client-readonly .restock-group .primary,
.client-readonly .order-actions button{opacity:.45;pointer-events:none}
.blind-inventory-mode .nav-btn[data-view="dashboard"],
.blind-inventory-mode .nav-btn[data-view="products"],
.blind-inventory-mode .nav-btn[data-view="suppliers"],
.blind-inventory-mode .nav-btn[data-view="movement"],
.blind-inventory-mode .nav-btn[data-view="history"],
.blind-inventory-mode .nav-btn[data-view="restock"]{display:none}

.role-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 18px}
.role-card{border:1px solid #d9e2ef;border-radius:12px;padding:12px;background:#f8fbff}
.role-card strong{display:block;color:#0d2b57;margin-bottom:4px}
.role-card span{font-size:12px;color:#667085;line-height:1.45}
.role-select{min-width:110px;padding:7px 8px;border:1px solid #cad5e4;border-radius:8px;background:#fff}
.user-actions{display:flex;gap:6px;flex-wrap:wrap}
.user-actions button{padding:7px 9px}
.credential-box{border:1px solid #b8cbea;background:#f5f9ff;border-radius:13px;padding:14px}
.credential-box h4{margin-top:0}
.credential-row{display:flex;gap:8px;align-items:center}
.credential-row input{font-family:Consolas,monospace;font-weight:800}
.user-inactive{opacity:.6}
.role-owner{background:#e6efff;color:#173f7a}
.role-admin{background:#e8f7ee;color:#14653a}
.role-employee{background:#f1f3f6;color:#475467}
@media(max-width:800px){.role-cards{grid-template-columns:1fr}}

.actor-support{font-weight:700}
.actor-system{font-style:italic}

.activity-panel{margin-top:16px}
.activity-action{font-weight:750}
.activity-simpa{color:#0d4c92}
.activity-simpa-badge{display:inline-block;background:#e7f0ff;color:#0d4c92;border-radius:999px;padding:5px 8px}
.activity-details{max-width:480px;white-space:normal;line-height:1.4}


/* V1.2.0 — Abonnement & facturation */
.billing-summary-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:14px 0 18px;
}
.billing-summary-card{
  border:1px solid var(--border);
  border-radius:14px;
  padding:16px;
  background:#f8fbff;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.billing-summary-card span,
.billing-company-details span{font-size:12px;color:var(--muted)}
.billing-summary-card strong{font-size:20px}
.billing-summary-card small{color:var(--muted)}
.billing-notice{
  border-radius:12px;
  padding:14px 16px;
  margin:14px 0;
  line-height:1.5;
}
.billing-notice-ok{background:#eaf8ef;border:1px solid #bde8cb;color:#195c32}
.billing-notice-info{background:#edf4ff;border:1px solid #cbdcff;color:#173f75}
.billing-notice-warn{background:#fff4df;border:1px solid #f0d39a;color:#7a4a00}
.billing-checkout-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
}
.billing-checkout-box h4{margin:0 0 5px}
.billing-price-details{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-top:12px;
}
.billing-price-details div{
  display:flex;
  gap:8px;
  align-items:baseline;
}
.billing-price-details span{font-size:12px;color:var(--muted)}
.billing-price-total{
  padding-left:16px;
  border-left:1px solid var(--border);
}
.billing-company-details{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.billing-company-details div{
  border:1px solid var(--border);
  border-radius:12px;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:5px;
}
@media(max-width:900px){
  .billing-summary-grid,.billing-company-details{grid-template-columns:1fr}
  .billing-checkout-box{align-items:stretch;flex-direction:column}
  .billing-checkout-box button{width:100%}
}

.billing-actions{
  display:flex;
  flex-direction:column;
  gap:9px;
  min-width:220px;
}
.billing-actions button{width:100%}
