/* Passphrase Lab: the Journal template (templates/generic/journal), own blue accent. Faces are self-hosted. */
@font-face{font-family:"STIX Two Text";src:url(/assets/fonts/stix-two-text-latin.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"STIX Two Text";src:url(/assets/fonts/stix-two-text-latin-ext.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"STIX Two Text";src:url(/assets/fonts/stix-two-text-italic-latin.woff2) format("woff2");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(/assets/fonts/libre-franklin-latin.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Libre Franklin";src:url(/assets/fonts/libre-franklin-latin-ext.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --paper:#FCFCFA;--ink:#14181D;--ink-2:#4C525A;--tint:#EDF0F3;--accent:#1A4C8B;--on-accent:#FFFFFF;--ok:#1C6B3A;--warn:#9A4A00;--err:#B3241B;
  --serif:"STIX Two Text",Georgia,"Times New Roman",serif;--sans:"Libre Franklin","Helvetica Neue",Helvetica,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#14181D;--ink:#E9ECEF;--ink-2:#B4BBC3;--tint:#20262D;--accent:#8FB8EA;--on-accent:#0D1826;--ok:#79CF9A;--warn:#E7A95B;--err:#F2918A;
  color-scheme:dark;
}}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/28px var(--serif)}
a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}
.wrap{max-width:1000px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}

/* Header */
.hd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;min-height:64px;border-bottom:1px solid var(--ink)}
.brand{display:inline-flex;align-items:center;min-height:44px;font:700 22px/28px var(--serif);color:var(--ink);text-decoration:none}
.nav{display:flex;flex-wrap:wrap;list-style:none;margin:0 -10px}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 10px;font:500 16px/20px var(--sans);color:var(--ink);text-decoration:none}
.nav a:hover{text-decoration:underline;text-underline-offset:7px}
.nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}

/* Page */
main{padding:28px 0 8px;display:grid;gap:24px;min-width:0}
main>*{min-width:0}
.kind{font:600 15px/20px var(--sans);color:var(--accent)}
.title{font:600 clamp(32px,6vw,46px)/1.13 var(--serif);letter-spacing:-.01em;text-wrap:balance;margin-top:6px}
.meta{font:400 15px/22px var(--sans);color:var(--ink-2)}
.h2{font:700 28px/34px var(--serif);text-wrap:balance;scroll-margin-top:12px}
.h3{font:700 21px/28px var(--serif);text-wrap:balance;scroll-margin-top:12px}
.n{color:var(--accent);font-variant-numeric:lining-nums tabular-nums;margin-right:10px}
.abs{background:var(--tint);border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);padding:14px 18px 16px;display:grid;gap:8px}
.abs p{max-width:66ch}
.rd{display:grid;gap:14px;min-width:0}
.rd p,.rd ul,.rd ol{max-width:66ch}
.rd ul,.rd ol{padding-left:24px;display:grid;gap:6px}
section{scroll-margin-top:12px}
.note{max-width:66ch;padding:10px 0;border-top:1px solid var(--ink-2);border-bottom:1px solid var(--ink-2)}
.note b{font:700 16px/26px var(--sans);margin-right:4px}

/* Tool box */
.box{background:var(--tint);border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);scroll-margin-top:12px;min-width:0}
.box-h{padding:14px 18px 0;margin:0;font:inherit}
.lab{display:block;font:700 15px/20px var(--sans);color:var(--accent)}
.bt{display:block;margin-top:2px;font:700 22px/28px var(--serif)}
.box-f{padding:14px 18px 18px;display:grid;gap:14px;min-width:0}
.f{display:block;font:600 16px/22px var(--sans)}
.f-h{display:block;font:400 16px/22px var(--sans);color:var(--ink-2)}
.inp{display:block;width:100%;min-height:48px;margin-top:8px;padding:10px 14px;border:1px solid var(--ink-2);border-radius:0;background:var(--paper);color:var(--ink);font:400 18px/26px var(--sans)}
.inp:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-color:var(--ink)}
textarea.inp{resize:none;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;height:84px}
select.inp{cursor:pointer}
.acts{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 20px;border:1px solid var(--accent);border-radius:0;background:var(--accent);color:var(--on-accent);font:600 16px/22px var(--sans);text-decoration:none;cursor:pointer}
.btn:hover{text-decoration:underline}
.btn:disabled{opacity:.6;cursor:progress}
.btn-2{background:transparent;color:var(--ink);border-color:var(--ink)}
.status{font:400 16px/24px var(--sans);min-height:24px}
.seg{display:flex;border:0;padding:0;margin:0;min-width:0}
.seg label{position:relative;flex:1;min-width:0}
.seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.seg span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px;padding:6px 12px;border:1px solid var(--ink);background:var(--paper);font:600 16px/20px var(--sans)}
.seg label+label span{border-left:0}
.seg input:checked+span{background:var(--ink);color:var(--paper)}
.seg input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px;position:relative;z-index:1}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 20px;min-width:0}
.ch{display:flex;align-items:center;gap:10px;min-height:44px;font:400 16px/22px var(--sans);cursor:pointer}
.ch input{width:22px;height:22px;margin:0;accent-color:var(--accent);flex:none}
input[type="range"]{width:100%;margin-top:12px;accent-color:var(--accent);min-height:28px}

/* Report */
.res{background:var(--paper);border-top:1px solid var(--ink);padding:16px 18px 18px;display:grid;gap:18px;min-width:0}
.tw{max-width:100%;overflow-x:auto}
table{width:100%;border-collapse:collapse;font:400 16px/24px var(--sans);font-variant-numeric:lining-nums}
caption{text-align:left;font:600 15px/22px var(--sans);padding-bottom:6px}
th{padding:8px 14px 7px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);font:600 15px/20px var(--sans);text-align:left;vertical-align:bottom}
td{padding:9px 14px 9px 0;vertical-align:top}
tbody tr:last-child td{border-bottom:2px solid var(--ink)}
th:last-child,td:last-child{padding-right:0}
.r{text-align:right;white-space:nowrap}
.tnote{font:400 15px/22px var(--sans);color:var(--ink-2);max-width:66ch}
.st{display:block;font:700 16px/24px var(--sans);white-space:nowrap}
.st-m{display:inline-block;width:1.1em;text-align:center}
.st-fail{color:var(--err)}.st-check{color:var(--warn)}.st-pass{color:var(--ok)}.st-cant{color:var(--ink-2)}
.row-t{display:block}
.row-v{font-weight:600}
.parts{list-style:none;margin-top:4px;display:grid;gap:2px;font-size:15px;line-height:22px}
.next{border-top:2px solid var(--ink);padding-top:12px;display:grid;gap:10px}
.next p{max-width:66ch}
@media (max-width:640px){
  /* On a phone the three-column table becomes stacked rows, so nothing needs sideways scrolling. */
  table.rows,table.rows tbody,table.rows tr,table.rows td{display:block;width:100%}
  table.rows thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  table.rows caption{display:block}
  table.rows tr{padding:10px 0;border-top:1px solid var(--ink-2)}
  table.rows td{padding:2px 0;border:0 !important}
  table.rows tbody tr:last-child{border-bottom:2px solid var(--ink)}
}

@media (max-width:820px){
  /* The provider tables have five columns, so they stack on a small screen. Each cell names its column. */
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
  table.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  table.stack caption{display:block}
  table.stack tr{padding:10px 0;border-top:1px solid var(--ink-2)}
  table.stack td{padding:3px 0;border:0 !important}
  table.stack td:first-child{font-weight:600}
  table.stack td[data-label]::before{content:attr(data-label);display:block;font:600 14px/20px var(--sans);color:var(--ink-2);margin-top:6px}
  table.stack tbody tr:last-child{border-bottom:2px solid var(--ink)}
}

/* Guides list */
.gl-l{list-style:none;border-top:2px solid var(--ink)}
.gl-l li{padding:10px 0 12px;border-bottom:1px solid var(--ink-2)}
.gl-l li:last-child{border-bottom:2px solid var(--ink)}
.gl-l a{font:700 19px/26px var(--serif)}
.gl-l p{font:400 17px/25px var(--serif);max-width:66ch}

/* References */
.cite{font:600 14px/0 var(--sans);text-decoration:none;white-space:nowrap}
.refs{list-style:none;display:grid;gap:6px;padding:0;font:400 16px/24px var(--serif);max-width:66ch;counter-reset:r}
.refs li{display:grid;grid-template-columns:36px minmax(0,1fr);scroll-margin-top:12px}
.refs .rn{color:var(--ink-2)}
.back{font:500 16px/24px var(--sans)}
.ad{font:700 14px/20px var(--sans);border:1px solid currentColor;padding:0 5px;margin-right:6px}

/* Footer */
.ft{border-top:2px solid var(--ink);margin-top:36px;padding:18px 0 30px;display:grid;gap:12px}
.ft-err{padding:10px 0;border-top:1px solid var(--ink-2);border-bottom:1px solid var(--ink-2);font:400 17px/26px var(--serif)}
.ft-err b{font:700 16px/26px var(--sans);margin-right:4px}
.ft-links{display:flex;flex-wrap:wrap;list-style:none;margin:0 0 0 -10px}
.ft-links a{display:flex;align-items:center;min-height:44px;padding:0 10px;font:500 16px/20px var(--sans);color:var(--ink)}
.ft-small{font:400 15px/22px var(--sans);color:var(--ink-2);max-width:72ch}
