/* Web Sitem · shared visual language for customer and staff applications. */
@font-face { font-family:Manrope; src:url('/assets/manrope-ext.woff2') format('woff2'); font-weight:200 800; font-style:normal; font-display:swap; unicode-range:U+0100-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:Manrope; src:url('/assets/manrope.woff2') format('woff2'); font-weight:200 800; font-style:normal; font-display:swap; }
:root {
  --paper:#F7F7F4;
  --surface:#FFFFFF;
  --ink:#20232B;
  --muted:#626773;
  --primary:#355CDE;
  --primary-hover:#2B4FC7;
  --on-primary:#FFFFFF;
  --selected:#EEF1FE;
  --line:#E2E3E7;
  --control-border:#858C99;
  --success:#235A82;
  --warning:#8A5A12;
  --error:#B42318;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px; --space-12:48px;
  --radius-control:10px; --radius-card:14px; --radius-dialog:18px;
  color-scheme:light;
}
* { box-sizing:border-box; }
.app-icon { display:inline-block; width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.icon-label { display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.nav-trailing { margin-left:auto; width:16px; height:16px; }
body { margin:0; background:var(--paper); color:var(--ink); font:14px/1.6 Manrope,system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
button,input,textarea,select { font:inherit; color:inherit; }
button,a,input,textarea,select,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; min-height:44px; min-width:44px; padding:8px 16px; background:var(--surface); border:1px solid var(--control-border); border-radius:var(--radius-control); transition:background-color 160ms,border-color 160ms,color 160ms; }
button:disabled { cursor:not-allowed; opacity:.55; }
a { color:inherit; text-decoration:none; }
[hidden] { display:none!important; }
:where(button,a,input,textarea,select,summary):focus-visible { outline:2px solid var(--primary); outline-offset:3px; }
input,textarea,select { width:100%; min-width:0; min-height:44px; border:1px solid var(--control-border); border-radius:var(--radius-control); background:var(--surface); color:var(--ink); padding:12px; }
input[type=checkbox],input[type=radio] { width:20px; min-height:20px; height:20px; accent-color:var(--primary); }
label:has(input[type=checkbox]),label:has(input[type=radio]) { min-height:44px; }
input:focus,textarea:focus,select:focus { border-color:var(--primary); }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
textarea { resize:vertical; line-height:1.7; }
label { font-size:14px; font-weight:650; display:block; margin-bottom:8px; }
form>label { margin-top:16px; }form>label:first-child { margin-top:0; }
h1,h2,h3,h4,p { margin:0; }
h1 { font-size:32px; font-weight:650; letter-spacing:-1px; line-height:1.25; }
h2 { font-size:24px; font-weight:650; letter-spacing:-.6px; line-height:1.35; }
h3 { font-size:18px; font-weight:650; line-height:1.4; }
h4 { font-size:14px; }
p { overflow-wrap:anywhere; }
.button { border:1px solid transparent; border-radius:var(--radius-control); min-height:44px; padding:12px 16px; display:inline-flex; align-items:center; justify-content:center; gap:12px; font-size:14px; font-weight:650; }
.button.primary,.primary { background:var(--primary); color:var(--on-primary); border-color:var(--primary); }
.button.primary:hover:not(:disabled),.primary:hover:not(:disabled) { background:var(--primary-hover); border-color:var(--primary-hover); }
.button.light { background:var(--surface); color:var(--ink); border-color:var(--control-border); }.button.light:hover:not(:disabled) { background:var(--selected); }
.button.full,.full { width:100%; }.button.full { justify-content:space-between; }
.text-button { background:transparent; border:0; color:var(--primary); min-height:44px; padding:8px; font-size:14px; }
.text-button:hover:not(:disabled) { background:var(--selected); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:620px) { input:not([type=checkbox]):not([type=radio]),textarea,select { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
