/* utilities.css — utility-klasser for refaktorering bort fra inline style=
   ===========================================================================
   Del av Sprint E / Style-src Fase B (CSP unsafe-inline removal).

   Konvensjoner:
   - Prefiks `u-` for alle nye utility-klasser opprettet i denne filen.
   - Eksisterende utility-klasser i components.css (.mt-4, .text-muted, .hidden,
     .gap-2 osv.) brukes uendret — disse repliseres IKKE her.
   - Verdier som matcher --space-N-tokens skal helst bruke eksisterende
     .mt-N/.mb-N/.ml-N i components.css framfor å duplisere her.
   - u-prefiks signaliserer "single-purpose utility, ikke component". Brukes
     for verdier som ikke passer inn i 8 px-skalaen, og for ikke-spacing-
     egenskaper (font-size, color, display, etc.).

   Bruk i templates:
     <div style="margin-top:14px;">  ->  <div class="u-mt-14">
     <div style="font-size:12px; color:var(--muted);">
       ->  <div class="u-fs-12 text-muted">

   Dynamiske stiler (style="width:{{ pct }}%") kan IKKE flyttes hit — disse
   beholdes som inline-style med <!-- dynamic-style -->-kommentar.
   ========================================================================= */

/* ---- Margin-top (off-grid; on-grid bruk .mt-1..6 fra components.css) ---- */
.u-mt-4   { margin-top: 4px !important; }    /* matcher var(--space-1) — alias for .mt-1 */
.u-mt-6   { margin-top: 6px !important; }
.u-mt-8   { margin-top: 8px !important; }    /* matcher var(--space-2) — alias for .mt-2 */
.u-mt-10  { margin-top: 10px !important; }
.u-mt-12  { margin-top: 12px !important; }   /* matcher var(--space-3) — alias for .mt-3 */
.u-mt-14  { margin-top: 14px !important; }
.u-mt-16  { margin-top: 16px !important; }   /* matcher var(--space-4) — alias for .mt-4 */
.u-mt-18  { margin-top: 18px !important; }
.u-mt-20  { margin-top: 20px !important; }   /* matcher var(--space-5) — alias for .mt-5 */
.u-mt-24  { margin-top: 24px !important; }   /* matcher var(--space-6) — alias for .mt-6 */
.u-mt-32  { margin-top: 32px !important; }

/* ---- Margin-bottom ----------------------------------------------------- */
.u-mb-2   { margin-bottom: 2px !important; }
.u-mb-3   { margin-bottom: 3px !important; }
.u-mb-4   { margin-bottom: 4px !important; }
.u-mb-6   { margin-bottom: 6px !important; }
.u-mb-8   { margin-bottom: 8px !important; }
.u-mb-10  { margin-bottom: 10px !important; }
.u-mb-12  { margin-bottom: 12px !important; }
.u-mb-14  { margin-bottom: 14px !important; }
.u-mb-16  { margin-bottom: 16px !important; }
.u-mb-20  { margin-bottom: 20px !important; }
.u-mb-24  { margin-bottom: 24px !important; }
.u-mb-32  { margin-bottom: 32px !important; }

/* ---- Margin-left / Margin-right ---------------------------------------- */
.u-ml-4   { margin-left: 4px !important; }
.u-ml-5   { margin-left: 5px !important; }
.u-ml-6   { margin-left: 6px !important; }
.u-ml-8   { margin-left: 8px !important; }
.u-ml-10  { margin-left: 10px !important; }
.u-ml-12  { margin-left: 12px !important; }
.u-mr-4   { margin-right: 4px !important; }
.u-mr-5   { margin-right: 5px !important; }
.u-mr-6   { margin-right: 6px !important; }
.u-mr-8   { margin-right: 8px !important; }
.u-mr-10  { margin-right: 10px !important; }
.u-mr-12  { margin-right: 12px !important; }

/* ---- Margin shortcuts -------------------------------------------------- */
.u-m-0    { margin: 0; }

/* ---- Padding ----------------------------------------------------------- */
.u-p-card-soft  { padding: 12px 14px; }            /* matchet 8x i topp-10 */
.u-p-stat-box   { padding: 12px 18px; }
.u-p-pill-sm    { padding: 4px 10px; font-size: 13px; }
.u-p-pill-md    { padding: 6px 14px; font-size: 13px; white-space: nowrap; }
.u-p-cell-r     { padding: 7px 8px; text-align: right; }
.u-p-cell-r-b   { padding: 6px 8px; font-weight: 600; text-align: right; }
.u-p-cell-lh    { padding: 6px 8px; text-align: left; border-bottom: 2px solid var(--line); }
.u-p-cell-lh-nw { padding: 6px 8px; text-align: left; border-bottom: 2px solid var(--line); white-space: nowrap; }

/* ---- Font-size --------------------------------------------------------- */
.u-fs-12      { font-size: 12px; }
.u-fs-13      { font-size: 13px; }
.u-fs-085em   { font-size: 0.85em; }
.u-fs-088em   { font-size: 0.88em; }
.u-fs-09em    { font-size: 0.9em; }
.u-fs-075em   { font-size: 0.75em; }

/* ---- Color (kun for verdier som ikke matcher text-muted/danger/...) ---- */
.u-text-danger-strong   { color: #b42318; }
.u-text-success-strong  { color: #15803d; }
.u-text-success-bright  { color: #16a34a; }

/* ---- Composite (sammensatte mønstre fra topp-10) ----------------------- */
.u-meta-small        { font-size: 12px; color: var(--muted); }              /* 15x */
.u-meta-small-em     { font-size: 0.85em; color: var(--muted); }            /* 12x */
.u-meta-small-em-09  { color: var(--muted); font-size: 0.9em; }             /* 12x */
.u-meta-label        { font-size: 12px; display: block; margin-bottom: 3px; } /* 11x */
.u-meta-label-tight  { font-size: 12px; color: var(--muted); margin-bottom: 4px; } /* 8x */
.u-card-soft {
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--panel-alt);
}                                                                            /* 8x */
.u-stat-box {
    background: var(--panel-alt);
    border-radius: 8px;
    padding: 12px 18px;
    min-width: 120px;
}                                                                            /* 5x */
.u-table-compact {
    width: 100%;
    font-size: 0.85em;
    border-collapse: collapse;
}                                                                            /* 5x */
.u-table-th-muted {
    color: var(--muted);
    text-align: left;
    border-bottom: 1px solid var(--line);
}                                                                            /* 5x */
.u-th-label {
    font-size: 0.75em;
    color: var(--muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}                                                                            /* 5x */

/* ---- Stack / Flex helpers (composites brukt 8x+) ----------------------- */
.u-flex-col-gap-2 {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}                                                                            /* 8x */

/* ---- Status-pill aliases (frequently inline) --------------------------- */
.u-pill-brand-soft {
    background: var(--brand-50);
    color: var(--brand-strong);
    border: 1px solid var(--brand-100);
}                                                                            /* 6x */

/* ---- Generic semantic helpers ----------------------------------------- */
.u-strong-text       { color: var(--text); font-weight: 600; }              /* 10x */
.u-nowrap-muted      {
    color: var(--text-muted);
    white-space: nowrap;
    font-weight: 500;
}                                                                            /* 7x */
.u-nowrap-muted-tight {
    color: var(--text-muted);
    white-space: nowrap;
    font-weight: 500;
}                                                                            /* 5x (alias for ovenfor; uten mellomrom-variant) */

/* ---- Display ----------------------------------------------------------- */
.u-d-inline  { display: inline; }
.u-vt-top    { vertical-align: top; }
.u-ws-nowrap { white-space: nowrap; }

/* ---- Vertical separators / borders ------------------------------------- */
.u-section-divider {
    padding: var(--space-3);
    border-bottom: 1px solid var(--line);
}                                                                            /* 6x */

/* =========================================================================
   Runde 2-tillegg (style-src Fase B) — topp-11-20 templates
   ========================================================================= */

/* ---- text-align (manglet i runde 1 — referert i mapping uten regel!) ---- */
.text-left   { text-align: left; }
.text-center { text-align: center; }

/* ---- Padding (cells / spacing) ----------------------------------------- */
.u-p-6-4     { padding: 6px 4px; }                                           /* 8x admin_stripe */
.u-p-6-8     { padding: 6px 8px; }                                           /* 7x admin_regnskap+stripe */
.u-p-4       { padding: 4px !important; }                                               /* 5x admin_stripe */
.u-p-cell-r-narrow { padding: 7px 0 7px 8px; text-align: right; }            /* 3x admin_regnskap */
.u-p-cell-l-b      { padding: 6px 8px 6px 0; font-weight: 600; }             /* 4x admin_regnskap */
.u-p-cell-r-b-alt  { padding: 6px 8px; font-weight: 600; }                   /* 4x admin_regnskap */
.u-p-cell-center   { text-align: center; padding: 8px 6px; }                 /* 8x _pakke_sammenligning */
.u-p-cell-r-light  { padding: 7px 8px; border-bottom: 1px solid var(--border-faint); }
                                                                              /* 2x admin_priser */
.u-p-cell-r-light-b {
    text-align: right;
    padding: 6px 8px;
    border-bottom: 2px solid var(--border);
    white-space: nowrap;
}                                                                             /* 2x admin_priser */

/* ---- Border-separators ------------------------------------------------- */
.u-bb-line-light   { border-bottom: 1px solid var(--line-light, #f0f0f0); }  /* 7x */
.u-bb-line         { border-bottom: 1px solid var(--line); text-align: left; }
                                                                              /* 3x admin_stripe */
.u-p-row-separator { padding: 12px 0; border-bottom: 1px solid var(--line-light, #f0f0f0); }
                                                                              /* 3x admin_stripe */

/* ---- Colors (statiske brand-hex som ikke har eksisterende klasse) ------ */
.u-text-warn-amber       { color: #b45309; }                                 /* 4x admin_selskap_detail */
.u-text-warn-amber-mid   { color: #d97706; }                                 /* 3x admin_probe */
.u-text-warn-yellow-dark { color: #854d0e; }                                 /* 2x admin_priser */
.u-text-danger-bright    { color: #dc2626; }                                 /* 4x admin_probe */
.u-text-success-emerald  { color: #065f46; }                                 /* 3x admin_priser */
.u-text-purple-strong    { color: #5b21b6; }                                 /* 3x admin_priser */
.u-text-gray-500         { color: #6b7280; }                                 /* 3x admin_probe */
.u-text-accent           { color: var(--accent); }                           /* 2x admin_probe */
.u-text-success-var      { color: var(--success, #16a34a); font-weight: 700; }
                                                                              /* 4x _pakke_sammenligning */

/* ---- Backgrounds ------------------------------------------------------- */
.u-bg-panel-alt          { background: var(--panel-alt); }                   /* 3x search */

/* ---- Card-variants ----------------------------------------------------- */
.u-card-soft-thin        {
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
}                                                                             /* 3x admin_selskap_detail */
.u-card-bordered-12 {
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
}                                                                             /* 4x admin_user_detail */

/* ---- Tables ------------------------------------------------------------ */
.u-table-100-13 {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}                                                                             /* 3x admin_priser */
.u-table-w100-mt12 {
    margin-top: 12px;
    width: 100%;
}                                                                             /* 6x admin_statistikk (på <table>) */

/* ---- Typography composites --------------------------------------------- */
.u-fs-13-mb16            { font-size: 13px; margin-bottom: 16px; }           /* 3x admin_priser */
.u-fs-085-mb10           { font-size: 0.85em; color: var(--muted); margin-bottom: 10px; }
                                                                              /* 3x admin_regnskap */
.u-fs-08rem-mb6          { font-size: 0.8rem; color: var(--muted); margin-bottom: 6px; }
                                                                              /* 3x admin_regnskap */
.u-fs-08rem-mb8          { font-size: 0.8rem; color: var(--muted); margin-bottom: 8px; }
                                                                              /* 3x admin_regnskap */
.u-fs-085rem-meta        { font-size: 0.85rem; color: var(--muted); margin: 4px 0 8px; }
                                                                              /* 3x */
.u-fs-12-pill            { font-size: 12px; padding: 3px 8px; }              /* 3x admin_selskap_detail */
.u-fs-11-block           { font-size: 11px; display: block; margin-bottom: 2px; }
                                                                              /* 3x admin_selskap_detail */
.u-fs-16em-strong        { font-size: 1.6rem; font-weight: 700; margin-top: 4px; }
                                                                              /* 3x admin_selskap_detail */
.u-fs-115em-strong       { font-size: 1.15em; font-weight: 700; margin-top: 4px; }
                                                                              /* 3x search */
.u-fs-15rem-strong       { font-size: 1.5rem; font-weight: 700; }            /* 3x admin_user_detail */
.u-fs-08em-muted         { font-size: 0.8em; color: var(--muted); }          /* 2x search */
.u-text-12-muted-mt8     { color: var(--muted); margin-top: 8px; }           /* 3x */
.u-fs-085-strong-muted   { font-size: 0.85em; font-weight: 600; color: var(--text-muted); }
                                                                              /* 4x admin_priser */
.u-text-danger-09em      { color: #b42318; font-size: 0.9em; }               /* 3x admin_regnskap */
.u-monospace-13          { font-family: monospace; font-size: 13px; }        /* 4x admin_selskap_detail */
.u-text-muted-12         { color: var(--muted); font-size: 12px; }           /* 2x admin_selskap_detail */
.u-fs-13-muted           { font-size: 13px; color: var(--muted); }           /* 2x admin_probe */
.u-fs-12-label-block     { font-size: 12px; font-weight: 600; display: block; margin-bottom: 4px; }
                                                                              /* 3x admin_probe */
.u-th-label-pkg          {
    color: var(--muted);
    text-transform: uppercase;
    font-size: 0.75em;
    font-weight: 600;
}                                                                             /* 7x _pakke_sammenligning */
.u-fw-700-105em          { font-weight: 700; font-size: 1.05em; margin-top: 2px; }
                                                                              /* 7x _pakke_sammenligning */
.u-muted-075em-mt1       { color: var(--muted); font-size: 0.75em; margin-top: 1px; }
                                                                              /* 7x _pakke_sammenligning */
.u-muted-072em-block-mt1 { color: var(--muted); font-size: 0.72em; display: block; margin-top: 1px; }
                                                                              /* 3x _pakke_sammenligning */
.u-pill-tiny             { font-size: 0.72em; padding: 4px 9px; }            /* 6x _pakke_sammenligning */

/* ---- Layout / Flex helpers --------------------------------------------- */
.u-flex-row-gap-8        { display: flex; align-items: center; gap: 8px; }   /* 8x admin_user_detail */
.u-flex-between-start    {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}                                                                             /* 4x search */
.u-flex-wrap-between-10  {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
}                                                                             /* 2x search */
.u-flex-row-gap-10-wrap  { display: flex; gap: 10px; flex-wrap: wrap; }      /* 2x admin_probe */
.u-flex-inline-gap-8     { display: inline-flex; gap: 8px; }                 /* 3x */
.u-inline-block-ml-3     { display: inline-block; margin-left: 3px; }        /* 2x search */
.u-pos-top-right         { position: absolute; top: 10px; right: 14px; }     /* 2x search */
.u-blur-locked           { filter: blur(3px); pointer-events: none; user-select: none; }
                                                                              /* 2x search */

/* ---- Code/inline samples ----------------------------------------------- */
.u-code-block-sm {
    background: var(--panel-alt, #f2f4f7);
    padding: 10px;
    border-radius: 4px;
    font-size: 0.8em;
}                                                                             /* 3x */

/* ---- Word/text-wrap ---------------------------------------------------- */
.u-word-break-all { word-break: break-all; }                                 /* 3x */

/* =========================================================================
   Runde 2-tillegg, batch 2 — sub-tail-mønstre (2x+ forekomster)
   ========================================================================= */
.u-fs-1rem               { font-size: 1rem; }                                /* 2x search */
.u-fs-095rem             { font-size: 0.95rem; }                             /* 2x search */
.u-fs-14em-strong        { font-size: 1.4em; font-weight: 700; margin-top: 4px; }
                                                                              /* 2x search */
.u-text-danger-mt4       { color: var(--danger, #ef4444); margin-top: 4px; } /* 2x search */
.u-d-inline-block        { display: inline-block; }                          /* 2x search */
.u-text-muted-09em-mb14  { margin-bottom: 14px; font-size: 0.9em; color: var(--text-muted); }
                                                                              /* 2x search */
.u-text-muted-09em-margin { color: var(--muted); font-size: 0.9em; margin: 8px 0 20px; }
                                                                              /* 2x search */
.u-flex-center-wrap-mb16 {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 16px;
}                                                                             /* 2x search */

.u-text-success-darker   { color: #1a7f1a; }                                 /* 2x admin_regnskap */
.u-fs-075em-pill         { font-size: 0.75em; padding: 3px 10px; }           /* 2x admin_regnskap */
.u-p-cell-l-b-7px        { padding: 7px 8px 7px 0; font-weight: 600; }       /* 2x admin_regnskap */
.u-p-cell-7px-l          { padding: 7px 8px 7px 0; }                         /* 2x admin_regnskap */
.u-p-cell-center-7px     { padding: 7px 8px; text-align: center; }           /* 2x admin_regnskap */
.u-p-cell-r-b-6px        { padding: 6px 0 6px 8px; font-weight: 600; text-align: right; }
                                                                              /* 2x admin_regnskap */
.u-table-w100-082em      { width: 100%; font-size: 0.82em; border-collapse: collapse; }
                                                                              /* 2x admin_regnskap */
.u-p-8-vt-top            { padding: 8px; vertical-align: top; }              /* 2x admin_regnskap */

.u-link-accent-13        { cursor: pointer; font-size: 13px; color: var(--accent); }
                                                                              /* 2x admin_selskap_detail */
.u-grid-gap-8-mt12       { margin-top: 12px; display: grid; gap: 8px; }      /* 2x admin_selskap_detail */
.u-fs-13-p6-12           { font-size: 13px; padding: 6px 12px; }             /* 2x admin_selskap_detail */
.u-fs-12-p4-10           { font-size: 12px; padding: 4px 10px; }             /* 2x admin_selskap_detail */
.u-w100-mb16             { width: 100%; margin-bottom: 16px; }               /* 2x admin_selskap_detail */
.u-card-12-6             { border: 1px solid var(--border); border-radius: 6px; padding: 12px; }
                                                                              /* 2x admin_selskap_detail */
.u-btn-clickable-14      { cursor: pointer; font-weight: 500; font-size: 14px; }
                                                                              /* 2x admin_selskap_detail */
.u-flex-wrap-end-mt12 {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: flex-end;
}                                                                             /* 2x admin_selskap_detail */
.u-text-r-mono-13        { text-align: right; font-family: monospace; font-size: 13px; }
                                                                              /* 2x admin_selskap_detail */

.u-callout-white-12-mt10 {
    margin-top: 10px;
    padding: 8px 10px;
    background: #ffffff;
    border-radius: 4px;
    font-size: 12px;
}                                                                             /* 3x admin_priser */
.u-callout-white-12-mt6  {
    margin-top: 6px;
    padding: 8px 10px;
    background: #ffffff;
    border-radius: 4px;
    font-size: 12px;
}                                                                             /* 2x admin_priser */
.u-p-cell-faint          { padding: 6px 8px; border-bottom: 1px solid var(--border-faint); }
                                                                              /* 2x admin_priser */

.u-textarea-mono-sm {
    width: 100%;
    font-size: 12px;
    font-family: monospace;
    padding: 6px 8px;
    border: 1px solid #d1d5db;
    border-radius: 5px;
}                                                                             /* 2x admin_probe */
.u-btn-icon-bare         { border: none; background: none; cursor: pointer; padding: 2px 4px; }
                                                                              /* 2x admin_probe */

.u-shadow-md             { box-shadow: var(--shadow-md); }                   /* 2x webhook */
.u-checkbox-brand        { margin-top: 4px; accent-color: var(--brand); }    /* 2x webhook */
.u-fieldset-legend       {
    margin-top: var(--space-5);
    color: var(--text);
    font-size: 1rem;
}                                                                             /* 2x webhook */
.u-muted-09rem-mt2       {
    color: var(--muted);
    font-size: 0.9rem;
    margin-top: var(--space-2);
}                                                                             /* 2x webhook */
.u-p-meta-muted          {
    padding: var(--space-3);
    font-size: 0.85rem;
    color: var(--muted);
}                                                                             /* 2x webhook */
.u-p-mono-085rem         {
    padding: var(--space-3);
    font-family: var(--font-mono);
    font-size: 0.85rem;
}                                                                             /* 2x webhook */
.u-label-form-block      {
    display: block;
    color: var(--text);
    font-weight: 600;
    margin-bottom: var(--space-2);
}                                                                             /* 2x webhook (med innebygd newline tidligere) */
.u-help-form-block       {
    display: block;
    color: var(--muted);
    font-size: 0.85rem;
    margin-top: var(--space-2);
}                                                                             /* 2x webhook (newline-variant) */
.u-pre-output {
    margin-top: 4px;
    background: var(--panel-alt);
    border: 1px solid var(--line);
    border-radius: var(--radius-xs);
    padding: var(--space-2);
    font-size: 0.78rem;
    overflow-x: auto;
    white-space: pre-wrap;
    color: var(--text);
}                                                                             /* 2x webhook */

/* =========================================================================
   Runde 3-tillegg (style-src Fase B) — topp-21-30 templates
   monitoring, admin_fiken, api_keys, dsar_builder, status (m.fl.)
   ========================================================================= */

/* ---- Cursor / interaction helpers --------------------------------------- */
.u-cursor-pointer        { cursor: pointer; }                                /* 8x+ on summary/labels */
.u-disabled-soft         { opacity: 0.4; pointer-events: none; }             /* 4x monitoring */

/* ---- Width / Min-width / Max-width ------------------------------------- */
.u-minw-120              { min-width: 120px; }                               /* 1x admin_selskap_detail */
.u-minw-160              { min-width: 160px; }                               /* 2x monitoring */
.u-minw-180              { min-width: 180px; }                               /* 2x */
.u-minw-200              { min-width: 200px; }                               /* 3x monitoring */
.u-minw-220              { min-width: 220px; }                               /* 2x api_keys */
.u-minw-320              { min-width: 320px; }                               /* 2x admin_fiken */
.u-maxw-200              { max-width: 200px; }                               /* 2x monitoring */
.u-maxw-320              { max-width: 320px; }                               /* 3x monitoring/webhook */
.u-w100                  { width: 100%; }                                    /* generic */
.u-w-60                  { width: 60px; }                                    /* 1x admin_selskap_detail */
.u-w-70                  { width: 70px; }                                    /* 2x admin_selskap_detail */
.u-w-90                  { width: 90px; }                                    /* 2x admin_selskap_detail */
.u-w-100                 { width: 100px; }                                   /* 1x admin_selskap_detail */
.u-w-110                 { width: 110px; }                                   /* 1x admin_priser */
.u-w-150                 { width: 150px; }                                   /* 2x admin_selskap_detail */
.u-w-200                 { width: 200px; }                                   /* 1x admin_selskap_detail */

/* ---- Margin helpers (off-grid extensions) ------------------------------ */
.u-ml-auto               { margin-left: auto; }                              /* 2x */
.u-mt-0                  { margin-top: 0; }                                  /* 6x admin_fiken */

/* ---- Padding helpers (cells in admin_fiken) ---------------------------- */
.u-p-6                   { padding: 6px !important; }                                   /* 11x admin_fiken */
.u-p-8-6                 { padding: 8px 6px; }                               /* 9x admin_fiken */
.u-p-8-12                { padding: 8px 12px; }                              /* 2x api_keys */
.u-p-14-16               { padding: 14px 16px; }                             /* 2x api_keys */
.u-p-20-24               { padding: 20px 24px; }                             /* 1x status */
.u-p-2-10                { padding: 2px 10px; }                              /* 3x api_keys */
.u-p-4-10                { padding: 4px 10px; }                              /* 2x monitoring (JS) */
.u-p-5-12                { padding: 5px 12px; }                              /* 2x api_keys */
.u-p-6-mono              { padding: 6px; font-family: monospace; }           /* 4x admin_fiken */
.u-p-6-muted             { padding: 6px; color: var(--muted); }              /* 2x admin_fiken */

/* ---- Font-size / typography composites --------------------------------- */
.u-fs-085em-muted        { font-size: 0.85em; color: var(--text-muted); }    /* 3x monitoring */
.u-fs-088em-muted        { font-size: 0.88em; color: var(--muted); }         /* 4x monitoring */
.u-fs-082em-muted        { font-size: 0.82em; color: var(--muted); }         /* 2x monitoring */
.u-fs-08em               { font-size: 0.8em; }                               /* 2x monitoring (JS) */
.u-fs-082em              { font-size: 0.82em; }                              /* 2x monitoring (JS) */

/* ---- monitoring JS-table cells (CS = 'padding:8px 4px; border-bottom:1px solid var(--border-faint);') ---- */
.u-cs-cell               {
    padding: 8px 4px;
    border-bottom: 1px solid var(--border-faint);
}                                                                             /* 16x monitoring (JS) */
.u-cs-cell-left          {
    padding: 8px 4px;
    border-bottom: 1px solid var(--border-faint);
    text-align: left;
}                                                                             /* 2x monitoring (JS) */
.u-cs-cell-right         {
    padding: 8px 4px;
    border-bottom: 1px solid var(--border-faint);
    text-align: right;
}                                                                             /* 4x monitoring (JS) */
.u-cs-cell-center        {
    padding: 8px 4px;
    border-bottom: 1px solid var(--border-faint);
    width: 32px;
    text-align: center;
}                                                                             /* 2x monitoring (JS) */
.u-cs-th-sortable        {
    padding: 8px 4px;
    border-bottom: 1px solid var(--border-faint);
    text-align: left;
    cursor: pointer;
    user-select: none;
}                                                                             /* 4x monitoring (JS) */
.u-empty-row             {
    padding: 12px 4px;
    color: var(--text-muted);
    font-style: italic;
}                                                                             /* 1x monitoring (JS) */

/* ---- Filter input (monitoring) ---- */
.u-input-filter-soft     {
    padding: 5px 10px;
    border: 1px solid var(--border, #ddd);
    border-radius: 4px;
    font-size: 0.9em;
    min-width: 200px;
}                                                                             /* 1x monitoring */
/* .button.u-btn-bulk-danger (spesifisitet 0,2,0) slår base.html sin inline
   `button.button { background: var(--brand) }` (0,1,1, lastet sist) → slette-
   knappene blir faktisk røde (destruktiv-signal), ikke merkevareblå. */
.button.u-btn-bulk-danger {
    font-size: 0.85em;
    background: var(--danger, #b91c1c);
    color: #fff;
    border-color: var(--danger, #b91c1c);
}                                                                             /* 2x monitoring (bulk-delete + slett-alle-synlige) */
.button.u-btn-bulk-danger:hover {
    background: #991b1b;
    border-color: #991b1b;
    color: #fff;
}

.u-fs-09rem-muted        { font-size: 0.9rem; color: var(--muted); }         /* 3x admin_fiken */
.u-fs-085rem-muted       { font-size: 0.85rem; color: var(--muted); }        /* 4x admin_fiken/dsar */
.u-fs-1rem               { font-size: 1rem; }                                /* 3x monitoring */
.u-fs-09rem              { font-size: 0.9rem; }                              /* 1x admin_fiken */
.u-fs-085rem             { font-size: 0.85rem; }                             /* 1x admin_fiken */
.u-fs-08rem              { font-size: 0.8rem; }                              /* 1x admin_fiken */
.u-label-block-bold      { display: block; margin-bottom: 4px; font-weight: 600; }
                                                                              /* 1x admin_fiken */
.u-select-bordered-320   {
    padding: 8px 10px;
    border-radius: 6px;
    border: 1px solid var(--line);
    min-width: 320px;
}                                                                             /* 1x admin_fiken */
.u-btn-tiny              { padding: 3px 8px; font-size: 12px; }              /* 1x admin_fiken */
.u-card-border-danger    { border-left: 4px solid var(--danger, #b42318); }  /* 1x admin_fiken */
.u-fs-08rem-muted-mt8    { font-size: 0.8rem; color: var(--muted); margin-top: 8px; }
                                                                              /* 1x admin_fiken */
.u-p-6-muted-nw          { padding: 6px; color: var(--muted); white-space: nowrap; } /* 1x admin_fiken */
.u-p-6-mono-08rem        { padding: 6px; font-family: monospace; font-size: 0.8rem; }
                                                                              /* 1x admin_fiken */
.u-d-inline-form         { display: inline; }                                /* 1x admin_fiken */

/* ---- api_keys layout helpers ------------------------------------------- */
.u-grid-auto-fill-200    {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    margin-top: 18px;
}                                                                             /* 1x api_keys */
.u-fs-11-muted-mt-4      { font-size: 11px; color: var(--muted); margin-top: 4px; }
                                                                              /* 2x api_keys */
.u-grid-gap-18-mt-18     { display: grid; gap: 18px; margin-top: 18px; }     /* 1x api_keys */
.u-grid-2col-gap-16      { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
                                                                              /* 1x api_keys */
.u-metric-card           {
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 16px;
    align-items: center;
}                                                                             /* 2x api_keys */
.u-flex-row-gap-6        { display: flex; gap: 6px; }                        /* 1x api_keys */
.u-btn-period-active     {
    padding: 5px 12px;
    border-radius: 8px;
    border: 1px solid var(--brand);
    background: var(--brand);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}                                                                             /* 1x api_keys */
.u-btn-period-inactive   {
    padding: 5px 12px;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}                                                                             /* 2x api_keys */
.u-chart-container       { min-height: 240px; position: relative; }          /* 1x api_keys */
.u-mb-6-muted-14         { margin-bottom: 6px; color: var(--muted); font-size: 14px; }
                                                                              /* 1x api_keys */
.u-row-endpoint          {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--line);
}                                                                             /* 1x api_keys */
.u-fs-14-text            { color: var(--text); font-size: 14px; }             /* 1x api_keys */
.u-fs-14                 { font-size: 14px; }                                 /* 1x api_keys */
.u-empty-pad             { padding: 16px; margin-top: 4px; }                  /* 1x api_keys */
.u-fs-13-nw              { font-size: 13px; white-space: nowrap; }            /* 1x api_keys */
.u-fs-12-muted           { color: var(--muted); font-size: 12px; }            /* 1x api_keys */

/* ---- api_keys playground ----------------------------------------------- */
.u-fs-14-muted-mt-8      { color: var(--muted); font-size: 14px; margin-top: 8px; }
                                                                              /* 1x api_keys */
.u-pg-controls-grid      {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 20px;
}                                                                             /* 1x api_keys */
.u-pg-opts-flex          {
    margin-top: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}                                                                             /* 1x api_keys */
.u-pg-enrichments-opts   {
    margin-top: 16px;
    display: none;
    flex-wrap: wrap;
    gap: 18px;
}                                                                             /* 1x api_keys */
.u-pg-checkbox-row       {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--muted);
}                                                                             /* 1x api_keys */
.u-pg-auth-grid          {
    margin-top: 16px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}                                                                             /* 1x api_keys */
.u-field-mono            { font-family: monospace; }                          /* 1x api_keys */
.u-fs-12-muted-mt-6      { margin-top: 6px; color: var(--muted); font-size: 12px; }
                                                                              /* 1x api_keys */
.u-btn-test-primary      {
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid var(--brand);
    background: var(--brand);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}                                                                             /* 1x api_keys */
.u-pg-response-wrap      { margin-top: 20px; display: none; }                /* 1x api_keys */
.u-pg-status-badge       {
    font-size: 12px;
    padding: 2px 8px;
    border-radius: 6px;
    background: #222;
    color: #4ade80;
    font-family: monospace;
}                                                                             /* 1x api_keys */
.u-pg-response-box       {
    max-height: 500px;
    overflow-y: auto;
    white-space: pre;
}                                                                             /* 1x api_keys */
.u-pg-copy-feedback      {
    display: none;
    font-size: 12px;
    padding: 2px 8px;
    border-radius: 6px;
    background: #222;
    color: #4ade80;
    font-family: monospace;
}                                                                             /* 1x api_keys */
.u-fs-1rem-m0            { margin: 0; font-size: 1rem; }                     /* 2x monitoring */
.u-fs-1rem-mb-10         { font-size: 1rem; margin-bottom: 10px; }           /* 1x monitoring */
.u-fw-400                { font-weight: 400; }                               /* 3x monitoring */
.u-fw-400-muted          { font-weight: 400; color: var(--muted); }          /* 2x monitoring */
.u-fw-600                { font-weight: 600; }                               /* general */
.u-fs-13-fw-600-muted    { font-size: 13px; font-weight: 600; color: var(--muted); } /* 3x api_keys */
.u-field-error-hidden    {
    display: none;
    color: #b91c1c;
    font-size: 13px;
    margin-top: 4px;
}                                                                             /* 3x api_keys */
.u-fs-13-fw-600-muted-block {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--muted);
    margin-bottom: 4px;
}                                                                             /* 6x api_keys */
.u-fs-11-muted-mt4       { font-size: 11px; color: var(--muted); margin-top: 4px; }
                                                                              /* 2x api_keys */

/* ---- Display / Flex / Grid helpers ------------------------------------- */
.u-summary-flex          {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 8px;
}                                                                             /* 4x monitoring (summary>h3 patterns) */
.u-flex-row-gap-8-mb-8   { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
                                                                              /* 2x monitoring */
.u-flex-row-gap-8-mb-4   { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
                                                                              /* 2x status */
.u-flex-row-gap-8-mb-6   { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
                                                                              /* 3x api_keys */
.u-flex-wrap-gap-10-mb-10 {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 10px;
}                                                                             /* 1x monitoring */
.u-flex-row-gap-8-ml-auto { margin-left: auto; display: flex; gap: 8px; align-items: center; }
                                                                              /* 1x monitoring */
.u-grid-gap-12-mt-14     { margin-top: 14px; display: grid; gap: 12px; }     /* 3x monitoring */
.u-d-grid-gap-2          { display: grid; gap: var(--space-2); }             /* 2x dsar_builder */

/* ---- Card-variants / containers ---------------------------------------- */
.u-card-feedback-soft    {
    display: none;
    margin-top: 14px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 0.9em;
}                                                                             /* 1x monitoring */
.u-card-probe-result     {
    display: none;
    margin-top: 4px;
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: var(--panel-alt);
}                                                                             /* 1x monitoring */
.u-card-probe-payload    {
    margin: 0;
    font-size: 0.8em;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-all;
    background: var(--bg);
    padding: 10px;
    border-radius: 6px;
    border: 1px solid var(--line);
}                                                                             /* 1x monitoring */

/* ---- Code-blocks (larger) ---------------------------------------------- */
.u-code-block-md         {
    background: var(--surface-alt, #f5f5f5);
    padding: 12px;
    border-radius: 6px;
    font-size: 0.85em;
    overflow-x: auto;
}                                                                             /* 2x monitoring */

/* ---- Pills / badges ---------------------------------------------------- */
.u-pill-status-tiny      {
    display: none;
    padding: 2px 8px;
    border-radius: 20px;
    font-size: 0.8em;
    font-weight: 600;
}                                                                             /* 1x monitoring */
.u-btn-pill-fill         {
    padding: 2px 10px;
    border-radius: 6px;
    border: 1px solid var(--line);
    background: #fff;
    font-size: 12px;
    cursor: pointer;
}                                                                             /* 3x api_keys */

/* ---- Table helpers ----------------------------------------------------- */
.u-table-w100-085rem     { width: 100%; font-size: 0.85rem; border-collapse: collapse; }
                                                                              /* 1x admin_fiken */
.u-table-w100-09rem      { width: 100%; font-size: 0.9rem; border-collapse: collapse; }
                                                                              /* 2x admin_fiken */
.u-th-line-left          { text-align: left; border-bottom: 1px solid var(--line); }
                                                                              /* 3x admin_fiken */
.u-bb-line-light-f0      { border-bottom: 1px solid var(--line-light, #f0f0f0); }
                                                                              /* alias for u-bb-line-light */

/* ---- Vertical-align helpers (in JS-table-rows) ------------------------- */
.u-vt-top-nw             { vertical-align: top; white-space: nowrap; }        /* 4x monitoring (JS) */
.u-vt-top-break          { vertical-align: top; word-break: break-all; }      /* 1x monitoring (JS) */

/* ---- Color helpers (status.html and others) ---------------------------- */
.u-text-status-555       { color: #555; }                                     /* 2x status */
.u-text-status-666       { color: #666; }                                     /* 1x status */
.u-text-status-888       { color: #888; }                                     /* 5x status */
.u-text-status-aaa       { color: #aaa; }                                     /* 2x status */
.u-text-status-bbb       { color: #bbb; }                                     /* 2x status */
.u-text-status-444       { color: #444; }                                     /* 2x status */
.u-fs-09rem-555          { font-size: 0.9rem; color: #555; }                 /* 2x status */
.u-fs-085rem-555         { font-size: 0.85rem; color: #555; }                /* 2x status */
.u-fs-085rem-aaa         { font-size: 0.85rem; color: #aaa; }                /* 1x status */
.u-fs-082rem-888-meta    { color: #888; font-size: 0.82rem; }                /* 1x status */

/* ---- Webhook-spesifikke ------------------------------------------------ */
.u-input-w100-mono       {
    width: 100%;
    padding: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--panel);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: 0.95rem;
}                                                                             /* 1x webhook */
.u-input-flex1-mono      {
    flex: 1;
    padding: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--panel);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: 0.95rem;
}                                                                             /* 1x webhook */
.u-btn-toggle-eye        {
    padding: 0 var(--space-4);
    background: var(--panel-alt);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    color: var(--text);
    cursor: pointer;
}                                                                             /* 1x webhook */
.u-fw-400-muted-mono     { color: var(--muted); font-weight: 400; font-family: var(--font-mono); }
                                                                              /* 1x webhook */
.u-d-flex-gap-2-stretch  { display: flex; gap: var(--space-2); align-items: stretch; }
                                                                              /* 1x webhook */
.u-label-muted-085-mt-3  {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-3);
    color: var(--muted);
    font-size: 0.85rem;
}                                                                             /* 1x webhook */
.u-fieldset-card-alt     {
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    padding: var(--space-4);
    background: var(--panel-alt);
}                                                                             /* 1x webhook */
.u-legend-uppercase      {
    padding: 0 var(--space-2);
    color: var(--muted);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}                                                                             /* 1x webhook */
.u-fs-09rem-muted-mb3    { color: var(--muted); margin: 0 0 var(--space-3); font-size: 0.9rem; }
                                                                              /* 1x webhook */
.u-label-flex-start      { display: flex; align-items: flex-start; gap: var(--space-3); }
                                                                              /* 2x webhook */
.u-text-mono             { color: var(--text); font-family: var(--font-mono); }
                                                                              /* 1x webhook */
.u-help-block-muted      {
    display: block;
    color: var(--muted);
    font-size: 0.85rem;
    margin-top: 2px;
}                                                                             /* 1x webhook */
.u-label-card-toggle     {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--panel-alt);
}                                                                             /* 1x webhook */
.u-help-block-09rem      {
    display: block;
    color: var(--muted);
    font-size: 0.9rem;
    margin-top: var(--space-1);
}                                                                             /* 1x webhook */
.u-btn-brand-fill        {
    background: var(--brand);
    color: #fff;
    border: none;
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-sm);
    font-weight: 600;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
}                                                                             /* 1x webhook */
.u-link-muted-underline  { color: var(--muted); text-decoration: underline; }
                                                                              /* 1x webhook */
.u-form-test-row         {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-5);
    padding-top: var(--space-4);
    border-top: 1px dashed var(--line);
}                                                                             /* 1x webhook */
.u-btn-brand-outline     {
    background: var(--panel);
    color: var(--brand-strong);
    border: 1px solid var(--brand-100);
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-sm);
    font-weight: 600;
    cursor: pointer;
}                                                                             /* 1x webhook */
.u-meta-muted-09rem-self-center {
    color: var(--muted);
    font-size: 0.85rem;
    align-self: center;
}                                                                             /* 1x webhook (renamet semantisk — bruker 0.85rem) */
.u-card-info-tile        { box-shadow: var(--shadow-md); background: var(--panel-alt); }
                                                                              /* 1x webhook */
.u-pill-success-bordered {
    background: var(--success-bg);
    color: var(--success);
    border: 1px solid var(--success-border);
}                                                                             /* 1x webhook */
.u-h3-fs-1rem            { margin-top: var(--space-4); color: var(--text); font-size: 1rem; }
                                                                              /* 1x webhook */
.u-pre-contract          {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    font-size: 0.78rem;
    color: var(--text);
    overflow: auto;
    font-family: var(--font-mono);
}                                                                             /* 1x webhook */
.u-flex-row-gap-3-center-wrap {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}                                                                             /* 1x webhook */
.u-overflow-x-mt-space-4 { overflow-x: auto; margin-top: var(--space-4); }   /* alias for u-overflow-x-mt-4 */
.u-tbl-w100              { width: 100%; border-collapse: collapse; }         /* 1x webhook */
.u-tbl-head-row          { background: var(--panel-alt); text-align: left; }/* 1x webhook */
.u-tr-bb-faint           { border-bottom: 1px solid var(--line-faint); }    /* 1x webhook */
.u-p-space3              { padding: var(--space-3); }                        /* 2x webhook */
.u-p-space3-fs-085rem    { padding: var(--space-3); font-size: 0.85rem; }   /* 1x webhook */
.u-pill-status-success   {
    background: var(--success-bg);
    color: var(--success);
    border: 1px solid var(--success-border);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    font-size: 0.78rem;
    font-weight: 600;
}                                                                             /* 1x webhook */
.u-pill-status-danger    {
    background: var(--danger-bg);
    color: var(--danger);
    border: 1px solid var(--danger-border);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    font-size: 0.78rem;
    font-weight: 600;
}                                                                             /* 1x webhook */
.u-pill-status-warn      {
    background: var(--warn-bg);
    color: var(--warn);
    border: 1px solid var(--warn-border);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    font-size: 0.78rem;
    font-weight: 600;
}                                                                             /* 1x webhook */
.u-text-success-strong-600 { color: var(--success); font-weight: 600; }      /* 1x webhook */
.u-text-danger-strong-600  { color: var(--danger); font-weight: 600; }       /* 1x webhook */
.u-summary-brand-strong   { cursor: pointer; color: var(--brand-strong); }   /* 1x webhook */
.u-grid-gap-2-mt-2        { margin-top: var(--space-2); display: grid; gap: var(--space-2); }
                                                                              /* 1x webhook */
.u-code-danger            {
    background: var(--danger-bg);
    color: var(--danger);
    padding: 2px var(--space-2);
    border-radius: var(--radius-xs);
}                                                                             /* 1x webhook */
.u-empty-dashed           {
    margin-top: var(--space-4);
    padding: var(--space-5);
    border: 1px dashed var(--line);
    border-radius: var(--radius-md);
    text-align: center;
    color: var(--muted);
}                                                                             /* 1x webhook */
.u-fs-085rem-888         { font-size: 0.85rem; color: #888; }                /* 2x status */
.u-fs-082rem-888         { font-size: 0.82rem; color: #888; }                /* 2x status */
.u-fs-078rem-888         { font-size: 0.78rem; color: #888; }                /* 2x status */
.u-fs-075rem-bbb         { font-size: 0.75rem; color: #bbb; }                /* 2x status */
.u-fs-072rem-888         { font-size: 0.72rem; color: #888; }                /* 2x status */
.u-fs-078rem-fw-600      {
    font-size: 0.78rem;
    font-weight: 600;
    color: #444;
    min-width: 200px;
}                                                                             /* 2x status */
.u-section-divider-status {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--line, #e9ecef);
}                                                                             /* 2x status */
.u-text-666-mb12         { color: #666; font-size: 0.85rem; margin: 0 0 12px; }
                                                                              /* 2x status */

/* ---- status.html-spesifikke layouts ----------------------------------- */
.u-card-pad-status       { padding: 20px 24px; }                              /* 1x status */
.u-flex-row-gap-20-wrap  { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
                                                                              /* 1x status */
.u-flex-base-wrap        {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}                                                                             /* 1x status */
.u-pill-live-blue        { background: #e8f4f8; color: #2980b9; }            /* 1x status */
.u-text-status-aaa-mt8   { color: #aaa; font-size: 0.85rem; margin-top: 8px; }
                                                                              /* 1x status */
.u-mt-10-d-none          { display: none; margin-top: 10px; }                /* 1x status */
.u-metric-bar-init-blue  { background: #3498db; width: 0%; }                 /* dynamic-style — kun init-verdier; JS overskriver via style.width */
.u-metric-bar-init-purple { background: #9b59b6; width: 0%; }                /* dynamic-style */
.u-metric-bar-init-green  { background: #27ae60; width: 0%; }                /* dynamic-style */
.u-mt-8-fs-078-888       { margin-top: 8px; font-size: 0.78rem; color: #888; }
                                                                              /* 1x status */
.u-uptime-legend         {
    display: flex;
    gap: 14px;
    margin-top: 10px;
    flex-wrap: wrap;
    font-size: 0.78rem;
    color: #666;
}                                                                             /* 1x status */
.u-legend-dot-ok         { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: middle; margin-right: 4px; background: #28a745; }
.u-legend-dot-no-change  { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: middle; margin-right: 4px; background: #6dbf67; }
.u-legend-dot-failed     { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: middle; margin-right: 4px; background: #dc3545; }
.u-legend-dot-unknown    { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: middle; margin-right: 4px; background: #ffc107; }
.u-legend-dot-none       { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: middle; margin-right: 4px; background: #dee2e6; }
                                                                              /* 5x status legend */
.u-mt-section-line       { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line, #e9ecef); }
                                                                              /* alias for u-section-divider-status — used 2x */
.u-mt-down-rate          { color: #dc3545; font-weight: 600; }               /* 1x status */
.u-text-666-mb4          { color: #666; font-size: 0.85rem; margin: 0 0 4px; }
                                                                              /* 1x status */
.u-fs-072rem-444-fw-600  { font-size: 0.72rem; color: #444; font-weight: 600; }
                                                                              /* 1x status */
.u-fs-072rem-888         { font-size: 0.72rem; color: #888; }                /* 2x status */
.u-fs-072rem-aaa         { font-size: 0.72rem; color: #aaa; }                /* 1x status */

/* ---- DSAR-builder color helpers ---------------------------------------- */
.u-text-default          { color: var(--text); }                              /* 7x dsar */
.u-text-brand-mr-4       { color: var(--brand); margin-right: 4px; }          /* 5x dsar */
.u-fw-600-px-2           {
    color: var(--text);
    font-weight: 600;
    padding: 0 var(--space-2);
}                                                                             /* 3x dsar */
.u-mt-space4-text        { margin-top: var(--space-4); color: var(--text); }  /* 2x dsar */

/* ---- DSAR builder field/form helpers ----------------------------------- */
.u-fieldset-card         {
    border: 1px solid var(--line);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-4);
    margin: 0;
}                                                                             /* 3x dsar */
.u-grid-auto-fit-180     {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-3);
    margin-top: var(--space-3);
}                                                                             /* 1x dsar */
.u-grid-auto-fit-220     {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-3);
    margin-top: var(--space-3);
}                                                                             /* 2x dsar */
.u-grid-auto-fit-220-flat {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-3);
}                                                                             /* 1x dsar */
.u-type-card-label       {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    cursor: pointer;
    background: var(--panel);
}                                                                             /* 5x dsar */
.u-form-input            {
    padding: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--panel);
    color: var(--text);
}                                                                             /* 8x dsar */
.u-form-input-mono       {
    padding: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--panel);
    color: var(--text);
    font-family: var(--font-mono);
}                                                                             /* 1x dsar */
.u-form-input-textarea   {
    padding: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--panel);
    color: var(--text);
    resize: vertical;
}                                                                             /* 1x dsar */
.u-flex-col-gap-2-full   {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    grid-column: 1 / -1;
}                                                                             /* 2x dsar */
.u-flex-row-gap-3-wrap   {
    display: flex;
    gap: var(--space-3);
    align-items: center;
    flex-wrap: wrap;
}                                                                             /* 1x dsar */
.u-fs-09rem-muted-meta   {
    color: var(--muted);
    margin: var(--space-2) 0 var(--space-3);
    font-size: 0.9rem;
}                                                                             /* 1x dsar */
.u-flex-inline-gap-2     { display: inline-flex; gap: var(--space-2); }      /* 1x dsar */
.u-d-inline-m-0          { display: inline; margin: 0; }                     /* 1x dsar */
.u-p-space-5             { padding: var(--space-5); }                        /* 1x dsar */
.u-card-flash            {
    background: var(--panel);
    border: 1px solid var(--line);
    box-shadow: var(--shadow-sm);
}                                                                             /* 1x dsar */
.u-mtspace3-text         { margin: var(--space-3) 0 0; color: var(--text); } /* 1x dsar */
.u-grid-gap-5-mt-5       { display: grid; gap: var(--space-5); margin-top: var(--space-5); }
                                                                              /* 1x dsar */
.u-overflow-x-mt-4       { overflow-x: auto; margin-top: var(--space-4); }   /* 1x dsar */


/* ── Tip-callout (info banners) ────────────────────────────────────────── */
.u-tip-header {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95em;
}                                                                             /* agentisk_flyt info-callout */
.u-tip-info {
    background: #eff6ff;
    border-left: 3px solid var(--brand);
    padding: 14px 18px;
    margin-bottom: 14px;
    border-radius: 0 6px 6px 0;
}                                                                             /* agentisk_flyt info-callout */
.u-tip-icon-info {
    color: var(--brand);
    flex-shrink: 0;
}                                                                             /* agentisk_flyt info-callout */
.u-code-nowrap {
    white-space: nowrap;
    word-break: keep-all;
}                                                                             /* code-token som ikke skal brytes midt i */
.u-mtspace1-text { margin: var(--space-1) 0 0; }                              /* tip-tekst */
.u-mtspace2-text { margin: var(--space-2) 0 0; }                              /* tip-tekst */

/* =========================================================================
   Runde 4-tillegg (style-src Fase B) — 12 templates per 2026-05-27
   admin_meny_form, company_users, admin_selskap_faktura, admin_monitoring,
   docs, minbedrift_utvidelser_auto_rapport, dashbord, admin_dmarc,
   minbedrift_utvidelser_sanksjoner_pep, minbedrift_utvidelser_aksjonaer_tre,
   admin_pakker, admin_nattjobb
   ========================================================================= */

/* ---- Card / form spacing kombi ---------------------------------------- */
.u-card-mb-16            { margin-bottom: 16px; }
.u-card-mb-24            { margin-bottom: 24px; }
.u-mb-14-r4              { margin-bottom: 14px; }
.u-mb-18-r4              { margin-bottom: 18px; }

/* ---- Admin_meny_form-spesifikke --------------------------------------- */
.u-meta-flex-between     { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.u-h1-mt0-160            { margin: 0 0 6px; font-size: 1.6rem; letter-spacing: -0.02em; }
.u-p-m0-muted            { margin: 0; color: var(--muted); }
.u-card-error-banner     { margin-bottom: 16px; border-left: 4px solid #b42318; background: var(--panel-alt); }
.u-flex-row-gap-12-danger { display: flex; align-items: center; gap: 12px; color: #b42318; }
.u-card-pad-20           { padding: 20px; }
.u-grid-2col-gap-16-mb-14 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 14px; }
.u-label-form-13         { font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.u-label-form-13-mb-6    { font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.u-fs-12-muted-mt4       { font-size: 12px; color: var(--muted); margin-top: 4px; }
.u-fs-12-muted-mb-8      { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.u-muted-fw-400          { color: var(--muted); font-weight: 400; }
.u-bg-panel-alt-input    { background: var(--panel-alt); }
.u-flex-gap-10-center    { display: flex; gap: 10px; align-items: center; }
.u-flex-1                { flex: 1; }
.u-btn-tight             { padding: 6px 12px; font-size: 13px; }
.u-btn-tighter           { padding: 4px 10px; font-size: 12px; }
.u-flex-end-gap-10       { display: flex; gap: 10px; justify-content: flex-end; }
.u-textarea-multi-100    { width: 100%; font-family: inherit; font-size: 13px; }
.u-input-text-14-line    { width: 100%; padding: 8px 10px; font-size: 14px; border: 1px solid var(--line); border-radius: 6px; }
.u-meny-icon-preview     { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-alt); color: var(--brand-strong); }
.u-flex-wrap-gap-6-mt-10 { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.u-flex-gap-8            { display: flex; gap: 8px; }

/* ---- Modal-overlay (icon-picker — JS overstyrer display) -------------- */
.u-modal-overlay         { display: none; position: fixed; inset: 0; z-index: 9999; background: rgba(15, 23, 42, .55); align-items: center; justify-content: center; padding: 20px; }
.u-modal-dialog-780      { background: var(--panel, #fff); border-radius: 12px; max-width: 780px; width: 100%; max-height: 88vh; display: flex; flex-direction: column; box-shadow: 0 20px 48px rgba(0, 0, 0, .25); }
.u-modal-header-flex     { padding: 16px 20px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.u-modal-h3              { margin: 0; font-size: 1.1rem; }
.u-modal-section-line    { padding: 14px 20px; border-bottom: 1px solid var(--line); }
.u-modal-grid-icons      { padding: 16px 20px; overflow-y: auto; flex: 1; display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; align-content: start; }
.u-modal-footer-flex     { padding: 12px 20px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }

/* ---- company_users.html ----------------------------------------------- */
.u-grid-gap-10-mt-18     { display: grid; gap: 10px; margin-top: 18px; }
.u-p-mt12-muted          { margin-top: 12px; color: var(--muted); }
.u-flex-gap-8-wrap-mt-14 { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.u-form-grid-mt-18       { margin-top: 18px; display: grid; gap: 16px; }
.u-two-col-start         { gap: 16px; align-items: start; }
.u-grid-auto-fit-240     { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 16px; }
.u-flex-row-gap-10       { display: flex; align-items: center; gap: 10px; }
.u-flex-gap-12-wrap      { display: flex; gap: 12px; flex-wrap: wrap; }
.u-empty-feedback-soft   { display: none; margin-top: 16px; }
.u-td-name-nowrap        { vertical-align: top; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; min-width: 96px; }
.u-td-rights             { vertical-align: top; font-size: 13px; color: var(--muted); white-space: normal; }
.u-action-row-tight      { display: flex; gap: 8px; flex-wrap: nowrap; align-items: flex-start; white-space: nowrap; }
.u-form-inline-m0        { display: inline; margin: 0; }
.u-row-disabled-soft     { opacity: 0.55; }
.u-fs-078em-r4           { font-size: 0.78em; }
.u-pill-success-soft     { background: #dcfce7; color: #166534; }
.u-card-banner-danger    { margin-top: 16px; padding: 14px 16px; background: #fef2f2; border: 1px solid #fecaca; border-radius: 10px; display: flex; align-items: center; gap: 12px; }
.u-icon-danger-12        { color: #dc2626; font-size: 1.2rem; }
.u-text-danger-rich      { color: #b91c1c; }
.u-fs-088em-muted-4-0    { font-size: 0.88em; color: var(--muted); margin: 4px 0 0; }
.u-fs-088em-muted-mt-16  { font-size: 0.88em; color: var(--muted); margin-top: 16px; }
.u-card-banner-warn      { margin-top: 20px; padding: 12px 14px; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 8px; }
.u-icon-warn-amber       { color: #c2410c; }
.u-text-warn-amber-ml-6  { color: #c2410c; margin-left: 6px; }
.u-fs-085em-muted-4-0    { font-size: 0.85em; color: var(--muted); margin: 4px 0 0; }
.u-summary-danger        { font-size: 0.88em; color: #b91c1c; cursor: pointer; user-select: none; }
.u-card-detail-soft      { margin-top: 12px; padding: 14px; background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; }
.u-fs-088em-mt0-mb-10    { font-size: 0.88em; margin: 0 0 10px; }
.u-label-block-085-mb-6  { display: block; font-size: 0.85em; margin-bottom: 6px; }
.u-label-block-085-mb-10 { display: block; font-size: 0.85em; margin-bottom: 10px; }
.u-input-mt4-085em       { margin-top: 4px; font-size: 0.9em; }
.u-input-mt4-085em-mw    { margin-top: 4px; font-size: 0.9em; max-width: 200px; }
.u-btn-warn-amber        { border-color: #f59e0b; color: #92400e; margin-top: 8px; }
.u-btn-danger-mute       { border-color: #dc2626; color: #b91c1c; }
.u-p-meta-088em-muted    { margin: 6px 0 18px 0; color: var(--muted); }

/* ---- admin_selskap_faktura.html --------------------------------------- */
.u-shell-narrow-800      { max-width: 800px; margin: 32px auto; padding: 0 16px; }
.u-form-flex-gap-10-mb20 { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.u-label-13-fw-500       { font-size: 13px; font-weight: 500; }
.u-input-w-160           { width: 160px; }
.u-btn-fs-13             { font-size: 13px; }
.u-mb-16-r4              { margin-bottom: 16px; }
.u-mb-24-r4              { margin-bottom: 24px; }
.u-pill-mb-16            { margin-bottom: 16px; }
.u-tbl-w100-r4           { width: 100%; }
.u-th-r                  { text-align: right; }
.u-meta-neg-mb-16        { margin: -4px 0 16px; font-size: 0.9em; color: var(--muted); }
.u-td-r-fw-500           { text-align: right; font-weight: 500; }
.u-td-r-bold-pt8         { text-align: right; font-weight: 600; padding-top: 8px; }
.u-td-bold-pt8           { font-weight: 600; padding-top: 8px; }
.u-tr-border-top-2       { border-top: 2px solid var(--border); }
.u-td-pt0                { padding-top: 0; }
.u-td-r-pt0-meta         { text-align: right; padding-top: 0; font-size: 12px; color: var(--muted); }
.u-card-bg-surface2      { background: var(--surface-2, #f8fafc); }
.u-flex-between-center   { display: flex; justify-content: space-between; align-items: center; }
.u-fs-11em-fw600         { font-size: 1.1em; font-weight: 600; }
.u-fs-14em-fw700-accent  { font-size: 1.4em; font-weight: 700; color: var(--accent, #1d4ed8); }
.u-fs-12-muted-mt-8      { font-size: 12px; color: var(--muted); margin-top: 8px; }
.u-block-mt-20           { margin-top: 20px; }

/* ---- admin_monitoring.html (tabell-celler) --------------------------- */
.u-tbl-w100-collapse     { width: 100%; border-collapse: collapse; }
.u-tbl-w100-collapse-9   { width: 100%; border-collapse: collapse; font-size: 0.9em; }
.u-td-mon-l              { padding: 8px 4px; border-bottom: 1px solid var(--border-faint); color: var(--text-muted); }
.u-td-mon-r-b            { text-align: right; padding: 8px 4px; border-bottom: 1px solid var(--border-faint); font-weight: 600; }
.u-td-mon-r              { text-align: right; padding: 8px 4px; border-bottom: 1px solid var(--border-faint); }
.u-td-mon-cell           { padding: 8px 4px; border-bottom: 1px solid var(--border-faint); }
.u-td-mon-l-noborder     { padding: 8px 4px; color: var(--text-muted); }
.u-td-mon-r-noborder     { text-align: right; padding: 8px 4px; font-weight: 600; }
.u-th-mon-l              { text-align: left; padding: 8px 4px; border-bottom: 1px solid var(--border); }
.u-th-mon-r              { text-align: right; padding: 8px 4px; border-bottom: 1px solid var(--border); }
.u-th-mon-l-6            { text-align: left; padding: 6px 4px; border-bottom: 1px solid var(--border); }
.u-th-mon-r-6            { text-align: right; padding: 6px 4px; border-bottom: 1px solid var(--border); }
.u-td-mon-cell-6         { padding: 6px 4px; border-bottom: 1px solid var(--border-faint); }
.u-td-mon-r-6            { text-align: right; padding: 6px 4px; border-bottom: 1px solid var(--border-faint); }
.u-td-mon-tfoot-l        { padding: 8px 4px; border-top: 1px solid var(--border); font-weight: 600; }
.u-td-mon-tfoot-r        { text-align: right; padding: 8px 4px; border-top: 1px solid var(--border); font-weight: 600; }
.u-td-mon-tfoot-blank    { padding: 8px 4px; border-top: 1px solid var(--border); }
.u-status-green          { color: green; }
.u-status-red            { color: red; }
.u-status-gray           { color: gray; }
.u-text-muted-default    { color: var(--text-muted); }

/* ---- docs.html -------------------------------------------------------- */
.u-flex-wrap-gap-6-mb-14 { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.u-auth-chip-faded       { opacity: 0.65; }
.u-tip-icon-mt1          { color: var(--brand); margin-top: 1px; }
.u-card-info-soft        { margin-top: 14px; padding: 12px 14px; background: var(--surface-raised, #f8f9fa); border-radius: 8px; border: 1px solid var(--border-faint); }
.u-section-header-08em   { font-size: 0.8em; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); margin-bottom: 8px; }
.u-flex-wrap-gap-10-mb-6 { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 6px; font-size: 0.82em; }
.u-legend-dot-base       { display: inline-block; width: 10px; height: 10px; border-radius: 2px; vertical-align: middle; }
.u-legend-dot-brreg      { background: #dcfce7; border: 1px solid #bbf7d0; }
.u-legend-dot-digital    { background: #dbeafe; border: 1px solid #bfdbfe; }
.u-legend-dot-ocr        { background: #ffedd5; border: 1px solid #fed7aa; }
.u-meta-meta-italic      { margin: 0; font-size: 0.78em; font-style: italic; color: var(--text-muted); line-height: 1.55; }
.u-fs-085em-muted-mt-8   { font-size: 0.85em; color: var(--muted); margin-top: 8px; }
.u-fs-082em-muted-mt-4   { font-size: 0.82em; color: var(--muted); margin-top: 4px; }
.u-fs-088em-mt-6         { font-size: 0.88em; margin-top: 6px; }
.u-fs-088em-muted-r4     { font-size: 0.88em; color: var(--muted); }
.u-fs-088em-mt-6-muted   { font-size: 0.88em; margin-top: 6px; color: var(--muted); }
.u-fs-085em-m0           { font-size: 0.85em; margin: 0; }
.u-docs-callout-accent   { border-left: 3px solid var(--accent, #2c7be5); background: var(--panel-alt, #f8fafc); padding: 12px 14px; margin: 12px 0; border-radius: 0 6px 6px 0; }
.u-docs-callout-success  { border-left: 3px solid #16a34a; background: var(--panel-alt, #f8fafc); padding: 12px 14px; margin: 12px 0; border-radius: 0 6px 6px 0; }
.u-callout-title         { font-weight: 600; font-size: 0.9em; margin-bottom: 6px; }
.u-label-block-08em      { display: block; font-size: 0.8em; font-weight: 600; color: var(--muted); margin-bottom: 4px; }
.u-input-cls-mono        { font-family: monospace; font-size: 0.95em; padding: 6px 10px; border: 1px solid var(--line); border-radius: 6px; width: 140px; }
.u-input-cls-select      { font-size: 0.9em; padding: 6px 10px; border: 1px solid var(--line); border-radius: 6px; }
.u-btn-cls-go            { padding: 7px 16px; background: var(--brand); color: #fff; border: none; border-radius: 6px; font-size: 0.9em; cursor: pointer; font-weight: 600; white-space: nowrap; height: 34px; align-self: flex-end; }
.u-flex-gap-8-wrap-end   { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-end; }
.u-pg-card-soft          { background: var(--panel-alt, #f8fafc); border: 1px solid var(--line); border-radius: 8px; padding: 16px; margin-top: 6px; }
.u-result-area-hidden    { margin-top: 14px; display: none; }
.u-flex-gap-8-wrap-mb-10 { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.u-pre-result-dark       { margin-top: 6px; background: #0f172a; color: #e2e8f0; font-size: 0.78em; line-height: 1.55; border-radius: 8px; padding: 14px; overflow-x: auto; white-space: pre-wrap; word-break: break-word; }
.u-summary-meta-082em    { font-size: 0.82em; color: var(--muted); cursor: pointer; user-select: none; }
.u-error-banner-hidden   { display: none; margin-top: 10px; color: #b91c1c; font-size: 0.88em; padding: 8px 12px; background: #fef2f2; border-radius: 6px; border: 1px solid #fecaca; }
.u-muted-italic          { color: var(--muted); font-style: italic; }
.u-fs-12-muted-r4        { font-size: 12px; color: var(--muted); }

/* ---- minbedrift_utvidelser_auto_rapport.html ------------------------- */
.u-card-error-bordered   { background: var(--danger-bg); border: 1px solid var(--danger-border); }
.u-flex-gap-12-start     { display: flex; gap: 12px; align-items: flex-start; }
.u-icon-danger-20        { color: var(--danger); font-size: 20px; margin-top: 2px; }
.u-strong-danger         { color: var(--danger); }
.u-p-mt4-text            { margin: 4px 0 0; color: var(--text); }
.u-link-brand-underline  { color: var(--brand-strong); text-decoration: underline; }
.u-h2-mt16-105rem        { margin: 16px 0 6px; font-size: 1.05rem; }
.u-p-meta-mb-14          { color: var(--muted); font-size: 14px; margin: 0 0 14px; }
.u-form-grid-18-760      { display: grid; gap: 18px; max-width: 760px; }
.u-label-flex-start-10   { display: flex; gap: 10px; align-items: flex-start; }
.u-fw-600-r4             { font-weight: 600; }
.u-muted-13              { color: var(--muted); font-size: 13px; }
.u-text-13-fw-600        { font-size: 13px; font-weight: 600; color: var(--text); }
.u-fieldset-card-default { border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; }
.u-legend-bold-13        { padding: 0 6px; font-weight: 700; font-size: 13px; }
.u-radio-flex-col-10     { display: flex; flex-direction: column; gap: 10px; }
.u-radio-row             { display: flex; gap: 10px; align-items: center; }
.u-muted-12-mt-8         { color: var(--muted); font-size: 12px; margin: 8px 0 0; }
.u-textarea-mono-orgnr   { font-family: 'SF Mono', Menlo, Consolas, monospace; font-size: 13px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-sm, 6px); color: var(--text); background: var(--panel); resize: vertical; }
.u-label-col-gap-6       { display: flex; flex-direction: column; gap: 6px; }
.u-flex-gap-10-wrap      { display: flex; gap: 10px; flex-wrap: wrap; }
.u-overflow-x-mt-12      { overflow-x: auto; margin-top: 12px; }
.u-ml-12-muted-13        { margin-left: 12px; color: var(--muted); font-size: 13px; }
.u-empty-state-pad-24    { padding: 24px; }

/* ---- dashbord.html --------------------------------------------------- */
.u-section-mb-24         { margin-bottom: 24px; }
.u-card-span-2           { grid-column: span 2; }
.u-card-span-3           { grid-column: span 3; }
.u-h3-mt16-2rem          { margin-top: 16px; font-size: 2rem; }
.u-p-mt4-muted           { color: var(--muted); margin-top: 4px; }
.u-h3-mt-16              { margin-top: 16px; }
.u-canvas-mt-16          { margin-top: 16px; }
.u-tbl-mt16-w100         { margin-top: 16px; width: 100%; }
.u-mono-13               { font-family: monospace; font-size: 13px; }
.u-flex-wrap-gap-8-mt-16 { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.u-grid-2col-12-mt-16    { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.u-stat-tile             { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-alt); }
.u-fs-12-muted-mb-4      { font-size: 12px; color: var(--muted); margin-bottom: 4px; }

/* ---- admin_dmarc.html ------------------------------------------------ */
.u-form-flex-end-mb-24   { display: flex; gap: 12px; align-items: end; margin-bottom: 24px; flex-wrap: wrap; }
.u-label-block-13        { display: block; font-size: 13px; }
.u-input-w-100           { padding: 6px 10px; border: 1px solid #d1d5db; border-radius: 6px; width: 100px; }
.u-form-inline-ml-auto   { display: inline; margin-left: auto; }
.u-grid-auto-fit-160-mb24 { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 24px; }
.u-card-stat-dmarc       { border: 1px solid #e5e7eb; border-radius: 6px; padding: 14px; }
.u-card-stat-dmarc-green { border: 1px solid #e5e7eb; border-radius: 6px; padding: 14px; background: #f0fdf4; }
.u-card-stat-dmarc-yel   { border: 1px solid #e5e7eb; border-radius: 6px; padding: 14px; background: #fefce8; }
.u-card-stat-dmarc-red   { border: 1px solid #e5e7eb; border-radius: 6px; padding: 14px; background: #fef2f2; }
.u-fs-12-slate           { font-size: 12px; color: #64748b; }
.u-fs-12-success         { font-size: 12px; color: #16a34a; }
.u-fs-12-warn-amber      { font-size: 12px; color: #ca8a04; }
.u-fs-12-danger          { font-size: 12px; color: #dc2626; }
.u-fs-24-fw-600          { font-size: 24px; font-weight: 600; }
.u-fs-11                 { font-size: 11px; }
.u-fs-12-r4              { font-size: 12px; }
.u-tr-bg-danger          { background: #fef2f2; }
.u-text-success-16a      { color: #16a34a; }
.u-text-danger-dc        { color: #dc2626; }
.u-status-pill-warn-mb18 { margin-bottom: 18px; }

/* ---- sanksjoner_pep.html --------------------------------------------- */
.u-ml-6-r4               { margin-left: 6px; }
.u-ml-8-r4               { margin-left: 8px; }
.u-mt-14-r4              { margin-top: 14px; }
.u-mt-18-r4              { margin-top: 18px; }
.u-mt-20-r4              { margin-top: 20px; }
.u-form-flex-wrap-end-14 { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 14px; align-items: end; }
.u-label-flex-grow       { flex: 1 1 240px; min-width: 220px; }
.u-flex-row-center-wrap  { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.u-mt-8-fs-13            { margin-top: 8px; font-size: 13px; }
.u-mt-0-mb-8             { margin: 0 0 8px; }
.u-pill-faded            { opacity: 0.7; }
.u-link-no-underline     { text-decoration: none; }
.u-overflow-x            { overflow-x: auto; overflow-y: hidden; }
.u-overflow-x-mt-16      { overflow-x: auto; margin-top: 16px; }
.u-flex-gap-10-start     { display: flex; gap: 10px; align-items: flex-start; }
.u-flex-gap-10-start-mb12 { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; }
.u-flex-gap-8-wrap-mt-16 { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.u-form-grid-16-720      { margin-top: 20px; display: grid; gap: 16px; max-width: 720px; }
.u-link-085rem-r4        { font-size: 0.85rem; }
.u-fs-12-r4b             { font-size: 12px; }
.u-label-mt-10           { margin-top: 10px; }
.u-mt-12-r4              { margin-top: 12px; }
.u-mt-10-r4              { margin-top: 10px; }
.u-meta-muted-mt-6       { color: var(--muted); margin-top: 6px; }
.u-meta-muted-14-mt-4    { color: var(--muted); font-size: 14px; margin-top: 4px; }
.u-meta-muted-13         { color: var(--muted); font-size: 13px; }

/* ---- aksjonaer_tre.html ---------------------------------------------- */
.u-card-shadow-sm-soft   { background: var(--panel); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.u-pill-brand-bordered   { background: var(--brand-50); color: var(--brand-strong); border: 1px solid var(--brand-100); }
.u-p-text-default-mt3    { margin: var(--space-3) 0 0; color: var(--text); }
.u-card-shadow-md        { box-shadow: var(--shadow-md); }
.u-h2-mt4-text           { margin-top: var(--space-4); color: var(--text); }
.u-h3-mt4-text-1rem      { margin-top: var(--space-4); color: var(--text); font-size: 1rem; }
.u-meta-mt2-muted        { color: var(--muted); margin-top: var(--space-2); }
.u-grid-3col-orgnr       { display: grid; gap: var(--space-4); margin-top: var(--space-5); grid-template-columns: minmax(220px, 1fr) auto auto; align-items: start; }
.u-label-block-fw-text   { display: block; color: var(--text); font-weight: 600; margin-bottom: var(--space-2); }
.u-input-w100-form       { width: 100%; padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); color: var(--text); font-family: var(--font-mono); font-size: 0.95rem; }
.u-input-hint-085rem     { display: block; color: var(--muted); font-size: 0.85rem; margin-top: var(--space-2); }
.u-select-form           { padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); color: var(--text); font-size: 0.95rem; }
.u-p-mt4-danger-09       { margin-top: var(--space-4); color: var(--danger); font-size: 0.9rem; }
.u-card-shadow-md-bg-alt { box-shadow: var(--shadow-md); background: var(--panel-alt); }
.u-pill-success-bordered-2 { background: var(--success-bg); color: var(--success); border: 1px solid var(--success-border); }
.u-flex-wrap-gap-3-mt-4  { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-4); }
.u-btn-aksj-json         { background: var(--panel); color: var(--text); border: 1px solid var(--line); padding: var(--space-3) var(--space-5); border-radius: var(--radius-sm); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: var(--space-2); }
.u-btn-aksj-brand        { background: var(--panel); color: var(--brand-strong); border: 1px solid var(--brand-100); padding: var(--space-3) var(--space-5); border-radius: var(--radius-sm); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: var(--space-2); }
.u-link-muted-self-center { color: var(--muted); text-decoration: underline; align-self: center; }
.u-card-flat-overflow    { box-shadow: var(--shadow-md); padding: 0; overflow: hidden; }
.u-header-bar-line       { padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: var(--space-3); }
.u-meta-muted-9rem       { color: var(--muted); font-size: 0.9rem; }
.u-iframe-aksj           { width: 100%; height: 600px; border: 0; display: block; background: var(--panel); }
.u-empty-aksj            { padding: var(--space-6); text-align: center; color: var(--muted); }
.u-empty-icon-2rem-brand { font-size: 2rem; color: var(--brand); margin-bottom: var(--space-3); display: block; }
.u-h3-mt0-mb2-text-1rem  { margin: 0 0 var(--space-2); color: var(--text); font-size: 1rem; }
.u-p-m0-maxw-480-auto    { margin: 0; max-width: 480px; margin-inline: auto; }
.u-btn-brand-fill-form   { background: var(--brand); color: #fff; border: none; padding: var(--space-3) var(--space-5); border-radius: var(--radius-sm); font-weight: 600; cursor: pointer; box-shadow: var(--shadow-sm); }

/* ---- admin_pakker.html ----------------------------------------------- */
.u-shell-narrow-960      { max-width: 960px; margin: 0 auto; padding: 0 16px 48px; }
.u-shell-narrow-960-mb16 { max-width: 960px; margin: 0 auto 16px; padding: 0 16px; }
.u-link-ml-8             { margin-left: 8px; }
.u-h2-pkg-category       { margin: 24px 0 12px; font-size: 1rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.u-h2-pkg-category-mt-28 { margin: 28px 0 12px; font-size: 1rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.u-h2-pkg-category-mt-36 { margin: 36px 0 12px; font-size: 1rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.u-flash-success         { padding: 10px 14px; border-radius: 8px; margin-bottom: 8px; background: #dcfce7; color: #166534; }
.u-flash-danger          { padding: 10px 14px; border-radius: 8px; margin-bottom: 8px; background: #fee2e2; color: #991b1b; }
.u-flash-warn            { padding: 10px 14px; border-radius: 8px; margin-bottom: 8px; background: #fef9c3; color: #713f12; }
.u-pkg-row-mb-12         { margin-bottom: 12px; }
.u-pkg-field-span-2      { grid-column: span 2; }
.u-pkg-label-tight       { font-weight: 400; font-size: 0.82rem; white-space: nowrap; }
.u-pkg-actions-mt-12     { margin-top: 12px; }
.u-pkg-actions-mt-14     { margin-top: 14px; }
.u-pkg-row-flex-gap-6    { gap: 6px; margin-bottom: 6px; }
.u-pkg-row-gap-6         { gap: 6px; }
.u-btn-cancel-085em      { font-size: 0.85em; }
.u-btn-edit-082em        { font-size: 0.82em; }
.u-pkg-flex-between-wrap { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.u-pkg-card-freemium     { border-color: var(--brand-100); background: var(--brand-50); }
.u-fs-08rem-muted-r4     { font-size: 0.8rem; color: var(--muted); }
.u-fs-08rem-muted-mt-4   { margin-top: 4px; font-size: 0.8rem; color: var(--muted); }
.u-features-code-mr-4    { margin-right: 4px; }
.u-pkg-edit-area-hidden  { display: none; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.u-pkg-edit-area-blue    { display: none; margin-top: 16px; padding-top: 16px; border-top: 1px solid #bfdbfe; }
.u-grid-auto-fill-200-mt { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }

/* ---- admin_nattjobb.html --------------------------------------------- */
.u-tbl-w100-collapse-mt-16 { width: 100%; border-collapse: collapse; margin-top: 16px; }
.u-form-mt-20            { margin-top: 20px; }
.u-btn-disabled-soft     { opacity: 0.5; cursor: not-allowed; }
.u-status-meta-mt-12     { margin-top: 12px; font-size: 0.85rem; color: var(--text-muted); }
.u-section-mt-24-line    { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--border, #eaeaea); }
.u-h4-m0-mb-8            { margin: 0 0 8px; }
.u-status-meta-090       { color: var(--text-muted); font-size: 0.9rem; margin-bottom: 12px; }
.u-flex-gap-24-wrap-mt   { margin-top: 12px; display: flex; gap: 24px; flex-wrap: wrap; align-items: center; }
.u-stat-label            { font-size: 0.78rem; color: var(--text-muted); text-transform: uppercase; }
.u-stat-value            { font-size: 1.4rem; font-weight: 600; }
.u-stat-link-085         { font-size: 0.85rem; }
.u-chart-container-320   { margin-top: 16px; max-height: 320px; }
.u-meta-mt-8-078         { margin-top: 8px; font-size: 0.78rem; color: var(--text-muted); }
.u-log-status-flex       { margin-top: 16px; display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.u-log-status-085        { font-size: 0.85rem; color: var(--text-muted); }
.u-td-mon-l-085          { padding: 8px 4px; border-bottom: 1px solid var(--border-faint); color: var(--text-muted); }
.u-td-mon-r-085          { text-align: right; padding: 8px 4px; border-bottom: 1px solid var(--border-faint); font-size: 0.85rem; }
.u-td-mon-r-08-mono      { text-align: right; padding: 8px 4px; border-bottom: 1px solid var(--border-faint); font-size: 0.8rem; font-family: monospace; }
.u-td-mon-r-085-noborder { text-align: right; padding: 8px 4px; font-size: 0.85rem; }


/* ── Bolk 2 (style-src Fase B, 2026-06-01) ──────────────────────────────
   Nye composite-klasser for 15 zero-dynamic-maler. Eksakt property-paritet
   mot inline-stilen de erstatter (verifisert av verify_style_class_parity). */
.u-mt24-flex-gap12-wrap  { margin-top: 24px; display: flex; gap: 12px; flex-wrap: wrap; }
.u-mt18-gap22            { margin-top: 18px; gap: 22px; }
.u-flex-gap12-end-wrap   { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; }
.u-code-slate-13         { background: #f1f5f9; padding: 8px 12px; border-radius: 4px; font-size: 13px; white-space: pre-wrap; word-break: break-all; }
.u-align-self-end        { align-self: flex-end; }
.u-reset-box             { border: none; padding: 0; margin: 0; }
.u-list-indent-mt8       { padding-left: 20px; line-height: 2; margin-top: 8px; }
.u-ws-pre-line           { white-space: pre-line; }
.u-block-danger-mt6      { display: block; color: #b42318; margin-top: 6px; }
.u-badge-amber           { background: #fef3c7; color: #92400e; }
.u-mt24-flex-gap10-wrap  { margin-top: 24px; display: flex; gap: 10px; flex-wrap: wrap; }
.u-p4-12-fs12            { padding: 4px 12px; font-size: 12px; }
.u-m-space3-top0         { margin: var(--space-3) 0 0; }
.u-p-space3-space5       { padding: var(--space-3) var(--space-5); }

/* ── Bolk 3 (style-src Fase B, 2026-06-01) ── 29 nye composite-klasser,
   eksakt property-paritet (verifisert). Navn auto-generert, gruppert u-b3-. */
.u-b3-p-12px-14px-bg-panel-alt-bd-1px-solid-line { padding: 12px 14px; background: var(--panel-alt, #f8fafc); border: 1px solid var(--line, #e2e8f0); border-radius: 10px; font-size: 0.92em; }
.u-b3-d-block-mb-6px { display: block; margin-bottom: 6px; }
.u-b3-c-muted-fs-0-88rem { color: var(--muted); font-size: 0.88rem; }
.u-b3-mt-space-4-p-space-3-space-5 { margin-top: var(--space-4); padding: var(--space-3) var(--space-5); }
.u-b3-d-grid-g-12px { display: grid; gap: 12px; }
.u-b3-d-flex-jc-space-between-g-16px { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.u-b3-fs-12px-ws-normal { font-size: 12px; white-space: normal; }
/* .field-scoped: base-regelen `.search-input, .field, .textarea { width:100% }`
   ligger i base.html's inline <style> (lastes etter utilities.css), så en ren
   .u-b3-klasse (lik spesifisitet, tidligere kilde) taper og selecten ble 100%
   bred → stacket. .field.-prefiks gir spesifisitet 0,2,0 og vinner. Begge
   klassene brukes kun på .field-elementer (verifisert). */
.field.u-b3-w-auto-minw-180px { width: auto; min-width: 180px; }
.field.u-b3-w-auto-minw-120px-d-none { width: auto; min-width: 120px; display: none; }
.u-b3-d-flex-jc-space-between-ai-center { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.u-b3-ml-6px-fs-11px { margin-left: 6px; font-size: 11px; }
.u-b3-d-flex-g-6px-fw-wrap { display: flex; gap: 6px; flex-wrap: wrap; }
.u-b3-d-contents { display: contents; }
.u-b3-c-92400e { color: #92400e; }
.u-b3-flex-1-1-360px { flex: 1 1 360px; }
.u-b3-d-flex-g-8px-fw-wrap { display: flex; gap: 8px; flex-wrap: wrap; }
.u-b3-p-6px-10px { padding: 6px 10px; }
.u-b3-gc-span-5 { grid-column: span 5; }
.u-b3-mt-14px-d-grid-g-10px { margin-top: 14px; display: grid; gap: 10px; }
.u-b3-fs-82rem-tt-uppercase-ls-06em { font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.u-b3-gc-span-7 { grid-column: span 7; }
.u-b3-m-0-0-12px { margin: 0 0 12px; }
.u-b3-mt-16px-d-grid-gtc-auto-1fr { margin-top: 16px; display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; }
.u-b3-mt-3px { margin-top: 3px; }
.u-b3-bg-panel-c-text-bd-1px-solid-line { background: var(--panel); color: var(--text); border: 1px solid var(--line); }
.u-b3-ws-pre-wrap-ff-inherit-mt-14px { white-space: pre-wrap; font-family: inherit; margin-top: 14px; padding: 14px; background: var(--panel-alt); border-radius: 6px; border: 1px solid var(--line); }
.u-b3-mt-4px-fs-13px { margin-top: 4px; font-size: 13px; }
.u-b3-c-muted-fs-14px { color: var(--muted); font-size: 14px; }
.u-b3-bg-panel-alt-fs-13px-c-muted { background: var(--panel-alt); font-size: 13px; color: var(--muted); }

/* ── Bolk 4 (style-src Fase B) ── auto-generert, eksakt property-paritet (verifisert). */
.u-b4-d-flex-ai-flex-start-jc-space-between { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.u-b4-m-12px-0-6px { margin: 12px 0 6px; }
.u-b4-p-6px-10px-fs-12px { padding: 6px 10px; font-size: 12px; }
.u-b4-p-4px-10px-fs-12px-c-b42318 { padding: 4px 10px; font-size: 12px; color: #b42318; }
.u-b4-mt-32px-d-flex-g-12px { margin-top: 32px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.u-b4-mt-24px-c-666-fs-13px { margin-top: 24px; color: #666; font-size: 13px; }
.u-b4-mt-24px-p-12px-bg-f8fafc { margin-top: 24px; padding: 12px; background: #f8fafc; border-radius: 6px; }
.u-b4-mt-24px-c-64748b-fs-13px { margin-top: 24px; color: #64748b; font-size: 13px; }
.u-b4-maxw-480px-m-60px-auto-bg-card-bg { max-width: 480px; margin: 60px auto; background: var(--card-bg); border: 1px solid var(--line); border-radius: 14px; padding: 36px 40px; }
.u-b4-m-0-0-12px-fs-1-4em { margin: 0 0 12px; font-size: 1.4em; }
.u-b4-c-muted-mb-22px { color: var(--muted); margin-bottom: 22px; }
.u-b4-fs-0-9em-c-muted-mb-24px { font-size: 0.9em; color: var(--muted); margin-bottom: 24px; }
.u-b4-d-inline-block-p-10px-18px-bg-brand { display: inline-block; padding: 10px 18px; background: var(--brand); color: #fff; border-radius: 8px; text-decoration: none; font-weight: 600; }
.u-b4-d-grid-g-16px { display: grid; gap: 16px; }
.u-b4-bd-none-bt-1px-solid-border-m-8px-0 { border: none; border-top: 1px solid var(--border); margin: 8px 0; }
.u-b4-w-fit-content { width: fit-content; }
.u-b4-pl-18px-lh-1-7-mt-8px { padding-left: 18px; line-height: 1.7; margin-top: 8px; }
.u-b4-pos-relative-mt-10px { position: relative; margin-top: 10px; }
.u-b4-bg-panel-alt-bd-1px-solid-line-br-10px { background: var(--panel-alt); border: 1px solid var(--line); border-radius: 10px; padding: 14px 14px 14px 14px; font-size: 12px; white-space: pre-wrap; word-break: break-word; line-height: 1.6; color: var(--text); }
.u-b4-pos-absolute-top-10px-right-10px { position: absolute; top: 10px; right: 10px; padding: 4px 10px; font-size: 12px; background: var(--brand-100); border: 1px solid var(--brand-strong); border-radius: 6px; color: var(--brand-strong); cursor: pointer; }
.u-b4-maxw-280px { max-width: 280px; }
.u-b4-ws-pre-wrap { white-space: pre-wrap; }
.u-b4-ws-pre-wrap-ff-inherit-m-4px-0-0 { white-space: pre-wrap; font-family: inherit; margin: 4px 0 0; font-size: 12px; }
.u-b4-d-grid-g-6px-mb-10px { display: grid; gap: 6px; margin-bottom: 10px; }
.u-b4-mt-18px-d-grid-g-8px { margin-top: 18px; display: grid; gap: 8px; }
.u-b4-d-flex-ai-center-g-14px { display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: var(--panel-alt); border-radius: 10px; }
.u-b4-fle-0 { flex-shrink: 0; }
.u-b4-flex-1-minw-0 { flex: 1; min-width: 0; }
.u-b4-fle-0-op-0-4-cur-not-allowed { flex-shrink: 0; opacity: 0.4; cursor: not-allowed; }
.u-b4-m-space-2-0 { margin: var(--space-2) 0; }
.u-b4-fs-0-95rem-c-muted-mb-space-4 { font-size: 0.95rem; color: var(--muted); margin-bottom: var(--space-4); }
.u-b4-fs-0-8em-fwt-400 { font-size: 0.8em; font-weight: 400; }
.u-b4-fs-0-88rem { font-size: 0.88rem; }
.u-b4-p-36px-18px-ta-center { padding: 36px 18px; text-align: center; }
.u-b4-fs-2rem-c-brand-mb-14px { font-size: 2rem; color: var(--brand); margin-bottom: 14px; display: block; }
.u-b4-g-12px-ai-end-mt-8px { gap: 12px; align-items: end; margin-top: 8px; }
.u-b4-mt-10px-d-block { margin-top: 10px; display: block; }
.u-b4-gc-1-1 { grid-column: 1 / -1; }
.u-b4-w-0 { width: 0; }
.u-b4-d-flex-ai-center-jc-space-between { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; flex-wrap: wrap; gap: 10px; }
.u-b4-min-260px-pos-relative { min-height: 260px; position: relative; }
.u-b4-mt-10px-fs-0-8em { margin-top: 10px; font-size: 0.8em; }
.u-b4-pl-18px-lh-1-8-mt-8px { padding-left: 18px; line-height: 1.8; margin-top: 8px; }
.u-b4-mt-12px-fs-13px { margin-top: 12px; font-size: 13px; }
.u-b4-mt-16px-p-12px-14px-bd-1px-solid-line { margin-top: 16px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-alt); }
.u-b4-ws-pre-wrap-wb-break-word { white-space: pre-wrap; word-break: break-word; }
.u-b4-d-grid-g-6px-fs-13px { display: grid; gap: 6px; font-size: 13px; }

/* ── Bolk 5 (style-src Fase B) ── auto-generert, eksakt property-paritet (verifisert). */
.u-b5-bg-panel-bd-1px-solid-line { background: var(--panel); border: 1px solid var(--line); }
.u-b5-bg-success-bg-c-success-bd-1px-solid-succes { background: var(--success-bg, #d1fae5); color: var(--success, #047857); border: 1px solid var(--success-border, #a7f3d0); }
.u-b5-ai-start-g-20px { align-items: start; gap: 20px; }
.u-b5-g-14px { gap: 14px; }
.u-b5-m-0-fs-18px { margin: 0; font-size: 18px; }
.u-b5-d-flex-ai-center-g-10px { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.u-b5-maxw-680px-c-muted-mt-12px { max-width: 680px; color: var(--muted); margin-top: 12px; }
.u-b5-d-flex-fle-column-g-14px { display: flex; flex-direction: column; gap: 14px; margin: 18px 0; }
.u-b5-d-flex-g-12px-ai-flex-start { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-alt); cursor: pointer; }
.u-b5-mt-2px { margin-top: 2px; }
.u-b5-d-flex-g-12px { display: flex; gap: 12px; }
.u-b5-lh-1-7-c-muted { line-height: 1.7; color: var(--muted); }
.u-b5-mt-28px-mb-40px { margin-top: 28px; margin-bottom: -40px; }
.u-b5-fs-1-4em-fwt-700-m-12px-0-4px { font-size: 1.4em; font-weight: 700; margin: 12px 0 4px; }
.u-b5-fs-0-5em-fwt-400-c-muted { font-size: 0.5em; font-weight: 400; color: var(--muted); }
.u-b5-fs-0-85em-c-muted-mb-16px { font-size: 0.85em; color: var(--muted); margin-bottom: 16px; }
.u-b5-pl-18px-lh-2-fs-0-9em { padding-left: 18px; line-height: 2; font-size: 0.9em; }
.u-b5-mb-18px-c-muted { margin-bottom: 18px; color: var(--muted); }
.u-b5-bg-panel-alt-p-14px-18px { background: var(--panel-alt); padding: 14px 18px; }
.u-b5-m-0-fs-12px-c-94a3b8 { margin: 0; font-size: 12px; color: #94a3b8; line-height: 1.6; }
.u-b5-flex-2 { flex: 2; }
.u-b5-bor-4px-solid-b45309-bg-panel-alt { border-left: 4px solid #b45309; background: var(--panel-alt); }
.u-b5-fwt-400-c-888 { font-weight: 400; color: #888; }
.u-b5-c-aaa-fs-0-8rem-m-4px-0-0 { color: #aaa; font-size: 0.8rem; margin: 4px 0 0; }
.u-b5-fwt-400-fs-12px { font-weight: 400; font-size: 12px; }
.u-b5-bor-3px-solid-2563eb-pl-12px { border-left: 3px solid #2563eb; padding-left: 12px; }
.u-b5-bor-3px-solid-9333ea-pl-12px { border-left: 3px solid #9333ea; padding-left: 12px; }
.u-b5-ml-18px { margin-left: 18px; }
.u-b5-ml-14px-pl-12px-bor-3px-solid-border { margin-left: 14px; padding-left: 12px; border-left: 3px solid var(--border-soft, #ddd); color: var(--muted); }
.u-b5-mb-0 { margin-bottom: 0; }
.u-b5-bd-1px-solid-e5e7eb-p-14px-16px-br-8px { border: 1px solid #e5e7eb; padding: 14px 16px; border-radius: 8px; margin-bottom: 18px; }
.u-b5-p-0-6px-fwt-600 { padding: 0 6px; font-weight: 600; }
.u-b5-d-flex-ai-flex-start-g-10px { display: flex; align-items: flex-start; gap: 10px; margin-top: 8px; }
.u-b5-d-block-mb-14px { display: block; margin-bottom: 14px; }
.u-b5-w-100pct-box-border-box-mt-6px { width: 100%; box-sizing: border-box; margin-top: 6px; padding: 8px; border: 1px solid #e5e7eb; border-radius: 6px; }
.u-b5-d-flex-ai-flex-start-g-10px-2 { display: flex; align-items: flex-start; gap: 10px; margin: 14px 0; padding: 10px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 6px; }
.u-b5-bg-dbeafe-c-1e40af-ml-6px { background: #dbeafe; color: #1e40af; margin-left: 6px; }
.u-b5-mt-14px-w-100pct { margin-top: 14px; width: 100%; }
.u-b5-mt-14px-c-muted-fs-0-9em { margin-top: 14px; color: var(--muted); font-size: 0.9em; }
.u-b5-m-10px-0-16px-0-c-muted { margin: 10px 0 16px 0; color: var(--muted); }
.u-b5-mt-8px-w-100pct { margin-top: 8px; width: 100%; }
.u-b5-mt-10px-c-muted { margin-top: 10px; color: var(--muted); }
.u-b5-d-flex-jc-space-between-ai-center { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.u-b5-d-grid-gtc-repeat-auto-fill-g-16px { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.u-b5-bd-1px-solid-e5e7eb-br-8px-p-18px { border: 1px solid #e5e7eb; border-radius: 8px; padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.u-b5-d-flex-jc-space-between-ai-start { display: flex; justify-content: space-between; align-items: start; gap: 8px; }
.u-b5-m-0-fs-16px { margin: 0; font-size: 16px; }
.u-b5-m-0-fs-13px-c-475569 { margin: 0; font-size: 13px; color: #475569; flex: 1; }
.u-b5-d-flex-jc-space-between-ai-center-2 { display: flex; justify-content: space-between; align-items: center; padding-top: 8px; border-top: 1px solid #f1f5f9; }
.u-b5-mt-10px-mb-14px { margin-top: 10px; margin-bottom: 14px; }
.u-b5-fs-85rem { font-size: .85rem; }
.u-b5-fs-8rem-c-muted-ovf-hidden { font-size: .8rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.u-b5-ml-8px-fs-8rem { margin-left: 8px; font-size: .8rem; }
.u-b5-mt-12px-max-380px-ove-auto { margin-top: 12px; max-height: 380px; overflow-y: auto; }
.u-b5-fs-83rem { font-size: .83rem; }
.u-b5-ws-nowrap-c-muted { white-space: nowrap; color: var(--muted); }
.u-b5-gc-span-8 { grid-column: span 8; }
.u-b5-mt-10px-mb-12px { margin-top: 10px; margin-bottom: 12px; }
.u-b5-gc-span-4 { grid-column: span 4; }
.u-b5-d-flex-jc-space-between-ai-center-3 { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.u-b5-p-0 { padding: 0; }
.u-b5-d-grid-g-2px-fs-13px { display: grid; gap: 2px; font-size: 13px; }
.u-b5-d-none-pos-fixed-ins-0 { display: none; position: fixed; inset: 0; z-index: 9100; background: rgba(15,23,42,0.45); align-items: center; justify-content: center; padding: 20px; }
.u-b5-bg-fff-br-14px-w-min-900px-100pct { background: #fff; border-radius: 14px; width: min(900px, 100%); max-height: 85vh; overflow: auto; box-shadow: 0 20px 60px rgba(15,23,42,0.28); }
.u-b5-d-flex-ai-center-jc-space-between { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.u-b5-m-0-fs-1-05rem { margin: 0; font-size: 1.05rem; }
.u-b5-p-20px-22px { padding: 20px 22px; }
.u-b5-maxw-780px-m-0-auto { max-width: 780px; margin: 0 auto; }
.u-b5-mt-32px { margin-top: -32px; }
.u-b5-c-brand-mr-6px { color: var(--brand); margin-right: 6px; }
.u-b5-bg-brand-50-bd-1px-solid-brand-br-16px { background: var(--brand-50); border: 1px solid var(--brand-100); border-radius: 16px; padding: 28px 32px; margin-bottom: 56px; }
.u-b5-mb-10px-c-brand-strong { margin-bottom: 10px; color: var(--brand-strong); }
.u-b5-mt-12px-mb-24px { margin-top: 12px; margin-bottom: 24px; }
.u-b5-fs-13px-tt-uppercase-ls-05em { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; }
.u-b5-d-flex-ai-center-g-12px { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
.u-b5-d-inline-flex-ai-center-g-5px { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; background: #fef3c7; color: #92400e; border: 1px solid #fde68a; border-radius: 6px; padding: 3px 9px; }
.u-b5-c-success-fs-0-85em { color: var(--success,#16a34a); font-size: 0.85em; }
.u-b5-mt-24px-p-14px-18px-bd-1px-solid-line { margin-top: 24px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-alt); }
.u-b5-fs-0-8em-tt-uppercase-ls-06em { font-size: 0.8em; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.u-b5-mt-6px-mb-0 { margin-top: 6px; margin-bottom: 0; }
.u-b5-fs-0-85em-ml-8px { font-size: 0.85em; margin-left: 8px; }
.u-b5-p-5px-0-c-text-muted-fs-0-85em { padding: 5px 0; color: var(--text-muted); font-size: 0.85em; }
.u-b5-p-5px-0-ta-right-fs-0-82em { padding: 5px 0; text-align: right; font-size: 0.82em; }
.u-b5-mt-8px-fs-0-78em-c-text-muted { margin-top: 8px; font-size: 0.78em; color: var(--text-muted); }
.u-b5-mt-12px-c-text-muted { margin-top: 12px; color: var(--text-muted); }
.u-b5-mt-12px-pl-20px-lh-2 { margin-top: 12px; padding-left: 20px; line-height: 2; }
.u-b5-mt-16px-d-flex-g-12px { margin-top: 16px; display: flex; gap: 12px; flex-wrap: wrap; }
.u-b5-c-64748b { color: #64748b; }

/* ── Bolk 6 (style-src Fase B) ── auto-generert, eksakt property-paritet (verifisert). */
.u-b6-mt-16px-mb-16px-p-10px-14px { margin-top: 16px; margin-bottom: 16px; padding: 10px 14px; border-left: 3px solid var(--accent); background: var(--panel-alt); border-radius: 4px; font-size: 0.92em; }
.u-b6-fs-11px-p-3px-8px-ws-nowrap { font-size: 11px; padding: 3px 8px; white-space: nowrap; }
.u-b6-d-none-pos-fixed-ins-0 { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 1000; align-items: center; justify-content: center; }
.u-b6-bg-fff-br-14px-box-0-8px-32px-rgba { background: #fff; border-radius: 14px; box-shadow: 0 8px 32px rgba(0,0,0,0.18); max-width: 600px; width: calc(100% - 32px); padding: 28px; position: relative; }
.u-b6-pos-absolute-top-14px-right-16px { position: absolute; top: 14px; right: 16px; background: none; border: none; font-size: 18px; color: var(--muted); cursor: pointer; }
.u-b6-m-0-0-6px { margin: 0 0 6px; }
.u-b6-fs-13px-c-muted-mb-16px { font-size: 13px; color: var(--muted); margin-bottom: 16px; }
.u-b6-fs-12px-tt-uppercase-ls-05em { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.u-b6-fwt-600-m-4px-0-12px { font-weight: 600; margin: 4px 0 12px; }
.u-b6-w-100pct-fs-13px-ff-inherit { width: 100%; font-size: 13px; font-family: inherit; border: 1px solid var(--line); border-radius: 8px; padding: 12px; margin-top: 6px; background: var(--panel-alt); resize: vertical; box-sizing: border-box; }
.u-b6-d-flex-g-10px-mt-14px { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.u-b6-d-none-fs-12px-c-success { display: none; font-size: 12px; color: var(--success,#16a34a); margin-top: 8px; }
.u-b6-pos-fixed-bot-0-lef-0 { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; background: #1f2937; color: #f9fafb; padding: 16px; box-shadow: 0 -4px 12px rgba(0,0,0,0.18); font-size: 14px; }
.u-b6-maxw-1100px-m-0-auto-d-flex { max-width: 1100px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; }
.u-b6-flex-1-minw-260px { flex: 1; min-width: 260px; }
.u-b6-d-block-mb-4px { display: block; margin-bottom: 4px; }
.u-b6-c-bfdbfe-td-underline { color: #bfdbfe; text-decoration: underline; }
.u-b6-bg-374151-c-f9fafb-bd-1px-solid-4b5563 { background: #374151; color: #f9fafb; border: 1px solid #4b5563; padding: 8px 14px; border-radius: 6px; cursor: pointer; }
.u-b6-bg-2563eb-c-fff-bd-1px-solid-2563eb { background: #2563eb; color: #fff; border: 1px solid #2563eb; padding: 8px 14px; border-radius: 6px; cursor: pointer; }
.u-b6-maxw-1100px-m-14px-auto-0-p-14px { max-width: 1100px; margin: 14px auto 0; padding: 14px; background: #374151; border-radius: 6px; }
.u-b6-m-0-0-10px-0-fs-15px { margin: 0 0 10px 0; font-size: 15px; }
.u-b6-d-flex-ai-flex-start-g-10px { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 6px; opacity: 0.7; }
.u-b6-d-flex-ai-flex-start-g-10px-2 { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 6px; }
.u-b6-d-flex-ai-flex-start-g-10px-3 { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.u-b6-bor-4px-solid-b42318-bg-panel-alt { border-left: 4px solid #b42318; background: var(--panel-alt); }
.u-b6-d-flex-ai-center-g-12px { display: flex; align-items: center; gap: 12px; }
.u-b6-c-b42318-fs-1-3rem { color: #b42318; font-size: 1.3rem; }
.u-b6-c-b45309-fs-1-3rem { color: #b45309; font-size: 1.3rem; }
.u-b6-bg-ef4444 { background: #ef4444; }
.u-b6-bg-f59e0b { background: #f59e0b; }
.u-b6-d-flex-ai-center-jc-space-between { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.u-b6-ml-8px-fon-italic { margin-left: 8px; font-style: italic; }
.u-b6-fs-13px-p-6px-12px-c-b42318 { font-size: 13px; padding: 6px 12px; color: #b42318; border-color: #fca5a5; }
.u-b6-cur-grab-use-none { cursor: grab; user-select: none; }
.u-b6-c-line-fs-11px-ml-6px { color: var(--line); font-size: 11px; margin-left: 6px; }
.u-b6-m-0-0-8px-0-fs-1-05em { margin: 0 0 8px 0; font-size: 1.05em; }
.u-b6-m-0-0-18px-0-c-muted-lh-1-5 { margin: 0 0 18px 0; color: var(--muted,#475569); line-height: 1.5; }
.u-b6-d-block-fs-13px-mb-4px { display: block; font-size: 13px; margin-bottom: 4px; }
.u-b6-ta-right-fwt-600 { text-align: right; font-weight: 600; }
.u-b6-c-0369a1 { color: #0369a1; }
.u-b6-m-8px-0-0-0-pl-18px-fs-13px { margin: 8px 0 0 0; padding-left: 18px; font-size: 13px; }
.u-b6-m-24px-0-ta-center-c-64748b { margin: 24px 0; text-align: center; color: #64748b; }
.u-b6-ta-center-c-64748b-fs-13px { text-align: center; color: #64748b; font-size: 13px; }
.u-b6-mt-32px-p-12px-bg-f8fafc { margin-top: 32px; padding: 12px; background: #f8fafc; border-radius: 6px; font-size: 13px; color: #475569; }
.u-b6-ta-left-p-8px-6px-bor-2px-solid-line { text-align: left; padding: 8px 6px; border-bottom: 2px solid var(--line); white-space: nowrap; }
.u-b6-ta-left-p-8px-6px-bor-2px-solid-line-2 { text-align: left; padding: 8px 6px; border-bottom: 2px solid var(--line); }
.u-b6-bor-1px-solid-border { border-bottom: 1px solid var(--border-faint); }
.u-b6-p-6px-6px-ws-nowrap-c-text-muted { padding: 6px 6px; white-space: nowrap; color: var(--text-muted); }
.u-b6-p-6px-6px { padding: 6px 6px; }
.u-b6-c-b45309-fwt-600 { color: #b45309; font-weight: 600; }
.u-b6-p-6px-6px-ff-monospace { padding: 6px 6px; font-family: monospace; }
.u-b6-p-6px-6px-ff-monospace-ws-nowrap { padding: 6px 6px; font-family: monospace; white-space: nowrap; }
.u-b6-p-6px-6px-ta-right { padding: 6px 6px; text-align: right; }
.u-b6-p-6px-6px-c-text-muted-wb-break-all { padding: 6px 6px; color: var(--text-muted); word-break: break-all; max-width: 340px; }
.u-b6-fs-0-88em-c-muted-m-0 { font-size: 0.88em; color: var(--muted); margin: 0; }
.u-b6-maxw-880px-m-0-auto { max-width: 880px; margin: 0 auto; }
.u-b6-mt-36px-mb-12px { margin-top: 36px; margin-bottom: 12px; }
.u-b6-m-8px-0-6px { margin: 8px 0 6px; }
.u-b6-mt-40px-mb-12px { margin-top: 40px; margin-bottom: 12px; }
.u-b6-mt-40px { margin-top: 40px; }
.u-b6-lh-2 { line-height: 2; }
.u-b6-mt-16px-p-10px-14px-bg-brand-50 { margin-top: 16px; padding: 10px 14px; background: var(--brand-50,#eff6ff); border: 1px solid var(--brand,#2563eb); border-radius: 6px; font-size: 0.9em; }
.u-b6-fs-13px-mt-4px-d-none { font-size: 13px; margin-top: 4px; display: none; }
.u-b6-d-none-con-display { display: none; contents: display; }
.u-b6-fs-12px-c-muted-mt-3px { font-size: 12px; color: var(--muted); margin-top: 3px; display: block; }
.u-b6-d-flex-g-10px-ai-flex-start { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.u-b6-d-inline-block-w-16px-hei-16px { display: inline-block; width: 16px; height: 16px; background: var(--muted); color: #fff; border-radius: 50%; text-align: center; font-size: 11px; line-height: 16px; cursor: help; margin-left: 5px; font-weight: 700; flex-shrink: 0; }
.u-b6-td-underline { text-decoration: underline; }
.u-b6-d-none-p-10px-14px-bg-panel-alt { display: none; padding: 10px 14px; background: var(--panel-alt); border-radius: 6px; font-size: 13px; color: var(--muted); }
.u-b6-mt-20px-fs-0-85em-c-muted { margin-top: 20px; font-size: 0.85em; color: var(--muted); }
.u-b6-bor-4px-solid-warnin { border-left: 4px solid var(--warning, #e0a106); }
.u-b6-bor-4px-solid-accent { border-left: 4px solid var(--accent, #2c7be5); }
.u-b6-mt-12px-lis-none-pl-0 { margin-top: 12px; list-style: none; padding-left: 0; }
.u-b6-p-12px-0-bor-1px-solid-border { padding: 12px 0; border-bottom: 1px solid var(--border, #eaeaea); }
.u-b6-bg-eef2ff-c-312e81-fs-11px { background: #eef2ff; color: #312e81; font-size: 11px; margin-right: 8px; }
.u-b6-ml-8px-fs-11px { margin-left: 8px; font-size: 11px; }
.u-b6-mt-16px-maxw-420px { margin-top: 16px; max-width: 420px; }
.u-b6-d-block-fwt-600-fs-0-9rem { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 4px; }
.u-b6-c-4f46e5 { color: #4f46e5; }
.u-b6-w-100pct-p-8px-10px-box-border-box { width: 100%; padding: 8px 10px; box-sizing: border-box; text-transform: uppercase; }
.u-b6-d-block-c-muted-fs-0-8rem { display: block; color: var(--muted); font-size: 0.8rem; margin-top: 4px; }
.u-b6-mt-28px { margin-top: 28px; }
.u-b6-d-flex-ai-center-g-10px { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; margin: 0 0 4px; }
.u-b6-c-muted-fs-0-9rem-m-0-0-12px { color: var(--muted); font-size: 0.9rem; margin: 0 0 12px; }
.u-b6-mt-24px-p-12px-16px-bg-f1f5f9 { margin-top: 24px; padding: 12px 16px; background: #f1f5f9; border-radius: 8px; font-size: 0.88rem; color: #475569; }
.u-b6-c-10b981-mr-6px { color: #10b981; margin-right: 6px; }
.u-b6-fs-0-9em-c-muted-mb-14px { font-size: 0.9em; color: var(--muted); margin-bottom: 14px; }
.u-b6-maxw-160px { max-width: 160px; }
.u-b6-maxw-560px { max-width: 560px; }
.u-b6-p-14px-bg-panel-alt-br-8px { padding: 14px; background: var(--panel-alt); border-radius: 8px; color: var(--muted); font-size: 0.88em; }
.u-b6-d-block-mt-6px-p-8px { display: block; margin-top: 6px; padding: 8px; background: var(--bg); font-size: 0.85em; }
.u-b6-ml-10px-fs-0-9em-c-muted { margin-left: 10px; font-size: 0.9em; color: var(--muted); }
.u-b6-d-none-mt-16px-p-14px { display: none; margin-top: 16px; padding: 14px; background: var(--panel-alt); border-radius: 8px; font-size: 0.88em; color: var(--muted); }
.u-b6-fwt-600-mb-6px { font-weight: 600; margin-bottom: 6px; }
.u-b6-hei-8px-br-999px-bg-bg { height: 8px; border-radius: 999px; background: var(--bg); overflow: hidden; margin-top: 10px; }
.u-b6-hei-100pct-w-0pct-bg-brand { height: 100%; width: 0%; background: var(--brand); transition: width 120ms linear; }
.u-b6-d-none-mt-12px-p-12px-14px { display: none; margin-top: 12px; padding: 12px 14px; border-radius: 8px; font-size: 0.9em; }
.u-b6-pl-1-4em-lh-2-fs-0-9em { padding-left: 1.4em; line-height: 2; font-size: 0.9em; }
.u-b6-mt-14px-fs-0-85em-c-muted { margin-top: 14px; font-size: 0.85em; color: var(--muted); }
.u-b6-m-0-0-12px-fs-0-85em-c-muted { margin: 0 0 12px; font-size: 0.85em; color: var(--muted); }
.u-b6-ta-left-p-6px-8px-bor-1px-solid-line { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line); }
.u-b6-ta-right-p-6px-8px-bor-1px-solid-line { text-align: right; padding: 6px 8px; border-bottom: 1px solid var(--line); }
.u-b6-p-6px-8px-bor-1px-solid-bg { padding: 6px 8px; border-bottom: 1px solid var(--bg); }
.u-b6-p-6px-8px-bor-1px-solid-bg-ff-monospace { padding: 6px 8px; border-bottom: 1px solid var(--bg); font-family: monospace; font-size: 0.85em; color: var(--muted); }
.u-b6-p-6px-8px-bor-1px-solid-bg-ta-right { padding: 6px 8px; border-bottom: 1px solid var(--bg); text-align: right; }
.u-b6-maxw-960px-m-24px-auto-p-0-16px { max-width: 960px; margin: 24px auto; padding: 0 16px; }
.u-b6-mt-16px-fs-0-85rem-c-muted { margin-top: 16px; font-size: 0.85rem; color: var(--muted); }
.u-b6-w-100pct-fs-0-85rem-bor-collapse { width: 100%; font-size: 0.85rem; border-collapse: collapse; margin-top: 8px; }
.u-b6-fs-0-75em-c-muted { font-size: 0.75em; color: var(--muted); }
.u-b6-p-6px-8px-ff-monospace-fs-0-75em { padding: 6px 8px; font-family: monospace; font-size: 0.75em; }
.u-b6-mt-16px-fs-0-9rem { margin-top: 16px; font-size: 0.9rem; }
.u-b6-w-100pct-fs-0-8rem-bor-collapse { width: 100%; font-size: 0.8rem; border-collapse: collapse; }
.u-b6-p-4px-ff-monospace-fs-0-7em { padding: 4px; font-family: monospace; font-size: 0.7em; }
.u-b6-p-4px-fs-0-75em-c-muted { padding: 4px; font-size: 0.75em; color: var(--muted); }
.u-b6-p-4px-ff-monospace-fs-0-75em { padding: 4px; font-family: monospace; font-size: 0.75em; }
.u-b6-d-inline-flex-g-8px-ml-8px { display: inline-flex; gap: 8px; margin-left: 8px; }
.u-b6-p-12px-0 { padding: 12px 0; }
.u-b6-fs-0-85rem-c-muted-m-4px-0-16px { font-size: 0.85rem; color: var(--muted); margin: 4px 0 16px; }
.u-b6-c-b91c1c-mt-4px { color: #b91c1c; margin-top: 4px; }
.u-b6-d-inline-block-mt-14px { display: inline-block; margin-top: 14px; }
.u-b6-fs-0-8rem-c-muted-mb-4px { font-size: 0.8rem; color: var(--muted); margin-bottom: 4px; }
.u-b6-bg-fef3c7-c-713f12 { background: #fef3c7; color: #713f12; }
.u-b6-fs-0-9em-c-text-muted { font-size: 0.9em; color: var(--text-muted); }
.u-b6-d-flex-jc-space-between-ai-baseline { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.u-b6-p-5px-10px-bd-1px-solid-border-br-4px { padding: 5px 10px; border: 1px solid var(--border,#ddd); border-radius: 4px; font-size: 0.9em; min-width: 180px; }
.u-b6-fs-0-85em-c-text-muted-mb-12px { font-size: 0.85em; color: var(--text-muted); margin-bottom: 12px; }
.u-b6-ta-left-p-6px-8px-bor-1px-solid-border { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--border,#ddd); }
.u-b6-p-6px-8px-bor-1px-solid-border { padding: 6px 8px; border-bottom: 1px solid var(--border,#ddd); }
.u-b6-p-6px-8px-bor-1px-solid-border-2 { padding: 6px 8px; border-bottom: 1px solid var(--border-faint,#eee); }
.u-b6-c-text-muted { color: var(--text-muted,#aaa); }
.u-b6-ml-0 { margin-left: 0; }
.u-b6-td-none-fs-0-8em { text-decoration: none; font-size: 0.8em; }
.u-b6-d-block-fs-12px-c-muted { display: block; font-size: 12px; color: var(--muted); }
.u-b6-ta-left-bor-1px-solid-border { text-align: left; border-bottom: 1px solid var(--border, #eaeaea); }
.u-b6-p-8px-4px { padding: 8px 4px; }
.u-b6-p-8px-4px-ta-right { padding: 8px 4px; text-align: right; }
.u-b6-bor-1px-solid-border-2 { border-bottom: 1px solid var(--border, #eaeaea); }
.u-b6-p-8px-4px-ff-monospace-fs-11px { padding: 8px 4px; font-family: monospace; font-size: 11px; }
.u-b6-p-8px-4px-fs-12px { padding: 8px 4px; font-size: 12px; }
.u-b6-c-muted-mt-16px { color: var(--muted); margin-top: 16px; }
.u-b6-maxw-480px-m-0-auto-p-0-16px-48px { max-width: 480px; margin: 0 auto; padding: 0 16px 48px; }
.u-b6-p-24px-20px-br-12px-bg-f0fdf4 { padding: 24px 20px; border-radius: 12px; background: #f0fdf4; border: 1.5px solid #86efac; text-align: center; }
.u-b6-fs-2rem-mb-12px { font-size: 2rem; margin-bottom: 12px; }
.u-b6-fs-1-1rem { font-size: 1.1rem; }
.u-b6-mt-8px-c-muted-fs-0-9em { margin-top: 8px; color: var(--muted); font-size: 0.9em; }
.u-b6-fs-0-82em-c-muted-mt-12px { font-size: 0.82em; color: var(--muted); margin-top: 12px; }
.u-b6-p-12px-16px-br-8px-bg-fee2e2 { padding: 12px 16px; border-radius: 8px; background: #fee2e2; color: #991b1b; margin-bottom: 16px; }
.u-b6-p-28px-24px { padding: 28px 24px; }
.u-b6-d-block-fs-0-85rem-fwt-600 { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 4px; }
.u-b6-w-100pct-p-9px-12px-bd-1px-solid-line { width: 100%; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 0.95rem; background: var(--bg); }
.u-b6-p-16px-br-8px-bg-panel-alt { padding: 16px; border-radius: 8px; background: var(--panel-alt); margin-bottom: 16px; border: 1px solid var(--line); }
.u-b6-m-8px-0-0-pl-18px-fs-0-85rem { margin: 8px 0 0; padding-left: 18px; font-size: 0.85rem; color: var(--muted); line-height: 1.7; }
.u-b6-mb-14px-d-flex-g-10px { margin-bottom: 14px; display: flex; gap: 10px; align-items: flex-start; }
.u-b6-mt-3px-fle-0 { margin-top: 3px; flex-shrink: 0; }
.u-b6-fs-0-83rem-c-muted-cur-pointer { font-size: 0.83rem; color: var(--muted); cursor: pointer; }
.u-b6-mb-24px-d-flex-g-10px { margin-bottom: 24px; display: flex; gap: 10px; align-items: flex-start; }
.u-b6-w-100pct-p-12px-fs-1rem { width: 100%; padding: 12px; font-size: 1rem; }
.u-b6-ta-center-mt-18px-fs-0-88em { text-align: center; margin-top: 18px; font-size: 0.88em; color: var(--muted); }
.u-b6-ta-center-mt-8px-fs-0-85em { text-align: center; margin-top: 8px; font-size: 0.85em; color: var(--muted); }
.u-b6-p-16px-20px-br-12px-bg-fee2e2 { padding: 16px 20px; border-radius: 12px; background: #fee2e2; color: #991b1b; text-align: center; }
.u-b6-fs-1-6rem-mb-8px { font-size: 1.6rem; margin-bottom: 8px; }
.u-b6-mt-8px-fs-0-9em { margin-top: 8px; font-size: 0.9em; }
.u-b6-p-14px-16px-br-10px-bg-eff6ff { padding: 14px 16px; border-radius: 10px; background: #eff6ff; border: 1px solid #bfdbfe; margin-bottom: 16px; font-size: 0.9rem; }
.u-b6-maxw-720px-m-24px-auto { max-width: 720px; margin: 24px auto; }
.u-b6-bg-ok-bg-c-ok { background: var(--ok-bg, #e8f5e9); color: var(--ok, #2e7d32); }
.u-b6-bg-danger-bg-c-danger { background: var(--danger-bg, #ffebee); color: var(--danger, #c62828); }
.u-b6-c-danger { color: var(--danger, #c62828); }

/* ── Bolk 7 (style-src Fase B) ── auto-generert, eksakt property-paritet (verifisert). */
.u-b7-d-grid-gtc-repeat-auto-fit-g-16px { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.u-b7-p-12px-bg-ecfdf5-br-6px { padding: 12px; background: #ecfdf5; border-radius: 6px; }
.u-b7-m-6px-0-0-fs-13px-c-064e3b { margin: 6px 0 0; font-size: 13px; color: #064e3b; }
.u-b7-p-12px-bg-f5f3ff-br-6px { padding: 12px; background: #f5f3ff; border-radius: 6px; }
.u-b7-m-6px-0-0-fs-13px-c-4c1d95 { margin: 6px 0 0; font-size: 13px; color: #4c1d95; }
.u-b7-p-12px-bg-fefce8-br-6px { padding: 12px; background: #fefce8; border-radius: 6px; }
.u-b7-m-6px-0-0-fs-13px-c-713f12 { margin: 6px 0 0; font-size: 13px; color: #713f12; }
.u-b7-m-8px-0-0-fs-12px-c-854d0e { margin: 8px 0 0; font-size: 12px; color: #854d0e; }
.u-b7-mt-28px-pt-20px-bt-1px-solid-border { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--border-faint); }
.u-b7-fs-13px-mt-2px { font-size: 13px; margin-top: 2px; }
.u-b7-d-none-mt-12px-p-14px { display: none; margin-top: 12px; padding: 14px; border: 1px solid var(--border); border-radius: 8px; background: var(--panel-alt); }
.u-b7-d-grid-gtc-1fr-2fr-auto-g-10px { display: grid; grid-template-columns: 1fr 2fr auto; gap: 10px; align-items: end; }
.u-b7-mt-8px-fs-12px-c-1a7f1a { margin-top: 8px; font-size: 12px; color: #1a7f1a; }
.u-b7-w-100pct-mt-14px-bor-collapse { width: 100%; margin-top: 14px; border-collapse: collapse; font-size: 13px; }
.u-b7-p-6px-8px-bor-2px-solid-border { padding: 6px 8px; border-bottom: 2px solid var(--border); }
.u-b7-fs-11px-c-brand-strong-fwt-600 { font-size: 11px; color: var(--brand-strong); font-weight: 600; margin-left: 4px; }
.u-b7-fs-11px-c-muted-ml-4px { font-size: 11px; color: var(--muted); margin-left: 4px; }
.u-b7-p-7px-8px-bor-1px-solid-border-c-text-muted { padding: 7px 8px; border-bottom: 1px solid var(--border-faint); color: var(--text-muted); }
.u-b7-p-7px-8px-bor-1px-solid-border-c-text-muted-2 { padding: 7px 8px; border-bottom: 1px solid var(--border-faint); color: var(--text-muted); white-space: nowrap; }
.u-b7-ta-right-p-7px-8px-bor-1px-solid-border { text-align: right; padding: 7px 8px; border-bottom: 1px solid var(--border-faint); }
.u-b7-d-flex-g-6px-jc-flex-end { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
.u-b7-fs-0-8em-p-3px-10px { font-size: 0.8em; padding: 3px 10px; }
.u-b7-bg-danger-bor-danger-fs-0-8em { background: var(--danger,#ef4444); border-color: var(--danger,#ef4444); font-size: 0.8em; padding: 3px 10px; }
.u-b7-fs-11px-lh-1-p-5px-4px { font-size: 11px; line-height: 1; padding: 5px 4px; }
.u-b7-d-none-mt-8px-p-10px { display: none; margin-top: 8px; padding: 10px; background: #fef3c7; border-radius: 6px; }
.u-b7-m-0-0-8px-fs-12px-c-713f12 { margin: 0 0 8px; font-size: 12px; color: #713f12; }
.u-b7-fs-0-85em-p-4px-12px-bg-b45309 { font-size: 0.85em; padding: 4px 12px; background: #b45309; border-color: #b45309; }
.u-b7-bg-warning-bg-c-warning-fg { background: var(--warning-bg,#fef9c3); color: var(--warning-fg,#713f12); }
.u-b7-d-grid-gtc-120px-1fr-auto-g-12px { display: grid; grid-template-columns: 120px 1fr auto; gap: 12px; align-items: end; max-width: 700px; margin-top: 16px; }
.u-b7-bg-warning-fg-bor-warning-fg { background: var(--warning-fg,#92400e); border-color: var(--warning-fg,#92400e); }
.u-b7-p-6px-8px-bor-1px-solid-border-ws-nowrap { padding: 6px 8px; border-bottom: 1px solid var(--border-faint); white-space: nowrap; color: var(--text-muted); }
.u-b7-bg-dcfce7-c-166534-br-4px { background: #dcfce7; color: #166534; border-radius: 4px; padding: 2px 7px; font-size: 11px; font-weight: 600; }
.u-b7-bg-dbeafe-c-1e40af-br-4px { background: #dbeafe; color: #1e40af; border-radius: 4px; padding: 2px 7px; font-size: 11px; font-weight: 600; }
.u-b7-bg-fef9c3-c-713f12-br-4px { background: #fef9c3; color: #713f12; border-radius: 4px; padding: 2px 7px; font-size: 11px; font-weight: 600; }
.u-b7-bg-border-faint-br-4px-p-2px-7px { background: var(--border-faint); border-radius: 4px; padding: 2px 7px; font-size: 11px; }
.u-b7-p-6px-8px-bor-1px-solid-border-c-text-muted { padding: 6px 8px; border-bottom: 1px solid var(--border-faint); color: var(--text-muted); font-size: 11px; }
.u-b7-p-6px-8px-bor-1px-solid-border-ws-nowrap-2 { padding: 6px 8px; border-bottom: 1px solid var(--border-faint); white-space: nowrap; }
.u-b7-c-success-fs-12px { color: var(--success,#16a34a); font-size: 12px; }
.u-b7-c-danger-fs-12px { color: var(--danger,#ef4444); font-size: 12px; }
.u-b7-p-6px-8px-bor-1px-solid-border-c-text-muted-2 { padding: 6px 8px; border-bottom: 1px solid var(--border-faint); color: var(--text-muted); font-size: 12px; }
.u-b7-bg-e0e7ff-c-3730a3 { background: #e0e7ff; color: #3730a3; }
.u-b7-mt-16px-d-grid-g-10px { margin-top: 16px; display: grid; gap: 10px; }
.u-b7-c-b42318-fs-12px-ml-6px { color: #b42318; font-size: 12px; margin-left: 6px; }
.u-b7-fs-11px-c-muted-mt-2px { font-size: 11px; color: var(--muted); margin-top: 2px; }
.u-b7-mt-6px-d-flex-g-6px { margin-top: 6px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.u-b7-d-none-mt-8px { display: none; margin-top: 8px; }
.u-b7-d-flex-g-6px-ai-flex-end { display: flex; gap: 6px; align-items: flex-end; flex-wrap: wrap; }
.u-b7-fs-12px-p-3px-8px-c-b42318 { font-size: 12px; padding: 3px 8px; color: #b42318; }
.u-b7-d-none-fs-12px-c-b42318 { display: none; font-size: 12px; color: #b42318; margin-top: 4px; }
.u-b7-mt-20px-d-flex-g-8px { margin-top: 20px; display: flex; gap: 8px; flex-wrap: wrap; }
.u-b7-mt-12px-pl-0-lis-none { margin-top: 12px; padding-left: 0; list-style: none; font-size: 13px; display: grid; gap: 8px; }
.u-b7-d-flex-jc-space-between-g-8px { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; border-bottom: 1px dotted var(--border); padding-bottom: 6px; }
.u-b7-fs-11px-p-2px-6px-c-b42318 { font-size: 11px; padding: 2px 6px; color: #b42318; }
.u-b7-c-1e40af { color: #1e40af; }
.u-b7-fs-12px-c-muted-mt-12px { font-size: 12px; color: var(--muted); margin-top: 12px; }
.u-b7-c-muted-fs-11px { color: var(--muted); font-size: 11px; }
.u-b7-d-flex-ai-center-g-10px { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.u-b7-d-flex-g-6px-ai-center { display: flex; gap: 6px; align-items: center; flex-wrap: nowrap; }
.u-b7-p-4px-10px-fs-13px-c-b42318 { padding: 4px 10px; font-size: 13px; color: #b42318; }
.u-b7-d-grid-gtc-repeat-3-1fr-g-14px { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 20px; }
.u-b7-pos-relative-hei-160px-mb-20px { position: relative; height: 160px; margin-bottom: 20px; }
.u-b7-fs-12px-c-muted-fwt-600 { font-size: 12px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 8px; }
.u-b7-d-flex-jc-space-between-p-5px-0 { display: flex; justify-content: space-between; padding: 5px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.u-b7-d-flex-ai-center-jc-space-between { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.u-b7-d-inline-flex-g-4px-ai-center { display: inline-flex; gap: 4px; align-items: center; }
.u-b7-fs-12px-p-2px-4px-w-auto { font-size: 12px; padding: 2px 4px; width: auto; }
.u-b7-fs-11px-p-2px-6px { font-size: 11px; padding: 2px 6px; }
.u-b7-fs-12px-c-b45309 { font-size: 12px; color: #b45309; }
.u-b7-fs-12px-c-b42318 { font-size: 12px; color: #b42318; }
.u-b7-w-100pct-mb-12px { width: 100%; margin-bottom: 12px; }
.u-b7-d-flex-ai-center-g-6px { display: flex; align-items: center; gap: 6px; }
.u-b7-flex-1-bg-line-br-4px { flex: 1; background: var(--line); border-radius: 4px; height: 6px; overflow: hidden; }
.u-b7-fs-11px-c-muted-ws-nowrap { font-size: 11px; color: var(--muted); white-space: nowrap; }
.u-b7-ta-right-ff-monospace-fs-13px { text-align: right; font-family: monospace; font-size: 13px; font-weight: 700; }
.u-b7-bt-2px-solid-line { border-top: 2px solid var(--line); }
.u-b7-ta-right-fwt-700-pt-8px { text-align: right; font-weight: 700; padding-top: 8px; }
.u-b7-ta-right-ff-monospace-fs-14px { text-align: right; font-family: monospace; font-size: 14px; font-weight: 700; color: var(--accent); padding-top: 8px; }
.u-b7-ws-nowrap-d-flex-g-4px { white-space: nowrap; display: flex; gap: 4px; }
.u-b7-fs-12px-d-block-mb-4px { font-size: 12px; display: block; margin-bottom: 4px; }
.u-b7-c-warning-fg-fs-0-8em-fwt-600 { color: var(--warning-fg,#92400e); font-size: 0.8em; font-weight: 600; }
.u-b7-c-muted-fs-0-82em-fon-italic { color: var(--muted); font-size: 0.82em; font-style: italic; }
.u-b7-c-muted-mb-20px { color: var(--muted); margin-bottom: 20px; }
.u-b7-w-100pct-fs-0-85em-bor-collapse { width: 100%; font-size: 0.85em; border-collapse: collapse; min-width: 720px; }
.u-b7-bor-2px-solid-line { border-bottom: 2px solid var(--line); }
.u-b7-ta-left-p-10px-c-muted { text-align: left; padding: 10px; color: var(--muted); text-transform: uppercase; font-size: 0.75em; font-weight: 600; min-width: 150px; }
.u-b7-ta-center-p-8px-6px-ver-bottom { text-align: center; padding: 8px 6px; vertical-align: bottom; min-width: 95px; }
.u-b7-fs-0-72em-p-4px-9px-ws-nowrap { font-size: 0.72em; padding: 4px 9px; white-space: nowrap; }
.u-b7-ta-center-p-8px-6px-ver-bottom-2 { text-align: center; padding: 8px 6px; vertical-align: bottom; min-width: 90px; }
.u-b7-d-inline-block-bg-brand-c-fff { display: inline-block; background: var(--brand,#2563eb); color: #fff; font-size: 0.68em; font-weight: 700; padding: 2px 8px; border-radius: 20px; margin-bottom: 4px; letter-spacing: 0.02em; }
.u-b7-ta-center-p-8px-6px-ver-bottom-3 { text-align: center; padding: 8px 6px; vertical-align: bottom; min-width: 90px; border-right: 2px solid var(--line); }
.u-b7-bor-1px-solid-line { border-bottom: 1px solid var(--line); }
.u-b7-p-8px-10px { padding: 8px 10px; }
.u-b7-ta-center-p-8px-6px-bor-2px-solid-brand { text-align: center; padding: 8px 6px; border-left: 2px solid var(--brand,#2563eb); border-right: 2px solid var(--brand,#2563eb); background: var(--brand-50,#eff6ff); }
.u-b7-ta-center-p-8px-6px-bor-2px-solid-line { text-align: center; padding: 8px 6px; border-right: 2px solid var(--line); }
.u-b7-c-inherit { color: inherit; }
.u-b7-ta-center-p-8px-6px-bor-2px-solid-brand-2 { text-align: center; padding: 8px 6px; border-left: 2px solid var(--brand,#2563eb); border-right: 2px solid var(--brand,#2563eb); border-bottom: 2px solid var(--brand,#2563eb); background: var(--brand-50,#eff6ff); }
.u-b7-mt-14px-fs-0-82em-c-muted { margin-top: 14px; font-size: 0.82em; color: var(--muted); }
.u-b7-hei-44px-w-auto-d-block { height: 44px; width: auto; display: block; }
.u-b7-p-6px-16px-fs-14px { padding: 6px 16px; font-size: 14px; }
.u-b7-w-13px-ta-center-fle-0 { width: 13px; text-align: center; flex-shrink: 0; }
.u-b7-d-flex-ai-center-g-5px { display: flex; align-items: center; gap: 5px; margin-bottom: 5px; cursor: grab; user-select: none; }
.u-b7-fs-9-5px-fwt-700-tt-uppercase { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); }
.u-b7-c-line-fs-9px { color: var(--line); font-size: 9px; }
.u-b7-bg-rgba-255-255-255-bor-1px-solid-line-p-10 { background: rgba(255,255,255,0.85); border-bottom: 1px solid var(--line); padding: 10px 0; }
.u-b7-fs-14px-c-muted-lh-1-55 { font-size: 14px; color: var(--muted); line-height: 1.55; }
.u-b7-d-none-bg-fefce8-bor-1px-solid-fde68a { display: none; background: #fefce8; border-bottom: 1px solid #fde68a; padding: 7px 0; }
.u-b7-d-flex-ai-center-g-10px-2 { display: flex; align-items: center; gap: 10px; font-size: 0.88em; font-weight: 500; color: #78350f; }
.u-b7-c-d97706-fle-0 { color: #d97706; flex-shrink: 0; }
.u-b7-d-none-bg-brand-50-bor-1px-solid-brand { display: none; background: var(--brand-50); border-bottom: 1px solid var(--brand-100); padding: 7px 0; }
.u-b7-d-flex-ai-center-g-10px-3 { display: flex; align-items: center; gap: 10px; font-size: 0.88em; font-weight: 500; color: var(--brand-strong); }
.u-b7-d-none-p-7px-0 { display: none; padding: 7px 0; }
.u-b7-d-flex-ai-center-g-10px-4 { display: flex; align-items: center; gap: 10px; font-size: 0.9em; font-weight: 500; }
.u-b7-d-flex-fw-wrap-jc-space-between { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; }
.u-b7-mt-8px-d-flex-fw-wrap { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 10px 16px; }
.u-b7-d-flex-g-16px-fw-wrap { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-start; }
.u-b7-d-none-pos-fixed-ins-0 { display: none; position: fixed; inset: 0; z-index: 10000; background: rgba(0,0,0,0.45); align-items: center; justify-content: center; }
.u-b7-bg-fff-br-12px-p-28px-32px { background: #fff; border-radius: 12px; padding: 28px 32px; max-width: 420px; width: 90%; box-shadow: 0 8px 40px rgba(0,0,0,0.18); }
.u-b7-m-0-0-22px-fs-15px-lh-1-55 { margin: 0 0 22px; font-size: 15px; line-height: 1.55; }
.u-b7-pos-fixed-bot-24px-right-24px { position: fixed; bottom: 24px; right: 24px; z-index: 9999; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; pointer-events: none; }
.u-b7-mt-16px-d-grid-g-6px { margin-top: 16px; display: grid; gap: 6px; }
.u-b7-fs-88rem { font-size: .88rem; }
.u-b7-fs-8rem { font-size: .8rem; }
.u-b7-d-flex-ai-center-jc-space-between-2 { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 4px; }
.u-b7-mb-16px-fs-82rem { margin-bottom: 16px; font-size: .82rem; }
.u-b7-mt-8px-d-grid-g-6px { margin-top: 8px; display: grid; gap: 6px; }
.u-b7-p-8px-12px-bg-panel-alt-bd-1px-solid-line { padding: 8px 12px; background: var(--panel-alt); border: 1px solid var(--line); border-radius: 6px; font-size: .83rem; }
.u-b7-c-b45309-ml-6px { color: #b45309; margin-left: 6px; }
.u-b7-c-muted-mt-24px-ta-center { color: var(--muted); margin-top: 24px; text-align: center; padding: 32px 0; }
.u-b7-fs-1-8rem-op-3 { font-size: 1.8rem; opacity: .3; }
.u-b7-gc-span-12-bg-panel-alt { grid-column: span 12; background: var(--panel-alt); }
.u-b7-d-grid-gtc-repeat-auto-fill-g-8px { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; margin-top: 10px; font-size: .83rem; }
.u-b7-mt-10px-fs-8rem { margin-top: 10px; font-size: .8rem; }
.u-b7-flex-1-d-flex-fle-column { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.u-b7-bg-warn-bg-c-warn { background: var(--warn-bg); color: var(--warn); }
.u-b7-ta-right-ws-nowrap { text-align: right; white-space: nowrap; }
.u-b7-c-text-fs-14px-m-0-0-10px { color: var(--text); font-size: 14px; margin: 0 0 10px; }
.u-b7-c-muted-fs-13px-m-0 { color: var(--muted); font-size: 13px; margin: 0; }
.u-b7-ovf-visible { overflow: visible; }
.u-b7-ws-nowrap-pad-10px-fs-13px { white-space: nowrap; padding-right: 10px; font-size: 13px; }
.u-b7-fs-13px-ml-6px { font-size: 13px; margin-left: 6px; }
.u-b7-ali-center { align-self: center; }
.u-b7-fs-12px-tt-uppercase-ls-0-5px { font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; }
.u-b7-fs-2-4em-fwt-700-mt-8px { font-size: 2.4em; font-weight: 700; margin-top: 8px; line-height: 1.1; }
.u-b7-mt-16px-p-10px-0 { margin-top: 16px; padding: 10px 0; }
.u-b7-fs-12px-mt-6px { font-size: 12px; margin-top: 6px; }
.u-b7-mt-14px-c-muted { margin-top: 14px; color: var(--muted); }
.u-b7-fs-1-6em-fwt-600-mt-6px { font-size: 1.6em; font-weight: 600; margin-top: 6px; }
.u-b7-ta-center-p-40px { text-align: center; padding: 40px; }
.u-b7-fs-1-2em-mb-14px { font-size: 1.2em; margin-bottom: 14px; }
.u-b7-ml-6px-fs-11px-bg-fef3c7 { margin-left: 6px; font-size: 11px; background: #fef3c7; color: #92400e; padding: 1px 6px; border-radius: 3px; }
.u-b7-mt-16px-lis-none-p-0 { margin-top: 16px; list-style: none; padding: 0; display: grid; gap: 8px; }
.u-b7-mt-18px-fs-9rem-c-muted { margin-top: 18px; font-size: .9rem; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.u-b7-d-grid-gtc-1fr-1fr-g-12px { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 10px; }
.u-b7-d-flex-g-6px-mt-14px { display: flex; gap: 6px; margin-top: 14px; }
.u-b7-p-4px-10px-br-7px-bd-1px-solid-brand { padding: 4px 10px; border-radius: 7px; border: 1px solid var(--brand); background: var(--brand); color: #fff; font-size: 12px; font-weight: 600; cursor: pointer; }
.u-b7-p-4px-10px-br-7px-bd-1px-solid-line { padding: 4px 10px; border-radius: 7px; border: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 12px; font-weight: 600; cursor: pointer; }
.u-b7-mt-12px-min-160px-pos-relative { margin-top: 12px; min-height: 160px; position: relative; }
.u-b7-fs-12px-c-muted-mb-6px { font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.u-b7-d-flex-jc-space-between-g-8px-2 { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.u-b7-c-text-ovf-hidden-tex-ellipsis { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.u-b7-m-16px-0 { margin: 16px 0; }
.u-b7-p-4px-12px-fs-0-85rem { padding: 4px 12px; font-size: 0.85rem; }
.u-b7-mt-16px-p-12px-bg-fff7ed { margin-top: 16px; padding: 12px; background: #fff7ed; border-left: 3px solid #f97316; border-radius: 4px; }
.u-b7-m-8px-0-0-p-8px-bg-fafafa { margin: 8px 0 0; padding: 8px; background: #fafafa; border-radius: 4px; }
.u-b7-fwt-600-bg-panel-alt { font-weight: 600; background: var(--panel-alt); }
.u-b7-mt-16px-p-12px-bg-fef2f2 { margin-top: 16px; padding: 12px; background: #fef2f2; border-left: 3px solid #ef4444; border-radius: 4px; }
.u-b7-m-8px-0-0-20px { margin: 8px 0 0 20px; }
.u-b7-cur-pointer-fwt-600 { cursor: pointer; font-weight: 600; }
.u-b7-mt-8px-ff-monospace-fs-0-85rem { margin-top: 8px; font-family: monospace; font-size: 0.85rem; }
.u-b7-mt-8px-fs-0-85rem-c-muted { margin-top: 8px; font-size: 0.85rem; color: var(--muted); }

/* ── Bolk 7 (style-src Fase B) ── auto-generert, eksakt property-paritet (verifisert). */
.u-b7-p-14px-16px-bg-panel-bd-1px-dashed-line { padding: 14px 16px; background: var(--panel); border: 1px dashed var(--line); border-radius: 10px; }
.u-b7-m-0-0-10px-fs-0-9rem { margin: 0 0 10px; font-size: 0.9rem; }
.u-b7-p-18px-22px { padding: 18px 22px; }
.u-b7-d-flex-g-16px-ai-baseline { display: flex; gap: 16px; align-items: baseline; flex-wrap: wrap; }
.u-b7-flex-1-minw-240px { flex: 1; min-width: 240px; }
.u-b7-m-0-fs-0-88rem { margin: 0; font-size: 0.88rem; }
.u-b7-fs-2-4rem-c-brand-mb-14px { font-size: 2.4rem; color: var(--brand); margin-bottom: 14px; display: block; }
.u-b7-maxw-520px-m-0-auto { max-width: 520px; margin: 0 auto; }
.u-b7-mt-18px-d-flex-fle-column { margin-top: 18px; display: flex; flex-direction: column; gap: 18px; }
.u-b7-d-flex-ai-center-g-10px-5 { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.u-b7-w-18px-hei-18px { width: 18px; height: 18px; }
.u-b7-d-block-fwt-600-mb-6px { display: block; font-weight: 600; margin-bottom: 6px; }
.u-b7-c-ef4444 { color: #ef4444; }
.u-b7-c-brand { color: var(--brand); }
.u-b7-w-100pct-p-10px-12px-bd-1px-solid-line { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 0.95em; font-family: inherit; resize: vertical; }
.u-b7-mt-12px-mb-16px-fs-0-88em { margin-top: 12px; margin-bottom: 16px; font-size: 0.88em; color: var(--muted); }
.u-b7-br-8px-p-12px-16px-d-flex { border-radius: 8px; padding: 12px 16px; display: flex; align-items: flex-start; gap: 10px; font-size: 0.92em; font-weight: 500; }
.u-b7-mt-2px-fle-0 { margin-top: 2px; flex-shrink: 0; }
.u-b7-d-flex-jc-space-between-ai-center { display: flex; justify-content: space-between; align-items: center; padding: 14px; border-top: 1px solid var(--line); margin-top: 8px; }
.u-b7-d-grid-gtc-minmax-240px-1-5-g-12px { display: grid; grid-template-columns: minmax(240px, 1.5fr) minmax(240px, 1fr) auto; gap: 12px; margin-top: 20px; align-items: end; }
.u-b7-ta-right-fs-13px-c-muted { text-align: right; font-size: 13px; color: var(--muted); }
.u-b7-fwt-700-bt-2px-solid-line { font-weight: 700; border-top: 2px solid var(--line); }
.u-b7-mt-16px-fs-13px { margin-top: 16px; font-size: 13px; }
.u-b7-d-flex-jc-space-between-ai-baseline { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.u-b7-d-grid-g-8px-fs-0-9em { display: grid; gap: 8px; font-size: 0.9em; margin-bottom: 20px; }
.u-b7-c-color-danger { color: var(--color-danger, red); }
.u-b7-bg-border-faint-br-4px-hei-8px { background: var(--border-faint, #eee); border-radius: 4px; height: 8px; overflow: hidden; }
.u-b7-fs-0-85em-c-text-muted-ml-12px { font-size: 0.85em; color: var(--text-muted); margin-left: 12px; }
.u-b7-d-none { display: none; }

/* ── Bolk 8 (style-src Fase B) ── auto-generert, eksakt property-paritet (verifisert). */
.u-b8-fil-blur-3px-poi-none-use-none { filter: blur(3px); pointer-events: none; user-select: none; flex: 1; }
.u-b8-op-0-5 { opacity: 0.5; }
.u-b8-op-0-4-fs-0-82em { opacity: 0.4; font-size: 0.82em; }
.u-b8-p-12px-14px-bd-1px-solid-line-br-12px { padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; list-style: none; display: block; position: relative; }
.u-b8-mt-4px-fs-0-82em { margin-top: 4px; font-size: 0.82em; }
.u-b8-fs-2em-c-muted-mb-12px { font-size: 2em; color: var(--muted); margin-bottom: 12px; display: block; }
.u-b8-bg-panel-alt-c-text { background: var(--panel-alt); color: var(--text); }
.u-b8-d-inline-block-bg-border-faint-c-text-muted { display: inline-block; box-sizing: border-box; background: var(--border-faint,#e5e7eb); color: var(--text-muted); border: 1px solid transparent; border-radius: 20px; padding: 2px 11px; font-size: 0.78em; line-height: 1.4; font-weight: 600; white-space: nowrap; cursor: default; }
.u-b8-d-inline-block-bg-border-faint-c-text-muted-2 { display: inline-block; background: var(--border-faint,#e5e7eb); color: var(--text-muted,#6b7280); border-radius: 20px; padding: 2px 11px; font-size: 0.78em; font-weight: 600; white-space: nowrap; }
.u-b8-mb-22px-p-16px-18px-br-10px { margin-bottom: 22px; padding: 16px 18px; border-radius: 10px; background: linear-gradient(135deg,#eff6ff,#f0fdf4); border: 1.5px solid #bfdbfe; display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.u-b8-c-brand-600-mr-6px { color: var(--brand-600); margin-right: 6px; }
.u-b8-fs-0-85em-c-muted-mt-4px { font-size: 0.85em; color: var(--muted); margin-top: 4px; }
.u-b8-g-16px { gap: 16px; }
.u-b8-ai-flex-start { align-items: flex-start; }
.u-b8-bg-brand-50-c-brand-strong { background: var(--brand-50); color: var(--brand-strong); }
.u-b8-mt-16px-p-12px-14px-bd-2px-solid-brand { margin-top: 16px; padding: 12px 14px; border: 2px solid var(--brand); border-radius: 12px; background: linear-gradient(135deg,var(--brand-50) 0%,var(--brand-100) 100%); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.u-b8-bg-linear-gradient-c-fff-bor-4f46e5 { background: linear-gradient(135deg,#4f46e5,#2563eb); color: #fff; border-color: #4f46e5; }
.u-b8-cur-pointer-fs-0-9em-c-text-muted { cursor: pointer; font-size: 0.9em; color: var(--text-muted); list-style: none; display: flex; align-items: center; gap: 6px; padding: 4px 0; user-select: none; }
.u-b8-cur-default-poi-none { cursor: default; pointer-events: none; }
.u-b8-mt-20px-p-20px-bd-1px-dashed-line { margin-top: 20px; padding: 20px; border: 1px dashed var(--line,#e5e7eb); border-radius: 10px; background: var(--panel-alt); text-align: center; color: var(--text-muted); }
.u-b8-fs-0-9em-mb-12px { font-size: 0.9em; margin-bottom: 12px; }
.u-b8-bg-panel-alt-c-text-bd-1px-solid-line { background: var(--panel-alt); color: var(--text); border: 1px solid var(--line); }
.u-b8-mb-16px-fs-0-88em-c-text-muted { margin-bottom: 16px; font-size: 0.88em; color: var(--text-muted); }
.u-b8-d-flex-g-12px-fw-wrap { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.u-b8-bg-fef9c3-bd-1px-solid-facc15-br-8px { background: #fef9c3; border: 1px solid #facc15; border-radius: 8px; padding: 12px 18px; min-width: 140px; }
.u-b8-fs-0-75em-c-854d0e-fwt-600 { font-size: 0.75em; color: #854d0e; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.u-b8-ff-monospace-fs-0-9em-bg-panel-alt { font-family: monospace; font-size: 0.9em; background: var(--panel-alt); padding: 1px 6px; border-radius: 4px; }
.u-b8-bg-ef4444-c-fff-br-20px { background: #ef4444; color: #fff; border-radius: 20px; padding: 3px 14px; font-size: 0.8em; font-weight: 700; }
.u-b8-bg-f59e0b-c-fff-br-20px { background: #f59e0b; color: #fff; border-radius: 20px; padding: 3px 14px; font-size: 0.8em; font-weight: 700; }
.u-b8-mt-20px-pt-16px-bt-1px-solid-border { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border-faint); }
.u-b8-fs-0-78em-fwt-700-tt-uppercase { font-size: 0.78em; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); margin-bottom: 10px; }
.u-b8-fwt-400-fs-0-85em-op-0-8 { font-weight: 400; font-size: 0.85em; opacity: 0.8; }
.u-b8-d-flex-fw-wrap-g-10px { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 8px; font-size: 0.73em; color: var(--text-muted); }
.u-b8-fwt-600-mr-2px { font-weight: 600; margin-right: 2px; }
.u-b8-d-inline-block-w-10px-hei-10px { display: inline-block; width: 10px; height: 10px; background: #dcfce7; border: 1px solid #bbf7d0; border-radius: 2px; vertical-align: middle; }
.u-b8-d-inline-block-w-10px-hei-10px-2 { display: inline-block; width: 10px; height: 10px; background: var(--brand-100); border: 1px solid var(--brand-100); border-radius: 2px; vertical-align: middle; }
.u-b8-d-inline-block-w-10px-hei-10px-3 { display: inline-block; width: 10px; height: 10px; background: #ffedd5; border: 1px solid #fed7aa; border-radius: 2px; vertical-align: middle; }
.u-b8-d-inline-block-w-10px-hei-10px-4 { display: inline-block; width: 10px; height: 10px; background: #fff7ed; border: 1px dashed #fb923c; border-radius: 2px; vertical-align: middle; }
.u-b8-d-inline-block-w-10px-hei-10px-5 { display: inline-block; width: 10px; height: 10px; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 2px; vertical-align: middle; }
.u-b8-m-8px-0-0-fs-0-71em-fon-italic { margin: 8px 0 0; font-size: 0.71em; font-style: italic; color: var(--text-muted); line-height: 1.5; }
.u-b8-mt-14px-p-16px-18px-br-10px { margin-top: 14px; padding: 16px 18px; border-radius: 10px; background: var(--panel-alt); border: 1px dashed var(--line); text-align: center; }
.u-b8-fs-1-3em-mb-8px-d-block { font-size: 1.3em; margin-bottom: 8px; display: block; opacity: 0.5; }
.u-b8-fs-0-88em-c-muted-mb-12px { font-size: 0.88em; color: var(--muted); margin-bottom: 12px; }
.u-b8-mt-14px-c-text-muted-fs-13px { margin-top: 14px; color: var(--text-muted); font-size: 13px; }
.u-b8-maxw-960px-m-32px-auto-p-0-16px { max-width: 960px; margin: 32px auto; padding: 0 16px; }
.u-b8-mb-24px-d-flex-g-10px { margin-bottom: 24px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.u-b8-fs-0-78em-c-muted { font-size: 0.78em; color: var(--muted); }
.u-b8-d-flex-g-10px-ai-center { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; }
.u-b8-d-flex-g-8px-ai-center { display: flex; gap: 8px; align-items: center; margin-bottom: 14px; }
.u-b8-p-6px-10px-br-6px-bd-1px-solid-line { padding: 6px 10px; border-radius: 6px; border: 1px solid var(--line); font-family: monospace; width: 140px; }
.u-b8-p-6px-10px-br-6px-bd-1px-solid-line-2 { padding: 6px 10px; border-radius: 6px; border: 1px solid var(--line); font-size: 0.85em; }
.u-b8-d-flex-jc-space-between-ai-center { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.u-b8-m-0-0-4px { margin: 0 0 4px; }
.u-b8-mb-12px-p-10px-14px-bg-fffbeb { margin-bottom: 12px; padding: 10px 14px; background: #fffbeb; border-left: 3px solid #f59e0b; border-radius: 6px; font-size: 13px; color: #92400e; }
.u-b8-d-none-mt-12px-p-10px-14px { display: none; margin-top: 12px; padding: 10px 14px; background: #fef3f2; border-radius: 6px; color: #b42318; font-size: 13px; }
.u-b8-d-flex-jc-space-between-ai-center-2 { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.u-b8-c-muted-fs-13px-mb-12px { color: var(--muted); font-size: 13px; margin-bottom: 12px; }
.u-b8-d-flex-ai-center-g-10px { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; padding: 10px 12px; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 8px; flex-wrap: wrap; }
.u-b8-fwt-600-fs-13px-ws-nowrap { font-weight: 600; font-size: 13px; white-space: nowrap; }
.u-b8-flex-1-minw-280px-fs-12px { flex: 1; min-width: 280px; font-size: 12px; font-family: monospace; padding: 6px 10px; border: 1px solid #d1d5db; border-radius: 5px; background: #fff; }
.u-b8-ta-right-fwt-700 { text-align: right; font-weight: 700; }
.u-b8-d-grid-gtc-repeat-auto-fit-g-12px { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 12px; margin-bottom: 16px; }
.u-b8-w-100pct-fs-13px-p-6px-8px { width: 100%; font-size: 13px; padding: 6px 8px; border: 1px solid #d1d5db; border-radius: 5px; }
.u-b8-d-flex-jc-space-between-fs-12px { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.u-b8-bg-e5e7eb-br-99px-hei-8px { background: #e5e7eb; border-radius: 99px; height: 8px; overflow: hidden; margin-bottom: 14px; }
.u-b8-hei-100pct-bg-brand-br-99px { height: 100%; background: var(--brand); border-radius: 99px; transition: width .3s; width: 0; }
.u-b8-d-grid-gtc-repeat-auto-fit-g-10px { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 10px; }
.u-b8-d-none-mt-16px-p-14px-16px { display: none; margin-top: 16px; padding: 14px 16px; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; }
.u-b8-m-0-0-10px-fs-14px { margin: 0 0 10px; font-size: 14px; }
.u-b8-bg-f9fafb-bd-1px-solid-e5e7eb-br-6px { background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 6px; padding: 14px; font-size: 12px; overflow-x: auto; }
.u-b8-fs-14px-m-18px-0-8px { font-size: 14px; margin: 18px 0 8px; }
.u-b8-m-6px-0-0-fs-1-6rem { margin: 6px 0 0; font-size: 1.6rem; }
.u-b8-m-6px-0-0-c-muted { margin: 6px 0 0; color: var(--muted); }
.u-b8-d-grid-gtc-1fr-2fr-g-16px { display: grid; grid-template-columns: 1fr 2fr; gap: 16px; }
.u-b8-d-grid-gtc-1fr-1fr-1fr-g-16px { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.u-b8-d-grid-gtc-1fr-1fr-g-16px { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.u-b8-d-flex-jc-space-between-ai-center-3 { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.u-b8-p-6px-12px-fs-12px { padding: 6px 12px; font-size: 12px; }
.u-b8-p-6px-12px-fs-12px-cur-pointer { padding: 6px 12px; font-size: 12px; cursor: pointer; }
.u-b8-m-20px-0-8px-fs-14px-tt-uppercase { margin: 20px 0 8px; font-size: 14px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); }
.u-b8-bg-fff-p-16px-bd-1px-dashed-line { background: #fff; padding: 16px; border: 1px dashed var(--line); min-height: 100px; }
.u-b8-mt-10px-p-8px-12px-br-8px { margin-top: 10px; padding: 8px 12px; border-radius: 8px; background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; font-size: 13px; }
.u-b8-d-grid-gtc-2fr-1fr-g-16px { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }

/* ── Bolk D (style-src Fase B, dynamisk) ── betinget-farge/-visning → class-swap.
   Eksakt property-paritet mot inline-verdiene de erstatter. */
.u-text-status-green     { color: #28a745; }
.u-text-status-amber     { color: #f39c12; }
.u-text-status-red       { color: #dc3545; }
.u-bg-fef3f2             { background: #fef3f2; }
/* Override-vekt for aktiv .button (a.button setter font-weight, spesifisitet 0,1,1,
   så en vanlig utility taper — !important matcher inline-stilen den erstatter). */
.u-fw-700-i              { font-weight: 700 !important; }

/* ── Bolk 9 (style-src Fase B) ── auto-generert, eksakt property-paritet (verifisert). */
.u-b9-d-flex-g-10px-fw-wrap { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; max-width: 560px; }

/* ── CSP Fase B — Wave 1 (wtforms + plain-static, 2026-06-02) ──────────────
   .field.-compound der base-regelen .field{width:100%} (base.html inline <style>,
   lastet etter utilities.css) ellers ville slått en ren utility-klasse. */
.u-wtf-mh-70 { min-height: 70px; }
.u-wtf-mh-80 { min-height: 80px; }
.field.u-wtf-w-100px { width: 100px; }
.field.u-wtf-w-120px { width: 120px; }
.field.u-wtf-w-90px  { width: 90px; }
.field.u-wtf-readonly-field { background: var(--panel-alt); cursor: default; }
.u-wtf-checkbox-top { margin-top: 3px; cursor: pointer; flex-shrink: 0; }
.u-ps-mh-420-mono-13 { min-height: 420px; font-family: 'JetBrains Mono', monospace; font-size: 13px; }
.u-ps-mh-360-mono-13 { min-height: 360px; font-family: 'JetBrains Mono', monospace; font-size: 13px; }
.u-ps-mh-280-mono-13 { min-height: 280px; font-family: 'JetBrains Mono', monospace; font-size: 13px; }
.u-ps-mh-220-mono-13 { min-height: 220px; font-family: 'JetBrains Mono', monospace; font-size: 13px; }
.u-ps-mono-orgnr-14  { font-family: 'SF Mono', Menlo, Consolas, monospace; font-size: 14px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm, 6px); color: var(--text); background: var(--panel); }
.u-ps-mono           { font-family: 'SF Mono', Menlo, Consolas, monospace; }

/* ── CSP Fase B — Wave 2 (betinget/diskret jinja class-swap, 2026-06-02) ────
   Erstatter `style="prop:{% if .. %}A{% else %}B{% endif %}"` med betinget
   class i `class=`. Eksakt property-paritet pr. gren (verifisert manuelt).
   admin_user_detail split-icon, admin_priser tier-rad, company_admin pakke-rad,
   bulk_job_status progress-wrap. Reuse: u-p-cell-r-light, u-bg-panel-alt,
   u-fs-15rem-strong. */
.u-cj-c-green        { color: #15803d; }
.u-cj-c-red          { color: #b42318; }
.u-cj-c-text         { color: var(--text); }
.u-cj-fw-700         { font-weight: 700; }
.u-cj-fw-400         { font-weight: 400; }
.u-cj-ta-r-tnum      { text-align: right; font-variant-numeric: tabular-nums; }
.u-cj-bg-brand50     { background: var(--brand-50, #e0f2fe); }
.u-cj-bg-panelalt-dim { background: var(--panel-alt, #f8f8f8); opacity: 0.75; }
.u-cj-bg-transparent { background: transparent; }
.u-cj-mb-20          { margin-bottom: 20px; }
.u-cj-d-none         { display: none; }
.u-cj-pkg-card-row   { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.u-cj-d-flex         { display: flex; }

/* ── CSP Fase B — Wave 2 del 2 (jinja class-swap + continuous data-attr, 2026-06-02)
   Compound-selektorer (.pill./.card./.admin-badge./.toolbar-group.) der en
   komponent-klasse ellers ville slått en ren utility. Continuous width%/grid-cols
   flyttet til data-attr + CSSOM-bro i base.html (data-css-width / data-grid-cols). */

/* admin.html — oversikt-badges (betinget) */
.admin-badge.u-badge-urgent      { border-color: #ef4444; }
.admin-badge.u-badge-highlight   { border-color: #f59e0b; background: #fffbeb; }
.u-c-d97706                      { color: #d97706; }
.badge-count.u-badgecount-urgent { background: #fee2e2; color: #991b1b; }

/* admin_driftsmelding.html — radio-kort (betinget valgt-stil) */
.u-drift-radio                       { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 10px 16px; border: 2px solid var(--line); border-radius: 10px; background: var(--panel); }
.u-drift-radio.u-drift-radio-warning { border-color: #f59e0b; background: #fffbeb; }
.u-drift-radio.u-drift-radio-danger  { border-color: #ef4444; background: #fef2f2; }
.u-drift-radio.u-drift-radio-info    { border-color: var(--brand); background: var(--brand-50); }

/* .pill-betinget (admin_selskap_detail, dashbord) */
.pill.u-pill-amber  { background: #fde68a; color: #92400e; }
.pill.u-pill-blue   { background: #dbeafe; color: #1e3a8a; }
.pill.u-pill-feat   { padding: 4px 12px; border-radius: 20px; font-size: 13px; }
.pill.u-pill-on     { background: var(--success-bg, #d1fae5); color: var(--success); border: 1px solid var(--success); }
.pill.u-pill-off    { background: var(--panel-alt); color: var(--muted); border: 1px solid var(--line); }

/* .card-betinget (minbedrift_utvidelser, admin_innsynsbegjaring) */
.card.u-card-noaccess      { background: var(--panel-alt); border-style: dashed; }
.card.u-innsyn-card        { padding: 8px 12px; text-decoration: none; border: 1px solid var(--line); }
.card.u-innsyn-card-active { border-color: var(--primary); background: var(--panel-alt); }

/* _pakke_sammenligning — _pop_th konstant-streng */
.u-pop-th { text-align: center; padding: 8px 6px; vertical-align: bottom; min-width: 90px; border-left: 2px solid var(--brand, #2563eb); border-right: 2px solid var(--brand, #2563eb); border-top: 3px solid var(--brand, #2563eb); background: var(--brand-50, #eff6ff); }

/* Width-bar-fyll (statisk del; bredde via data-css-width + CSSOM) */
.u-bar-fill-red    { height: 100%; background: #b42318; border-radius: 4px; }
.u-bar-fill-amber  { height: 100%; background: #b45309; border-radius: 4px; }
.u-bar-fill-accent { height: 100%; background: var(--accent); border-radius: 4px; }
.u-bar-primary     { background: var(--color-primary, #0a7); height: 100%; transition: width 0.4s; }
.u-stat-bar        { display: inline-block; height: 14px; background: #2563eb; vertical-align: middle; }

/* base.html — admin-nav-item (betinget aktiv) + toolbar-grupper */
.u-anav-item                    { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 6px; font-size: 12.5px; font-weight: 500; text-decoration: none; white-space: nowrap; cursor: grab; color: var(--muted); background: transparent; }
.u-anav-item.u-anav-item-active { color: var(--brand-strong); background: var(--brand-100); }
/* Connector-/produkt-logo i admin-nav (erstatter FA-ikon når AdminNavItem.icon_img er satt).
   em-basert så den matcher FA-ikonets størrelse i hver flate (toolbar, favoritter, badge). */
.u-nav-logo                     { width: 1.15em; height: 1.15em; object-fit: contain; vertical-align: middle; border-radius: 2px; flex: 0 0 auto; }
.u-admin-toolbar-grid           { display: grid; gap: 0; }
.toolbar-group.u-tg-base-pad    { padding: 0 12px; }
.toolbar-group.u-tg-first       { padding-left: 0; }
.toolbar-group.u-tg-last        { padding-right: 0; }
.toolbar-group.u-tg-mid         { border-right: 1px solid var(--line); }
.toolbar-group-items-cols { display: grid; gap: 1px 10px; align-content: start; }
.toolbar-group[data-col-count="1"] .toolbar-group-items-cols { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.toolbar-group[data-col-count="2"] .toolbar-group-items-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.toolbar-group[data-col-count="3"] .toolbar-group-items-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* ── CSP Fase B — Wave 3 (search.html tre + selects, 2026-06-02) ───────────
   Tre-noder: diskret margin-top (level0=12 ellers 10) → klasse; kontinuerlig
   margin-left (level*20) → data-css-ml + CSSOM-bro. Aktiv-bakgrunn håndteres av
   eksisterende .company-tree-surface.is-active (!important). */
.u-tree-mt-root    { margin-top: 12px; }
.u-tree-mt-sub     { margin-top: 10px; }
.u-tree-ghost      { padding: 12px 14px; border: 1px dashed var(--line); border-radius: 12px; background: var(--panel-alt); display: flex; align-items: center; gap: 10px; position: relative; overflow: hidden; }
.u-tree-rel        { position: relative; }
.u-tree-card-white { padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; position: relative; }
.u-tree-summary    { padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; list-style: none; display: block; background: #fff; }
.u-tree-card-base  { padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.field.u-depth-select { width: auto; min-width: 120px; }
.u-depth-show      { display: inline-block; }
.u-fml             { align-items: center; gap: 8px; white-space: nowrap; }
.u-mb-22           { margin-bottom: 22px !important; }

/* ── ay-pill regnskapsår-badges (server-rendret + JS-bygd, samme klasser) ──
   .ay-pill/.ay-missing-pill beholdes som JS-klikk-hooks (kun innlogget). Visuell
   stil ligger nå i .ay-year + fargevariant, alltid påført. */
.ay-year            { border-radius: 6px; padding: 3px 10px; font-size: 0.82em; font-weight: 600; font-variant-numeric: tabular-nums; }
.ay-year--high      { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.ay-year--medium    { background: var(--brand-100); color: var(--brand); border: 1px solid var(--brand-100); }
.ay-year--low       { background: #ffedd5; color: #9a3412; border: 1px solid #fed7aa; }
.ay-year--missing   { background: #fff7ed; color: #9a3412; border: 1px dashed #fb923c; font-family: inherit; line-height: 1.3; }
.ay-year--unavailable { background: #f1f5f9; color: #64748b; border: 1px solid #e2e8f0; cursor: default; font-family: inherit; line-height: 1.3; }
.ay-pill, .ay-missing-pill { cursor: pointer; }
.ay-year--disabled  { cursor: default; }
.ay-year--missing.ay-year--disabled { opacity: 0.6; }

/* ── CSP Fase B — Wave 4 (JS-bygd innerHTML: enumerable farger → klasser) ──
   _regnskap_modal helse-prikker + metrikk-kort. Verdier var diskret nøkkel-mappet. */
.rm-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; display: inline-block; }
.rm-dot--good { background: #4ade80; }
.rm-dot--warn { background: #fbbf24; }
.rm-dot--bad  { background: #f87171; }
.rm-dot--none { background: #94a3b8; }
.rm-metric-change--up   { color: #16a34a; }
.rm-metric-change--down { color: #dc2626; }
.rm-metric-value--good    { color: #15803d; }
.rm-metric-value--warn    { color: #92400e; }
.rm-metric-value--bad     { color: #b91c1c; }
.rm-metric-value--neutral { color: #0f172a; }
/* admin_innhold_*_form — JS-bygd innerHTML (statiske stiler) */
.u-c-danger { color: var(--danger); }
.button.u-btn-inline-sm { padding: 4px 10px; font-size: 12px; margin-left: 6px; }

/* ── CSP Fase B — Wave 5 (admin_probe JS-bygd innerHTML, 2026-06-02) ───────
   Mest statiske stiler → klasser; dynamisk bar-bredde → data-css-width + lokal
   CSSOM-pass; boolean summary-farge → 2 klasser. result-${id} skjules via klasse
   (display:none); JS viser via eksplisitt style.display='block' (CSSOM, trygt). */
.u-probe-ep-card        { padding: 10px 12px; background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 12px; }
.u-probe-ep-title       { font-weight: 600; margin-bottom: 6px; }
.u-probe-bar-track      { margin-top: 6px; background: #e5e7eb; border-radius: 99px; height: 5px; overflow: hidden; }
.u-probe-bar-fill       { height: 100%; background: #16a34a; border-radius: 99px; }
.u-probe-table          { font-size: 12px; width: 100%; }
.u-probe-summary        { margin-top: 10px; font-weight: 600; }
.u-probe-summary--ok    { color: #16a34a; }
.u-probe-summary--bad   { color: #dc2626; }
.u-probe-scenario-head  { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.u-probe-scenario-name  { font-weight: 600; font-size: 15px; }
.u-probe-scenario-desc  { color: var(--muted); font-size: 13px; margin-left: 8px; }
.u-probe-scenario-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.button.u-btn-xs        { font-size: 11px; padding: 4px 10px; }
.u-probe-grid           { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; font-size: 12px; }
.u-probe-users          { margin-top: 8px; font-size: 12px; }
.u-probe-user-row       { display: flex; gap: 12px; align-items: center; margin-top: 4px; flex-wrap: wrap; }
.u-c-555                { color: #555; }
.u-probe-cli-hint       { margin-top: 6px; font-size: 11px; color: var(--muted); }
.u-probe-result         { margin-top: 10px; padding: 8px 12px; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 6px; font-size: 12px; min-height: 30px; display: none; }
.u-probe-cli-box        { margin-top: 10px; padding: 8px 10px; background: #f9fafb; border-radius: 4px; font-size: 12px; color: var(--muted); }
.u-probe-err            { margin-top: 4px; color: #b42318; font-size: 11px; }

/* ── CSP Fase B — Wave 6 (admin_regnskap JS-bygd innerHTML, 2026-06-02) ────
   3-terskel-farge → delte .u-rk-*; betinget → .u-c-*; vilkårlig palett
   (c.color, style.bg/fg/border) + bar-høyde → data-attr + lokal CSSOM-pass. */
.u-rk-good  { color: #1a7f1a; }
.u-rk-warn  { color: #b45309; }
.u-rk-bad   { color: #b42318; }
.u-c-b42318 { color: #b42318; }
.u-c-b45309 { color: #b45309; }
.u-ark-panel-alt     { margin: 18px 0 8px; padding: 12px 14px; background: var(--panel-alt); border-radius: 10px; border: 1px solid var(--line); }
.u-ark-mh-label      { margin-top: 12px; font-size: 0.78rem; color: var(--muted); }
.u-ark-mh-row        { display: flex; gap: 6px; margin-top: 4px; flex-wrap: wrap; }
.u-ark-mh-badge      { font-size: 0.78rem; padding: 3px 8px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.u-ark-bars          { display: flex; gap: 4px; align-items: flex-end; height: 80px; }
.u-ark-bar-col       { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.u-ark-bar           { width: 100%; background: var(--accent, #2c7be5); border-radius: 3px 3px 0 0; }
.u-ark-bar-label     { font-size: 0.7rem; color: var(--muted); }
.u-ark-src-td        { padding: 3px 8px 3px 0; }
.u-ark-src-td-r      { padding: 3px 0; text-align: right; }
.u-ark-running       { color: var(--accent); font-size: 0.75em; }
.u-ark-last-attempt  { font-size: 0.73em; color: var(--muted); font-weight: 400; }
.u-ark-th-center     { padding: 6px 8px; font-weight: 600; text-align: center; }
.u-ark-th-pad6       { padding: 6px 0 6px 8px; }
.u-ark-fs-085        { font-size: 0.85em; }
.u-ark-fs-075        { font-size: 0.75em; }
.u-ark-summary       { cursor: pointer; font-size: 0.8em; color: var(--muted); }
.u-ark-pre-detail    { font-size: 0.78em; color: var(--muted); white-space: pre-wrap; max-height: 200px; overflow: auto; margin-top: 4px; }
.u-ark-conf-cards    { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 12px; }
.u-ark-conf-card     { background: var(--panel-alt, #f8fafc); border-left: 3px solid transparent; padding: 8px 14px; border-radius: 0 6px 6px 0; min-width: 120px; }
.u-ark-conf-label    { font-size: 0.75em; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.u-ark-conf-value    { font-size: 1.4em; font-weight: 700; font-variant-numeric: tabular-nums; }
.u-ark-conf-note     { font-size: 0.72em; color: var(--muted); margin-top: 8px; }
.u-ark-mr-intro      { font-size: 0.85em; margin-bottom: 8px; }
.u-ark-td-orgnr      { padding: 6px 8px 6px 0; font-family: monospace; }
.u-ark-td-muted      { padding: 6px 8px; color: var(--muted); }
.u-ark-td-err        { padding: 6px 0 6px 8px; font-size: 0.9em; color: var(--muted); }
.u-ark-detail-intro  { font-size: 0.9em; margin-bottom: 10px; }
.u-ark-detail-head-row { background: var(--panel-alt); border-bottom: 1px solid var(--line); }
.u-ark-detail-th-l   { padding: 5px 8px; text-align: left; }
.u-ark-detail-th-c   { padding: 5px 8px; text-align: center; }
.u-ark-detail-yr     { padding: 5px 8px; font-weight: 600; }
.u-ark-detail-cell-empty { padding: 5px 8px; text-align: center; color: var(--muted); }
.u-ark-detail-cell   { padding: 5px 8px; text-align: center; font-weight: 600; }
.u-ark-kand-grid     { display: inline-flex; gap: 2px; flex-wrap: nowrap; }
.u-ark-kand-cell     { min-width: 36px; padding: 2px 4px; text-align: center; border: 1px solid transparent; border-radius: 3px; font-size: 0.7em; font-weight: 600; }
.u-ark-kand-cell-label { font-weight: 400; font-size: 0.85em; }
.u-ark-kand-orgnr    { font-family: monospace; font-weight: 600; text-decoration: none; }
.u-ark-kand-navn     { font-size: 0.8em; color: var(--muted); margin-top: 2px; }
.u-ark-kand-stift    { font-size: 0.72em; color: var(--muted); margin-top: 1px; }
.u-ark-kand-spin     { display: none; color: var(--accent); font-size: 0.85em; }
.u-ark-kand-summary  { font-size: 0.72em; color: var(--muted); margin-top: 4px; }
.u-ark-kand-intro    { font-size: 0.78em; color: var(--muted); margin-bottom: 10px; }
.u-ark-kand-th-selskap { padding: 7px 8px 7px 0; font-weight: 600; width: 30%; }
.u-ark-th-pad7r      { padding: 7px 0 7px 8px; }

/* ── CSP Fase B — Wave 7 (search.html JS-bygd innerHTML, 2026-06-02) ───────
   Klassifiserings-badges (enumerable kode→farge) + interim-badge (betinget) +
   ~44 statiske (legend-swatches, tabellceller, summary-kort). */
.u-clsbadge{display:inline-block;padding:1px 6px;border-radius:999px;font-size:0.68em;font-weight:700;margin-left:3px;line-height:1.4;border:1px solid rgba(0,0,0,.08);text-decoration:none;cursor:pointer;}
.u-clsbadge-green{color:#166534;background:#dcfce7;}
.u-clsbadge-brand{color:var(--brand);background:var(--brand-100);}
.u-clsbadge-amber{color:#854d0e;background:#fef9c3;}
.u-clsbadge-red{color:#991b1b;background:#fee2e2;}
.u-clsbadge-slate{color:#475569;background:#f1f5f9;}
/* Standardisert badge-størrelse — alle søke-pillene (Tildelinger/FIV/IPR/
   Mellombalanse) deler samme dimensjoner i BÅDE header og tre, slik at de
   stiller likt på linje. Kanonisk mål: padding 2px 11px, 0.78em, vekt 600,
   radius 20px (= søkeresultat-headerens Tildelinger/FIV-pille). --top og --sub
   beholdes som klassenavn (markør), men er nå identiske i størrelse. */
.u-interim-badge{display:inline-block;box-sizing:border-box;background:#fef9c3;color:#854d0e;border:1px solid #facc15;border-radius:20px;line-height:1.4;font-weight:600;white-space:nowrap;}
.u-interim-badge--top{padding:2px 11px;font-size:0.78em;}
.u-interim-badge--sub{padding:2px 11px;font-size:0.78em;}
/* IPR-badge — solid grønn peer til Tildelinger/FIV (samme boks-modell: 1px
   border, box-sizing, line-height) så alle pillene stiller helt likt. */
.u-ipr-badge{display:inline-block;box-sizing:border-box;background:#16a34a;color:#fff;border:1px solid transparent;border-radius:20px;line-height:1.4;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;}
.u-ipr-badge--top{padding:2px 11px;font-size:0.78em;}
.u-ipr-badge--sub{padding:2px 11px;font-size:0.78em;}
/* Tildelinger-badge (grønn, solid) — tre-noder; speiler søkeresultat-headerens
   ladede Tildelinger-pille. Klikk åpner tildelings-modalet. */
.u-tild-badge{display:inline-block;box-sizing:border-box;background:var(--success,#22c55e);color:#fff;border:1px solid transparent;border-radius:20px;line-height:1.4;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;}
.u-tild-badge--top{padding:2px 11px;font-size:0.78em;}
.u-tild-badge--sub{padding:2px 11px;font-size:0.78em;}
/* Ekstern-lenke-ikon i IP-rettigheter-tabellen — egen smal kolonne rett etter
   Type; ikon åpner saken hos Patentstyret i ny fane. Diskret, brand-farget. */
.u-ip-ext-link{color:var(--brand);font-size:0.9em;text-decoration:none;}
.u-ip-ext-link:hover{color:var(--brand-700,var(--brand));}
.u-ip-link-col{width:1%;white-space:nowrap;text-align:center;}
.u-nowrap{white-space:nowrap;}
.u-srch-th{text-align:left;padding:4px 6px;border-bottom:1px solid var(--border);white-space:nowrap;}
.u-srch-thr{text-align:right;padding:4px 6px;border-bottom:1px solid var(--border);white-space:nowrap;}
.u-srch-td{padding:4px 6px;border-bottom:1px solid var(--border-faint);vertical-align:top;}
.u-srch-tdr{text-align:right;padding:4px 6px;border-bottom:1px solid var(--border-faint);vertical-align:top;white-space:nowrap;}
.u-srch-tdm{text-align:right;padding:4px 6px;border-bottom:1px solid var(--border-faint);vertical-align:top;white-space:nowrap;color:var(--text-muted);font-size:11px;}
.u-srch-tdg{padding:4px 6px;border-bottom:1px solid var(--border-faint);vertical-align:top;color:var(--text-muted);font-size:12px;}
.u-srch-row-avslatt{opacity:0.55;}
.u-srch-strike{text-decoration:line-through;}
.u-srch-teaser-box{padding:14px 16px;border-radius:8px;background:var(--panel-alt);border:1px dashed var(--line,#e5e7eb);}
.u-srch-teaser-head{font-size:0.9em;margin-bottom:10px;}
.u-srch-check-icon{color:#16a34a;margin-right:6px;}
.u-srch-teaser-sub{font-size:0.85em;color:var(--muted);margin-bottom:12px;}
.u-srch-grant-summary{font-size:13px;margin-bottom:10px;}
.u-srch-muted{color:var(--text-muted);}
.u-srch-rolle-td{padding:5px 8px;border-bottom:1px solid var(--border-faint);}
.u-srch-rolle-th{text-align:left;padding:5px 8px;border-bottom:1px solid var(--border);font-size:0.82em;color:var(--muted);}
.u-srch-rolle-group{margin-bottom:18px;}
.u-srch-rolle-grouplabel{font-size:13px;font-weight:600;margin-bottom:6px;color:var(--muted);}
.u-srch-signnote{margin-top:8px;font-size:0.82em;}
.u-srch-ghost-td{padding:6px 10px;border-bottom:1px solid var(--border-faint);}
.u-srch-ghost-blur{filter:blur(5px);user-select:none;pointer-events:none;}
.u-srch-ghost-table{width:100%;border-collapse:collapse;font-size:13px;opacity:0.7;}
.u-srch-ghost-cta{margin-top:14px;padding:14px 16px;border:1px dashed var(--line,#e5e7eb);border-radius:8px;text-align:center;background:var(--panel-alt);}
.u-srch-ghost-cta-text{font-size:0.88em;color:var(--muted);margin-bottom:10px;}
.u-srch-firma-loading{margin-top:12px;color:var(--text-muted);}
.u-srch-statbox{background:var(--panel-alt);border-radius:8px;padding:12px 18px;min-width:120px;}
.u-srch-statlabel{font-size:0.75em;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.u-srch-statval{font-size:1.15em;font-weight:700;margin-top:4px;}
.u-srch-statboxes{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;}
.u-srch-naeringskode{font-size:1em;background:var(--panel-alt);padding:2px 8px;border-radius:4px;font-variant-numeric:tabular-nums;letter-spacing:.01em;}
.u-tree-slettet{text-decoration:line-through;opacity:.6;}
.u-tree-slettet-badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:10px;font-size:.72em;font-weight:600;background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border);white-space:nowrap;vertical-align:middle;}
.u-srch-firma-source{margin-bottom:16px;font-size:0.88em;color:var(--text-muted);}
.u-srch-firma-dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 24px;font-size:0.9em;align-items:baseline;}
.u-srch-alert{border-radius:20px;padding:3px 14px;font-size:0.8em;font-weight:700;color:#fff;}
.u-srch-alert--red{background:#ef4444;}
.u-srch-alert--amber{background:#f59e0b;}
.u-srch-alerts-wrap{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap;}
.u-srch-ay-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-faint);}
.u-srch-ay-title{font-size:0.78em;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:10px;}
.u-srch-ay-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.u-srch-ay-legend{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px;font-size:0.73em;color:var(--text-muted);}
.u-srch-ay-legend-lbl{font-weight:600;margin-right:2px;}
.u-srch-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;}
.u-srch-swatch--brreg{background:#dcfce7;border:1px solid #bbf7d0;}
.u-srch-swatch--digital{background:#dbeafe;border:1px solid #bfdbfe;}
.u-srch-swatch--ocr{background:#ffedd5;border:1px solid #fed7aa;}
.u-srch-ay-note{margin:8px 0 0;font-size:0.71em;font-style:italic;color:var(--text-muted);line-height:1.5;}

/* ── Gjenbrukbar print-rapport-konvensjon (logo-header + seksjons-spennende
   rad) — skjult på SKJERM her (skjerm-aktiv CSS); print.css (media="print")
   viser dem ved utskrift. Brukes av godkjennings-/tabell-sider for et rent
   dokument-oppsett: Firmaradar-logo øverst + seksjonstittel som spenner alle
   tabell-kolonner med dataradene under. NB: må stå i et skjerm-lastet ark —
   print.css kan IKKE skjule dem på skjerm (det lastes media="print"). */
.print-report-header,
.print-section-row,
.ks-print-empty-head { display: none; }

/* Admin /brukere — sammenleggbart selskaps-panel (brukere gruppert per firma). */
.admin-company-panel { border: 1px solid var(--line); border-radius: 10px; margin-top: 14px; }
.admin-company-panel > summary {
    cursor: pointer; padding: 11px 14px; background: var(--panel-alt);
    font-weight: 600; font-size: 0.95rem; display: flex; align-items: center;
    gap: 10px; border-radius: 10px; list-style: none;
}
.admin-company-panel[open] > summary { border-radius: 10px 10px 0 0; border-bottom: 1px solid var(--line); }
.admin-company-panel > summary::-webkit-details-marker { display: none; }
.admin-company-panel > summary::before { content: '▸'; color: var(--muted); font-size: 0.8em; }
.admin-company-panel[open] > summary::before { content: '▾'; }
.admin-company-name { margin-right: auto; }
.admin-company-panel > summary .pill { flex-shrink: 0; }
.admin-company-panel > summary .admin-panel-add-btn { flex-shrink: 0; margin: 0; }
.admin-company-panel > table { width: 100%; margin: 0; }
.admin-company-empty { padding: 16px; }

/* ── Print-robusthet: skjul chrome også for skjerm-capture-PDF-verktøy ──────
   Noen «konverter side til PDF»-verktøy (f.eks. Adobe Acrobat-utvidelsen) fanger
   SKJERM-renderingen og ignorerer @media print, så print.css' chrome-skjuling
   slår ikke inn. print.js setter `body.firmaradar-print-active` rett før
   window.print() og fjerner den i cleanup() etterpå — i det vinduet speiler vi
   chrome-skjulingen som SKJERM-regler, slik at også en skjerm-capture blir ren
   (nav/footer/hero/bannere/toasts/flashes/knapper/stempel borte). */
body.firmaradar-print-active .header,
body.firmaradar-print-active .nav,
body.firmaradar-print-active .userbox,
body.firmaradar-print-active .footer,
body.firmaradar-print-active .footer-meta,
body.firmaradar-print-active .footer-disclaimer,
body.firmaradar-print-active .hero,
body.firmaradar-print-active .content-slot[data-slot="search.banner_top"],
body.firmaradar-print-active .share-banner,
body.firmaradar-print-active .flash-list,
body.firmaradar-print-active .flash,
body.firmaradar-print-active #driftsmelding-banner,
body.firmaradar-print-active #nightly-banner,
body.firmaradar-print-active #warmup-banner,
body.firmaradar-print-active #firmaradar-cookie-banner,
body.firmaradar-print-active .card-toggle-btn,
body.firmaradar-print-active .share-trigger-btn,
body.firmaradar-print-active .search-panel,
body.firmaradar-print-active #group-tree-card .two-col h3,
body.firmaradar-print-active #group-tree-card .two-col p,
body.firmaradar-print-active #group-tree-card .two-col .muted-note,
body.firmaradar-print-active [data-print-hide],
body.firmaradar-print-active .firmaradar-print-toast,
body.firmaradar-print-active .firmaradar-print-stamp,
body.firmaradar-print-active #print-pdf-fab {
    display: none !important;
}

/* Print-rapport-header (logo + selskap + orgnr) er skjult på skjerm (regelen
   over i utilities.css), men SKAL vises i print-vinduet — også for skjerm-
   capture-verktøy. Gjenopprett flex-visningen når print-active er aktiv. */
body.firmaradar-print-active .print-report-header {
    display: flex !important;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid #cbd5e1;
}
body.firmaradar-print-active .print-report-logo { height: 40px; width: auto; }
body.firmaradar-print-active .print-report-title { font-size: 20px; font-weight: 700; color: #0f172a; }
body.firmaradar-print-active .print-report-sub { font-size: 13px; color: #64748b; margin-top: 2px; }

/* ──────────────────────────────────────────────────────────────────────────
   Prisingsside — accordion-seksjoner + tier-sammenligningstabell
   (_pakke_sammenligning.html, redesign 2026-06-19). CSP-trygt: ingen inline
   style; alt via klasser her.
   ────────────────────────────────────────────────────────────────────────── */
.cmp-freemium {
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px; flex-wrap: wrap;
    background: var(--brand-50, #eff6ff);
    border: 1px solid var(--brand-100, #dbeafe);
    border-radius: var(--radius-md, 8px);
    padding: 12px 16px; margin-bottom: 18px;
}
.cmp-freemium-text { font-size: 0.92em; color: var(--text, #0f172a); }
.cmp-freemium-price { font-weight: 700; margin-left: 8px; color: var(--brand, #1e40af); }

.cmp-contact-banner {
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px; flex-wrap: wrap;
    background: var(--brand-50, #eff6ff);
    border: 1px solid var(--brand-100, #dbeafe);
    border-radius: var(--radius-md, 8px);
    padding: 12px 16px; margin: 18px 0;
}
.cmp-contact-text { font-size: 0.92em; color: var(--text, #0f172a); }

.cmp-prismodell {
    margin-top: 22px;
    padding: 16px 18px;
    background: var(--surface-muted, #f8fafc);
    border: 1px solid var(--border, #e2e8f0);
    border-radius: var(--radius-md, 8px);
}
.cmp-prismodell-title { margin: 0 0 8px; font-size: 1.05em; }

.acc {
    border: 1px solid var(--line, #e2e8f0);
    border-radius: var(--radius-md, 8px);
    margin-bottom: 12px; overflow: hidden; background: #fff;
}
.acc[open] { box-shadow: var(--shadow-sm, 0 1px 2px rgba(15,23,42,0.05)); }
.acc-head {
    display: flex; align-items: center; gap: 14px;
    padding: 14px 18px; cursor: pointer; list-style: none;
    user-select: none;
}
.acc-head::-webkit-details-marker { display: none; }
.acc-icon {
    flex: none; width: 36px; height: 36px; border-radius: var(--radius-sm, 6px);
    display: flex; align-items: center; justify-content: center;
    background: var(--brand-50, #eff6ff); color: var(--brand, #1e40af);
    font-size: 1.05em;
}
.acc-titles { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.acc-title { font-weight: 700; font-size: 1.02em; color: var(--text, #0f172a); }
.acc-sub { font-size: 0.82em; color: var(--muted, #64748b); }
.acc-from { font-size: 0.88em; color: var(--muted, #64748b); white-space: nowrap; }
.acc-from strong { color: var(--text, #0f172a); }
.acc-chevron { flex: none; color: var(--muted, #64748b); transition: transform 0.2s; }
.acc[open] .acc-chevron { transform: rotate(180deg); }
.acc-body { padding: 0 18px 18px; }

table.cmp {
    width: 100%; font-size: 0.85em; border-collapse: collapse;
    table-layout: fixed;
}
table.cmp th:first-child, table.cmp td:first-child { width: 30%; }
table.cmp thead th { vertical-align: top; }
table.cmp .nrow-feature { text-align: left; padding: 4px 10px; color: var(--muted, #64748b); }
table.cmp .brow th { padding: 6px 6px 0; text-align: center; }
table.cmp .nrow th {
    padding: 2px 6px; text-align: center; font-weight: 700;
    color: var(--text, #0f172a); font-size: 1.02em;
}
table.cmp .prow th { padding: 0 6px 8px; text-align: center; }
.cmp-pop {
    display: inline-block; background: var(--brand, #1e40af); color: #fff;
    font-size: 0.7em; font-weight: 700; padding: 2px 8px;
    border-radius: var(--radius-pill, 999px); white-space: nowrap;
}
.cmp-price { display: block; font-weight: 700; font-size: 1.1em; color: var(--text, #0f172a); }
.cmp-price-sub { display: block; font-size: 0.72em; color: var(--muted, #64748b); margin-top: 2px; }
table.cmp tbody td { border-top: 1px solid var(--line, #e2e8f0); }
.cmp-feature { text-align: left; padding: 8px 10px; }
.cmp-cell { text-align: center; padding: 8px 6px; }
table.cmp .feat { background: var(--brand-50, #eff6ff); }
table.cmp .bulk-rad td { font-style: italic; }
table.cmp .cta-row td { padding-top: 12px; padding-bottom: 10px; border-top: 2px solid var(--line, #e2e8f0); }

.cmp-mp-groups {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px; margin-top: 14px;
}
.cmp-mp-group-title {
    font-size: 0.92em; font-weight: 700; color: var(--brand, #1e40af);
    margin: 0 0 8px; padding-bottom: 6px;
    border-bottom: 1px solid var(--line, #e2e8f0);
}
.cmp-mp-list { list-style: none; margin: 0; padding: 0; }
.cmp-mp-item {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; padding: 5px 0; font-size: 0.88em;
}
.cmp-mp-name { color: var(--text, #0f172a); }
.cmp-mp-price { color: var(--muted, #64748b); white-space: nowrap; font-weight: 600; }
.cmp-beta {
    display: inline-block; font-size: 0.68em; font-weight: 700;
    color: var(--warning-fg, #92400e); background: var(--warning-bg, #fef9c3);
    padding: 1px 5px; border-radius: var(--radius-xs, 4px); vertical-align: middle;
}

/* IP-panel: inaktive (bortfalte) rettigheter vises sammen med de aktive, men
   dempet — kunden skal se hele porteføljen, ikke bare det som er i kraft nå
   (Lars-bestilling 2026-08-08). Aktive sorteres først av backend. */
.u-ip-inactive td { opacity: 0.62; }
.u-ip-inactive-tag {
    display: inline-block; margin-left: 6px; padding: 1px 6px;
    border-radius: 999px; font-size: 0.82em; font-weight: 600;
    color: #64748b; background: #f1f5f9; border: 1px solid #e2e8f0;
    white-space: nowrap;
}
