/* Kartlegg visual system v3.
 * Owns shared geometry, type rhythm, surface depth and interactive states.
 * Theme files still own palette. Clinical score and escalation colors are excluded.
 */
:root{
 --ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-5:22px;--ui-space-6:30px;
 --ui-radius-control:11px;--ui-radius-card:17px;--ui-radius-panel:21px;
 --ui-control-height:44px;--ui-border-soft:color-mix(in srgb,var(--line) 86%,var(--accent) 14%);
 --ui-surface-soft:color-mix(in srgb,var(--paper) 94%,var(--accent-bg) 6%);
 --ui-surface-raised:color-mix(in srgb,var(--paper) 88%,var(--accent-bg) 12%);
 --ui-shadow-card:0 12px 36px color-mix(in srgb,var(--ink) 7%,transparent);
 --ui-shadow-raised:0 17px 44px color-mix(in srgb,var(--ink) 11%,transparent);
 --ui-focus:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent);
}
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.006em}
.main{min-width:0}
.skip-link{position:fixed;z-index:10000;left:12px;top:12px;transform:translateY(-160%);padding:12px 16px;border-radius:10px;background:var(--ink);color:var(--paper);font-weight:800}
.skip-link:focus{transform:none;outline:3px solid var(--accent);outline-offset:3px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.intro{gap:var(--ui-space-5);margin-bottom:var(--ui-space-5)}
.intro h1{font-size:clamp(28px,3vw,42px);line-height:1.04;letter-spacing:-.045em;text-wrap:balance}
.intro p:not(.eyebrow){max-width:68ch;line-height:1.6}
.eyebrow{font-size:11px;letter-spacing:.13em}
.chip{border-radius:999px;padding:8px 12px;font-size:10px;letter-spacing:.035em}

/* Three stable depth levels: canvas, primary panels and nested controls. */
.section{
 border-radius:var(--ui-radius-panel)!important;border-color:var(--ui-border-soft);
 box-shadow:var(--ui-shadow-card);margin-bottom:var(--ui-space-5);
}
:is(.toolbox,.v081-tool-search,.profile-dialog,.clinical-tool-dialog,.v08-dialog,.sim-panel,.learning-flow){
 border-radius:var(--ui-radius-card);border-color:var(--ui-border-soft);
}
:is(.field,.meta-line,.v10-optional-gcs,.tool-favorites,.season-theme-controls){
 border-radius:var(--ui-radius-card);background:var(--ui-surface-soft);border-color:var(--ui-border-soft);
}
.section-header{gap:var(--ui-space-3);align-items:flex-start}
.section-header>div:nth-child(2){min-width:0;flex:1}
.section-header h2{font-size:clamp(18px,2vw,23px);line-height:1.18;letter-spacing:-.025em;text-wrap:balance}
.section-header p{max-width:72ch;line-height:1.55}
.section-symbol{
 display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;
 border-radius:13px!important;box-shadow:inset 0 1px 0 #fff6,0 5px 14px color-mix(in srgb,var(--ink) 8%,transparent);
}
.ui-icon-svg{display:block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.section-symbol .ui-icon-svg{width:21px;height:21px}
.score-icon .ui-icon-svg{width:20px;height:20px}
.about-v0993-card-icon .ui-icon-svg{width:20px;height:20px}

/* Navigation uses one line-icon language in every theme. */
.nav{min-height:46px;border-radius:var(--ui-radius-control);gap:11px;font-weight:720;letter-spacing:-.01em}
.nav .ico{display:inline-grid;place-items:center;flex:0 0 22px;width:22px;height:22px;font-size:20px}
.nav .ico .ui-icon-svg{width:20px;height:20px}
.nav:is(:hover,:focus-visible){transform:none}
.nav:is(.active,[aria-current="page"]){box-shadow:inset 0 1px 0 #fff7,0 5px 16px color-mix(in srgb,var(--accent) 13%,transparent)}

/* Forms keep the same vertical rhythm and state language across skins. */
.fields{gap:var(--ui-space-3)}
.field{padding:15px;box-shadow:none!important}
.field-head{min-height:25px;gap:9px}
.field :is(label,.field-label),.meta-line label{font-size:12px;font-weight:780;line-height:1.35;letter-spacing:-.006em}
.field .hint{font-size:11px;line-height:1.48;margin-top:8px}
:is(.control-wrap,.meta-line input,.v081-search-field,input:not([type="radio"]):not([type="checkbox"]):not([type="range"]),select){
 min-height:var(--ui-control-height);border-radius:var(--ui-radius-control);
}
.control-wrap{overflow:hidden}
:is(input,select,textarea,button):focus-visible{box-shadow:var(--ui-focus);outline-offset:2px}
.btn,.btn-inline,.btn-secondary,.btn-primary,.theme-switch,.v10-now-button{border-radius:var(--ui-radius-control);min-height:var(--ui-control-height)}
.btn-primary{font-weight:820;letter-spacing:-.008em}
.form-actions{gap:var(--ui-space-3)}
.btn .ui-icon-svg,.btn-inline .ui-icon-svg,.dialog-close .ui-icon-svg,.mobile-toggle .ui-icon-svg{width:19px;height:19px;flex:0 0 19px}
:is(.btn,.btn-inline,[data-icon]){display:inline-flex;align-items:center;justify-content:center;gap:8px}
.dialog-close{display:inline-grid!important;place-items:center;min-width:44px;min-height:44px}

/* The assessment page moves directly from input to response. */
.result-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--ui-border-soft)}
#resultater.is-ready{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 8%,transparent),var(--ui-shadow-raised)}
.next-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.next-step-card{display:flex;gap:11px;padding:15px;border:1px solid var(--ui-border-soft);border-radius:var(--ui-radius-card);background:var(--ui-surface-soft)}
.next-step-card>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:var(--accent-bg);color:var(--accent);font-weight:850}
.next-step-card p{margin:.35rem 0 0;line-height:1.5;overflow-wrap:anywhere}
.release-v11{margin-top:var(--ui-space-5)}

html{scroll-padding-top:90px}
:is(h1,h2,h3,p,li,label,button,a,small,strong){overflow-wrap:anywhere}

/* Result cards have stronger information hierarchy without touching risk colors. */
.scores{gap:var(--ui-space-4)}
.score{border-radius:19px;padding:20px;box-shadow:var(--ui-shadow-raised);min-width:0}
.score-top{align-items:center;gap:10px}
.score-top>div{min-width:0}
.score-top strong{font-size:14px;letter-spacing:.035em}
.score-top small{line-height:1.35}
.score-icon{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,currentColor 10%,transparent)}
.score-number{font-size:clamp(44px,6vw,64px);line-height:.95;letter-spacing:-.055em;margin:18px 0 10px}
.score-status{font-weight:830}
.score>p{line-height:1.55}
.score-meter-block{border-radius:13px;margin-top:17px}
.score-bottom{margin-top:15px;line-height:1.5}

/* Tool and learning cards share one calm interaction model. */
.toolgrid,.v099-tools-grid{gap:var(--ui-space-4)}
.toolbox{box-shadow:var(--ui-shadow-card);padding:18px}
.toolbox h3{letter-spacing:-.018em;line-height:1.25}
.toolbox p{line-height:1.58}
.tool-tag{border-radius:999px}
@media(hover:hover) and (pointer:fine){
 .toolbox:hover{transform:translateY(-2px);box-shadow:var(--ui-shadow-raised)}
 :is(.btn,.btn-inline,.nav,.service-theme-option,.base-theme-option):hover{filter:brightness(.985)}
}

/* Each service keeps its identity at the canvas and accents, not in clinical states. */
:root[data-service-theme="hospital"] body{background:radial-gradient(circle at 92% 3%,#dcedff 0,transparent 31%),linear-gradient(155deg,#f8fbff,var(--bg))}
:root[data-service-theme="ambulance"] body{background:radial-gradient(circle at 88% 4%,#3a3f21 0,transparent 28%),linear-gradient(150deg,#0f1112,var(--bg))}
:root[data-service-theme="urgent"] body{background:radial-gradient(circle at 91% 2%,#1b6551 0,transparent 29%),linear-gradient(150deg,#03251f,var(--bg))}
:root[data-service-theme="homecare"] body{background:radial-gradient(circle at 88% 3%,#d9f1eb 0,transparent 34%),linear-gradient(155deg,#fbfefd,var(--bg))}
:root[data-service-theme]:not([data-service-theme="custom"]) .section-symbol{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}
:root[data-service-theme="ambulance"] :is(.section,.toolbox),
:root[data-service-theme="urgent"] :is(.section,.toolbox){box-shadow:0 14px 34px #001c1a52}
:root[data-service-theme="hospital"] :is(.section,.toolbox),
:root[data-service-theme="homecare"] :is(.section,.toolbox){box-shadow:0 12px 34px color-mix(in srgb,var(--accent) 8%,transparent)}

/* Personal identities change atmosphere while retaining the common reading grid. */
:root[data-personal-mode]:where(:not([data-personal-mode="philip"])) :is(.section,.toolbox){border-radius:var(--ui-radius-panel)!important}
:root[data-personal-mode]:where(:not([data-personal-mode="philip"])) .section-symbol{background:var(--pm-subpanel)!important;color:var(--pm-surface-ink)!important;border-color:var(--pm-card-border)!important}
:root[data-personal-mode]:where(:not([data-personal-mode="philip"])) .score-icon{border:1px solid color-mix(in srgb,currentColor 16%,transparent)}

/* Theme gallery uses consistent previews and selection feedback. */
.base-theme-option,.service-theme-option,.appearance-options label{border-radius:14px}
.base-theme-option:has(input:checked),.service-theme-option:has(input:checked),.appearance-options label:has(input:checked){
 box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 42%,transparent),0 8px 20px color-mix(in srgb,var(--accent) 10%,transparent);
}
.service-theme-preview,.base-theme-preview{box-shadow:inset 0 1px 0 #fff8,0 6px 16px #071a3124}

@media(max-width:770px){
 :root{--ui-shadow-card:0 6px 18px color-mix(in srgb,var(--ink) 6%,transparent);--ui-shadow-raised:0 8px 22px color-mix(in srgb,var(--ink) 9%,transparent)}
 .intro{margin-bottom:17px}.intro h1{font-size:30px}
 .section{border-radius:17px!important;margin-bottom:15px}
 .section-header{gap:10px}.section-symbol{flex-basis:38px;width:38px;height:38px;border-radius:12px!important}
 .field{padding:13px}.score{padding:17px}.score-number{font-size:48px}
 .toolbox{padding:16px}.nav{min-height:48px}
 .next-step-grid{grid-template-columns:1fr}.result-actions>*{flex:1 1 220px}
}
@media(max-width:480px){
 .intro{align-items:flex-start}.intro h1{font-size:28px}
 .section-header h2{font-size:18px}.section-symbol{flex-basis:36px;width:36px;height:36px}
 .score{border-radius:16px;padding:15px}.score-number{font-size:44px}
 .form-actions .btn,.actions-right .btn{min-height:46px}
 .result-actions{display:grid;grid-template-columns:1fr}.result-actions>*{width:100%}
}
@media(max-width:360px){
 .section{padding-left:12px!important;padding-right:12px!important}.score-meter-scale small{font-size:9px}.chip{white-space:normal}
}
@media(min-resolution:1.8dppx) and (max-width:900px){.actions-right,.form-actions{flex-wrap:wrap}.form-actions>*{min-width:0}}
@media(prefers-reduced-motion:reduce){
 :is(.toolbox,.btn,.btn-inline,.nav,.service-theme-option,.base-theme-option){transition:none!important;transform:none!important}
}
@media(forced-colors:active){
 .section,.field,.toolbox,.score,.section-symbol,.next-step-card{border:1px solid CanvasText}
 .ui-icon-svg{stroke:currentColor}
}
