@font-face{font-family:'DM Sans';src:url('./DMSans.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--font-body:'DM Sans',Arial,sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1rem;--text-lg:1.1875rem;--text-xl:1.5rem;--text-2xl:clamp(1.75rem,1.4rem + 1.2vw,2.25rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--color-bg:#f3f5f7;--color-surface:#fff;--color-subtle:#eef3f7;--color-text:#1d2a35;--color-muted:#536576;--color-border:#dbe3e9;--color-primary:#1d587c;--color-primary-hover:#123e5b;--color-primary-soft:#e4eff6;--color-success:#1b6e43;--color-warning:#784712;--color-warning-bg:#fcf2e4;--color-error:#963b35;--color-error-bg:#fbeeea;--radius:12px;--shadow:0 1px 2px rgba(20,40,60,.05),0 4px 16px rgba(20,40,60,.04);color-scheme:light}
[data-theme="dark"]{--color-bg:#121b22;--color-surface:#1a2630;--color-subtle:#22323e;--color-text:#e3edf3;--color-muted:#a9bac7;--color-border:#334552;--color-primary:#94c9ea;--color-primary-hover:#bbdff5;--color-primary-soft:#1f3a4c;--color-success:#86d3a8;--color-warning:#efc991;--color-warning-bg:#3b3123;--color-error:#ffb8ad;--color-error-bg:#422d2c;--shadow:none;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;scroll-padding-top:var(--space-4)}
body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);line-height:1.55;color:var(--color-text);background:var(--color-bg)}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{line-height:1.25;text-wrap:balance}
h2{font-size:var(--text-lg);font-weight:700;letter-spacing:-.015em;margin-bottom:var(--space-3)}
h3{font-size:var(--text-sm);font-weight:700;margin:var(--space-4) 0 var(--space-2)}
p{margin-bottom:var(--space-3);max-width:78ch}
a{color:var(--color-primary);text-underline-offset:3px}
a:hover{color:var(--color-primary-hover)}
button{border:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-2) var(--space-4);border-radius:8px;min-height:44px;cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:background .15s,border-color .15s}
button:hover{background:var(--color-subtle)}
button:disabled{opacity:.5;cursor:not-allowed}
.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}
.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}
.primary.done{background:var(--color-success);border-color:var(--color-success)}
.ghost{border-color:transparent;background:transparent;color:var(--color-muted);font-weight:500}
:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}

header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);max-width:1040px;margin:auto;padding:var(--space-5) var(--space-5) var(--space-3)}
.brand{display:flex;align-items:center;gap:var(--space-3)}
.brand svg{color:var(--color-primary);flex-shrink:0}
.brand h1{font-size:var(--text-xl);font-weight:700;letter-spacing:-.03em;line-height:1.15}
.brand small{display:block;font-size:var(--text-xs);color:var(--color-muted)}
main{max-width:1040px;margin:auto;padding:0 var(--space-5) var(--space-6)}

.panel{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:var(--space-3);box-shadow:var(--shadow)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}
.section-head h2{margin-bottom:0}
.small,small{font-size:var(--text-xs);color:var(--color-muted);font-weight:400}
.hint{margin:var(--space-3) 0 0}

.fields{display:grid;gap:var(--space-3)}
.measure{grid-template-columns:repeat(5,minmax(0,1fr))}
.two{grid-template-columns:repeat(2,minmax(0,1fr))}
label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);font-weight:600;color:var(--color-muted);min-width:0}
input:not([type=checkbox]),select,textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;width:100%;min-height:42px;padding:var(--space-2) var(--space-3);font-size:var(--text-base);color:var(--color-text);transition:border-color .15s}
input::placeholder,textarea::placeholder{color:var(--color-muted);opacity:.8;font-weight:400}
input:not([type=checkbox]):focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px var(--color-primary-soft)}
textarea{resize:vertical;line-height:1.55}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);flex-shrink:0;cursor:pointer;margin-top:2px}

.check{display:flex;flex-direction:row;align-items:flex-start;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--color-text)}
.check small{display:block;font-size:var(--text-xs)}

/* Risikofaktorer og kendte sygdomme: samme stramme gitter */
.opts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.opt{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:38px;padding:6px 9px;font-size:.875rem!important;hyphens:auto;overflow-wrap:anywhere;border:1px solid var(--color-border);border-radius:6px;font-size:var(--text-sm);font-weight:500;color:var(--color-text);line-height:1.25;cursor:pointer;transition:background .15s,border-color .15s}
.opt:hover{border-color:var(--color-primary)}
.opt:has(input:checked){background:var(--color-primary-soft);border-color:var(--color-primary)}
.opt input{margin:0}
.opt.sel{grid-column:span 2;justify-content:space-between;padding-block:3px;cursor:default}
.opt.sel select{width:auto;min-width:170px;min-height:32px;padding:2px 8px;font-size:var(--text-sm)}
.opt.sel:has(select:focus){border-color:var(--color-primary)}
.defs{margin:var(--space-2) 0 0;max-width:none}
.submitbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:var(--space-6);box-shadow:var(--shadow)}
.confirm{align-items:center}
.confirm input{margin-top:0}
.actions{display:flex;gap:var(--space-2)}
.actions .primary{min-width:180px;display:flex;align-items:center;justify-content:center;gap:var(--space-2)}
.error{flex-basis:100%;padding:var(--space-3) var(--space-4);background:var(--color-error-bg);color:var(--color-error);border-radius:8px;font-size:var(--text-sm)}
.error ul{padding-left:var(--space-5)}

/* Resultat */
.result{border-color:var(--color-primary);border-width:1.5px}
.targets{display:flex;gap:var(--space-2)}
.target small{display:block;font-size:var(--text-xs);opacity:.9;margin-top:2px;color:inherit}
.target.bp{background:var(--color-primary-soft);color:var(--color-text)}
.target.bp span{color:var(--color-muted);opacity:1}
.hero{display:block;margin-bottom:var(--space-4)}
.target{background:var(--color-subtle);color:var(--color-text);border-radius:10px;padding:var(--space-3) var(--space-4);min-width:0;flex:1}
.target span{display:block;font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.target strong{display:block;font-size:var(--text-lg);font-weight:700;line-height:1.25;font-variant-numeric:tabular-nums}
.target.none{background:var(--color-subtle);color:var(--color-text)}
.eyebrow{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-1)}
.verdict h2{font-size:var(--text-xl);color:var(--color-primary);margin-bottom:var(--space-1)}
.verdict p:last-child{margin:0;font-size:var(--text-sm)}
.verdict h2{max-width:48ch;margin-bottom:var(--space-3);text-wrap:pretty}
.target-details{margin-top:var(--space-4);border-top:1px solid var(--color-border)}
.target-details>summary{cursor:pointer;padding:var(--space-3) 0;min-height:44px;font-size:var(--text-sm);font-weight:600}
.target-details .targets{margin-bottom:var(--space-3)}
.target-details #targetWhy{margin:0}
.immediate{margin-bottom:var(--space-4)}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}
.tile{background:var(--color-subtle);border-radius:8px;padding:var(--space-3);display:flex;flex-direction:column;gap:2px;min-width:0}
.tile span{font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}
.tile strong{font-size:var(--text-lg);font-variant-numeric:tabular-nums;line-height:1.25}
.tile small{font-size:var(--text-xs);color:var(--color-muted)}
.tile.ok strong{color:var(--color-success)}.tile.warn strong{color:var(--color-warning)}
#warnings:not(:empty){margin-top:var(--space-3)}
.notice{font-size:var(--text-sm);background:var(--color-warning-bg);color:var(--color-warning);padding:var(--space-2) var(--space-3);border-radius:8px;margin-bottom:var(--space-2);max-width:none}
#stale{margin-bottom:var(--space-3)}
#output.stale .panel{opacity:.5}

/* Journalnotat */
.journal #note{font-size:var(--text-sm);background:var(--color-subtle);min-height:220px;font-family:var(--font-body)}
#copy{min-width:210px}
#copyStatus:empty{display:none}
#copyStatus{margin:var(--space-2) 0 0}
.journal .fields{margin-top:var(--space-3)}
.journal>.check{margin-top:var(--space-3)}
.journal>p.small:last-child{margin:var(--space-3) 0 0}

/* Fold-ud */
.fold{padding:0}
.fold>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);font-weight:700;font-size:var(--text-sm);min-height:52px}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::after{content:"+";font-size:1.25rem;font-weight:400;color:var(--color-muted);line-height:1}
.fold[open]>summary::after{content:"–"}
.fold[open]>summary{border-bottom:1px solid var(--color-border)}
.fold>:not(summary){margin-left:var(--space-5);margin-right:var(--space-5)}
.fold>:last-child{margin-bottom:var(--space-5)}
.fold>:nth-child(2){margin-top:var(--space-4)}
.fold p,.fold li,.fold dd{font-size:var(--text-sm)}
#patientWords{font-size:var(--text-base)}
.action-list{margin-bottom:var(--space-3)}
.action-list>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--space-4);padding:var(--space-2) 0;border-top:1px solid var(--color-border)}
.action-list>div:first-child{border-top:0}
.action-list dt{font-size:var(--text-sm);color:var(--color-muted);font-weight:600}
.action-list dd{margin:0}
#measures h3{margin-top:var(--space-4)}
.table-scroll{overflow:auto;margin-block:var(--space-3)}
table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}
th,td{text-align:left;vertical-align:top;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}
th{background:var(--color-subtle)}
ol,ul.sources{padding-left:var(--space-5);margin-bottom:var(--space-3)}
li{padding-left:var(--space-1);margin-bottom:var(--space-2)}

footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3);color:var(--color-muted);font-size:var(--text-xs);padding-top:var(--space-4)}
.skip{position:absolute;top:-100px;padding:var(--space-3);background:var(--color-surface)}
.skip:focus{top:0;z-index:5}
.hidden{display:none!important}
.workup{margin:var(--space-4) 0 0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius)}
.workup legend{font-weight:700;font-size:var(--text-base);padding:0 var(--space-2)}
.workup .fields{margin:var(--space-3) 0}
.workup .secondary-label{display:grid;gap:var(--space-2);margin-top:var(--space-3);font-weight:600;font-size:var(--text-sm)}
.workup select{width:100%;min-width:0}
#referralNote{width:100%;font-size:var(--text-sm);line-height:1.55;resize:vertical;white-space:pre-wrap}
#referralSection .section-head{flex-wrap:wrap;gap:var(--space-3)}

@media(max-width:900px){.hero{grid-template-columns:1fr;gap:var(--space-3)}.measure{grid-template-columns:repeat(3,minmax(0,1fr))}.opts{grid-template-columns:repeat(3,minmax(0,1fr))}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){header{padding:var(--space-4) var(--space-3) var(--space-2)}main{padding:0 var(--space-3) var(--space-6)}.panel{padding:var(--space-4)}.measure{grid-template-columns:repeat(2,minmax(0,1fr))}.opts{grid-template-columns:1fr 1fr}.opt.sel{grid-column:1/-1}.two{grid-template-columns:1fr}.hero{grid-template-columns:1fr;gap:var(--space-3)}.targets{display:grid;grid-template-columns:1fr 1fr}.target{min-width:0}.target strong{font-size:var(--text-xl);white-space:normal}.submitbar{padding:var(--space-4)}.actions{width:100%}.actions .primary{flex:1}#copy{width:100%}.action-list>div{grid-template-columns:1fr;gap:0}.fold>summary{padding:var(--space-4)}.fold>:not(summary){margin-left:var(--space-4);margin-right:var(--space-4)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
