:root{color-scheme:light;--nav:#102638;--nav-text:#bdcdd7;--ink:#172c3a;--muted:#536a78;--bg:#f1f6f6;--line:#dce7e9;--green:#006c5a;--mint:#e0f4ec;--white:#fff;font-family:Rubik,"Segoe UI",Tahoma,Arial,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;font-size:15px}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{outline-offset:4px}
a{color:var(--green)}
button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);padding:.66rem .92rem;border-radius:9px;font-weight:650}
button:hover{background:#f1f8f5}
button:disabled{opacity:.45;cursor:default}
.primary,.primary:hover{background:var(--green);border-color:var(--green);color:white}
.primary:hover{background:#005548}
.sidebar{position:fixed;inset:0 0 0 auto;width:238px;background:var(--nav);color:white;padding:25px 15px 18px;display:flex;flex-direction:column;z-index:4}
.brand{display:flex;align-items:center;gap:12px;padding:2px 8px 26px;color:white;text-decoration:none}
.logo,.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#72e8bc;color:var(--nav);font-size:23px;font-weight:900;flex:none}
.brand strong{font-size:19px}.brand small,.profile small{color:var(--nav-text);display:block;margin-top:5px;font-size:12px}
nav{display:grid;gap:5px}
nav a{color:var(--nav-text);text-decoration:none;padding:12px 12px;display:flex;align-items:center;gap:13px;border-radius:9px}
nav a:hover,nav a[aria-current=page]{background:#1d4050;color:#8cf0cb}
.icon{width:19px;height:19px;flex:none;vertical-align:middle}
.profile{margin-top:auto;padding:14px 6px 0;border-top:1px solid #345060;display:flex;gap:10px;align-items:center}
.profile .avatar{height:35px;width:35px;font-size:17px;background:#274b55;color:#9cf1cf}
.profile a{margin-inline-start:auto;color:white;text-decoration:none;padding:6px}
.workspace{margin-inline-start:238px;min-height:100vh}
header{display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 29px;background:white;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:3}
.crumb{margin-inline-end:auto;color:var(--muted)}.crumb b{color:var(--ink)}.crumb span{margin:0 6px}
.currency{padding:.4rem .65rem;border-radius:7px;background:var(--mint);color:var(--green);font-weight:700}
.mobile{display:none}
main{padding:28px clamp(16px,3vw,44px) 48px;max-width:1500px;margin:auto}
h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-.025em}h2{font-size:20px}h3{font-size:17px}
.title{margin-bottom:24px;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.title p,.hint,.subtext{color:var(--muted);line-height:1.65}.title p{margin-top:6px}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.metric,.panel{background:white;border:1px solid var(--line);border-radius:13px;min-width:0}
.metric{padding:16px}.metric .icon{color:var(--green);box-sizing:content-box;padding:8px;border-radius:9px;background:var(--mint)}.metric span,.metric strong{display:block}.metric span{color:var(--muted);margin-top:12px;font-size:14px}.metric strong{font-size:27px;margin-top:7px}
.panel{margin-bottom:16px;overflow:hidden}.panel-title{padding:17px 18px;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.toolbar{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:14px;align-items:center}.toolbar label{font-size:13px;color:var(--muted)}
.table-wrap{overflow:auto}
table{border-collapse:collapse;width:100%;text-align:start;white-space:nowrap}
th,td{text-align:start;padding:13px 16px;border-bottom:1px solid #e9eff0}
th{color:var(--muted);font-size:13px;background:#f7fafb}tbody tr:last-child td{border-bottom:0}
td small{display:block;color:var(--muted);margin-top:4px}
td button{padding:.4rem .58rem;font-size:13px}
.badge{display:inline-block;font-size:12px;font-weight:700;border-radius:40px;padding:.38rem .65rem;background:#edf2f4;color:#46606d}
.badge.green{background:var(--mint);color:var(--green)}.badge.amber{background:#fff1d5;color:#805600}
.empty{padding:25px;color:var(--muted);text-align:center;line-height:1.6}
.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.pad{padding:18px}.list{margin:9px 0 0;padding-inline-start:18px;line-height:1.9}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.field{display:grid;gap:6px;align-content:start;color:#415767;font-size:14px}
.wide{grid-column:1/-1}
input,select,textarea{border:1px solid #bccdd2;border-radius:8px;padding:9px 10px;color:var(--ink);background:#fff;max-width:100%;min-width:0}
textarea{resize:vertical;min-height:76px}
input[type=checkbox]{accent-color:var(--green)}
.check{display:flex;gap:8px;align-items:center}
.preview{padding:11px 13px;background:#edf7f4;color:var(--green);border-radius:8px;min-height:40px}
form .actions{margin-top:16px}fieldset{margin:12px 0 0;border:1px solid var(--line);border-radius:10px;padding:12px;min-width:0}
dialog{border:1px solid var(--line);border-radius:15px;padding:0;width:min(650px,calc(100% - 24px));max-height:90dvh;color:var(--ink);box-shadow:0 24px 70px #0e263548}
dialog::backdrop{background:#102638a0}
.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:16px 19px;border-bottom:1px solid var(--line);gap:10px}.dialog-head button{padding:.35rem .6rem}
.dialog-body{padding:18px 19px}.error{color:#9d2929;margin:10px 0}.error:empty{display:none}
#toast{display:none;position:fixed;z-index:10;inset:auto auto 20px 20px;border-radius:10px;padding:13px 18px;background:var(--nav);color:white;max-width:80vw}
#toast.show{display:block}
@media(max-width:1080px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
[dir=ltr] .sidebar{inset:0 auto 0 0}
[dir=ltr] #toast{inset:auto 20px 20px auto}
#language{padding:7px 5px;font-size:13px}
.auth{max-width:530px;padding-top:min(14vh,120px)}
.auth h1{margin-bottom:12px}
.auth p[lang=fr]{text-align:start;color:var(--muted)}

.application-link{display:inline-flex;align-items:center;gap:.55rem;color:var(--green);font-weight:700;text-underline-offset:.2em}

.primary,.primary:hover{background:var(--accent,#006c5a);border-color:var(--accent,#006c5a);color:var(--accent-ink,#fff)}
.primary:hover{filter:brightness(.93)}
.sidebar .brand,.sidebar .profile,.sidebar #logout{color:var(--nav-text)}
.sidebar nav a{color:var(--nav-text)}
.sidebar nav a[aria-current="page"],.sidebar nav a:hover{background:color-mix(in srgb,var(--nav-text) 17%,transparent);color:var(--nav-text)}
.sidebar nav{min-height:0;overflow:auto}
.profile .avatar{overflow:hidden}
.profile .avatar img{width:100%;height:100%;object-fit:cover}
.chart{padding-top:0}
.chart-numbers,.chart-dates{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.chart-numbers strong{font-size:clamp(18px,2.5vw,26px)}
.chart-numbers span,.chart-dates{color:var(--muted);font-size:.83rem}
.chart svg{width:100%;height:auto;display:block}
.chart-gridline{stroke:var(--line);stroke-width:1}
.chart-line{fill:none;stroke:var(--accent,#006c5a);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.chart-points{fill:var(--accent,#006c5a)}

.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.danger-button{color:#982436;border-color:#edc8ce}
.danger-button:hover{background:#fff1f3;border-color:#d88490}
.inventory-description{display:inline-block;max-width:24rem;white-space:normal;overflow-wrap:anywhere}

#print-report{display:none}
@media print{
  body>*:not(#print-report){display:none!important}
  body{background:white;color:black;overflow:visible}
  #print-report{display:block;max-width:none;padding:0}
  #print-report .table-wrap{overflow:visible}
  #print-report table{width:100%;font-size:9pt}
  #print-report th,#print-report td{white-space:normal;overflow-wrap:anywhere;padding:6px}
  #print-report tr{break-inside:avoid}
}

/* Dashboard identity and chart accents. */
:root{--nav:#111b38;--nav-text:#c3cce5;--bg:#f4f6fc;--ink:#18243e;--line:#dfe5f2;--green:#2057be;--mint:#e6efff}
.sidebar{background:linear-gradient(160deg,var(--nav),#203460)}
nav a:hover,nav a[aria-current=page]{background:#31477e;color:#fff}
.logo,.profile .avatar{background:#a7c8ff;color:#152752}
.primary:hover{background:#194594}
.panel,.metric{border-radius:16px;box-shadow:0 4px 18px #21325b09}
.metric:nth-child(2) .icon{background:#dcf8ed;color:#096448}
.metric:nth-child(3) .icon{background:#f1e6ff;color:#6538ab}
.metric:nth-child(4) .icon{background:#fff1d7;color:#895612}
.chart svg{overflow:visible}
.chart-line{stroke:#007c77}
.chart-points{fill:#007c77}
.chart-area{fill:#21b5a129}
.chart-bar{fill:#6052cb}
.assistant-answer{white-space:pre-wrap;overflow-wrap:anywhere;border-top:1px solid var(--line);padding:1rem;margin-top:1rem}
.social-link{margin-bottom:.65rem}
.currency{display:block}
.profile #account-name{overflow-wrap:anywhere}

#brand-mark:not([hidden]){display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,#f0f5ff,#afc4ef 66%,#7997cc);box-shadow:inset 0 0 0 1px #ffffff80,0 3px 12px #07102575}
.platinum-monogram{display:grid;place-items:center;width:34px;height:34px;border:1px solid #2d4c79;border-radius:8px;color:#102546;font:800 19px/1 Inter,"Segoe UI",sans-serif;letter-spacing:-.09em;padding-inline-end:.09em}
#logout-slot{padding-top:9px}
#logout{display:block;width:100%;border:1px solid color-mix(in srgb,var(--nav-text) 42%,transparent);border-radius:9px;padding:.53rem .7rem;background:transparent;color:var(--nav-text);text-align:center;font-weight:650;text-decoration:none}
#logout:hover{background:color-mix(in srgb,var(--nav-text) 15%,transparent)}


/* Keep forms and tables inside the available screen width. */
.two,.fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.field,.toolbar>*{min-width:0;max-width:100%}
.field>input:not([type=checkbox]),.field>select,.field>textarea{width:100%}
.table-wrap{max-width:100%;overscroll-behavior-inline:contain}
.table-wrap:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
th,td{max-width:28rem;overflow-wrap:anywhere;white-space:normal}
td bdi{overflow-wrap:anywhere}
.metric strong{overflow-wrap:anywhere}
.cf-turnstile{max-width:100%;overflow:auto;margin-block-start:12px}

@media (max-width:960px){
  .workspace{margin-inline-start:0}
  .sidebar{width:min(290px,calc(100vw - 44px));visibility:hidden;transform:translateX(100%);padding-block:16px;transition:transform .18s}
  [dir=ltr] .sidebar{transform:translateX(-100%)}
  .sidebar.open,[dir=ltr] .sidebar.open{visibility:visible;transform:none}
  .sidebar nav{flex:1 1 auto;overscroll-behavior:contain}
  .sidebar .brand{padding-block-end:14px}
  .mobile{display:inline-grid;place-items:center;min-width:44px;min-height:44px}
  #menu-close{align-self:end;margin-block-end:5px;font-size:20px;padding:0}
  #menu-backdrop:not([hidden]){position:fixed;inset:0;z-index:3;background:#10263894}
  body.menu-open{overflow:hidden}
  header{padding:10px clamp(12px,3vw,25px);min-height:64px}
  button,select,.toolbar input{min-height:44px}
  td button{padding:.45rem .7rem}
}
@media (max-width:640px){
  .two{grid-template-columns:minmax(0,1fr)}
  .crumb{display:none}
  header{gap:6px;flex-wrap:wrap}
  #display-currency{margin-inline-start:auto}
  #section-action{max-width:100%;white-space:normal}
  main{padding-top:20px}
  h1{font-size:27px}
  .table-wrap table{min-width:460px}
  th,td{padding:10px 12px}
  .dialog-body,.dialog-head{padding:12px 14px}
  dialog{max-height:min(90vh,90dvh)}
}
@media (max-width:480px){
  .fields{grid-template-columns:minmax(0,1fr)}
  .metric{padding:12px}
  .metric strong{font-size:22px}
  .toolbar>*{flex:1 1 135px}
  .toolbar input[type=search]{flex-basis:100%}
  input:not([type=checkbox]),textarea,select,#language{font-size:16px}
  .auth{padding-top:clamp(16px,8vh,54px)}
}
@media (max-width:360px){
  .auth{padding-inline:0}
  .auth .panel{padding-inline:8px}
  .metrics{gap:8px}
  #section-action{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){
  .sidebar{transition:none}
}

:root{--nav:#20164a;--bg:#f6f4fd;--ink:#231947;--line:#e9e3f6;--green:#6842e8;--mint:#efeaff;--accent:#6842e8}
.workspace{background:radial-gradient(ellipse at 95% 0,#efe5ff 0,transparent 32rem),var(--bg)}
.sidebar .platinum-monogram{border:0;background:#ddff8f;color:#281b50;border-radius:12px;font-size:24px}
.panel,.metric{border-radius:20px;box-shadow:0 8px 22px #36236908}
.metrics .metric:nth-child(1){background:#ede5ff}
.metrics .metric:nth-child(2){background:#e2fbf4}
.metrics .metric:nth-child(3){background:#ffe8ef}
.metrics .metric:nth-child(4){background:#f4f9da}
.metric .icon{color:#5d35bd}
.chart-line{stroke:#6742d9}.chart-points{fill:#6742d9}.chart-area{fill:#875bfd2b}.chart-bar{fill:#138474}
.billing-line{margin:0 0 12px;padding:12px;border:1px solid var(--line);border-radius:14px;min-width:0}
.billing-line legend{font-weight:700;padding-inline:5px}
.billing-parties,.billing-export{display:flex;flex-wrap:wrap;gap:12px}
.billing-party{display:grid;flex:1 1 210px;gap:4px;background:var(--mint);padding:14px;border-radius:12px;overflow-wrap:anywhere}
.billing-export{align-items:end;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
.billing-sum,#billing-total{font-weight:750}
.platform-photo{width:38px;height:38px;display:block;object-fit:cover;border-radius:11px}
.account-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;padding:0 16px}
.account-role{display:grid;gap:6px;padding:13px;border-radius:14px;background:var(--mint)}
.account-role span{font-size:.86rem;color:var(--muted)}
.login-body{margin:0;min-height:100svh;display:grid;place-items:center;padding:clamp(14px,4vw,50px);background:radial-gradient(ellipse at 10% 10%,#ddffb8 0,transparent 35%),#ede8ff;font-family:Inter,system-ui,sans-serif}
.login-shell{width:min(100%,960px);display:grid;grid-template-columns:1fr 1fr;border-radius:28px;overflow:hidden;background:white;box-shadow:0 25px 65px #34246026}
.login-visual{position:relative;overflow:hidden;min-height:430px;padding:34px;color:white;background:linear-gradient(150deg,#25164e,#6a38df 68%,#954af5)}
.login-brand{position:relative;z-index:1;font-size:1.35rem;font-weight:800;letter-spacing:-.04em}
.login-orbit{position:absolute;inset:17% -14% -25% 10%;border:1px solid #ffffff52;border-radius:50%;box-shadow:0 0 0 28px #ffffff15,0 0 0 60px #ffffff12,0 0 0 96px #ffffff0c}
.login-bars{position:absolute;inset:auto 14% 17%;height:47%;display:flex;gap:12px;align-items:end;transform:skewY(-9deg)}
.login-bars i{flex:1;height:28%;border-radius:11px 11px 0 0;background:linear-gradient(#e3ff99,#8ae7bc);animation:login-rise .7s ease-out both;transform-origin:bottom}
.login-bars i:nth-child(2){height:49%;animation-delay:.08s}.login-bars i:nth-child(3){height:42%;animation-delay:.16s}.login-bars i:nth-child(4){height:76%;animation-delay:.24s}.login-bars i:nth-child(5){height:100%;animation-delay:.32s}
@keyframes login-rise{from{transform:scaleY(.1);opacity:.2}to{transform:scaleY(1);opacity:1}}
.login-form{align-self:center;padding:clamp(24px,5vw,55px)}
.login-form h1{font-size:clamp(1.65rem,3vw,2.25rem);letter-spacing:-.04em;margin:0 0 26px}
.login-form .actions{padding-inline:0}.login-form .primary{width:100%;background:#6338df;color:white}
.login-form input:focus-visible{outline:2px solid #6842e8;outline-offset:2px}
@media(max-width:650px){.login-shell{grid-template-columns:1fr}.login-visual{min-height:110px;padding:20px}.login-bars{inset:auto 7% 15% auto;width:35%;height:64%}}
@media(prefers-reduced-motion:reduce){.login-bars i{animation:none}}
