/* 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}

/* Guides index: newest guide featured on page one, then a grid. Surfaces step in tone, not lines. */
.gi{max-width:1200px;width:100%;margin:0 auto;padding:48px 24px 96px;display:flex;flex-direction:column;gap:32px;box-sizing:border-box}
.gi-head{display:flex;flex-direction:column;gap:16px;max-width:900px}
.gi-head h1{margin:0;font-size:56px;line-height:60px;font-weight:600;letter-spacing:-0.025em}
.gi-head p{margin:0;font-size:18px;line-height:28px;color:var(--ink-2)}
.gi-filters ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gi-filter{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);font:500 16px/20px var(--font-sans);text-decoration:none;transition:background-color .15s ease,color .15s ease}
.gi-filter:hover{background:var(--selected);color:var(--primary)}
.gi-filter[aria-current="page"]{background:var(--primary);color:var(--on-primary)}
.gi-count{font-weight:400;opacity:.8}
.gi-meta{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:14px;line-height:20px;color:var(--muted)}
.gi-new{display:inline-flex;padding:2px 8px;border-radius:var(--radius-sm);background:var(--orange-soft);color:var(--orange-ink);font-weight:600}
.gi-topic{font-weight:600}
.gi-topic-blue{color:var(--primary)}
.gi-topic-teal{color:var(--teal-ink)}
.gi-topic-orange{color:var(--orange-ink)}
.gi-feature{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px 48px;padding:40px;border-radius:var(--radius-lg);background:var(--surface)}
.gi-feature>h2{grid-column:1/-1;max-width:30em}
.gi-feature-main{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.gi-feature h2{margin:0;font-size:36px;line-height:44px;font-weight:600;letter-spacing:-0.02em}
.gi-feature h2 a{color:var(--ink);text-decoration:none}
.gi-feature h2 a:hover{color:var(--primary);text-decoration:underline;text-underline-offset:4px}
.gi-feature-summary{margin:0;font-size:18px;line-height:28px;color:var(--ink-2);max-width:40em}
.gi-feature-cta{margin-top:8px}
.gi-feature-toc{padding:24px;border-radius:var(--radius-md);background:var(--paper);align-self:start}
.gi-feature-toc h3{margin:0 0 12px;font-size:16px;line-height:24px;font-weight:600;color:var(--ink)}
.gi-feature-toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.gi-feature-toc a{display:block;padding:8px 0;color:var(--primary);text-decoration:none;font-size:16px;line-height:22px}
.gi-feature-toc a:hover{text-decoration:underline;text-underline-offset:3px}
.gi-checklist{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding:28px 32px;border-radius:var(--radius-lg);text-decoration:none}
.gi-checklist-text{display:flex;flex-direction:column;gap:6px;flex:1 1 420px;color:var(--ice);font-size:16px;line-height:24px}
.gi-checklist-title{color:#fff;font-size:24px;line-height:32px;font-weight:600}
.gi-list{display:flex;flex-direction:column;gap:20px}
.gi-list-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px}
.gi-list-head h2{margin:0;font-size:28px;line-height:36px;font-weight:600;letter-spacing:-0.01em}
.gi-list-head p{margin:0;font-size:14px;color:var(--muted)}
.gi-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.gi-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gi-grid li{display:flex}
.gi-card{flex:1;display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:var(--radius-md);background:var(--surface);color:var(--ink);text-decoration:none;transition:background-color .15s ease,transform .15s ease}
.gi-card:hover{background:var(--selected)}
.gi-card:hover .gi-card-title{color:var(--primary)}
.gi-card:active{transform:scale(.99)}
.gi-card-title{font-size:20px;line-height:26px;font-weight:600}
.gi-card-summary{font-size:16px;line-height:24px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.gi-card .gi-meta{margin-top:auto;padding-top:4px}
.gi-pages{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.gi-page{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;border-radius:var(--radius-sm);background:var(--surface);color:var(--primary);font:500 16px/20px var(--font-sans);text-decoration:none;box-sizing:border-box}
a.gi-page:hover{background:var(--selected)}
.gi-page[aria-current="page"]{background:var(--primary);color:var(--on-primary)}
.gi-note{margin:0;font-size:14px;line-height:22px;color:var(--muted);max-width:46em}
@media (max-width:1100px){.gi-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.gi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.gi-feature{grid-template-columns:1fr;gap:24px;padding:28px}.gi-feature h2{font-size:30px;line-height:36px}.gi-head h1{font-size:44px;line-height:50px}}
@media (max-width:640px){
  .gi{padding:32px 16px 64px;gap:24px}
  .gi-head h1{font-size:32px;line-height:38px}
  .gi-head p{font-size:16px;line-height:26px}
  .gi-feature{padding:24px 20px}
  .gi-feature h2{font-size:24px;line-height:30px}
  .gi-feature-summary{font-size:16px;line-height:26px}
  .gi-grid,.gi-grid-4{grid-template-columns:1fr}
  .gi-checklist{padding:24px 20px}
}
@media (prefers-reduced-motion:reduce){.gi-filter,.gi-card{transition:none}.gi-card:active{transform:none}}
