/* Lenerga design tokens and shared components (public site + client space) */
:root{
  --orange:#FFA943;--orange-600:#F09224;--orange-800:#8F5410;--orange-100:#FFF4E6;
  --ink:#13201A;--forest:#1E4636;--fern:#497C5D;--umber:#521F18;--umber-100:#F6E7E4;
  --green-100:#EAF2EC;--green-200:#C9DECF;--green-300:#8DB59A;
  --paper:#F7F4EE;--paper-2:#F0ECE4;--line:#E3DDD2;--line-strong:#C9C2B6;--white:#FFFFFF;
  --muted:#4B5750;--on-dark:#D3DED7;--on-dark-muted:#A9B5AE;
  --display:'Sora',system-ui,sans-serif;--body:'Public Sans',system-ui,sans-serif;
  --r-sm:8px;--r-md:16px;--r-lg:24px;--r-xl:28px;--r-pill:999px;
  --shadow-raised:0 8px 24px rgba(19,32,26,.12);--shadow-overlay:0 30px 80px rgba(19,32,26,.28);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;text-wrap:balance}
a{color:var(--forest);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--fern)}
*:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:2px}
.on-dark *:focus-visible{outline-color:var(--orange)}
::selection{background:var(--orange);color:var(--ink)}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--r-sm);z-index:100;text-decoration:none}
.skip:focus{top:12px;color:#fff}
.tnum{font-variant-numeric:tabular-nums}
[data-lucide],svg.lucide{width:18px;height:18px;flex:none;stroke-width:1.75}

/* Buttons */
.btn{font:600 16px/1.2 var(--body);display:inline-flex;gap:8px;align-items:center;justify-content:center;border-radius:var(--r-sm);padding:15px 22px;border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s,color .15s,border-color .15s;min-height:44px;text-align:center}
.btn-primary{background:var(--orange);color:var(--ink);border-color:var(--orange)}
.btn-primary:hover{background:var(--orange-600);border-color:var(--orange-600);color:var(--ink)}
.btn-dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-dark:hover{background:var(--forest);border-color:var(--forest);color:#fff}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.btn-outline-light:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-sm{font-size:14px;padding:9px 14px;min-height:40px}
.btn-lg{font-size:17px;padding:18px 28px}
.btn-block{width:100%}
.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.link-btn{background:none;border:0;padding:0;font:600 14px var(--body);color:var(--forest);cursor:pointer;display:inline-flex;gap:6px;align-items:center;text-decoration:underline;text-underline-offset:3px}
.link-btn:hover{color:var(--fern)}

/* Forms */
.field{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600}
.field label,.field .label{font-weight:600;display:flex;justify-content:space-between;gap:12px}
.field .req{color:var(--umber)}
.input,.select,.textarea{font:400 16px/1.4 var(--body);padding:13px 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:#fff;color:var(--ink);width:100%}
.textarea{min-height:140px;resize:vertical}
.input:hover,.select:hover,.textarea:hover{border-color:var(--ink)}
.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--orange);outline-offset:1px;border-color:var(--ink)}
[aria-invalid=true]:is(.input,.select,.textarea){border-color:var(--umber)!important;border-width:2px;padding:12px 13px}
.hint{font-weight:400;font-size:13px;color:var(--muted);display:flex;gap:6px;align-items:center}
.hint [data-lucide],.hint svg{width:14px;height:14px}
.error{font-weight:600;font-size:13px;color:var(--umber);display:flex;gap:6px;align-items:flex-start}
.error svg{width:15px;height:15px;margin-top:2px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px;font-weight:400;line-height:1.5;cursor:pointer}
.check input{appearance:none;width:20px;height:20px;flex:none;margin:1px 0 0;border-radius:5px;border:1.5px solid var(--line-strong);background:#fff;cursor:pointer;display:grid;place-content:center}
.check input:checked{background:var(--forest);border-color:var(--forest)}
.check input:checked::after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}
.pw{position:relative}
.pw .input{padding-right:92px}
.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;font:600 14px var(--body);color:var(--forest);display:flex;gap:6px;align-items:center;padding:8px;cursor:pointer;border-radius:6px}
.pw svg{width:16px;height:16px}

/* Status pills: always icon + word, never colour alone */
.pill{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:var(--r-pill);font-size:13px;font-weight:600;white-space:nowrap}
.pill svg{width:14px;height:14px}
.pill-done{background:var(--forest);color:#fff}
.pill-ok{background:var(--green-100);color:var(--forest)}
.pill-wait{background:var(--paper-2);color:var(--muted)}
.pill-todo{background:var(--orange-100);color:var(--orange-800)}
.pill-sample{background:var(--orange);color:var(--ink);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.eyebrow{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--forest);font-weight:600}
.on-dark .eyebrow,.eyebrow.orange{color:var(--orange)}

/* Dialog */
dialog{border:0;border-radius:var(--r-md);padding:0;box-shadow:var(--shadow-overlay);max-width:min(520px,calc(100vw - 32px));width:100%;color:var(--ink);background:#fff}
dialog::backdrop{background:rgba(19,32,26,.55)}
.dialog-body{padding:28px;display:flex;flex-direction:column;gap:18px}
.dialog-body h2{font-size:22px;letter-spacing:-.01em}
.dialog-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.check input[aria-invalid=true]{border-color:var(--umber);border-width:2px}
