/* ============================================================
   Aediom — Color tokens
   Source palette (Coolors export "Aediom"):
     cream  #FAF7F3 · ember #F43A09 · peach #FFB766
     mint   #C2EDDA · grass #68D388
   Scales derived from the palette's own tint/shade ramps.
   ============================================================ */
:root {
  /* --- Ember (brand primary: vivid orange-red) --- */
  --ember-50:  #FFF1ED;
  --ember-100: #FEE7E0;
  --ember-200: #FDCEC1;
  --ember-300: #FCB6A3;
  --ember-400: #F98565;
  --ember-500: #F75528;
  --ember-600: #F43A09;  /* brand */
  --ember-700: #C42E07;
  --ember-800: #9A2606;
  --ember-900: #7B1E04;
  --ember-950: #3E0F02;

  /* --- Peach (warm accent) --- */
  --peach-50:  #FFF6EC;
  --peach-100: #FFEDD9;
  --peach-200: #FFE4C6;
  --peach-300: #FFD29F;
  --peach-400: #FFC179;
  --peach-500: #FFB766;  /* brand */
  --peach-600: #FFA339;
  --peach-700: #FF8E0D;
  --peach-800: #DF7700;
  --peach-900: #B35F00;
  --peach-950: #593000;

  /* --- Grass (growth / success green) --- */
  --grass-50:  #ECFAF0;
  --grass-100: #D9F4E1;
  --grass-200: #C2EDDA;  /* mint, palette color 4 */
  --grass-300: #A1E4B5;
  --grass-400: #7CD998;
  --grass-500: #68D388;  /* brand */
  --grass-600: #4ACB71;
  --grass-700: #35B85C;
  --grass-800: #2C994D;
  --grass-900: #247B3E;
  --grass-950: #123D1F;

  /* --- Sand (warm neutral grays, anchored on cream) --- */
  --sand-0:   #FFFFFF;
  --sand-50:  #FAF7F3;  /* canvas, palette color 1 */
  --sand-100: #F2ECE4;
  --sand-200: #E6DDD1;
  --sand-300: #D3C9BB;
  --sand-400: #B5AB9C;
  --sand-500: #948B7D;
  --sand-600: #6F685D;
  --sand-700: #544E45;
  --sand-800: #3A352F;
  --sand-900: #26221D;
  --sand-950: #181511;

  /* --- Info (derived cool tone — palette has no blue; used sparingly) --- */
  --ocean-100: #D6F0FA;
  --ocean-200: #A9E1F5;
  --ocean-500: #1FA6D6;
  --ocean-700: #0E7AA3;

  /* ============================================================
     Semantic aliases — reference these in components & UI.
     ============================================================ */
  /* Surfaces & backgrounds */
  --bg-canvas:      var(--sand-50);
  --surface-card:   var(--sand-0);
  --surface-subtle: var(--sand-100);
  --surface-sunken: var(--sand-200);
  --surface-inverse:var(--sand-900);

  /* Text */
  --text-primary:   var(--sand-900);
  --text-secondary: var(--sand-700);
  --text-muted:     var(--sand-500);
  --text-inverse:   var(--sand-0);
  --text-on-ember:  #FFFFFF;
  --text-link:      var(--ember-700);

  /* Borders & dividers */
  --border-subtle:  var(--sand-200);
  --border-default: var(--sand-300);
  --border-strong:  var(--sand-400);
  --border-focus:   var(--ember-600);

  /* Brand / primary action */
  --primary:        var(--ember-600);
  --primary-hover:  var(--ember-700);
  --primary-active: var(--ember-800);
  --primary-soft:   var(--ember-100);
  --primary-soft-text: var(--ember-800);

  /* Accent */
  --accent:         var(--peach-500);
  --accent-soft:    var(--peach-100);
  --accent-text:    var(--peach-900);

  /* Semantic states */
  --success:        var(--grass-700);
  --success-soft:   var(--grass-100);
  --success-text:   var(--grass-900);

  --warning:        var(--peach-700);
  --warning-soft:   var(--peach-100);
  --warning-text:   var(--peach-950);

  --danger:         var(--ember-600);
  --danger-hover:   var(--ember-700);
  --danger-soft:    var(--ember-100);
  --danger-text:    var(--ember-900);

  --info:           var(--ocean-500);
  --info-soft:      var(--ocean-100);
  --info-text:      var(--ocean-700);

  /* Pagescore — the product's signature 0–100 content score.
     Buckets: excellent ≥85 · good 70–84 · weak 50–69 · critical <50 · unscored.
     Maps the palette to a green→peach→ember severity ramp. */
  --score-excellent:      var(--grass-700);
  --score-excellent-soft: var(--grass-100);
  --score-good:           var(--grass-600);
  --score-good-soft:      var(--grass-200);
  --score-weak:           var(--peach-700);
  --score-weak-soft:      var(--peach-100);
  --score-critical:       var(--ember-600);
  --score-critical-soft:  var(--ember-100);
  --score-unscored:       var(--sand-500);
  --score-unscored-soft:  var(--sand-100);

  /* Focus ring (used with box-shadow) */
  --ring: 0 0 0 3px color-mix(in srgb, var(--ember-600) 28%, transparent);
}

/* ============================================================
   Aediom — Typography tokens
   Display: Bricolage Grotesque · Text/UI: Hanken Grotesk · Mono: JetBrains Mono
   Type scale ~1.2 (minor third) on a 16px base.
   ============================================================ */
:root {
  /* Families */
  --font-display: 'Bricolage Grotesque', 'Hanken Grotesk', system-ui, sans-serif;
  --font-sans:    'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Font sizes (rem) */
  --text-2xs:  0.6875rem;  /* 11 */
  --text-xs:   0.75rem;    /* 12 */
  --text-sm:   0.875rem;   /* 14 */
  --text-base: 1rem;       /* 16 */
  --text-md:   1.125rem;   /* 18 */
  --text-lg:   1.375rem;   /* 22 */
  --text-xl:   1.75rem;    /* 28 */
  --text-2xl:  2.25rem;    /* 36 */
  --text-3xl:  2.875rem;   /* 46 */
  --text-4xl:  3.75rem;    /* 60 */
  --text-5xl:  4.75rem;    /* 76 */

  /* Weights */
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-extrabold:800;

  /* Line heights */
  --leading-tight:   1.08;
  --leading-snug:    1.22;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;

  /* Letter spacing */
  --tracking-tight:  -0.02em;
  --tracking-snug:   -0.01em;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-caps:   0.08em;

  /* Semantic roles */
  --font-heading: var(--font-display);
  --font-body:    var(--font-sans);
  --font-numeric: var(--font-mono);
}

/* ============================================================
   Aediom — Spacing & sizing tokens (4px base grid)
   ============================================================ */
:root {
  --space-0:   0;
  --space-px:  1px;
  --space-1:   0.25rem;  /* 4  */
  --space-2:   0.5rem;   /* 8  */
  --space-3:   0.75rem;  /* 12 */
  --space-4:   1rem;     /* 16 */
  --space-5:   1.25rem;  /* 20 */
  --space-6:   1.5rem;   /* 24 */
  --space-8:   2rem;     /* 32 */
  --space-10:  2.5rem;   /* 40 */
  --space-12:  3rem;     /* 48 */
  --space-16:  4rem;     /* 64 */
  --space-20:  5rem;     /* 80 */
  --space-24:  6rem;     /* 96 */
  --space-32:  8rem;     /* 128 */

  /* Layout */
  --container-sm:  640px;
  --container-md:  768px;
  --container-lg:  1024px;
  --container-xl:  1200px;
  --gutter:        var(--space-6);

  /* Control sizing (buttons, inputs) */
  --control-h-sm:  32px;
  --control-h-md:  40px;
  --control-h-lg:  48px;
}

/* ============================================================
   Aediom — Radius tokens
   Friendly, generously rounded — matches the soft warm palette.
   ============================================================ */
:root {
  --radius-xs:   4px;
  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   14px;
  --radius-xl:   20px;
  --radius-2xl:  28px;
  --radius-3xl:  36px;
  --radius-full: 9999px;

  /* Semantic — tuned for a precision B2B tool (shadcn-adjacent):
     controls crisp, cards moderately soft, never sharp. */
  --radius-control: var(--radius-md);  /* 10 — buttons, inputs */
  --radius-card:    var(--radius-lg);  /* 14 — cards, panels */
  --radius-pill:    var(--radius-full);
}

/* ============================================================
   Aediom — Elevation & shadow tokens
   Warm, low-contrast shadows tinted with the sand/ink hue
   (never pure black) so cards feel soft on the cream canvas.
   ============================================================ */
:root {
  --shadow-xs:  0 1px 2px rgba(38, 34, 29, 0.06);
  --shadow-sm:  0 1px 3px rgba(38, 34, 29, 0.08), 0 1px 2px rgba(38, 34, 29, 0.05);
  --shadow-md:  0 4px 12px rgba(38, 34, 29, 0.08), 0 2px 4px rgba(38, 34, 29, 0.05);
  --shadow-lg:  0 12px 28px rgba(38, 34, 29, 0.10), 0 4px 8px rgba(38, 34, 29, 0.05);
  --shadow-xl:  0 24px 56px rgba(38, 34, 29, 0.14), 0 8px 16px rgba(38, 34, 29, 0.06);

  /* Brand-tinted glow — for primary CTAs / focus moments */
  --shadow-ember: 0 8px 24px rgba(244, 58, 9, 0.28);

  /* Inset (inputs, wells) */
  --shadow-inset: inset 0 1px 2px rgba(38, 34, 29, 0.07);

  /* Hairline ring used in place of a border on light cards */
  --ring-hairline: 0 0 0 1px rgba(38, 34, 29, 0.06);
}

/* ============================================================
   Aediom — Base element styles & resets
   Applies the foundations to bare HTML so specimen cards and
   prototypes inherit the brand without extra classes.
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg-canvas);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  font-weight: var(--weight-regular);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5 {
  font-family: var(--font-heading);
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text-primary);
  margin: 0 0 0.4em;
}
h1 { font-size: var(--text-3xl); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }
h4 { font-size: var(--text-lg); }

p { margin: 0 0 1em; text-wrap: pretty; }

a { color: var(--text-link); text-decoration: none; }
a:hover { text-decoration: underline; }

code, kbd, samp, pre {
  font-family: var(--font-mono);
  font-size: 0.92em;
}

small { font-size: var(--text-sm); }

::selection { background: var(--ember-200); color: var(--ember-900); }

:focus-visible { outline: none; box-shadow: var(--ring); border-radius: var(--radius-sm); }

/* Utility helpers used by specimen cards */
.eyebrow {
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--text-muted);
}

/* ============================================================
   Aediom — Component styles
   Real CSS for the React primitives in /components. Ships with
   the token closure so consumers get states (hover/active/focus)
   that inline styles can't express. Classes are prefixed `aed-`.
   ============================================================ */

/* ---------- Button ---------- */
.aed-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-weight: var(--weight-semibold);
  font-size: var(--text-sm);
  line-height: 1;
  height: var(--control-h-md);
  padding: 0 var(--space-5);
  border-radius: var(--radius-control);
  border: 1px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color .16s cubic-bezier(.2,.8,.2,1),
              box-shadow .16s cubic-bezier(.2,.8,.2,1),
              transform .12s cubic-bezier(.2,.8,.2,1),
              border-color .16s;
}
.aed-btn:focus-visible { outline: none; box-shadow: var(--ring); }
.aed-btn:disabled, .aed-btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.aed-btn--sm { height: var(--control-h-sm); padding: 0 var(--space-3); font-size: var(--text-xs); }
.aed-btn--lg { height: var(--control-h-lg); padding: 0 var(--space-6); font-size: var(--text-base); }
.aed-btn--block { width: 100%; }
.aed-btn__icon { display: inline-flex; width: 1.15em; height: 1.15em; }
.aed-btn__icon > svg { width: 100%; height: 100%; }

.aed-btn--primary { background: var(--primary); color: var(--text-on-ember); box-shadow: var(--shadow-xs); }
.aed-btn--primary:hover:not(:disabled) { background: var(--primary-hover); box-shadow: var(--shadow-ember); transform: translateY(-1px); }
.aed-btn--primary:active:not(:disabled) { background: var(--primary-active); transform: translateY(0) scale(.985); box-shadow: var(--shadow-xs); }

.aed-btn--secondary { background: var(--surface-card); color: var(--text-primary); border-color: var(--border-default); box-shadow: var(--shadow-xs); }
.aed-btn--secondary:hover:not(:disabled) { background: var(--surface-subtle); border-color: var(--border-strong); transform: translateY(-1px); }
.aed-btn--secondary:active:not(:disabled) { background: var(--surface-sunken); transform: translateY(0) scale(.985); }

.aed-btn--ghost { background: transparent; color: var(--text-secondary); }
.aed-btn--ghost:hover:not(:disabled) { background: var(--surface-subtle); color: var(--text-primary); }
.aed-btn--ghost:active:not(:disabled) { background: var(--surface-sunken); transform: scale(.985); }

.aed-btn--danger { background: var(--danger); color: #fff; }
.aed-btn--danger:hover:not(:disabled) { background: var(--danger-hover); transform: translateY(-1px); }
.aed-btn--danger:active:not(:disabled) { transform: translateY(0) scale(.985); }

.aed-spin { width: 1em; height: 1em; border-radius: 50%; border: 2px solid currentColor; border-top-color: transparent; animation: aed-spin .6s linear infinite; }
@keyframes aed-spin { to { transform: rotate(360deg); } }

/* ---------- IconButton ---------- */
.aed-iconbtn {
  display: inline-flex; align-items: center; justify-content: center;
  width: var(--control-h-md); height: var(--control-h-md);
  border-radius: var(--radius-md); border: 1px solid transparent;
  background: transparent; color: var(--text-secondary); cursor: pointer;
  transition: background-color .16s, color .16s, transform .12s, box-shadow .16s;
}
.aed-iconbtn > svg { width: 20px; height: 20px; }
.aed-iconbtn:hover:not(:disabled) { background: var(--surface-subtle); color: var(--text-primary); }
.aed-iconbtn:active:not(:disabled) { transform: scale(.92); }
.aed-iconbtn:focus-visible { outline: none; box-shadow: var(--ring); }
.aed-iconbtn:disabled { opacity: .5; cursor: not-allowed; }
.aed-iconbtn--sm { width: var(--control-h-sm); height: var(--control-h-sm); }
.aed-iconbtn--sm > svg { width: 16px; height: 16px; }
.aed-iconbtn--solid { background: var(--primary); color: var(--text-on-ember); }
.aed-iconbtn--solid:hover:not(:disabled) { background: var(--primary-hover); color: #fff; }

/* ---------- Input / Textarea / Select ---------- */
.aed-field { display: flex; flex-direction: column; gap: var(--space-2); }
.aed-label { font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--text-primary); }
.aed-hint { font-size: var(--text-xs); color: var(--text-muted); }
.aed-hint--error { color: var(--danger-text); }
.aed-input, .aed-textarea, .aed-select {
  font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-primary);
  background: var(--surface-card);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-control);
  height: var(--control-h-md);
  padding: 0 var(--space-3);
  box-shadow: var(--shadow-inset);
  transition: border-color .16s, box-shadow .16s;
  width: 100%;
}
.aed-textarea { height: auto; min-height: 88px; padding: var(--space-3); line-height: var(--leading-normal); resize: vertical; }
.aed-input::placeholder, .aed-textarea::placeholder { color: var(--text-muted); }
.aed-input:hover, .aed-textarea:hover, .aed-select:hover { border-color: var(--border-strong); }
.aed-input:focus, .aed-textarea:focus, .aed-select:focus { outline: none; border-color: var(--border-focus); box-shadow: var(--ring); }
.aed-input:disabled, .aed-textarea:disabled, .aed-select:disabled { background: var(--surface-subtle); color: var(--text-muted); cursor: not-allowed; }
.aed-input--invalid, .aed-textarea--invalid, .aed-select--invalid { border-color: var(--danger); }
.aed-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236F685D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right var(--space-3) center; padding-right: var(--space-8); cursor: pointer; }

/* ---------- Checkbox / Radio ---------- */
.aed-check { display: inline-flex; align-items: center; gap: var(--space-2); cursor: pointer; font-size: var(--text-sm); color: var(--text-primary); user-select: none; }
.aed-check input { position: absolute; opacity: 0; width: 0; height: 0; }
.aed-check__box {
  width: 20px; height: 20px; flex: none; border-radius: var(--radius-xs);
  border: 1.5px solid var(--border-strong); background: var(--surface-card);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background-color .14s, border-color .14s; color: #fff;
}
.aed-check__box svg { width: 14px; height: 14px; opacity: 0; transform: scale(.6); transition: opacity .14s, transform .14s; }
.aed-check input:checked + .aed-check__box { background: var(--primary); border-color: var(--primary); }
.aed-check input:checked + .aed-check__box svg { opacity: 1; transform: scale(1); }
.aed-check--radio .aed-check__box { border-radius: var(--radius-full); }
.aed-check--radio .aed-check__dot { width: 8px; height: 8px; border-radius: 50%; background: #fff; opacity: 0; transform: scale(.4); transition: opacity .14s, transform .14s; }
.aed-check input:checked + .aed-check__box .aed-check__dot { opacity: 1; transform: scale(1); }
.aed-check input:focus-visible + .aed-check__box { box-shadow: var(--ring); }

/* ---------- Switch ---------- */
.aed-switch { display: inline-flex; align-items: center; gap: var(--space-3); cursor: pointer; user-select: none; }
.aed-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.aed-switch__track { width: 40px; height: 23px; border-radius: var(--radius-full); background: var(--sand-300); padding: 2px; transition: background-color .18s cubic-bezier(.2,.8,.2,1); flex: none; }
.aed-switch__thumb { width: 19px; height: 19px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); transition: transform .18s cubic-bezier(.2,.8,.2,1); }
.aed-switch input:checked + .aed-switch__track { background: var(--primary); }
.aed-switch input:checked + .aed-switch__track .aed-switch__thumb { transform: translateX(17px); }
.aed-switch input:focus-visible + .aed-switch__track { box-shadow: var(--ring); }
.aed-switch__label { font-size: var(--text-sm); color: var(--text-primary); }

/* ---------- Badge ---------- */
.aed-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--text-xs); font-weight: var(--weight-semibold);
  padding: 3px 10px; border-radius: var(--radius-pill); line-height: 1.4;
}
.aed-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.aed-badge--neutral { background: var(--surface-sunken); color: var(--text-secondary); }
.aed-badge--ember   { background: var(--primary-soft); color: var(--primary-soft-text); }
.aed-badge--success { background: var(--success-soft); color: var(--success-text); }
.aed-badge--warning { background: var(--warning-soft); color: var(--warning-text); }
.aed-badge--info    { background: var(--info-soft); color: var(--info-text); }
.aed-badge--solid   { background: var(--primary); color: #fff; }

/* ---------- Tag ---------- */
.aed-tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--text-xs); font-weight: var(--weight-medium);
  padding: 4px 8px 4px 10px; border-radius: var(--radius-sm);
  background: var(--surface-subtle); color: var(--text-secondary);
  border: 1px solid var(--border-subtle);
}
.aed-tag__x { display: inline-flex; cursor: pointer; border-radius: var(--radius-xs); color: var(--text-muted); }
.aed-tag__x:hover { color: var(--danger); background: var(--danger-soft); }
.aed-tag__x svg { width: 13px; height: 13px; }

/* ---------- Avatar ---------- */
.aed-avatar { position: relative; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-full); background: var(--peach-200); color: var(--peach-900); font-family: var(--font-body); font-weight: var(--weight-bold); overflow: visible; flex: none; }
.aed-avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.aed-avatar--sm { width: 28px; height: 28px; font-size: var(--text-xs); }
.aed-avatar--md { width: 40px; height: 40px; font-size: var(--text-sm); }
.aed-avatar--lg { width: 56px; height: 56px; font-size: var(--text-md); }
.aed-avatar__status { position: absolute; right: -1px; bottom: -1px; width: 30%; height: 30%; min-width: 9px; min-height: 9px; border-radius: 50%; border: 2px solid var(--surface-card); }
.aed-avatar__status--online { background: var(--grass-500); }
.aed-avatar__status--away   { background: var(--peach-500); }
.aed-avatar__status--busy   { background: var(--ember-600); }

/* ---------- Card ---------- */
.aed-card { background: var(--surface-card); border-radius: var(--radius-card); box-shadow: var(--ring-hairline), var(--shadow-sm); padding: var(--space-6); transition: box-shadow .18s, transform .18s; }
.aed-card--hover:hover { box-shadow: var(--ring-hairline), var(--shadow-md); transform: translateY(-2px); }
.aed-card--flat { box-shadow: none; border: 1px solid var(--border-subtle); }
.aed-card--pad-sm { padding: var(--space-4); }
.aed-card--pad-lg { padding: var(--space-8); }

/* ---------- Stat ---------- */
.aed-stat { display: flex; flex-direction: column; gap: var(--space-1); }
.aed-stat__label { font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--text-muted); }
.aed-stat__value { font-family: var(--font-mono); font-weight: var(--weight-semibold); font-size: var(--text-2xl); color: var(--text-primary); line-height: 1; }
.aed-stat__delta { display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-mono); font-size: var(--text-sm); font-weight: var(--weight-medium); }
.aed-stat__delta--up { color: var(--success); }
.aed-stat__delta--down { color: var(--danger); }
.aed-stat__delta svg { width: 14px; height: 14px; }

/* ---------- ProgressBar ---------- */
.aed-progress { width: 100%; }
.aed-progress__track { height: 8px; border-radius: var(--radius-full); background: var(--surface-sunken); overflow: hidden; }
.aed-progress__fill { height: 100%; border-radius: inherit; background: var(--grass-500); transition: width .5s cubic-bezier(.2,.8,.2,1); }
.aed-progress__fill--ember { background: var(--ember-600); }
.aed-progress__fill--peach { background: var(--peach-500); }
.aed-progress__meta { display: flex; justify-content: space-between; margin-bottom: var(--space-2); font-size: var(--text-xs); color: var(--text-muted); }
.aed-progress__meta b { font-family: var(--font-mono); color: var(--text-secondary); font-weight: var(--weight-semibold); }

/* ---------- Tabs ---------- */
.aed-tabs { display: inline-flex; gap: var(--space-1); padding: 4px; background: var(--surface-subtle); border-radius: var(--radius-lg); }
.aed-tab { appearance: none; border: 0; background: transparent; font-family: var(--font-body); font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--text-secondary); padding: 7px var(--space-4); border-radius: var(--radius-md); cursor: pointer; transition: background-color .16s, color .16s, box-shadow .16s; }
.aed-tab:hover { color: var(--text-primary); }
.aed-tab--active { background: var(--surface-card); color: var(--text-primary); box-shadow: var(--shadow-xs); }
.aed-tab:focus-visible { outline: none; box-shadow: var(--ring); }

/* ---------- Tooltip ---------- */
.aed-tooltip-wrap { position: relative; display: inline-flex; }
.aed-tooltip { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(4px); background: var(--surface-inverse); color: var(--text-inverse); font-size: var(--text-xs); font-weight: var(--weight-medium); padding: 6px 10px; border-radius: var(--radius-sm); white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .15s, transform .15s; box-shadow: var(--shadow-md); z-index: 50; }
.aed-tooltip::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--surface-inverse); }
.aed-tooltip-wrap:hover .aed-tooltip, .aed-tooltip-wrap:focus-within .aed-tooltip { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ---------- Dialog ---------- */
.aed-dialog__overlay { position: fixed; inset: 0; background: rgba(38,34,29,.42); backdrop-filter: blur(2px); display: flex; align-items: center; justify-content: center; padding: var(--space-6); z-index: 100; animation: aed-fade .18s ease-out; }
.aed-dialog { background: var(--surface-card); border-radius: var(--radius-2xl); box-shadow: var(--shadow-xl); width: 100%; max-width: 480px; padding: var(--space-8); animation: aed-pop .22s cubic-bezier(.2,.8,.2,1); }
.aed-dialog__title { font-family: var(--font-display); font-size: var(--text-xl); font-weight: var(--weight-bold); margin: 0 0 var(--space-2); }
.aed-dialog__body { color: var(--text-secondary); font-size: var(--text-sm); margin-bottom: var(--space-6); }
.aed-dialog__actions { display: flex; gap: var(--space-3); justify-content: flex-end; }
@keyframes aed-fade { from { opacity: 0; } }
@keyframes aed-pop { from { opacity: 0; transform: translateY(8px) scale(.97); } }

/* ---------- Pagescore (signature) ---------- */
.aed-score { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-weight: var(--weight-semibold); border-radius: var(--radius-pill); line-height: 1; white-space: nowrap; }
.aed-score__num { font-variant-numeric: tabular-nums; }
.aed-score__label { font-family: var(--font-body); font-weight: var(--weight-semibold); }
/* badge form */
.aed-score--badge { padding: 4px 10px 4px 8px; font-size: var(--text-sm); }
.aed-score--badge .aed-score__dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.aed-score--badge.is-excellent { background: var(--score-excellent-soft); color: var(--score-excellent); }
.aed-score--badge.is-good      { background: var(--score-good-soft);      color: var(--grass-800); }
.aed-score--badge.is-weak      { background: var(--score-weak-soft);      color: var(--score-weak); }
.aed-score--badge.is-critical  { background: var(--score-critical-soft);  color: var(--score-critical); }
.aed-score--badge.is-unscored  { background: var(--score-unscored-soft);  color: var(--score-unscored); }
/* size variants */
.aed-score--sm.aed-score--badge { padding: 2px 8px 2px 7px; font-size: var(--text-xs); }
/* solid form (dashboards) */
.aed-score--solid { padding: 5px 12px; font-size: var(--text-sm); color: #fff; }
.aed-score--solid.is-excellent { background: var(--score-excellent); }
.aed-score--solid.is-good      { background: var(--score-good); }
.aed-score--solid.is-weak      { background: var(--score-weak); }
.aed-score--solid.is-critical  { background: var(--score-critical); }
.aed-score--solid.is-unscored  { background: var(--score-unscored); }
/* ring form (big KPI) — label sits BELOW the circle */
.aed-score-ring { display: inline-flex; flex-direction: column; align-items: center; gap: 6px; }
.aed-score-ring__box { position: relative; display: inline-flex; }
.aed-score-ring__svg { transform: rotate(-90deg); }
.aed-score-ring__track { stroke: var(--surface-sunken); }
.aed-score-ring__val { transition: stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1); stroke-linecap: round; }
.aed-score-ring.is-excellent .aed-score-ring__val { stroke: var(--score-excellent); }
.aed-score-ring.is-good .aed-score-ring__val      { stroke: var(--score-good); }
.aed-score-ring.is-weak .aed-score-ring__val      { stroke: var(--score-weak); }
.aed-score-ring.is-critical .aed-score-ring__val  { stroke: var(--score-critical); }
.aed-score-ring.is-unscored .aed-score-ring__val  { stroke: var(--score-unscored); }
.aed-score-ring__num { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--font-mono); font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; line-height: 1; color: var(--text-primary); }
.aed-score-ring__cap { font-size: var(--text-2xs); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-wide); text-transform: uppercase; }
.aed-score-ring.is-excellent .aed-score-ring__cap { color: var(--score-excellent); }
.aed-score-ring.is-good .aed-score-ring__cap      { color: var(--grass-800); }
.aed-score-ring.is-weak .aed-score-ring__cap      { color: var(--score-weak); }
.aed-score-ring.is-critical .aed-score-ring__cap  { color: var(--score-critical); }
.aed-score-ring.is-unscored .aed-score-ring__cap  { color: var(--score-unscored); }

/* ---------- Toast ---------- */
.aed-toast { display: flex; align-items: flex-start; gap: var(--space-3); background: var(--surface-card); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: var(--space-4); min-width: 280px; max-width: 380px; border-left: 3px solid var(--border-strong); animation: aed-toast-in .24s cubic-bezier(.2,.8,.2,1); }
.aed-toast--success { border-left-color: var(--success); }
.aed-toast--error   { border-left-color: var(--danger); }
.aed-toast--info    { border-left-color: var(--info); }
.aed-toast__icon { flex: none; width: 20px; height: 20px; margin-top: 1px; }
.aed-toast__icon--success { color: var(--success); }
.aed-toast__icon--error   { color: var(--danger); }
.aed-toast__icon--info    { color: var(--info); }
.aed-toast__title { font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--text-primary); }
.aed-toast__msg { font-size: var(--text-sm); color: var(--text-secondary); margin-top: 2px; }
@keyframes aed-toast-in { from { opacity: 0; transform: translateY(10px); } }

@font-face{font-family:"Bricolage Grotesque";src:url("/static/fonts/bricolage-grotesque.ttf") format("truetype");font-weight:700 800;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("/static/fonts/hanken-grotesk.ttf") format("truetype");font-weight:400 700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/static/fonts/jetbrains-mono.ttf") format("truetype");font-weight:400 600;font-display:swap}
*{box-sizing:border-box}
body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.45}
a{color:inherit}
.aed-icon{width:17px;height:17px;flex:none;stroke-width:1.9}
.mono{font-family:var(--font-mono)}
.muted{color:var(--text-muted)}
.secondary{color:var(--text-secondary)}
.ember{color:var(--primary)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* App shell */
.shell{display:flex;min-height:100vh}
.rail{width:248px;flex:0 0 248px;background:var(--surface-card);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;padding:18px 20px 14px;text-decoration:none;font:800 21px/1 var(--font-display);letter-spacing:-.03em}
.brand img{width:28px;height:28px}
.brand b{color:var(--ember-600)}
.project-switch{margin:0 14px 6px;position:relative}
.project-switch summary{list-style:none;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-subtle);cursor:pointer}
.project-switch summary::-webkit-details-marker{display:none}
.project-switch .ini{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--sand-900);color:#fff;font:700 11px var(--font-mono)}
.project-switch .nm{font-size:13px;font-weight:700;display:block;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-switch .dm{font:400 11px var(--font-mono);color:var(--text-muted)}
.project-switch .menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-control);box-shadow:var(--shadow-lg);padding:4px}
.project-switch .menu a{display:block;padding:8px 10px;border-radius:8px;text-decoration:none}
.project-switch .menu a:hover{background:var(--sand-100)}
.nav{padding:4px 14px 12px;overflow:auto;flex:1}
.nav h6{margin:0;padding:14px 10px 5px;color:var(--text-muted);font-size:10.5px;font-weight:700;letter-spacing:var(--tracking-caps);text-transform:uppercase}
.nav a{display:flex;align-items:center;gap:10px;margin:1px 0;padding:7px 10px;border-radius:var(--radius-control);color:var(--text-secondary);text-decoration:none;font-size:13.5px;font-weight:500}
.nav a:hover{background:var(--surface-subtle);color:var(--text-primary)}
.nav a[aria-current=page]{background:var(--primary-soft);color:var(--primary-soft-text);font-weight:700}
.nav a.off{color:var(--sand-400);pointer-events:none}
.rail-foot{border-top:1px solid var(--border-subtle);padding:10px 14px 14px;display:grid;gap:10px}
.new-project{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px dashed var(--border-default);border-radius:var(--radius-control);text-decoration:none;font-size:13px;font-weight:600}
.me{display:flex;align-items:center;gap:10px;text-decoration:none}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--peach-200);display:grid;place-items:center;font:700 11px var(--font-sans);color:var(--peach-950)}
.me small{display:block;color:var(--text-muted);font-size:11px}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:56px;display:flex;align-items:center;gap:16px;padding:0 28px;background:var(--surface-card);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:30}
.crumbs{display:flex;align-items:center;gap:9px;color:var(--text-muted);font-size:13px;flex:1;min-width:0}
.crumbs b{color:var(--text-primary);font-weight:600}
.crumbs .aed-icon{width:13px;height:13px}
.pill{position:relative}
.pill>button{display:flex;align-items:center;gap:8px;border:0;background:none;font:500 13px var(--font-sans);color:var(--text-secondary);cursor:pointer;padding:6px 8px;border-radius:8px}
.pill>button:hover{background:var(--surface-subtle)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--grass-600);display:inline-block;flex:none}
.dot.warn{background:var(--peach-700)}.dot.err{background:var(--ember-600)}.dot.info{background:var(--ocean-500)}.dot.idle{background:var(--sand-400)}
.pop{position:absolute;right:0;top:calc(100% + 6px);width:380px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-lg);padding:8px;z-index:50}
.pop h4{margin:4px 8px 8px;font-size:13px}
.pop .job{display:block;padding:8px;border-radius:8px;text-decoration:none}
.pop .job:hover{background:var(--sand-100)}
.pop .job small{color:var(--text-muted)}
.spinner{width:13px;height:13px;border-radius:50%;border:2px solid var(--ember-600);border-top-color:transparent;animation:aed-spin .7s linear infinite;flex:none}
.topbar .sep{width:1px;height:22px;background:var(--border-subtle)}
.signout{display:flex;align-items:center;gap:6px;font-size:13px;text-decoration:none;color:var(--text-secondary);background:none;border:0;cursor:pointer;font-family:inherit}
.bell{position:relative;color:var(--text-secondary);display:grid;place-items:center;width:32px;height:32px;border-radius:8px;text-decoration:none}
.bell:hover{background:var(--surface-subtle)}
.bell i{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--ember-600);border:2px solid var(--surface-card)}
.banner{background:var(--peach-100);color:var(--peach-950);font-size:12.5px;padding:7px 28px;border-bottom:1px solid var(--peach-200)}
.content{padding:30px 32px 56px;width:100%;min-width:0}

/* Page header */
.eyebrow{font-size:11px;font-weight:700;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);margin:0 0 6px}
.eyebrow .ember{color:var(--primary)}
.ph{display:flex;align-items:flex-end;gap:16px;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap}
.ph h1{font:800 30px/1.1 var(--font-display);letter-spacing:-.02em;margin:0}
.ph p{margin:8px 0 0;color:var(--text-secondary);max-width:640px}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.back{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:13px;color:var(--text-secondary);margin-bottom:10px}
form.inline{display:inline}

/* Cards */
.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-xs)}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border-subtle)}
.card-h h2,.card-h h3{margin:0;font-size:17px;font-weight:700}
.card-b{padding:18px 20px}
.dark{background:var(--sand-900);color:#fff;border-color:var(--sand-900)}
.dark .muted{color:var(--sand-300)}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:1.85fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.g5{grid-template-columns:repeat(5,1fr)}
@media (max-width:1100px){.g2,.g4,.g5{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}.rail{display:none}.content{padding:20px 16px}.topbar{padding:0 16px}}
.stack{display:grid;gap:16px}

/* Badges & chips */
.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--sand-100);color:var(--text-secondary);white-space:nowrap}
.chip.ember{background:var(--ember-100);color:var(--ember-800)}
.chip.peach{background:var(--peach-100);color:var(--peach-900)}
.chip.grass{background:var(--grass-100);color:var(--grass-900)}
.chip.ocean{background:var(--ocean-100);color:var(--ocean-700)}
.chip.sand{background:var(--sand-200);color:var(--sand-800)}
.chip.dashed{background:none;border:1px dashed var(--peach-700);color:var(--peach-900)}
.lang{display:inline-grid;place-items:center;height:20px;min-width:26px;padding:0 4px;border-radius:5px;font:600 11px var(--font-mono);background:var(--peach-100);color:var(--peach-950)}
.score{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:999px;font:600 11.5px var(--font-mono)}
.score::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.s-good{background:var(--grass-100);color:var(--grass-800)}
.s-weak{background:var(--peach-100);color:var(--peach-800)}
.s-crit{background:var(--ember-100);color:var(--ember-700)}
.s-none{background:var(--sand-100);color:var(--sand-500)}
.state{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}

/* Buttons (ergänzend zu aed-btn) */
.btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border-radius:var(--radius-control);border:1px solid var(--border-default);background:var(--surface-card);font:600 14px var(--font-sans);color:var(--text-primary);cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--surface-subtle)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-hover)}
.btn.dark-ghost{background:transparent;border-color:var(--sand-600);color:#fff}
.btn.sm{height:32px;padding:0 12px;font-size:13px}
.btn.lg{height:48px;padding:0 24px;font-size:15px}
.btn[disabled],.btn.disabled{opacity:.5;pointer-events:none}
.link{background:none;border:0;padding:0;color:var(--text-muted);font:500 12.5px var(--font-sans);cursor:pointer;text-decoration:none}
.link:hover{color:var(--text-primary)}
.link.ember{color:var(--primary);font-weight:600}

/* Score ring */
.ring{position:relative;width:118px;height:118px;flex:none}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring .num{position:absolute;inset:0;display:grid;place-items:center;font:600 38px var(--font-mono)}
.ring-cap{font-size:11px;font-weight:700;letter-spacing:.06em;text-align:center;margin-top:6px}
.bar{height:6px;border-radius:99px;background:var(--sand-200);overflow:hidden;position:relative}
.bar>i{display:block;height:100%;border-radius:99px}
.bar>em{position:absolute;top:0;height:100%;background:var(--grass-300)}
.dims{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.dim .lbl{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}
.dim .lbl b{font-family:var(--font-mono);font-weight:600}
.dim small{display:block;margin-top:6px;color:var(--text-muted);font-size:11.5px}

/* Lists */
.rows>*{border-top:1px solid var(--border-subtle)}
.rows>*:first-child{border-top:0}
.row{display:flex;gap:16px;align-items:flex-start;padding:16px 20px}
.row .n{font:500 13px var(--font-mono);color:var(--text-muted);width:24px;flex:none;padding-top:2px}
.row h4{margin:0 0 4px;font-size:14.5px}
.row p{margin:0;color:var(--text-secondary);font-size:13px}
.row .meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}
.kv{display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:16px;padding:16px 20px;align-items:start}
.kv>*{min-width:0}
.kv .k{font-weight:700;font-size:13.5px}
.kv.conflict{background:var(--peach-50)}
@media (max-width:900px){.kv{grid-template-columns:minmax(0,1fr)}.kv>:last-child{justify-items:start!important;min-width:0!important}}

/* Tables */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.filters input,.filters select{height:38px;border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);padding:0 12px;font:inherit}
.filters .search{position:relative;display:inline-flex;align-items:center;flex:0 1 300px}
.filters .search svg{position:absolute;left:12px;width:16px;height:16px;color:var(--text-muted);pointer-events:none}
.filters .search input{width:100%;min-width:220px;padding-left:36px}
.tile span svg{width:15px;height:15px}
.btn.ghost{background:none;border-color:transparent;color:var(--text-secondary)}
.lang-seg{display:inline-flex;border:1px solid var(--border-default);border-radius:var(--radius-control);overflow:hidden;background:var(--sand-100,#f1ece4);padding:3px;gap:2px}
.lang-seg a{display:inline-grid;place-items:center;min-width:44px;height:30px;padding:0 10px;border-radius:7px;font:600 12.5px var(--font-mono);color:var(--text-muted);text-decoration:none}
.lang-seg a.on{background:var(--surface-card);color:var(--text-primary);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.ms{position:relative}
.ms>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);font-size:14px;cursor:pointer;white-space:nowrap}
.ms>summary::-webkit-details-marker{display:none}
.ms>summary svg{width:15px;height:15px;color:var(--text-secondary);transition:transform .15s}
.ms[open]>summary>svg{transform:rotate(180deg)}
.ms.has>summary{background:var(--sand-100,#f1ece4);border-color:var(--sand-400,#c9bfae)}
.ms.has>summary b{font-weight:700;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.ms-dot{color:var(--text-muted)}
.ms-clear{display:inline-grid;place-items:center;margin-left:2px;color:var(--text-secondary)}
.ms-clear svg{width:14px;height:14px}
.ms-pop{position:absolute;z-index:30;top:calc(100% + 6px);left:0;min-width:280px;max-width:360px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:14px;box-shadow:0 14px 36px rgba(40,30,20,.14);overflow:hidden}
.ms.right .ms-pop{left:auto;right:0}
.ms-list{max-height:340px;overflow:auto;padding:8px}
.ms-opt{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:9px 10px;border-radius:9px;cursor:pointer;font-size:14.5px}
.ms-opt:hover{background:var(--sand-50,#faf7f2)}
.ms-opt input{position:absolute;opacity:0;pointer-events:none}
.ms-opt .box{display:inline-grid;place-items:center;width:20px;height:20px;border:1.5px solid var(--sand-400,#b9ad9b);border-radius:5px;background:var(--surface-card)}
.ms-opt .box svg{width:13px;height:13px;color:#fff;opacity:0}
.ms-opt input:checked+.box{background:var(--primary);border-color:var(--primary)}
.ms-opt input:checked+.box svg{opacity:1}
.ms-opt input:focus-visible+.box{outline:2px solid var(--primary);outline-offset:2px}
.ms-opt small{font:500 12.5px var(--font-mono);color:var(--text-muted)}
.ms-opt.zero{color:var(--text-muted)}.ms-opt.zero .box{border-color:var(--border-subtle)}
.ms-foot{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:var(--sand-100,#f1ece4);border-top:1px solid var(--border-subtle);font-size:13px}
.ms-foot a{color:var(--text-secondary);font-weight:600;text-decoration:none}
.ms-foot span{font:500 12.5px var(--font-mono);color:var(--text-muted)}
.src-cell{display:inline-flex;align-items:center;gap:6px}.src-cell svg{width:15px;height:15px;color:var(--text-secondary)}
.ctx-cell{display:grid;gap:2px}.ctx-cell small{color:var(--text-muted);font-size:12px}
.pager{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;font-size:13px;color:var(--text-muted)}
.pager span:last-child{display:inline-flex;gap:6px}
.pager a{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--text-secondary)}
.pager a:hover{background:var(--sand-100,#f1ece4)}
.pager svg{width:16px;height:16px}
table.t{width:100%;border-collapse:collapse}
table.t th{text-align:left;font-size:11px;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);font-weight:700;padding:12px 14px;background:var(--sand-100);border-bottom:1px solid var(--border-subtle)}
table.t td{padding:13px 14px;border-bottom:1px solid var(--border-subtle);vertical-align:middle;font-size:13.5px}
table.t tr:last-child td{border-bottom:0}
table.t td a.title{font-weight:600;text-decoration:none;display:block}
table.t td .path{font:400 11.5px var(--font-mono);color:var(--text-muted)}
.stat-tiles .tile{padding:16px 18px}
.tile b{display:block;font:500 26px var(--font-mono)}
.tile span{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:13px;margin-top:4px}
a.tile{text-decoration:none}
a.tile.on{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}

/* Onboarding */
.ob{min-height:100vh;display:grid;place-items:center;padding:40px 16px;background:radial-gradient(800px 500px at 25% 15%,var(--peach-100),transparent 60%),radial-gradient(700px 500px at 80% 85%,var(--grass-50),transparent 60%),var(--bg-canvas)}
.ob>div{width:min(640px,100%)}
.ob-clerk{display:flex;justify-content:center;min-height:420px}
.ob-card{width:100%;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:20px;box-shadow:var(--shadow-lg);padding:38px 40px}
.ob-card h1{font:800 30px/1.15 var(--font-display);letter-spacing:-.02em;margin:0 0 10px}
.ob-logo{display:flex;align-items:center;justify-content:center;gap:10px;font:800 26px var(--font-display);letter-spacing:-.03em;margin-bottom:28px}
.ob-logo img{width:34px;height:34px}
.ob-logo b{color:var(--ember-600)}
.ob-form{display:flex;gap:10px;margin:22px 0}
.ob-form .in{flex:1;display:flex;align-items:center;gap:10px;height:52px;border:1px solid var(--border-default);border-radius:12px;padding:0 14px}
.ob-form input{flex:1;border:0;outline:0;font:500 17px var(--font-mono);background:none}
/* Fokusring am Rahmen, nicht am rahmenlosen Feld darin (sonst doppelter Rahmen) */
.ob-form .in:focus-within{border-color:var(--border-focus);box-shadow:var(--ring)}
.ob-form input:focus-visible,.entry input:focus-visible{box-shadow:none}
.ob-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;border-top:1px solid var(--border-subtle);padding-top:20px}
.ob-steps .k{font:500 12px var(--font-mono);color:var(--text-muted)}
.ob-steps .k.on{color:var(--primary)}
.ob-steps b{display:block;margin:6px 0 4px;font-size:14px}
.ob-steps p{margin:0;color:var(--text-muted);font-size:12.5px}
.ob-note{text-align:center;color:var(--text-muted);font-size:12.5px;margin-top:22px}
.ob-progress{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-top:1px solid var(--border-subtle);padding-top:20px}
.ob-progress .box{background:var(--surface-subtle);border-radius:12px;padding:16px}
.ob-progress .box h5{display:flex;gap:8px;align-items:center;margin:0 0 10px;font-size:14px}
.ob-progress .box .big{font:500 24px var(--font-mono)}
.ob-progress .box .big small{font-size:14px;color:var(--text-muted)}
.facts{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:6px;font-size:13px;color:var(--text-secondary)}
.facts li{display:flex;gap:8px;align-items:flex-start}
.facts li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--grass-600);margin-top:7px;flex:none}
.ob-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:18px}
.amatrix{position:relative;height:380px;margin:0 6px 26px 26px;border-left:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);background:linear-gradient(45deg,var(--grass-50),transparent 50%,var(--peach-50))}
.amatrix .ax-y{position:absolute;left:-26px;bottom:50%;transform:rotate(-90deg) translateX(-50%);transform-origin:left;font-size:11.5px;color:var(--text-muted);white-space:nowrap}
.amatrix .ax-x{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-size:11.5px;color:var(--text-muted)}
.apoint{display:flex;align-items:center;gap:8px;border:0;background:none;cursor:pointer;font:600 13.5px var(--font-sans);color:var(--text-primary);padding:4px;border-radius:8px;text-align:left}
.apoint:hover{background:rgba(255,255,255,.7)}
.apoint .dotc{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--sand-500);background:var(--surface-card);flex:none}
.apoint.on .dotc{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 5px var(--ember-100)}
.apoint small{display:block;color:var(--primary);font-size:11.5px}
.claims{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.claim{background:var(--sand-100);border-radius:8px;padding:7px 10px;font-size:12.5px;margin:4px 0;overflow-wrap:anywhere}
.size{display:inline-grid;border:1px solid var(--border-default);border-radius:8px;padding:5px 10px;font-size:12px;color:var(--text-muted)}
.size b{color:var(--text-secondary);font-weight:600}.size small{font:400 11px var(--font-mono)}
.size.on{border-color:var(--ember-600);background:var(--ember-50)}.size.on b{color:var(--ember-700)}
details.role{border:1px solid var(--border-subtle);border-radius:12px;margin:8px 0}
details.role summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:12px 14px}
details.role summary::-webkit-details-marker{display:none}
details.role summary small{display:block;color:var(--text-muted);font-size:12px}
.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:6px 14px 14px;border-top:1px solid var(--border-subtle)}
.strength{display:inline-flex;gap:3px;margin-top:6px}.strength i{width:7px;height:16px;border-radius:2px;background:var(--sand-200)}.strength i.on{background:var(--grass-600)}
.steps-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px;font-size:13px}
.steps-list li{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}
.steps-list li.SUCCEEDED{color:var(--text-primary)}
.steps-list li small{margin-left:auto;color:var(--text-muted);font-size:11.5px}
.steps-list .aed-icon{width:15px;height:15px}
p.err{color:var(--danger-text);font-size:13px;margin-top:-10px}

/* Governance */
.steps{display:flex;align-items:center;gap:14px;padding:14px 20px;flex-wrap:wrap}
.steps .s{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600}
.steps .s.done .aed-icon{color:var(--grass-700)}
.steps .s.now{color:var(--primary)}
.steps .line{flex:1;height:1px;background:var(--border-default);min-width:30px}
.gcard{padding:18px 18px 16px;display:flex;flex-direction:column;gap:8px;text-decoration:none;min-height:170px}
.gcard h4{margin:6px 0 0;font-size:15px}
.gcard p{margin:0;color:var(--text-secondary);font-size:13px;flex:1}
.gcard .top{display:flex;justify-content:space-between;align-items:center}
.cert{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted)}
.review-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:18px;padding:18px 20px;align-items:start}
.review-row .area{font-size:11px;font-weight:700;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}
.review-row h4{margin:0 0 4px;font-size:14.5px}
.review-row p{margin:0 0 6px;color:var(--text-secondary);font-size:13px}
.src{display:flex;gap:14px;font-size:12px;color:var(--text-muted);align-items:center;flex-wrap:wrap}
.src a{color:var(--text-muted)}
.answers{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.answers form{margin:0}
.answer{display:grid;gap:2px;text-align:left;min-width:140px;padding:8px 12px;border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-card);font:600 13.5px var(--font-sans);color:var(--text-primary);cursor:pointer}
.answer small{font-weight:400;font-size:12px;color:var(--text-muted)}
.answer:hover{border-color:var(--primary);background:var(--primary-soft)}
details.removed summary{cursor:pointer;font-size:13px}
.removed-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--border-subtle);font-size:13.5px}
form.editor[hidden]{display:none}
.market-editor .field{display:grid;gap:6px;margin:0;padding:0;border:0;font-size:13px}
.market-editor .field>span,.market-editor legend{font-weight:600;color:var(--text-secondary);padding:0;margin-bottom:6px}
.market-editor input.txt{height:36px;border:1px solid var(--border-default);border-radius:8px;padding:0 10px;font:inherit;font-size:14px;background:var(--surface-card);width:100%;box-sizing:border-box}
.market-editor select{height:36px;border:1px solid var(--border-default);border-radius:8px;padding:0 10px;font:inherit;font-size:14px;background:var(--surface-card);max-width:360px}
.align-card .card-b{display:grid;gap:6px}
.align-card .chip{justify-self:start}
.align-card .clamp{margin:0;font-size:13px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.align-card .label{margin:8px 0 0;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}
.align-card .sub{font-size:13px;margin:0;gap:12px;align-items:baseline}.align-card .sub b{font-family:var(--font-sans);font-weight:600;white-space:nowrap}.align-card .sub b svg{width:13px;height:13px;vertical-align:-2px}
.warn-text{color:var(--peach-800,#9a4b10)}
.align-card .small,.align-card li{font-size:12.5px;margin:6px 0 0}
.align-card ul{margin:4px 0 0 16px;padding:0}
details.more>summary,details.more-findings>summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--primary-soft-text,var(--ember-600))}
details.more-findings{border-top:1px solid var(--border-subtle)}
details.more-findings>summary{padding:14px 20px}
.vt-cell{width:36px;padding-right:0!important}
.vt{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid var(--border-subtle);border-radius:7px;background:var(--surface-card);color:var(--text-secondary);cursor:pointer}
.vt svg{width:14px;height:14px;transition:transform .15s}.vt[aria-expanded=true] svg{transform:rotate(90deg)}
.langs{display:inline-flex;gap:4px;flex-wrap:nowrap;align-items:center;vertical-align:middle}
.lchip{display:inline-grid;place-items:center;height:22px;min-width:28px;padding:0 5px;border-radius:5px;font:600 11px var(--font-mono);background:var(--sand-100,#f1ece4);color:var(--text-secondary);text-decoration:none;margin:0;vertical-align:middle}
.lchip.good{background:var(--grass-100,#e6f4ea);color:var(--grass-800,#1e5a2e)}
.lchip.warn{background:var(--peach-100);color:var(--peach-950)}
.lchip.err{background:var(--ember-100,#fde3dc);color:var(--ember-700,#b3261e)}
.lchip.none{background:transparent;border:1px dashed var(--border-default);color:var(--text-muted)}
td.nowrap{white-space:nowrap}
tr.variant-row td{background:var(--sand-50,#faf7f2);font-size:13px}
.variant-path{display:inline-flex;gap:6px;align-items:center;font-family:var(--font-mono);font-size:12.5px;color:var(--text-secondary)}
.variant-path a{color:inherit;text-decoration:none}.variant-path a:hover{color:var(--primary)}
td.small{font-size:12.5px}td.small svg{width:13px;height:13px;vertical-align:-2px}
.filters-end{margin-left:auto;display:inline-flex}
.variants-all{display:inline-flex;gap:6px;align-items:center;font-size:13px}
.variants-all svg{width:15px;height:15px}
.list-count{margin:-4px 0 12px;font:500 12.5px var(--font-mono);color:var(--text-muted)}
.insights .insight{padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.insights .insight .eyebrow{margin-bottom:4px}
.insights .link.ember{display:inline-flex;gap:4px;align-items:center;margin-top:auto;padding-top:6px}
.insights .link.ember svg{width:14px;height:14px}
.bar-rows{display:grid;gap:8px}
.bar-row{display:grid;grid-template-columns:minmax(0,1fr) 28% 28px;gap:12px;align-items:center;color:inherit;text-decoration:none;font-size:13.5px}
.bar-row:hover span:first-child{color:var(--primary)}
.bar-row b{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
/* Fassung: Score-Karte mit Beobachtungszeile, Google-Vorschau, aufklappbare Zeilen */
.score-card{padding:0}
.score-card>.obs-row:last-child{border-radius:0 0 var(--radius-card,16px) var(--radius-card,16px)}
.btn.done{background:var(--grass-50,#f2faf4);border-color:var(--grass-300,#9bc59b);color:var(--grass-800,#1e5a2e);cursor:default}
.btn.done svg{color:var(--grass-700,#2f7d47)}
.score-main{display:flex;align-items:center;gap:24px;padding-right:22px}
.score-main .sub{white-space:nowrap;gap:10px}
.obs-row{display:grid;grid-template-columns:auto auto minmax(300px,1fr) auto auto;gap:18px;align-items:center;padding:12px 22px;background:var(--surface-subtle,#faf7f2);border-top:1px solid var(--border-subtle,#eee7dc);font-size:13.5px}
.obs-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--grass-100,#e6f4ea);color:var(--grass-800)}
.obs-what{display:grid;gap:2px}.obs-what .mono{font-size:12.5px;color:var(--text-secondary)}
.obs-bars{display:grid;grid-template-columns:minmax(110px,1fr) minmax(170px,2.4fr);gap:8px;max-width:560px}
.obs-bars>span{display:grid;gap:4px}.obs-row .qbar{background:var(--sand-200,#e6dfd3);height:6px}.obs-bars small{font:500 11.5px var(--font-mono);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.obs-st{display:flex;align-items:center;gap:7px;white-space:nowrap}.obs-st i{width:8px;height:8px;border-radius:50%;background:var(--sand-500,#b9ab95)}
.obs-st.good i{background:var(--grass-500,#3a8f55)}.obs-st.warn i{background:var(--peach-500,#e8954f)}
.obs-act{display:flex;gap:10px;align-items:center;justify-content:flex-end}
.obs-url{position:relative}.obs-url summary{list-style:none;display:flex;align-items:center;gap:6px;font-weight:600;cursor:pointer;white-space:nowrap}.obs-url summary::-webkit-details-marker{display:none}
.obs-url form{position:absolute;right:0;top:30px;z-index:20;display:flex;gap:8px;background:#fff;border:1px solid var(--border-default,#e6dfd3);border-radius:12px;padding:10px;box-shadow:0 12px 30px rgba(40,30,20,.12)}
.obs-url form input{min-width:280px}
.serp{margin:14px 16px 4px;padding:14px 16px;border:1px solid var(--border-subtle,#eee7dc);border-radius:12px;background:#fff}
.card.new .serp{background:var(--grass-50,#f2faf4);border-color:var(--grass-200,#cfe9d6)}
.serp-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.serp-h>span:last-child{display:flex;gap:6px}
.serp-u{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-secondary)}.serp-u svg{width:14px;height:14px}
.serp-t{font-size:17px;color:var(--primary);margin:4px 0 2px;line-height:1.35}
.serp-d{font-size:13.5px;color:var(--text-secondary);line-height:1.5}
.folds{margin-top:16px;padding:0}
.fold+.fold{border-top:1px solid var(--border-subtle,#eee7dc)}
.fold summary{list-style:none;display:flex;align-items:center;gap:10px;padding:16px 22px;cursor:pointer;font-size:14px}
.fold summary::-webkit-details-marker{display:none}
.fold summary>svg:first-child{width:16px;height:16px;color:var(--text-muted);transition:transform .15s}
.fold[open] summary>svg:first-child{transform:rotate(90deg)}
.fold .ok{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary)}.fold .ok svg{width:14px;height:14px;color:var(--grass-600,#2f7d47)}
.fold .dotsep{color:var(--text-muted)}.fold .s{color:var(--text-secondary)}
.fold .open-chip svg{width:14px;height:14px}
.fold .r{margin-left:auto;color:var(--text-muted);font-size:12.5px}
.fold-body{padding:0 22px 16px 48px}
/* Admin: Kontingent-Balken, Anteile, Kosten je Tag */
.qbar{display:block;height:8px;border-radius:4px;background:var(--sand-100,#f1ece4);overflow:hidden;min-width:60px}
.qbar i{display:block;height:100%;background:var(--grass-500,#3a8f55);border-radius:4px}
.qbar.warn i{background:var(--peach-500,#e8954f)}.qbar.err i{background:var(--ember-600,#c2410c)}
.quota-rows{display:grid;gap:14px;padding:14px 20px 18px}
.quota-row{display:grid;grid-template-columns:190px minmax(0,1fr) 200px;gap:16px;align-items:center;font-size:13.5px}
.quota-row>.num{text-align:right}
.quota-row>span:first-child{display:grid;gap:2px}
.share{display:grid;grid-template-columns:1fr 58px;gap:8px;align-items:center}.share small{text-align:right;white-space:nowrap}
.daily-bars{display:grid;grid-template-columns:repeat(var(--days),1fr);gap:3px;align-items:end;height:120px;padding:14px 20px 0}
.daily-bars .day{height:100%;display:flex;align-items:flex-end}
.daily-bars .day i{display:block;width:100%;background:var(--sand-500,#b9ab95);border-radius:3px 3px 0 0}
.daily-bars .day.peak i{background:var(--ember-600,#c2410c)}
.daily-axis{display:flex;justify-content:space-between;padding:4px 20px 12px;font:500 11px var(--font-mono);color:var(--text-muted)}
tr.peak-row td{font-weight:600}
/* Beträge (Admin-Verlauf): Spalte so breit wie der Wert, Balken füllt den Rest */
.bar-rows.money .bar-row{grid-template-columns:max-content minmax(0,1fr) max-content}
.stackbar{display:flex;gap:2px;height:8px;border-radius:99px;overflow:hidden;margin:2px 0 6px}
.stackbar i{display:block;height:100%}
.kv-row{display:flex;justify-content:space-between;color:inherit;text-decoration:none;font-size:13.5px}
.kv-row b{font-weight:600;font-variant-numeric:tabular-nums}
.kv-row.ember,.kv-row.ember b{color:var(--primary)}
.kv-row.muted,.kv-row.muted b{color:var(--text-muted)}
.kv-row:hover span{text-decoration:underline}
.big-stat{display:flex;gap:10px;align-items:baseline;margin:0}
.big-stat b{font:600 26px var(--font-mono)}
.big-stat span{font:500 13px var(--font-mono);color:var(--text-muted)}
.trunc{display:inline-block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.ov-badge{display:inline-flex;gap:3px;align-items:center;margin-left:8px;padding:1px 6px;border-radius:5px;background:var(--peach-100);color:var(--peach-900);font:500 11.5px var(--font-sans)}
.ov-badge svg{width:11px;height:11px}
.readiness-scores{display:inline-flex;gap:16px;font-size:13px;color:var(--text-muted)}.readiness-scores b{color:var(--text-primary);font-size:15px;margin-left:4px}
.t.readiness td{vertical-align:top}.t.readiness .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.t.readiness .why{margin:4px 0 0;font-size:13px;color:var(--text-secondary)}
.t.readiness .quote.small{font-size:12.5px;margin:6px 0 0}
.t.readiness .improve{display:flex;gap:6px;align-items:flex-start;margin:6px 0 0;font-size:12.5px;color:var(--primary)}.t.readiness .improve svg{width:13px;height:13px;flex:none;margin-top:3px}
.pts{display:inline-flex;align-items:baseline;gap:1px;padding:2px 8px;border-radius:99px;font:600 13px var(--font-mono);white-space:nowrap}
.pts small{font-size:10.5px;opacity:.7}.pts.good{background:var(--grass-100);color:var(--grass-800)}.pts.warn{background:var(--peach-100);color:var(--peach-900)}.pts.err{background:var(--ember-100);color:var(--ember-700)}.pts.none{background:var(--sand-200);color:var(--sand-700)}
.state-l{display:block;margin-top:4px;font-size:11.5px}
.seo-parts{display:grid;gap:10px;margin-top:8px}.seo-part{padding-left:10px;border-left:2px solid var(--border-subtle)}
.seo-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:600}
.tech-hints{border-top:1px solid var(--border-subtle)}
.admin-bar{display:flex;align-items:center;gap:24px;padding:12px 28px;border-bottom:1px solid var(--border-subtle);background:var(--surface-card);flex-wrap:wrap}
.admin-bar .brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;font-weight:800}
.admin-bar .brand img{width:26px;height:26px}
mark.claim{background:var(--peach-100,#fbe3d0);color:inherit;border-bottom:2px dotted var(--ember-600,#c2410c);padding:0 1px;cursor:help}
.toggle small.rec{font:600 10px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--grass-800);margin-left:4px}
.admin-tag{font:600 11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;padding:3px 7px;border-radius:5px;background:var(--ink-900,#1f1b16);color:#fff}
.admin-bar nav{display:flex;gap:4px}.admin-bar nav a{display:inline-flex;gap:6px;align-items:center;padding:7px 12px;border-radius:8px;text-decoration:none;color:var(--text-secondary);font-size:13.5px;font-weight:600}
.admin-bar nav a:hover{background:var(--sand-100)}.admin-bar nav svg{width:15px;height:15px}
.admin-bar>.muted{margin-left:auto}
.admin-main{max-width:1400px;margin:0 auto}
.month-nav{display:flex;align-items:center;gap:10px}.month-nav svg{width:15px;height:15px}
.t .num,.t th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.create-form{display:grid;gap:16px;max-width:860px}
.create-form .field{display:grid;gap:6px;margin:0;padding:0;border:0;font-size:13px;min-width:0}
.create-form .field>span,.create-form legend{font-weight:600;color:var(--text-secondary);padding:0;margin-bottom:6px}
.create-form input:not([type=radio]),.create-form select,.create-form textarea{width:100%;box-sizing:border-box;height:40px;border:1px solid var(--border-default);border-radius:8px;padding:0 12px;font:inherit;font-size:14px;background:var(--surface-card)}
.create-form textarea{height:auto;padding:8px 12px;line-height:1.45;resize:vertical}
.form-error{margin:0;padding:10px 12px;border-radius:8px;background:var(--ember-50);color:var(--ember-800);font-size:13.5px}
[class*="fresh-"]{white-space:nowrap}.fresh-check{color:var(--peach-800)}.fresh-update{color:var(--ember-700)}.fresh-unknown{color:var(--text-muted)}
.next-action{text-decoration:none;font-weight:600;font-size:13px}.next-action.ember{color:var(--primary)}.next-action.muted{color:var(--text-muted)}.next-action.info{color:var(--ocean-700,#1d5f8a)}
.confirm-menu{position:relative}
.confirm-menu>summary{list-style:none}.confirm-menu>summary::-webkit-details-marker{display:none}
.confirm-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:320px;padding:16px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-card);box-shadow:0 12px 32px rgba(0,0,0,.12);display:grid;gap:8px}
.confirm-pop p{margin:0;font-size:13.5px}
.lang-editor{display:grid;gap:16px}
.lang-rows{display:grid;gap:8px}
.lang-head,.lang-row{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr) auto;gap:12px;align-items:center}
.lang-head span{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}
.lang-head span:last-child{text-align:right}
.lang-row{padding:8px 10px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-card);transition:opacity .15s}
.lang-row:has(input[name=use]:not(:checked)){display:none}
.lang-name{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px}
.lang-name b{font:600 11.5px var(--font-mono);background:var(--peach-100);color:var(--peach-950);border-radius:5px;padding:3px 6px}
.lang-actions{display:inline-flex;align-items:center;gap:6px;justify-self:end}
.lang-remove{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--text-muted);cursor:pointer}
.lang-remove:hover{background:var(--sand-100,#f3efe9);color:var(--ember-600)}
.lang-remove input{position:absolute;opacity:0;pointer-events:none}
.lang-remove svg{width:16px;height:16px}
.lang-remove:has(input:focus-visible){outline:2px solid var(--primary)}
.lang-editor select{height:36px;width:100%;min-width:0;border:1px solid var(--border-default);border-radius:8px;padding:0 10px;font:inherit;font-size:14px;background-color:var(--surface-card)}
.lang-editor select:disabled{opacity:.6;cursor:default}
.prim{cursor:pointer}.prim input{position:absolute;opacity:0;pointer-events:none}
.prim span{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--border-default);border-radius:999px;font-size:13px;font-weight:600;color:var(--text-muted);background:var(--surface-card)}
.prim span svg{width:14px;height:14px;display:none}
.prim input:checked+span{background:var(--primary-soft);color:var(--primary-soft-text);border-color:var(--primary)}
.prim input:checked+span svg{display:inline}
.prim input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.lang-add{display:grid;gap:6px;max-width:320px;font-size:13px}
.lang-add>span{font-weight:600;color:var(--text-secondary)}
@media (max-width:720px){.lang-head{display:none}.lang-row{grid-template-columns:1fr auto}.lang-row select{grid-column:1/-1;grid-row:2}}
.lang-grid{display:flex;flex-wrap:wrap;gap:6px}
.lang{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;font-family:var(--font-sans);border:1px solid var(--border-default);border-radius:999px;background:var(--surface-card);cursor:pointer;font-size:13px}
.lang input{position:absolute;opacity:0;pointer-events:none}
.lang span,.lang small{font-family:var(--font-sans)}.lang span{font-weight:700}.lang small{color:var(--text-muted)}
.lang:has(input:checked){background:var(--grass-100,#e6f4ea);border-color:var(--grass-600)}
.lang:has(input:focus-visible){outline:2px solid var(--primary)}
.seg{display:inline-flex;justify-self:start;width:max-content;border:1px solid var(--border-default);border-radius:8px;overflow:hidden;background:var(--surface-card)}
.seg label{cursor:pointer}.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;font-family:var(--font-sans);padding:7px 14px;font-size:13.5px;font-weight:600;color:var(--text-secondary)}
.seg label+label span{border-left:1px solid var(--border-default)}
.seg input:checked+span{background:var(--primary-soft);color:var(--primary-soft-text)}
.seg input:focus-visible+span{outline:2px solid var(--primary);outline-offset:-2px}
.ai-working{display:flex;gap:12px;align-items:center;margin:4px 0 10px;padding:12px 14px;border:1px solid var(--primary);border-radius:var(--radius-control);background:var(--primary-soft);color:var(--primary-soft-text)}
.ai-working .spinner{flex:none;width:18px;height:18px}
.ai-working b{display:block;font-size:14px}
.ai-working small{display:block;font-size:12.5px;opacity:.85;margin-top:2px}
.role-skeleton{height:56px;margin:0 0 8px;border-radius:var(--radius-control);background:linear-gradient(90deg,var(--surface-subtle) 25%,var(--border-subtle) 50%,var(--surface-subtle) 75%);background-size:200% 100%;animation:skel 1.4s ease-in-out infinite}
@keyframes skel{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.role-skeleton{animation:none}}
.add-row{padding:12px 20px 16px;border-top:1px solid var(--border-subtle)}
form.editor{margin-top:12px;padding:12px;border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-subtle);display:grid;gap:10px}
form.editor textarea,.market-editor textarea{width:100%;box-sizing:border-box;border:1px solid var(--border-default);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px;line-height:1.45;resize:vertical;background:var(--surface-card)}
form.editor textarea:focus,.entry:focus-within{outline:2px solid var(--primary-soft);border-color:var(--primary)}
.entries{display:flex;flex-wrap:wrap;gap:6px}
.entry{display:inline-flex;align-items:center;gap:2px;height:32px;padding:0 4px 0 12px;border:1px solid var(--border-default);border-radius:999px;background:var(--surface-card)}
.entry input{border:0;background:transparent;font:inherit;font-size:13.5px;outline:none;min-width:3ch;padding:0}
.entry.add{border-style:dashed;background:transparent}
.entry.add input{width:auto}
.entry .x{display:inline-grid;place-items:center;width:24px;height:24px;border:0;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer;padding:0}
.entry .x:hover{background:var(--surface-subtle);color:var(--text-primary)}
.entry .x svg{width:14px;height:14px}
.editor-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.editor-foot>span{display:flex;gap:8px;align-items:center}

/* Detail & improve */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.ctx{position:relative}
.ctx summary{list-style:none;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--border-default);border-radius:8px;background:var(--surface-card);font-size:12.5px;cursor:pointer}
.ctx summary::-webkit-details-marker{display:none}
.ctx summary span{color:var(--text-muted)}
.ctx.unsure summary{border-style:dashed;border-color:var(--peach-700);background:var(--peach-50)}
.ctx .menu{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:240px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px}
.ctx .menu button{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:6px;font:inherit;cursor:pointer}
.ctx .menu button:hover{background:var(--sand-100)}
.ctx .menu-sep{height:1px;background:var(--border-subtle);margin:4px 6px}
.ctx .menu-check{display:flex;gap:8px;align-items:center;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13.5px}
.ctx .menu-check:hover{background:var(--sand-100)}
.ctx .menu-check input{accent-color:var(--primary);width:15px;height:15px;margin:0}
.ctx .menu button.menu-apply{width:auto;margin:6px 10px 2px;text-align:center;background:var(--primary);color:#fff;border-radius:8px}
.ctx .menu button.menu-apply:hover{background:var(--primary-hover)}
.verdict{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr}
.verdict>div{padding:20px}
.verdict>div+div{border-left:1px solid var(--border-subtle)}
.verdict h2{font-size:19px;margin:0 0 8px}
.sub{display:flex;justify-content:space-between;font-size:12.5px;margin:12px 0 5px}
.sub b{font-family:var(--font-mono);font-weight:500}
.finding{padding:16px 20px}
.finding summary{list-style:none;display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.finding summary::-webkit-details-marker{display:none}
.finding .sev{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--peach-700)}
.finding .sev.HIGH{background:var(--ember-600)}
.finding h4{margin:0;font-size:14px}
.finding small{color:var(--text-muted)}
.quote{background:var(--sand-100);border-radius:8px;padding:10px 14px;font-style:italic;font-size:13px;margin:10px 0}
.tabs{display:inline-flex;background:var(--sand-200);border-radius:12px;padding:4px;margin:20px 0 14px}
.tabs a{padding:7px 16px;border-radius:9px;text-decoration:none;font-size:14px;color:var(--text-secondary)}
.tabs a.on{background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-xs);font-weight:600}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.cmp .card-h{padding:12px 18px;font-size:13px;font-weight:600;border-radius:calc(var(--radius-card) - 1px) calc(var(--radius-card) - 1px) 0 0}
.cmp .old .card-h{background:var(--sand-100)}
.cmp .new{border-color:var(--grass-400)}
.cmp .new .card-h{background:var(--grass-50);color:var(--grass-900)}
.sec{display:flex;gap:12px;padding:10px 18px}
.sec .i{font:500 11px var(--font-mono);color:var(--ember-600);width:16px;flex:none;padding-top:3px}
.sec h5{margin:0 0 4px;font-size:15px}
.sec p{margin:0;white-space:pre-line;font-size:13.5px;color:var(--text-secondary)}
.sec.changed>div{background:var(--grass-50);border-radius:6px;padding:6px 8px;flex:1}
.sec.missing p{color:var(--text-muted)}
.proj{display:flex;align-items:center;gap:22px;padding:18px 22px}
.proj .before b,.proj .after b{display:block;font:500 32px var(--font-mono)}
.proj .after{border:1px dashed var(--grass-600);border-radius:10px;padding:6px 14px;color:var(--grass-800)}
.proj small{font-size:10.5px;letter-spacing:.08em;font-weight:700;color:var(--text-muted)}
.toggle{display:inline-flex;background:var(--sand-100);border-radius:10px;padding:3px}
.toggle a{padding:7px 12px;border-radius:8px;text-decoration:none;font-size:13px;font-weight:600;color:var(--text-secondary)}
.toggle a.on{background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-xs)}

/* Journey matrix */
.matrix{display:grid;grid-template-columns:200px repeat(4,1fr);gap:8px;padding:18px}
.matrix .hd{font-size:11px;font-weight:700;letter-spacing:var(--tracking-caps);color:var(--text-muted);padding:4px 8px}
.matrix .icp{padding:14px 4px}
.matrix .icp b{display:block;font-size:14px}
.matrix .icp small{color:var(--text-muted)}
.cell{border-radius:10px;padding:14px;text-decoration:none;display:block}
.cell b{display:block;font:500 24px var(--font-mono)}
.cell span{font-size:12px;font-weight:600}
.cell.ok{background:var(--grass-50);color:var(--grass-900)}
.cell.thin{background:var(--peach-50);color:var(--peach-950)}
.cell.gap{background:var(--ember-50);color:var(--ember-800);outline:1.5px dashed var(--ember-700)}
.cell.empty{background:var(--sand-100);color:var(--sand-500)}
.notice{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;background:var(--peach-100);margin-bottom:16px;font-size:13.5px}
.notice a{margin-left:auto;font-weight:700;text-decoration:none}
.notice.draft-banner{border:1px solid var(--peach-500)}.notice.draft-banner>svg{width:17px;height:17px;flex:none;color:var(--peach-800)}.notice.draft-banner form{margin-left:auto;flex:none}.notice.draft-banner a{flex:none;color:var(--primary)}
.empty-state{padding:36px;text-align:center;color:var(--text-secondary)}
.empty-state h3{margin:0 0 6px;color:var(--text-primary)}
.log td{font-size:13px}
.aed-switch__track,.aed-switch__thumb{display:block}
.tree{padding:6px 0}
.tree .node{display:flex;align-items:center;gap:10px;padding:10px 20px;border-top:1px solid var(--border-subtle)}
.tree .node .path{font:400 12px var(--font-mono);color:var(--text-muted)}

/* Einheitliche Dropdowns: eigener Pfeil mit Abstand zum Rand (statt Browser-Pfeil am Rand) */
select{-webkit-appearance:none!important;appearance:none!important;padding-right:40px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b6257' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:16px 16px!important;cursor:pointer}
select::-ms-expand{display:none}
.pause-banner{display:flex;align-items:center;justify-content:space-between;gap:16px}
.pause-banner .aed-icon{width:15px;height:15px;vertical-align:-2px}
/* Editoren und lange Inhalte bleiben in ihrer Spalte */
form.editor{min-width:0;max-width:100%;box-sizing:border-box}
form.editor .grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important}
form.editor .grid>*,form.editor .field{min-width:0}
form.editor .grid{align-items:start}
form.editor .field{align-content:start}
.entries{min-width:0}
.entry{max-width:100%;box-sizing:border-box}
.entry input{min-width:0;max-width:100%;text-overflow:ellipsis}
.kv p,.kv div{overflow-wrap:break-word}
.review-row>*{min-width:0}
