/* LetRecord · three-colour "Vibrant Harbour" layer over the LetRecord design system.
   Blue = structure and trust. Teal = evidence and detail. Orange = the one action per view. */
:root{
  --paper:#f4f8fa;--surface:#ffffff;--surface-hover:#f7fbfd;--selected:#e6f6fc;
  --border:#cfdde4;--divider:#e4edf1;--input-border:#6f8794;
  --ink:#0b2a3a;--ink-2:#1f4a5e;--muted:#4f6672;
  --primary:#015d82;--primary-hover:#014a68;--on-primary:#ffffff;--primary-soft:#d7f4ff;
  --accent:#f0802b;--focus:#0078a8;
  --teal:#009fb2;--teal-ink:#006b78;--teal-soft:#e0f7fa;--teal-on-blue:#7fe0ec;
  --orange:#f0802b;--orange-hover:#f59a52;--orange-ink:#9a4a14;--orange-soft:#fdeee2;
  --ice:#d7f4ff;
  --success:#1f7a4d;--success-bg:#e3f1e9;--warning:#8a5a12;--warning-bg:#f7ecd8;
  --danger:#b42318;--danger-bg:#f8e1de;--neutral:#1f4a5e;--neutral-bg:#e6eef2;
  --font-sans:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-20:80px;
  --radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;
  --shadow-card:0 1px 2px rgba(1,93,130,.08);--shadow-pop:0 24px 48px -24px rgba(1,93,130,.35);
}
/* Loaded after app.css — keep tokens/components; leave body/link resets to app.css. */
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.vb-dark a:focus-visible,.vb-dark button:focus-visible,.vb-dark input:focus-visible{outline-color:var(--orange-hover)}
.vb-dark{background:var(--primary);color:#fff}
.vb-dark a{color:var(--ice)}
.vb-dark a:hover{color:#fff}
.vb-dark a.vb-cta,.vb-dark a.vb-cta:hover{color:var(--ink)}
.vb-dark .vb-eyebrow{color:var(--teal-on-blue)}
.vb-wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.vb-section{padding:64px 0}
@media (max-width:760px){.vb-section{padding:48px 0}}
.vb-textlink[aria-current="page"]{background:var(--selected);color:var(--primary)}
.brand-name LetRecord,.brand-name{font-weight:600}
.brand-name .brand-rec{color:var(--primary)}
.site-header-v2{padding:0;background:#fff;border-bottom:1px solid var(--divider)}
.site-header-v2 .site-header-inner{max-width:1200px;margin:0 auto;padding:12px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.site-header-v2 .brand{min-height:44px}
.site-header-v2 .brand-name{font-size:20px}
.site-header-v2 .site-nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px;flex:1 1 auto}
.site-header-v2 .site-nav-links{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 auto}
@media (max-width:860px){
  .site-header-v2 .site-header-inner{flex-wrap:nowrap;padding-top:14px;padding-bottom:14px}
  .site-header-v2 .site-nav{flex-wrap:nowrap;gap:12px;justify-content:flex-end}
  .site-header-v2 .site-nav-links{display:none}
  .site-header-v2 .site-menu{display:block}
}
@media (max-width:480px){
  .cookie-notice{left:12px;right:12px;bottom:12px;width:auto;padding:14px 16px}
  .cookie-notice p{font-size:13px;line-height:1.45}
  .cookie-actions{width:100%}
  .cookie-actions .btn{flex:1 1 0;min-height:44px;justify-content:center}
  .app-header-add{display:none}
}

/* PRS checklist — keep layout in CSS so Alpine :style can't wipe flex */
.checklist-step{display:flex;gap:16px;align-items:flex-start;padding:16px 24px;border-top:1px solid var(--divider);background:transparent}
.checklist-step:first-child{border-top:0}
.checklist-step.is-done{background:var(--surface-hover)}
.checklist-check{width:22px;height:22px;margin:2px 0 0;accent-color:var(--primary);flex:none}
.checklist-label{display:flex;flex-direction:column;gap:2px;cursor:pointer;flex:1;min-width:0}
.checklist-step-num{font-size:12px;color:var(--muted)}
.checklist-step-text{font-size:17px;line-height:26px;color:var(--ink)}
.checklist-step-text.is-done{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--teal)}

/* signature: the three-colour stripe */
.vb-tri{height:6px;background:linear-gradient(90deg,var(--primary) 0 33.34%,var(--teal) 33.34% 66.67%,var(--orange) 66.67% 100%)}

/* actions */
.vb-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:var(--radius-sm);background:var(--orange);color:var(--ink);font:600 16px/24px var(--font-sans);text-decoration:none;border:0;cursor:pointer;white-space:nowrap}
.vb-cta:hover{background:var(--orange-hover);color:var(--ink)}
.vb-cta-sm{min-height:44px;padding:10px 16px;font-size:15px}
a.site-nav-check{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:var(--radius-sm);background:var(--orange);color:var(--ink);font:600 15px/22px var(--font-sans);text-decoration:none;border:0;white-space:nowrap}
a.site-nav-check:hover{background:var(--orange-hover);color:var(--ink)}

.vb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:var(--radius-sm);font:500 15px/22px var(--font-sans);text-decoration:none;cursor:pointer;border:1px solid var(--primary);background:var(--surface);color:var(--primary)}
.vb-btn:hover{background:var(--selected);color:var(--primary-hover)}
.vb-btn-blue{background:var(--primary);color:#fff}
.vb-btn-blue:hover{background:var(--primary-hover);color:#fff}
.vb-btn-ondark{background:transparent;color:#fff;border-color:var(--ice)}
.vb-btn-ondark:hover{background:rgba(215,244,255,.12);color:#fff}
.vb-textlink{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;color:var(--ink);font:500 15px/22px var(--font-sans);text-decoration:none;border-radius:var(--radius-sm)}
.vb-textlink:hover{background:var(--selected);color:var(--ink)}

/* text */
.vb-eyebrow{font:500 12px/16px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0}
.vb-mono{font-family:var(--font-mono)}

/* chips */
.vb-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font:500 12px/16px var(--font-mono);letter-spacing:.04em}
.vb-chip-teal{background:var(--teal-soft);color:var(--teal-ink)}
.vb-chip-orange{background:var(--orange-soft);color:var(--orange-ink)}
.vb-chip-blue{background:var(--primary-soft);color:var(--primary)}

/* switch / filter buttons */
.vb-switch{min-height:44px;padding:10px 14px;border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;font:500 14px/20px var(--font-sans);letter-spacing:0}
.vb-switch:hover{background:var(--surface-hover)}
.vb-switch.vb-chip-blue{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}

/* tabs */
.vb-tab{min-height:44px;padding:10px 14px;border:0;border-bottom:3px solid transparent;background:transparent;font:500 14px/20px var(--font-sans);color:var(--muted);cursor:pointer}
.vb-tab:hover{color:var(--ink)}
.vb-tab-on{color:var(--ink);border-bottom-color:var(--orange)}

/* FAQ */
.vb-faq{border-bottom:1px solid var(--border)}
.vb-faq summary{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;font:600 17px/24px var(--font-sans);color:var(--ink);list-style:none;padding:12px 0}
.vb-faq summary::-webkit-details-marker{display:none}
.vb-faq summary::after{content:"+";font:400 24px/24px var(--font-sans);color:var(--teal-ink)}
.vb-faq[open] summary::after{content:"\2212"}
.vb-faq p{margin:0 0 20px;max-width:68ch;color:var(--ink-2);font-size:16px;line-height:26px}

/* role picker */
.vb-role{display:flex;flex-direction:column;gap:2px;text-align:left;padding:16px 18px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-family:var(--font-sans);color:var(--ink);min-height:72px}
.vb-role:hover{background:var(--surface-hover)}
.vb-role-on{border:2px solid var(--primary);background:var(--primary-soft)}

/* inputs */
.vb-field{display:flex;flex-direction:column;gap:6px}
.vb-field label{font:500 14px/20px var(--font-sans);color:var(--ink)}
.vb-input{min-height:48px;padding:11px 14px;border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:400 16px/24px var(--font-sans);width:100%}
.vb-input-pc{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}
.vb-input-pc::placeholder{text-transform:none;letter-spacing:0}

/* evidence: three colours, three kinds of source (green stays for status only) */
.lr-source-register{color:var(--primary)}
.lr-source-upload{color:var(--teal-ink)}
.lr-source-confirmed{color:var(--orange-ink)}
.lr-btn{min-height:44px}
