/* interim-scout Web-UI (F8-01, ADR 0008) - Port des Design-Systems Linea
   (Claude Design, Projekt db4ca492-9a74-4e5a-a0a1-bf39326401d6): Tokens aus
   tokens/colors.css, typography.css, spacing.css, effects.css, base.css und
   Komponenten aus components/components.css, Praefix ln- unveraendert.
   Abweichungen: Touch-Ziele mindestens 44 px (F6-04), Geist selbst gehostet,
   kein Geist Mono, Icons als einzelne Lucide-SVGs vom eigenen Server.
   Schrift: Geist v1.9.0, SIL Open Font License 1.1 (LICENSE-geist.txt,
   https://github.com/vercel/geist-font). Icons: lucide-static 0.468.0, ISC
   (LICENSE-lucide.txt, https://lucide.dev). */

@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url(geist-variable.woff2) format("woff2")}

/* --- Tokens: Farben --- */
:root{
--gray-0:#ffffff;--gray-50:#f6f6f7;--gray-100:#eeeef0;--gray-200:#e1e1e5;--gray-300:#c8c8ce;--gray-400:#a0a0a8;--gray-500:#73737b;--gray-600:#55555c;--gray-700:#3a3a40;--gray-800:#232327;--gray-900:#141416;--gray-950:#0a0a0b;
--accent-50:#eef2ff;--accent-100:#dbe3ff;--accent-300:#8fa6ff;--accent-500:#2b59ff;--accent-600:#1f47e0;--accent-700:#1838b3;
--green-50:#e9f7ef;--green-500:#1f9d55;--green-700:#167a41;
--amber-50:#fdf3e2;--amber-500:#c27c0e;--amber-700:#8f5a06;
--red-50:#fdecea;--red-500:#d93a2f;--red-700:#a82a21;
--bg-page:var(--gray-0);--bg-subtle:var(--gray-50);
--fill-1:var(--gray-50);--fill-2:var(--gray-100);--fill-3:var(--gray-200);
--surface-raised:var(--gray-0);--surface-inverse:var(--gray-950);
--fg-1:var(--gray-900);--fg-2:var(--gray-600);--fg-3:var(--gray-500);--fg-inverse:#ffffff;--fg-inverse-2:#a0a0a8;
--border-1:var(--gray-200);--border-2:var(--gray-300);
--accent:var(--accent-500);--accent-hover:var(--accent-600);--accent-press:var(--accent-700);--accent-text:var(--accent-600);--text-link:var(--accent-600);
--focus-ring:rgba(43,89,255,.32);
--success:var(--green-500);--success-50:var(--green-50);--success-text:var(--green-700);
--warning:var(--amber-500);--warning-50:var(--amber-50);--warning-text:var(--amber-700);
--danger:var(--red-500);--danger-50:var(--red-50);--danger-text:var(--red-700);--danger-ring:rgba(217,58,47,.25);
--material-light:rgba(255,255,255,.72);--material-dark:rgba(22,22,24,.78);--overlay-scrim:rgba(10,10,11,.32);
}

/* --- Tokens: Typografie (Geist Mono wird nicht ausgeliefert) --- */
:root{
--font-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:ui-monospace,"SFMono-Regular",Menlo,monospace;
--text-hero:96px;--text-display-1:72px;--text-display-2:56px;--text-headline:40px;--text-title-1:28px;--text-title-2:21px;--text-body-lg:19px;--text-body:17px;--text-callout:15px;--text-footnote:13px;--text-caption:12px;
--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
--leading-tight:1.04;--leading-snug:1.16;--leading-normal:1.47;--leading-relaxed:1.6;
--tracking-display:-0.04em;--tracking-headline:-0.028em;--tracking-title:-0.018em;--tracking-body:-0.011em;--tracking-caps:0.08em;
}
.ln-title-1{font-size:var(--text-title-1);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-title)}
.ln-title-2{font-size:var(--text-title-2);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-title)}
.ln-body{font-size:var(--text-body);line-height:var(--leading-normal);letter-spacing:var(--tracking-body)}
.ln-callout{font-size:var(--text-callout);line-height:var(--leading-normal);letter-spacing:-0.006em}
.ln-footnote{font-size:var(--text-footnote);line-height:1.38;letter-spacing:0}
.ln-caption{font-size:var(--text-caption);line-height:1.33;letter-spacing:0}
.ln-mono{font-family:var(--font-mono);font-size:var(--text-footnote);letter-spacing:0}

/* --- Tokens: Abstaende --- */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--space-40:160px;
--container-max:1080px;--container-wide:1440px;--container-text:640px;--gutter:24px;--grid-gap:20px;
}

/* --- Tokens: Radien, Schatten, Bewegung --- */
:root{
--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:36px;--radius-pill:999px;
--shadow-1:0 1px 2px rgba(0,0,0,.05),0 0 1px rgba(0,0,0,.06);
--shadow-2:0 6px 20px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.04);
--shadow-3:0 28px 72px rgba(0,0,0,.14),0 6px 16px rgba(0,0,0,.06);
--shadow-focus:0 0 0 4px var(--focus-ring);
--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-spring:cubic-bezier(.34,1.45,.64,1);
--dur-fast:150ms;--dur-base:260ms;--dur-slow:480ms;
}

/* --- Basis --- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{margin:0 auto;max-width:72rem;padding:var(--space-6);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-normal);letter-spacing:var(--tracking-body);color:var(--fg-1);background:var(--bg-page)}
a{color:var(--text-link);text-decoration:none}a:hover{color:var(--accent-press);text-decoration:underline;text-underline-offset:3px}
::selection{background:var(--accent-100)}
h1,h2,h3,h4,p{margin:0;text-wrap:pretty}
h1{font-size:var(--text-title-2);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-title)}
a:focus-visible{outline:none;border-radius:var(--radius-xs);box-shadow:var(--shadow-focus)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;transition-duration:1ms!important}}

/* --- Komponenten (Linea) --- */
.ln-icon{display:inline-block;flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.ln-icon--check{--icon:url(icon-check.svg)}.ln-icon--x{--icon:url(icon-x.svg)}.ln-icon--search{--icon:url(icon-search.svg)}
.ln-icon--arrow-up{--icon:url(icon-arrow-up.svg)}.ln-icon--arrow-down{--icon:url(icon-arrow-down.svg)}
.ln-icon--chevron-down{--icon:url(icon-chevron-down.svg)}.ln-icon--log-out{--icon:url(icon-log-out.svg)}

.ln-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;font-family:var(--font-sans);font-weight:var(--weight-medium);letter-spacing:var(--tracking-body);border:0;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent}
.ln-btn:hover{text-decoration:none}.ln-btn:active{transform:scale(.97)}.ln-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.ln-btn[disabled]{opacity:.38;pointer-events:none}
.ln-btn--sm{height:32px;padding:0 14px;font-size:var(--text-footnote)}.ln-btn--md{height:40px;padding:0 20px;font-size:var(--text-callout)}.ln-btn--lg{height:52px;padding:0 28px;font-size:var(--text-body)}
.ln-btn--primary{background:var(--accent);color:#fff}.ln-btn--primary:hover{background:var(--accent-hover);color:#fff}
.ln-btn--secondary{background:var(--fill-2);color:var(--fg-1)}.ln-btn--secondary:hover{background:var(--fill-3);color:var(--fg-1)}
.ln-btn--ghost{background:transparent;color:var(--accent-text);padding-left:2px;padding-right:2px;gap:2px}.ln-btn--ghost:hover{color:var(--accent-press);text-decoration:underline;text-underline-offset:3px}
.ln-btn--block{display:flex;width:100%}

.ln-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-sans)}
.ln-input{display:block;width:100%;height:56px;min-height:44px;margin:0;padding:22px 16px 6px;border-radius:var(--radius-md);border:1px solid var(--border-2);background:var(--surface-raised);font-family:inherit;font-size:var(--text-body);color:var(--fg-1);letter-spacing:var(--tracking-body);outline:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);appearance:none;-webkit-appearance:none}
.ln-input--nolabel{padding:0 16px}.ln-input::placeholder{color:var(--fg-3)}
.ln-input:hover{border-color:var(--gray-400)}.ln-input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}
.ln-select,select{min-height:44px;padding-right:44px;cursor:pointer;appearance:none;-webkit-appearance:none;background:var(--surface-raised) url(icon-chevron-down.svg) no-repeat right 14px center/18px 18px}

.ln-check{position:relative;display:inline-flex;align-items:center;gap:12px;min-height:44px;font-family:var(--font-sans);font-size:var(--text-body);line-height:1.4;color:var(--fg-1);cursor:pointer;letter-spacing:var(--tracking-body);user-select:none}
.ln-check input{position:absolute;opacity:0;width:0;height:0;margin:0}
.ln-check__box{width:22px;height:22px;border-radius:7px;box-shadow:inset 0 0 0 1.5px var(--gray-300);background:var(--surface-raised);display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:background-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);flex:none}
.ln-check__box::after{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url(icon-check.svg) center/contain no-repeat;mask:url(icon-check.svg) center/contain no-repeat;opacity:0;transform:scale(.4);transition:opacity var(--dur-fast),transform var(--dur-base) var(--ease-spring)}
.ln-check:hover .ln-check__box{box-shadow:inset 0 0 0 1.5px var(--gray-400)}
.ln-check:active .ln-check__box{transform:scale(.9)}
.ln-check input:checked+.ln-check__box{background:var(--accent);box-shadow:none}
.ln-check input:checked+.ln-check__box::after{opacity:1;transform:scale(1)}
.ln-check input:focus-visible+.ln-check__box{box-shadow:inset 0 0 0 1.5px var(--accent),var(--shadow-focus)}

.ln-card{position:relative;border-radius:var(--radius-xl);font-family:var(--font-sans);color:var(--fg-1)}
.ln-card--tile{background:var(--fill-1)}

.ln-badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 9px;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--text-caption);font-weight:var(--weight-semibold);letter-spacing:0;white-space:nowrap}
.ln-badge--neutral{background:var(--fill-2);color:var(--fg-2)}.ln-badge--accent{background:var(--accent-50);color:var(--accent-text)}.ln-badge--success{background:var(--success-50);color:var(--success-text)}.ln-badge--warning{background:var(--warning-50);color:var(--warning-text)}.ln-badge--danger{background:var(--danger-50);color:var(--danger-text)}

.ln-tag{display:inline-flex;align-items:center;gap:6px;height:34px;min-height:44px;padding:0 14px;border-radius:var(--radius-pill);border:0;background:var(--fill-2);color:var(--fg-1);font-family:var(--font-sans);font-size:var(--text-callout);letter-spacing:-0.006em;cursor:pointer;transition:background-color var(--dur-fast),color var(--dur-fast),transform var(--dur-fast) var(--ease-out)}
.ln-tag:hover{background:var(--fill-3)}.ln-tag:active{transform:scale(.96)}.ln-tag:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.ln-tag--selected{background:var(--gray-900);color:#fff}.ln-tag--selected:hover{background:var(--gray-700)}

/* Tabelle: Linea kennt keine; Trennlinien --border-1, Kopf --fg-3 in --text-footnote. */
table,.ln-table{border-collapse:collapse;width:100%;background:var(--surface-raised);font-size:var(--text-callout)}
table th,.ln-table th{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--border-2);color:var(--fg-3);font-size:var(--text-footnote);font-weight:var(--weight-semibold);vertical-align:bottom}
table td,.ln-table td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--border-1);vertical-align:top}
table tbody tr:hover,.ln-table tbody tr:hover{background:var(--fill-1)}
td:nth-child(4){white-space:nowrap}

/* --- Seitenklassen (aus F6-04, auf Linea-Tokens) --- */
button,select,input{font:inherit;min-height:44px;color:inherit}
button{display:inline-flex;align-items:center;justify-content:center;padding:0 20px;border:0;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}
button:hover{background:var(--accent-hover)}
select{padding-left:16px;border:1px solid var(--border-2);border-radius:var(--radius-md)}
button:focus-visible,select:focus-visible,input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.kopf{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-6)}
.kopf form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin:0}
.kopf button{background:var(--fill-2);color:var(--fg-1)}
.kopf button:hover{background:var(--fill-3)}
.benutzer{color:var(--fg-2);font-size:var(--text-callout)}
.filter{margin:0 0 var(--space-4)}
.filter form{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0}
.filter label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-weight:var(--weight-medium);flex:0 1 32rem;min-width:0}
.filter select{flex:1 1 14rem;min-width:0;font-weight:var(--weight-regular)}
.hinweis{color:var(--fg-2);margin:0 0 var(--space-4)}
.error{color:var(--danger-text);background:var(--danger-50);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0}
.login{max-width:24rem;margin:var(--space-12) auto;padding:var(--space-8);display:grid;gap:var(--space-4)}
.login label{display:grid;gap:6px;font-weight:var(--weight-medium);font-size:var(--text-callout)}
.login .ln-input,.login .ln-btn{width:100%}
.login .hinweis{margin:0;font-size:var(--text-callout)}
.login a{display:inline-flex;align-items:center;min-height:44px}

@media (max-width:40rem){
body{padding:var(--space-4)}
.login{margin:var(--space-6) auto;padding:var(--space-6)}
thead{display:none}
table,tbody,tr,td{display:block}
tr{padding:var(--space-2) 0;border-bottom:1px solid var(--border-1)}
table td,.ln-table td{border:0;padding:var(--space-1) var(--space-3)}
td:first-child{font-weight:var(--weight-semibold)}
td a{display:inline-block;min-height:44px;padding:.6rem 0}
td:nth-child(2)::before{content:'Kategorie: '}
td:nth-child(3)::before{content:'Vermittler: '}
td:nth-child(4)::before{content:'Erstmals gesehen: '}
td::before{color:var(--fg-2);font-weight:var(--weight-regular)}
.filter label{flex-basis:100%}
}
