/* ============================================================
   You're Not Alone — base (reset, typografi, fokus, delte partial-regler).
   Loades efter tokens.css i det offentlige shell. Ingen komponenter her —
   kun det browseren ellers ville tegne selv, og de partials der SKAL se ens ud
   under begge shells (_Toast, _CookieBanner, submit-guard, felt-fejl).
   ============================================================ */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
    margin:0;
    font-family:var(--font-ui);
    font-size:var(--fs-base);
    line-height:var(--lh-body);
    color:var(--pub-ink);
    background:var(--pub-bg);
    -webkit-font-smoothing:antialiased;
    overflow-x:clip;
    accent-color:var(--pub-green);
    caret-color:var(--pub-green);
}

/* ---- Browserens egne flader bærer også designet ---- */
::selection { background:var(--pub-green-soft); color:var(--pub-green-ink); }
html[data-theme="dark"] ::selection { background:var(--pub-green); color:#fff; }
* { scrollbar-color:var(--pub-line-2) transparent; scrollbar-width:thin; }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:var(--pub-line-2); border-radius:999px; border:2px solid var(--pub-bg); }
::-webkit-scrollbar-track { background:transparent; }

/* ---- Tekst ---- */
h1,h2,h3,h4 { font-family:var(--font-ui); font-weight:600; line-height:var(--lh-heading); color:var(--pub-ink);
    margin:0 0 .45em; letter-spacing:-.012em; text-wrap:balance; }
h1 { font-size:var(--fs-h1); line-height:var(--lh-tight); letter-spacing:-.02em; }
h2 { font-size:var(--fs-h2); }
h3 { font-size:var(--fs-h3); }
h4 { font-size:var(--fs-lg); }
p { margin:0 0 1em; color:var(--pub-ink-2); }
p:last-child { margin-bottom:0; }
a { color:var(--pub-green-ink); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.16em;
    text-decoration-color:color-mix(in srgb, currentColor 45%, transparent); transition:color .15s ease, text-decoration-color .15s ease; }
a:hover { color:var(--pub-green); text-decoration-color:currentColor; }
strong, b { font-weight:600; }
small { font-size:var(--fs-sm); }
img, video, svg { max-width:100%; display:block; }
img { height:auto; }
ul, ol { padding-left:1.25em; }
hr { border:0; border-top:1px solid var(--pub-line); margin:var(--sp-6) 0; }
table { border-collapse:collapse; font-variant-numeric:tabular-nums; }
button, input, select, textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
:disabled { cursor:not-allowed; }

/* ---- Tastaturfokus: én tydelig ring i paletten ---- */
:focus-visible { outline:3px solid var(--pub-green); outline-offset:3px; border-radius:var(--r-sm); }
:focus:not(:focus-visible) { outline:none; }

/* ---- Skip-link: synlig kun ved tastaturfokus ---- */
.skip-link { position:absolute; left:-999px; top:.6rem; z-index:2100; background:var(--pub-green); color:#fff;
    padding:.6em 1.1em; border-radius:var(--r-pill); font-weight:600; text-decoration:none; }
.skip-link:focus { left:.6rem; }

/* ---- Utilities ---- */
[hidden] { display:none !important; }
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.muted { color:var(--pub-muted); }
.mb-0 { margin-bottom:0 !important; }
.mt-0 { margin-top:0 !important; }

/* ---- Bevægelse: én lov for hele sitet ---- */
@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important;
        transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* ============================================================
   Delte partials — kopieret fra site.css så de ser ens ud under begge shells.
   ============================================================ */

/* Toasts (_Toast.cshtml): ok forsvinder selv (public.js), fejl bliver stående. */
.toast-stack { position:fixed; right:1rem; bottom:1rem; z-index:1200; display:flex; flex-direction:column;
    gap:.6rem; max-width:min(420px, calc(100vw - 2rem)); }
.toast { display:flex; align-items:flex-start; gap:.7rem; padding:.9rem 1rem; border-radius:var(--r-md);
    border:1px solid var(--pub-line); background:var(--pub-surface); box-shadow:var(--shadow-2); font-size:var(--fs-sm);
    color:var(--pub-ink); opacity:1; transition:opacity .3s ease, transform .3s ease; }
.toast.ok { background:var(--pub-green-soft); border-color:transparent; color:var(--pub-green-ink); }
.toast.error { background:var(--pub-danger-soft); border-color:transparent; color:var(--pub-danger); }
.toast-hide { opacity:0; transform:translateY(6px); }
.toast-close { margin-left:auto; border:0; background:none; cursor:pointer; font-size:1.1rem;
    line-height:1; color:inherit; opacity:.7; padding:.1em .25em; border-radius:var(--r-sm); }
.toast-close:hover { opacity:1; }

/* Cookie-samtykke (_CookieBanner.cshtml) */
.cookie-consent { position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:2000; max-width:640px; margin:0 auto;
    background:var(--pub-ink); color:#f4f6f5; border-radius:var(--r-md); padding:.9rem 1.1rem;
    box-shadow:var(--shadow-3); display:flex; gap:1rem; align-items:center; flex-wrap:wrap;
    justify-content:space-between; font-size:var(--fs-sm); line-height:1.45; }
html[data-theme="dark"] .cookie-consent { background:var(--pub-surface-2); color:var(--pub-ink); border:1px solid var(--pub-line-2); }
.cookie-consent > div { flex:1 1 320px; }
.cookie-consent a { color:inherit; white-space:nowrap; }
.cookie-consent form { margin:0; }

/* Submit-guard: knappen låses og viser en lille ring imens (public.js). */
.btn-loading { pointer-events:none; opacity:.75; }
.btn-loading::after { content:""; display:inline-block; width:.9em; height:.9em; margin-left:.5em;
    vertical-align:-.1em; border:2px solid currentColor; border-right-color:transparent;
    border-radius:50%; animation:btn-spin .7s linear infinite; }
@keyframes btn-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .btn-loading::after { animation:none; opacity:.5; } }

/* Felt-fejl fra validering (asp-validation-for) */
.field-error { display:block; color:var(--pub-danger); font-size:var(--fs-xs); margin-top:.3rem; font-weight:500; }
.field-error:empty { display:none; }
input.input-validation-error, textarea.input-validation-error, select.input-validation-error { border-color:var(--pub-danger) !important; }
